File indexing completed on 2026-11-07 10:15:20
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014 #ifdef T
0015
0016 #include "templates.h"
0017
0018 #ifdef __cplusplus
0019 extern "C" {
0020 #endif
0021
0022 void TEMPLATE(T, poly_factor_init)(TEMPLATE(T, poly_factor_t) fac,
0023 const TEMPLATE(T, ctx_t) ctx);
0024
0025 void TEMPLATE(T, poly_factor_clear)(TEMPLATE(T, poly_factor_t) fac,
0026 const TEMPLATE(T, ctx_t) ctx);
0027
0028 void TEMPLATE(T, poly_factor_realloc)(TEMPLATE(T, poly_factor_t) fac,
0029 slong alloc,
0030 const TEMPLATE(T, ctx_t) ctx);
0031
0032 void TEMPLATE(T, poly_factor_fit_length)(TEMPLATE(T, poly_factor_t) fac,
0033 slong len,
0034 const TEMPLATE(T, ctx_t) ctx);
0035
0036 void TEMPLATE(T, poly_factor_set)(TEMPLATE(T, poly_factor_t) res,
0037 const TEMPLATE(T, poly_factor_t) fac,
0038 const TEMPLATE(T, ctx_t) ctx);
0039
0040 void TEMPLATE(T, poly_factor_insert)(TEMPLATE(T, poly_factor_t) fac,
0041 const TEMPLATE(T, poly_t) poly,
0042 slong exp, const TEMPLATE(T, ctx_t) ctx);
0043
0044 void TEMPLATE(T, poly_factor_print)(const TEMPLATE(T, poly_factor_t) fac,
0045 const TEMPLATE(T, ctx_t) ctx);
0046
0047 void TEMPLATE(T, poly_factor_print_pretty)(const TEMPLATE(T, poly_factor_t) fac,
0048 const char * var,
0049 const TEMPLATE(T, ctx_t) ctx);
0050
0051 void TEMPLATE(T, poly_factor_concat)(TEMPLATE(T, poly_factor_t) res,
0052 const TEMPLATE(T, poly_factor_t) fac,
0053 const TEMPLATE(T, ctx_t) ctx);
0054
0055 void TEMPLATE(T, poly_factor_pow)(TEMPLATE(T, poly_factor_t) fac, slong exp,
0056 const TEMPLATE(T, ctx_t) FLINT_UNUSED(ctx));
0057
0058 int _TEMPLATE(T, poly_is_squarefree)(const TEMPLATE(T, struct) * f, slong len,
0059 const TEMPLATE(T, ctx_t) ctx);
0060
0061 int TEMPLATE(T, poly_is_squarefree)(const TEMPLATE(T, poly_t) f,
0062 const TEMPLATE(T, ctx_t) ctx);
0063
0064 void TEMPLATE(T, poly_factor_squarefree)(TEMPLATE(T, poly_factor_t) res,
0065 const TEMPLATE(T, poly_t) f,
0066 const TEMPLATE(T, ctx_t) ctx);
0067
0068 int TEMPLATE(T, poly_is_irreducible)(const TEMPLATE(T, poly_t) f,
0069 const TEMPLATE(T, ctx_t) ctx);
0070
0071 int TEMPLATE(T, poly_is_irreducible_ddf)(const TEMPLATE(T, poly_t) f,
0072 const TEMPLATE(T, ctx_t) ctx);
0073
0074 int TEMPLATE(T, poly_is_irreducible_ben_or)(const TEMPLATE(T, poly_t) f,
0075 const TEMPLATE(T, ctx_t) ctx);
0076
0077 void TEMPLATE(T, poly_factor_distinct_deg)(TEMPLATE(T, poly_factor_t) res,
0078 const TEMPLATE(T, poly_t) poly,
0079 slong * const *degs,
0080 const TEMPLATE(T, ctx_t) ctx);
0081
0082 int TEMPLATE(T, poly_factor_equal_deg_prob)(TEMPLATE(T, poly_t) factor,
0083 flint_rand_t state,
0084 const TEMPLATE(T, poly_t) pol, slong d,
0085 const TEMPLATE(T, ctx_t) ctx);
0086
0087 void TEMPLATE(T, poly_factor_equal_deg)(TEMPLATE(T, poly_factor_t) factors,
0088 const TEMPLATE(T, poly_t) pol,
0089 slong d, const TEMPLATE(T, ctx_t) ctx);
0090
0091 void TEMPLATE(T, poly_factor_cantor_zassenhaus)(TEMPLATE(T, poly_factor_t) res,
0092 const TEMPLATE(T, poly_t) f,
0093 const TEMPLATE(T, ctx_t) ctx);
0094
0095 void TEMPLATE(T, poly_factor_kaltofen_shoup)(TEMPLATE(T, poly_factor_t) res,
0096 const TEMPLATE(T, poly_t) poly,
0097 const TEMPLATE(T, ctx_t) ctx);
0098
0099 void TEMPLATE(T, poly_factor_berlekamp)(TEMPLATE(T, poly_factor_t) factors,
0100 const TEMPLATE(T, poly_t) f,
0101 const TEMPLATE(T, ctx_t) ctx);
0102
0103 void TEMPLATE(T, poly_factor_with_berlekamp)(TEMPLATE(T, poly_factor_t) result,
0104 TEMPLATE(T, t) leading_coeff,
0105 const TEMPLATE(T, poly_t) input,
0106 const TEMPLATE(T, ctx_t) ctx);
0107
0108 void TEMPLATE(T, poly_factor_with_cantor_zassenhaus)(
0109 TEMPLATE(T, poly_factor_t) result,
0110 TEMPLATE(T, t) leading_coeff,
0111 const TEMPLATE(T, poly_t) input,
0112 const TEMPLATE(T, ctx_t) ctx);
0113
0114 void TEMPLATE(T, poly_factor_with_kaltofen_shoup)(TEMPLATE(T, poly_factor_t) result,
0115 TEMPLATE(T, t) leading_coeff,
0116 const TEMPLATE(T, poly_t) input,
0117 const TEMPLATE(T, ctx_t) ctx);
0118
0119 void TEMPLATE(T, poly_factor)(TEMPLATE(T, poly_factor_t) result,
0120 TEMPLATE(T, t) leading_coeff,
0121 const TEMPLATE(T, poly_t) input,
0122 const TEMPLATE(T, ctx_t) ctx);
0123
0124
0125 void TEMPLATE(T, poly_iterated_frobenius_preinv)(TEMPLATE(T, poly_t)* rop,
0126 slong n,
0127 const TEMPLATE(T, poly_t) v,
0128 const TEMPLATE(T, poly_t) vinv,
0129 const TEMPLATE(T, ctx_t) ctx);
0130
0131 void TEMPLATE(T, poly_factor_split_single)(TEMPLATE(T, poly_t) linfactor,
0132 const TEMPLATE(T, poly_t) input,
0133 const TEMPLATE(T, ctx_t) ctx);
0134
0135 void TEMPLATE(T, poly_roots)(TEMPLATE(T, poly_factor_t) r,
0136 const TEMPLATE(T, poly_t) f, int with_multiplicity,
0137 const TEMPLATE(T, ctx_t) ctx);
0138
0139 #ifdef __cplusplus
0140 }
0141 #endif
0142
0143 #endif