Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-11-07 10:15:20

0001 /*
0002     Copyright (C) 2012 Andres Goens
0003     Copyright (C) 2012 Sebastian Pancratz
0004     Copyright (C) 2013 Mike Hansen
0005 
0006     This file is part of FLINT.
0007 
0008     FLINT is free software: you can redistribute it and/or modify it under
0009     the terms of the GNU Lesser General Public License (LGPL) as published
0010     by the Free Software Foundation; either version 3 of the License, or
0011     (at your option) any later version.  See <https://www.gnu.org/licenses/>.
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