![]() |
My Project
debian-1:4.1.1-p2+ds-4build3
|
#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 ![]() ![]() ![]() | |
CFArray | getCoeffs (const CanonicalForm &F, const int k, const Variable &alpha) |
extract coefficients of ![]() ![]() ![]() | |
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 ![]() ![]() ![]() | |
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 ![]() ![]() ![]() | |
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
Definition at line 599 of file facFqBivarUtil.cc.
extract coefficients of for
where
is a variable of level 1
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
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
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 | ) | & |