![]() |
My Project
debian-1:4.1.1-p2+ds-4build2
|
#include "config.h"#include "timing.h"#include "cf_map.h"#include "cf_map_ext.h"#include "templates/ftmpl_functions.h"#include "ExtensionInfo.h"#include "cf_algorithm.h"#include "cf_factory.h"#include "cf_util.h"#include "imm.h"#include "cf_iter.h"#include "facFqBivarUtil.h"#include "cfNewtonPolygon.h"#include "facHensel.h"#include "facMul.h"#include "FLINTconvert.h"Go to the source code of this file.
Macros | |
| #define | slong long |
Functions | |
| TIMING_DEFINE_PRINT (fac_log_deriv_div) TIMING_DEFINE_PRINT(fac_log_deriv_mul) TIMING_DEFINE_PRINT(fac_log_deriv_pre) void append(CFList &factors1 | |
| 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... | |
| static bool | GFInExtensionHelper (const CanonicalForm &F, const int number) |
| static bool | FqInExtensionHelper (const CanonicalForm &F, const CanonicalForm &gamma, const CanonicalForm &delta, CFList &source, CFList &dest) |
| 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... | |
| void | writeInMatrix (CFMatrix &M, const CFArray &A, const int column, const int startIndex) |
| write A into M starting at row startIndex More... | |
| CFArray | getCoeffs (const CanonicalForm &F, const int k) |
extract coefficients of for where is a variable of level 1 More... | |
| CFArray | getCoeffs (const CanonicalForm &F, const int k, const Variable &alpha) |
extract coefficients of for where is a variable of level 1 More... | |
| CFArray | getCoeffs (const CanonicalForm &G, const int k, const int l, const int degMipo, const Variable &alpha, const CanonicalForm &evaluation, const mat_zz_p &M) |
extract coefficients of for where is a variable of level 1 More... | |
| CFArray | getCoeffs (const CanonicalForm &G, const int k, const int l, const int degMipo, const Variable &alpha, const CanonicalForm &evaluation, const nmod_mat_t M) |
extract coefficients of for where is a variable of level 1 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... | |
| int | substituteCheck (const CanonicalForm &F, const Variable &x) |
| check if a substitution x^n->x is possible More... | |
| static int | substituteCheck (const CanonicalForm &F, const CanonicalForm &G) |
| int | recSubstituteCheck (const CanonicalForm &F, const int d) |
| 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... | |
Variables | |
| const CFList & | factors2 |
This file provides utility functions for bivariate factorization
Definition in file facFqBivarUtil.cc.
| #define slong long |
| 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
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
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
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
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
Definition at line 922 of file facFqBivarUtil.cc.
decompress a list of polys factors using the map N
Definition at line 51 of file facFqBivarUtil.cc.
|
inlinestatic |
Definition at line 139 of file facFqBivarUtil.cc.
| CFArray getCoeffs | ( | const CanonicalForm & | F, |
| const int | k | ||
| ) |
extract coefficients of
for
where
is a variable of level 1
for
Definition at line 599 of file facFqBivarUtil.cc.
extract coefficients of
for
where
is a variable of level 1
for
Definition at line 622 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
for
where
is a variable of level 1
for
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
for
where
is a variable of level 1
for
Definition at line 705 of file facFqBivarUtil.cc.
|
inlinestatic |
Definition at line 111 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)
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
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
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!
Definition at line 206 of file facFqBivarUtil.cc.
| CFFList multiplicity | ( | CanonicalForm & | F, |
| const CFList & | factors | ||
| ) |
determine multiplicity of the factors
Definition at line 436 of file facFqBivarUtil.cc.
| void normalize | ( | CFFList & | factors | ) |
as above
Definition at line 297 of file facFqBivarUtil.cc.
| void normalize | ( | CFList & | factors | ) |
| int recSubstituteCheck | ( | const CanonicalForm & | F, |
| const int | d | ||
| ) |
Definition at line 1205 of file facFqBivarUtil.cc.
| CanonicalForm reverseSubst | ( | const CanonicalForm & | F, |
| const int | d, | ||
| const Variable & | x | ||
| ) |
reverse a substitution x^d->x
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().
Definition at line 309 of file facFqBivarUtil.cc.
compute the sum of degrees in Variable(1) of elements in S
Definition at line 428 of file facFqBivarUtil.cc.
| void subst | ( | const CanonicalForm & | F, |
| CanonicalForm & | A, | ||
| const int | d, | ||
| const Variable & | x | ||
| ) |
|
static |
Definition at line 1126 of file facFqBivarUtil.cc.
| int substituteCheck | ( | const CanonicalForm & | F, |
| const Variable & | x | ||
| ) |
check if a substitution x^n->x is possible
Definition at line 1089 of file facFqBivarUtil.cc.
checks if a substitution x^n->x is possible
Definition at line 1254 of file facFqBivarUtil.cc.
swap Variables in factors, then decompress factors
Definition at line 97 of file facFqBivarUtil.cc.
| TIMING_DEFINE_PRINT | ( | fac_log_deriv_div | ) | & |