27{
29 #if defined(HAVE_FLINT) && (__FLINT_RELEASE >= 20503)
30 nmod_poly_t FLINT_f;
32 nmod_poly_factor_t fac;
33 nmod_poly_factor_init(fac);
34 nmod_poly_roots(fac,FLINT_f,0);
36
38 for(
int i=fac->num-1;
i>=0;
i--)
39 {
40
41 if (nmod_poly_length(fac->p+
i)==2)
42 {
43 res[
j]=
p-nmod_poly_get_coeff_ui(fac->p+
i,0);
45 }
46 }
48
50 nmod_poly_factor_clear(fac);
52 #elif defined(HAVE_NTL)
54 {
57 }
59 vec_zz_p roots= FindRoots (NTL_f);
61 res[0]=roots.length();
62 for(
int i=roots.length()-1;
i>=0;
i--)
63 {
64 res[
i+1]=to_long(rep(roots[
i]));
65 }
67 #else
70 #endif
71}
zz_pX convertFacCF2NTLzzpX(const CanonicalForm &f)
VAR void(* factoryError)(const char *s)
convertFacCF2nmod_poly_t(FLINTmipo, M)
nmod_poly_clear(FLINTmipo)