41 if (
A.inCoeffDomain())
61 if (
A.inCoeffDomain())
65 zz_pE::init (NTLMipo);
67 zz_pE NTLA2= to_zz_pE (NTLA);
82#if (HAVE_FLINT && __FLINT_RELEASE >= 20400)
88 if (
A.inCoeffDomain())
90 nmod_poly_t FLINTmipo;
100 fq_nmod_init2 (FLINTA,
fq_con);
104 fmpz_init_set (qp, q);
105 fmpz_divexact_si (qp, qp,
p);
107 fq_nmod_pow (FLINTA, FLINTA, qp,
fq_con);
112 fq_nmod_clear (FLINTA,
fq_con);
130 bool derivZero=
true;
167 if (!
g.inCoeffDomain())
201 for (
int i=
l;
i > 0;
i--)
212 if (!
k.hasItem() && !
j.getItem().factor().inCoeffDomain())
tmp2.
append (
j.getItem());
215 for (;
k.hasItem();
k++)
217 if (
k.getItem().exp() ==
j.getItem().exp())
219 k.getItem()=
CFFactor (
k.getItem().factor()*
j.getItem().factor(),
224 if (
found ==
false && !
j.getItem().factor().inCoeffDomain())
231 bool degcheck=
false;;
232 for (
int i=
l;
i > 0;
i--)
240#if defined(HAVE_NTL) || (HAVE_FLINT && __FLINT_RELEASE >= 20400)
244#if (HAVE_FLINT && __FLINT_RELEASE >= 20400)
248 fmpz_init_set_ui (qq,
p);
249 fmpz_pow_ui (qq, qq,
k);
253#elif defined(HAVE_NTL)
261 factoryError(
"NTL/FLINT missing: squarefreeFactorization");
272 tmp=
gcd (
i.getItem().factor(),
j.getItem().factor());
273 i.getItem()=
CFFactor (
i.getItem().factor()/tmp,
i.getItem().exp());
274 j.getItem()=
CFFactor (
j.getItem().factor()/tmp,
j.getItem().exp());
279 j.getItem().exp()*
p +
i.getItem().exp()));
285 if (!
i.getItem().factor().inCoeffDomain())
287 tmp=
M (
i.getItem().factor());
293 if (!
j.getItem().factor().inCoeffDomain())
295 tmp=
M (
j.getItem().factor());
319 for (;
i <=
A.level();
i++)
339 for (;
i <=
A.level();
i++)
void convertFacCF2Fq_nmod_t(fq_nmod_t result, const CanonicalForm &f, const fq_nmod_ctx_t ctx)
conversion of a factory element of F_q to a FLINT fq_nmod_t, does not do any memory allocation for po...
CanonicalForm convertFq_nmod_t2FacCF(const fq_nmod_t poly, const Variable &alpha, const fq_nmod_ctx_t)
conversion of a FLINT element of F_q to a CanonicalForm with alg. variable alpha
This file defines functions for conversion to FLINT (www.flintlib.org) and back.
CanonicalForm convertNTLzzpE2CF(const zz_pE &coefficient, const Variable &x)
zz_pX convertFacCF2NTLzzpX(const CanonicalForm &f)
Conversion to and from NTL.
#define GaloisFieldDomain
Interface to generate InternalCF's over various domains from intrinsic types or mpz_t's.
Iterators for CanonicalForm's.
CanonicalForm compress(const CanonicalForm &f, CFMap &m)
CanonicalForm compress ( const CanonicalForm & f, CFMap & m )
VAR void(* factoryError)(const char *s)
int ipower(int b, int m)
int ipower ( int b, int m )
class to iterate through CanonicalForm's
factory's class for variables
const Variable & v
< [in] a sqrfree bivariate poly
static CFFList sqrfPosDer(const CanonicalForm &F, const Variable &x, CanonicalForm &c)
CanonicalForm maxpthRoot(const CanonicalForm &F, int q, int &l)
p^l-th root extraction, where l is maximal
CFFList squarefreeFactorization(const CanonicalForm &F, const Variable &alpha)
squarefree factorization over a finite field return a list of squarefree factors with multiplicity
static CanonicalForm pthRoot(const CanonicalForm &F, int q)
CanonicalForm sqrfPart(const CanonicalForm &F, CanonicalForm &pthPower, const Variable &alpha)
squarefree part of F/g, where g is the product of those squarefree factors whose multiplicity is 0 mo...
This file provides functions for squarefrees factorizing over , or GF.
fq_nmod_ctx_clear(fq_con)
nmod_poly_init(FLINTmipo, getCharacteristic())
fq_nmod_ctx_init_modulus(fq_con, FLINTmipo, "Z")
convertFacCF2nmod_poly_t(FLINTmipo, M)
nmod_poly_clear(FLINTmipo)
bool isZero(const CFArray &A)
checks if entries of A are zero
int status int void * buf
CanonicalForm getMipo(const Variable &alpha, const Variable &x)