 |
My Project
debian-1:4.1.1-p2+ds-4
|
Go to the source code of this file.
|
CFFList | squarefreeFactorization (const CanonicalForm &F, const Variable &alpha) |
| squarefree factorization over a finite field return a list of squarefree factors with multiplicity More...
|
|
CFFList | FpSqrf (const CanonicalForm &F, bool sort=true) |
| squarefree factorization over . If input is not monic, the leading coefficient is dropped More...
|
|
CFFList | FqSqrf (const CanonicalForm &F, const Variable &alpha, bool sort=true) |
| squarefree factorization over . If input is not monic, the leading coefficient is dropped More...
|
|
CFFList | GFSqrf (const CanonicalForm &F, bool sort=true) |
| squarefree factorization over GF. If input is not monic, the leading coefficient is dropped More...
|
|
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 mod p, if F a pth power pthPower= F. More...
|
|
CanonicalForm | maxpthRoot (const CanonicalForm &F, int q, int &l) |
| p^l-th root extraction, where l is maximal More...
|
|
This file provides functions for squarefrees factorizing over
,
or GF.
- Author
- Martin Lee
Definition in file facFqSquarefree.h.
◆ FpSqrf()
squarefree factorization over
. If input is not monic, the leading coefficient is dropped
- Returns
- a list of squarefree factors with multiplicity
- Parameters
-
[in] | F | a poly |
[in] | sort | sort factors by exponent? |
Definition at line 38 of file facFqSquarefree.h.
48 for (
int i= n;
i >= 1;
i++)
52 if (bufResult.
getFirst().factor().inCoeffDomain())
62 if (bufResult.
getFirst().factor().inCoeffDomain())
◆ FqSqrf()
squarefree factorization over
. If input is not monic, the leading coefficient is dropped
- Returns
- a list of squarefree factors with multiplicity
- Parameters
-
[in] | F | a poly |
[in] | alpha | algebraic variable |
[in] | sort | sort factors by exponent? |
Definition at line 77 of file facFqSquarefree.h.
87 for (
int i= n;
i >= 1;
i++)
91 if (bufResult.
getFirst().factor().inCoeffDomain())
101 if (bufResult.
getFirst().factor().inCoeffDomain())
◆ GFSqrf()
squarefree factorization over GF. If input is not monic, the leading coefficient is dropped
- Returns
- a list of squarefree factors with multiplicity
- Parameters
-
[in] | F | a poly |
[in] | sort | sort factors by exponent? |
Definition at line 116 of file facFqSquarefree.h.
121 "GF as base field expected");
◆ maxpthRoot()
p^l-th root extraction, where l is maximal
- Returns
- maxpthRoot returns a p^l-th root of F, where l is maximal
- See also
- pthRoot()
- Parameters
-
[in] | F | a poly which is a pth power |
[in] | q | size of the field |
[in,out] | l | l maximal, s.t. F is a p^l-th power |
Definition at line 127 of file facFqSquarefree.cc.
130 bool derivZero=
true;
◆ sqrfPart()
squarefree part of F/g, where g is the product of those squarefree factors whose multiplicity is 0 mod p, if F a pth power pthPower= F.
- Returns
- sqrfPart returns 1, if F is a pthPower, else it returns the squarefree part of F/g, where g is the product of those squarefree factors whose multiplicity is 0 mod p
- Parameters
-
[in] | F | a poly |
[in,out] | pthPower | returns F is F is a pthPower |
[in] | alpha | algebraic variable |
Definition at line 301 of file facFqSquarefree.cc.
317 for (;
i <=
A.level();
i++)
337 for (;
i <=
A.level();
i++)
◆ squarefreeFactorization()
squarefree factorization over a finite field return a list of squarefree factors with multiplicity
- Parameters
-
[in] | F | a poly |
[in] | alpha | either an algebraic variable, i.e. we are over some F_p (alpha) or a variable of level 1, i.e. we are F_p or GF |
Definition at line 181 of file facFqSquarefree.cc.
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)
270 tmp=
gcd (
i.getItem().factor(),
j.getItem().factor());
271 i.getItem()=
CFFactor (
i.getItem().factor()/tmp,
i.getItem().exp());
272 j.getItem()=
CFFactor (
j.getItem().factor()/tmp,
j.getItem().exp());
277 j.getItem().exp()*
p +
i.getItem().exp()));
283 if (!
i.getItem().factor().inCoeffDomain())
285 tmp=
M (
i.getItem().factor());
291 if (!
j.getItem().factor().inCoeffDomain())
293 tmp=
M (
j.getItem().factor());
CFFList FpSqrf(const CanonicalForm &F, bool sort=true)
squarefree factorization over . If input is not monic, the leading coefficient is dropped
static CanonicalForm pthRoot(const CanonicalForm &F, int q)
CFFList squarefreeFactorization(const CanonicalForm &F, const Variable &alpha)
squarefree factorization over a finite field return a list of squarefree factors with multiplicity
CFFList squarefreeFactorization(const CanonicalForm &F, const Variable &alpha)
squarefree factorization over a finite field return a list of squarefree factors with multiplicity
#define GaloisFieldDomain
CanonicalForm getMipo(const Variable &alpha, const Variable &x)
static CFFList sqrfPosDer(const CanonicalForm &F, const Variable &x, CanonicalForm &c)
#define ASSERT(expression, message)
int status int void * buf
CanonicalForm compress(const CanonicalForm &f, CFMap &m)
CanonicalForm compress ( const CanonicalForm & f, CFMap & m )
int ipower(int b, int m)
int ipower ( int b, int m )
CFFList sortCFFList(CFFList &F)
void sort(CFArray &A, int l=0)
quick sort A
factory's class for variables
template List< Variable > Union(const List< Variable > &, const List< Variable > &)
const Variable & v
< [in] a sqrfree bivariate poly