![]() |
My Project
|
This file provides utility functions for bivariate factorization. More...
Go to the source code of this file.
Functions | |
| void | append (CFList &factors1, const CFList &factors2) |
| append factors2 on factors1 More... | |
| void | decompress (CFList &factors, const CFMap &N) |
| decompress a list of polys factors using the map N More... | |
| void | decompress (CFFList &factors, const CFMap &N) |
| as above More... | |
| void | decompress (CFAFList &factors, const CFMap &N) |
| as above More... | |
| void | appendSwapDecompress (CFList &factors1, const CFList &factors2, const CFList &factors3, const bool swap1, const bool swap2, const CFMap &N) |
| first swap Variables in factors1 if necessary, then append factors2 and factors3 on factors1 and finally decompress factors1 More... | |
| void | swapDecompress (CFList &factors, const bool swap, const CFMap &N) |
| swap Variables in factors, then decompress factors More... | |
| bool | isInExtension (const CanonicalForm &F, const CanonicalForm &gamma, const int k, const CanonicalForm &delta, CFList &source, CFList &dest) |
| tests if F is not contained in a subfield defined by gamma (Fq case) or k (GF case) More... | |
| CanonicalForm | mapDown (const CanonicalForm &F, const ExtensionInfo &info, CFList &source, CFList &dest) |
| map a poly into a subfield of the current field, no testing is performed! More... | |
| void | appendTestMapDown (CFList &factors, const CanonicalForm &f, const ExtensionInfo &info, CFList &source, CFList &dest) |
| test if g is in a subfield of the current field, if so map it down and append it to factors More... | |
| void | appendMapDown (CFList &factors, const CanonicalForm &g, const ExtensionInfo &info, CFList &source, CFList &dest) |
| map g down into a subfield of the current field and append it to factors More... | |
| void | normalize (CFList &factors) |
| normalize factors, i.e. make factors monic More... | |
| void | normalize (CFFList &factors) |
| as above More... | |
| CFList | subset (int index[], const int &s, const CFArray &elements, bool &noSubset) |
| extract a subset given by index of size s from elements, if there is no subset we have not yet considered noSubset is set to true. index encodes the next subset, e.g. if s= 3, elements= {a,b,c,d}, index= {1, 2, 4, 0}, then subset= {a,c,d}. index is of size elements.size(). More... | |
| CFArray | copy (const CFList &list) |
| write elements of list into an array More... | |
| void | indexUpdate (int index[], const int &subsetSize, const int &setSize, bool &noSubset) |
| update index More... | |
| int | subsetDegree (const CFList &S) |
| compute the sum of degrees in Variable(1) of elements in S More... | |
| CFFList | multiplicity (CanonicalForm &F, const CFList &factors) |
| determine multiplicity of the factors More... | |
| CFArray | logarithmicDerivative (const CanonicalForm &F, const CanonicalForm &G, int l, CanonicalForm &Q) |
| compute the coefficients of the logarithmic derivative of G mod Variable (2)^l over Fq More... | |
| CFArray | logarithmicDerivative (const CanonicalForm &F, const CanonicalForm &G, int l, int oldL, const CanonicalForm &oldQ, CanonicalForm &Q) |
| compute the coefficients of the logarithmic derivative of G mod Variable (2)^l over Fq with oldQ= F/G mod Variable (2)^oldL More... | |
| int * | computeBounds (const CanonicalForm &F, int &n, bool &isIrreducible) |
| compute bounds for logarithmic derivative as described in K. Belabas, M. van Hoeij, J. Klüners, and A. Steel, Factoring polynomials over global fields More... | |
| int * | computeBoundsWrtDiffMainvar (const CanonicalForm &F, int &n, bool &isIrreducible) |
| as above just wrt to the other variable More... | |
| CFArray | getCoeffs (const CanonicalForm &F, const int k) |
| extract coefficients of | |
| CFArray | getCoeffs (const CanonicalForm &F, const int k, const Variable &alpha) |
| extract coefficients of | |
| CFArray | getCoeffs (const CanonicalForm &F, const int k, const int l, const int degMipo, const Variable &alpha, const CanonicalForm &evaluation, const mat_zz_p &M) |
| extract coefficients of | |
| CFArray | getCoeffs (const CanonicalForm &F, const int k, const int l, const int degMipo, const Variable &alpha, const CanonicalForm &evaluation, const nmod_mat_t M) |
| extract coefficients of | |
| void | writeInMatrix (CFMatrix &M, const CFArray &A, const int column, const int startIndex) |
| write A into M starting at row startIndex More... | |
| int | substituteCheck (const CFList &L) |
| checks if a substitution x^n->x is possible More... | |
| void | subst (const CanonicalForm &F, CanonicalForm &A, const int d, const Variable &x) |
| substitute x^d by x in F More... | |
| CanonicalForm | reverseSubst (const CanonicalForm &F, const int d, const Variable &x) |
| reverse a substitution x^d->x More... | |
| void | reverseSubst (CFList &L, const int d, const Variable &x) |
| reverse a substitution x^d->x More... | |
| int | substituteCheck (const CanonicalForm &F, const Variable &x) |
| check if a substitution x^n->x is possible More... | |
This file provides utility functions for bivariate factorization.
Definition in file facFqBivarUtil.h.
append factors2 on factors1
| [in,out] | factors1 | a list of polys |
| [in] | factors2 | a list of polys |
| void appendMapDown | ( | CFList & | factors, |
| const CanonicalForm & | g, | ||
| const ExtensionInfo & | info, | ||
| CFList & | source, | ||
| CFList & | dest | ||
| ) |
map g down into a subfield of the current field and append it to factors
| [in,out] | factors | a list of polys |
| [in] | g | a poly |
| [in] | info | information about extension |
| [in,out] | source |
| [in,out] | dest |
Definition at line 267 of file facFqBivarUtil.cc.
| void appendSwapDecompress | ( | CFList & | factors1, |
| const CFList & | factors2, | ||
| const CFList & | factors3, | ||
| const bool | swap1, | ||
| const bool | swap2, | ||
| const CFMap & | N | ||
| ) |
first swap Variables in factors1 if necessary, then append factors2 and factors3 on factors1 and finally decompress factors1
| [in,out] | factors1 | a list of polys |
| [in] | factors2 | a list of polys |
| [in] | factors3 | a list of polys |
| [in] | swap1 | indicates the need to swap |
| [in] | swap2 | indicates the need to swap |
| [in] | N | a map |
Definition at line 70 of file facFqBivarUtil.cc.
| void appendTestMapDown | ( | CFList & | factors, |
| const CanonicalForm & | f, | ||
| const ExtensionInfo & | info, | ||
| CFList & | source, | ||
| CFList & | dest | ||
| ) |
test if g is in a subfield of the current field, if so map it down and append it to factors
| [in,out] | factors | a list of polys |
| [in] | f | a poly |
| [in] | info | information about extension |
| [in,out] | source |
| [in,out] | dest |
Definition at line 223 of file facFqBivarUtil.cc.
| int * computeBounds | ( | const CanonicalForm & | F, |
| int & | n, | ||
| bool & | isIrreducible | ||
| ) |
compute bounds for logarithmic derivative as described in K. Belabas, M. van Hoeij, J. Klüners, and A. Steel, Factoring polynomials over global fields
| [in] | F | compressed bivariate polynomial |
| [in,out] | n | length of output |
| [in,out] | isIrreducible | check if poly is irreducible |
Definition at line 768 of file facFqBivarUtil.cc.
| int * computeBoundsWrtDiffMainvar | ( | const CanonicalForm & | F, |
| int & | n, | ||
| bool & | isIrreducible | ||
| ) |
as above just wrt to the other variable
| [in] | F | compressed bivariate polynomial |
| [in,out] | n | length of output |
| [in,out] | isIrreducible | check if poly is irreducible |
Definition at line 922 of file facFqBivarUtil.cc.
write elements of list into an array
| [in] | list | a list of polys |
Definition at line 364 of file facFqBivarUtil.cc.
as above
| [in,out] | factors | a list of factors |
| [in] | N | a map |
Definition at line 63 of file facFqBivarUtil.cc.
as above
| [in,out] | factors | a list of factors |
| [in] | N | a map |
Definition at line 57 of file facFqBivarUtil.cc.
decompress a list of polys factors using the map N
| [in,out] | factors | a list of polys |
| [in] | N | a map |
Definition at line 51 of file facFqBivarUtil.cc.
| CFArray getCoeffs | ( | const CanonicalForm & | F, |
| const int | k | ||
| ) |
extract coefficients of 




| [in] | F | compressed bivariate poly over F_p |
| [in] | k | some int |
Definition at line 599 of file facFqBivarUtil.cc.
| CFArray getCoeffs | ( | const CanonicalForm & | F, |
| const int | k, | ||
| const int | l, | ||
| const int | degMipo, | ||
| const Variable & | alpha, | ||
| const CanonicalForm & | evaluation, | ||
| const mat_zz_p & | M | ||
| ) |
extract coefficients of 




| [in] | F | compressed bivariate poly |
| [in] | k | some int |
| [in] | l | precision |
| [in] | degMipo | degree of minimal poly |
| [in] | alpha | algebraic variable |
| [in] | evaluation | evaluation point |
| [in] | M | bases change matrix |
Definition at line 663 of file facFqBivarUtil.cc.
| CFArray getCoeffs | ( | const CanonicalForm & | F, |
| const int | k, | ||
| const int | l, | ||
| const int | degMipo, | ||
| const Variable & | alpha, | ||
| const CanonicalForm & | evaluation, | ||
| const nmod_mat_t | M | ||
| ) |
extract coefficients of 




| [in] | F | compressed bivariate poly |
| [in] | k | some int |
| [in] | l | precision |
| [in] | degMipo | degree of minimal poly |
| [in] | alpha | algebraic variable |
| [in] | evaluation | evaluation point |
| [in] | M | bases change matrix |
Definition at line 705 of file facFqBivarUtil.cc.
extract coefficients of 




| [in] | F | compressed bivariate poly over F_p(alpha) |
| [in] | k | some int |
| [in] | alpha | algebraic variable |
Definition at line 622 of file facFqBivarUtil.cc.
update index
| [in,out] | index | an array encoding a subset of size subsetSize |
| [in] | subsetSize | size of the subset |
| [in] | setSize | size of the given set |
| [in,out] | noSubset | if there is no subset we have not yet considered noSubset is true |
Definition at line 373 of file facFqBivarUtil.cc.
| bool isInExtension | ( | const CanonicalForm & | F, |
| const CanonicalForm & | gamma, | ||
| const int | k, | ||
| const CanonicalForm & | delta, | ||
| CFList & | source, | ||
| CFList & | dest | ||
| ) |
tests if F is not contained in a subfield defined by gamma (Fq case) or k (GF case)
| [in] | F | a poly over F_p (alpha)=Fq or GF(p^l) |
| [in] | gamma | a primitive element defining a subfield of Fq if we are not over some GF |
| k | some int k such that k divides l if we are not over some Fq | |
| [in] | delta | image of gamma |
| [in,out] | source | list of preimages |
| [in,out] | dest | list of images |
Definition at line 184 of file facFqBivarUtil.cc.
| CFArray logarithmicDerivative | ( | const CanonicalForm & | F, |
| const CanonicalForm & | G, | ||
| int | l, | ||
| CanonicalForm & | Q | ||
| ) |
compute the coefficients of the logarithmic derivative of G mod Variable (2)^l over Fq
| [in] | F | a bivariate poly |
| [in] | G | a factor of F |
| [in] | l | lifting precision |
| [in,out] | Q | F/G |
Definition at line 459 of file facFqBivarUtil.cc.
| CFArray logarithmicDerivative | ( | const CanonicalForm & | F, |
| const CanonicalForm & | G, | ||
| int | l, | ||
| int | oldL, | ||
| const CanonicalForm & | oldQ, | ||
| CanonicalForm & | Q | ||
| ) |
compute the coefficients of the logarithmic derivative of G mod Variable (2)^l over Fq with oldQ= F/G mod Variable (2)^oldL
| [in] | F | bivariate poly truncated at Variable(2)^l |
| [in] | G | a factor of F |
| [in] | l | lifting precision |
| [in] | oldL | old precision |
| [in] | oldQ | F/G mod Variable(2)^oldL |
| [in,out] | Q | F/G |
Definition at line 501 of file facFqBivarUtil.cc.
| CanonicalForm mapDown | ( | const CanonicalForm & | F, |
| const ExtensionInfo & | info, | ||
| CFList & | source, | ||
| CFList & | dest | ||
| ) |
map a poly into a subfield of the current field, no testing is performed!
| [in] | F | a poly |
| [in] | info | information about the sub- and current field |
| [in,out] | source | in case we are over some F_p (alpha) and want to map down into F_p (beta) source contains powers of the primitive element of F_p (alpha) |
| [in,out] | dest | as source but contains the corresponding powers of the primitive element of F_p (beta) |
Definition at line 206 of file facFqBivarUtil.cc.
| CFFList multiplicity | ( | CanonicalForm & | F, |
| const CFList & | factors | ||
| ) |
determine multiplicity of the factors
| [in] | F | a poly |
| [in] | factors | a list of factors of F |
Definition at line 436 of file facFqBivarUtil.cc.
| void normalize | ( | CFFList & | factors | ) |
as above
| [in,out] | factors | a list of factors |
Definition at line 297 of file facFqBivarUtil.cc.
| void normalize | ( | CFList & | factors | ) |
normalize factors, i.e. make factors monic
| [in,out] | factors | a list of polys |
Definition at line 286 of file facFqBivarUtil.cc.
reverse a substitution x^d->x
| [in,out] | L | a list of polys, returns the given list with x replaced by x^d |
| [in] | d | an integer > 0 |
| [in] | x | a Variable |
Definition at line 1309 of file facFqBivarUtil.cc.
| CanonicalForm reverseSubst | ( | const CanonicalForm & | F, |
| const int | d, | ||
| const Variable & | x | ||
| ) |
reverse a substitution x^d->x
| [in] | F | a poly |
| [in] | d | an integer > 0 |
| [in] | x | a Variable |
Definition at line 1295 of file facFqBivarUtil.cc.
extract a subset given by index of size s from elements, if there is no subset we have not yet considered noSubset is set to true. index encodes the next subset, e.g. if s= 3, elements= {a,b,c,d}, index= {1, 2, 4, 0}, then subset= {a,c,d}. index is of size elements.size().
| [in,out] | index | an array encoding the next subset |
| [in] | s | size of the subset |
| [in] | elements | an array of polys |
| [in,out] | noSubset | if there is no subset we have not yet considered noSubset is true |
Definition at line 309 of file facFqBivarUtil.cc.
compute the sum of degrees in Variable(1) of elements in S
| [in] | S | a list of polys |
Definition at line 428 of file facFqBivarUtil.cc.
| void subst | ( | const CanonicalForm & | F, |
| CanonicalForm & | A, | ||
| const int | d, | ||
| const Variable & | x | ||
| ) |
substitute x^d by x in F
| [in] | F | a polynomial |
| [in,out] | A | returns F with x^d replaced by x |
| d | d > 1 such that a substitution x^d -> x [in] is possible | |
| [in] | x | a Variable |
Definition at line 1275 of file facFqBivarUtil.cc.
| int substituteCheck | ( | const CanonicalForm & | F, |
| const Variable & | x | ||
| ) |
check if a substitution x^n->x is possible
| [in] | F | a polynomial |
| [in] | x | some variable |
Definition at line 1089 of file facFqBivarUtil.cc.
checks if a substitution x^n->x is possible
| [in] | L | a list of univariate polys |
Definition at line 1254 of file facFqBivarUtil.cc.
swap Variables in factors, then decompress factors
| [in,out] | factors | a list of polys |
| [in] | swap | indicates the need to swap |
| [in] | N | a map |
Definition at line 97 of file facFqBivarUtil.cc.
write A into M starting at row startIndex
| [in,out] | M | some matrix |
| [in] | A | array of polys |
| [in] | column | column in which A is written |
| [in] | startIndex | row in which to start |
Definition at line 586 of file facFqBivarUtil.cc.