My Project
|
This file provides functions for sparse heuristic Hensel lifting. More...
#include "canonicalform.h"
#include "cf_map_ext.h"
#include "cf_iter.h"
#include "templates/ftmpl_functions.h"
#include "cf_algorithm.h"
#include "cf_map.h"
Go to the source code of this file.
Functions | |
int | comp (const CanonicalForm &A, const CanonicalForm &B) |
compare polynomials More... | |
int | comp (const CanonicalForm &A, const CanonicalForm &B, int level) |
compare two polynomials up to level level More... | |
void | swap (CFArray &A, int i, int j) |
swap entry i and j in A More... | |
void | quickSort (int lo, int hi, CFArray &A, int l) |
quick sort helper function More... | |
void | sort (CFArray &A, int l=0) |
quick sort A More... | |
CFList | findNormalizingFactor1 (const CFList &biFactors, const CanonicalForm &evalPoint, CFList &uniFactors) |
find normalizing factors for biFactors and build monic univariate factors from biFactors More... | |
CFList | findNormalizingFactor2 (CFList &biFactors, const CanonicalForm &evalPoint, const CFList &uniFactors) |
find normalizing factors for biFactors and sort biFactors s.t. the returned biFactors evaluated at evalPoint coincide with uniFactors More... | |
CFArray | getTerms (const CanonicalForm &F) |
get terms of F More... | |
CFArray | getBiTerms_helper (const CanonicalForm &F, const CFMap &M, int threshold) |
helper function for getBiTerms More... | |
CFArray | getBiTerms (const CanonicalForm &F, int threshold) |
get terms of F where F is considered a bivariate poly in Variable(1), Variable (2) More... | |
CanonicalForm | buildPolyFromArray (const CFArray &A) |
build a poly from entries in A More... | |
void | groupTogether (CFArray &A, int level) |
group together elements in A, where entries in A are put together if they coincide up to level level More... | |
void | strip (CFArray &F, CFArray &G, int level) |
strip off those parts of entries in F whose level is less than or equal than level and store the stripped off parts in G More... | |
void | strip (CFArray &F, int level) |
s.a. stripped off parts are not returned More... | |
CFArray | getEquations (const CFArray &A, const CFArray &B) |
get equations for LucksWangSparseHeuristic More... | |
void | evaluate (CFArray &A, const CanonicalForm &B, int level) |
evaluate every entry of A at B and level level More... | |
void | evaluate (CFArray &A, const CFArray &B, int level) |
evaluate every entry of A at every entry of B starting at level level More... | |
CanonicalForm | simplify (const CanonicalForm &A, int level) |
simplify A if possible, i.e. A consists of 2 terms and contains only one variable of level greater or equal than level More... | |
bool | simplify (CFArray &A, CFArray &B, int level) |
if possible simplify A as described above and store result in B More... | |
bool | merge (CFArray &A, CFArray &B) |
merge B into A if possible, i.e. every non-zero entry in A should be zero in B More... | |
bool | isZero (const CFArray &A) |
checks if entries of A are zero More... | |
bool | isEqual (const CFArray &A, const CFArray &B) |
checks if A equals B More... | |
CFArray | getTerms2 (const CanonicalForm &F) |
get terms of F wrt. Variable (1) More... | |
void | getTerms2 (const CFList &F, CFArray *result) |
get terms of entries in F and put them in result More... | |
CFArray | evaluate (const CFArray &A, const CanonicalForm &eval, const Variable &y) |
evaluate entries in A at eval and y More... | |
CFArray * | evaluate (CFArray *const &A, int sizeA, const CanonicalForm &eval, const Variable &y) |
s.a. More... | |
CFList | normalize (const CFList &L, const CFList &normalizingFactor) |
normalize entries in L with normalizingFactor More... | |
int | search (const CFArray &A, const CanonicalForm &F, int i, int j) |
search for F in A between index i and j More... | |
CanonicalForm | patch (const CanonicalForm &F1, const CanonicalForm &F2, const CanonicalForm &eval) |
patch together F1 and F2 and normalize by a power of eval F1 and F2 are assumed to be bivariate with one variable having level 1 More... | |
int | LucksWangSparseHeuristic (const CanonicalForm &F, const CFList &factors, int level, const CFList &leadingCoeffs, CFList &result) |
sparse heuristic lifting by Wang and Lucks More... | |
CFList | sparseHeuristic (const CanonicalForm &A, const CFList &biFactors, CFList *&moreBiFactors, const CFList &evaluation, int minFactorsLength) |
sparse heuristic which patches together bivariate factors of A wrt. different second variables by their univariate images More... | |
This file provides functions for sparse heuristic Hensel lifting.
Definition in file facSparseHensel.h.
|
inline |
|
inline |
compare polynomials
Definition at line 25 of file facSparseHensel.h.
|
inline |
compare two polynomials up to level level
Definition at line 51 of file facSparseHensel.h.
|
inline |
evaluate every entry of A at every entry of B starting at level level
Definition at line 377 of file facSparseHensel.h.
|
inline |
evaluate entries in A at eval and y
Definition at line 533 of file facSparseHensel.h.
|
inline |
find normalizing factors for biFactors and build monic univariate factors from biFactors
Definition at line 123 of file facSparseHensel.h.
|
inline |
find normalizing factors for biFactors and sort biFactors s.t. the returned biFactors evaluated at evalPoint coincide with uniFactors
Definition at line 140 of file facSparseHensel.h.
|
inline |
get terms of F where F is considered a bivariate poly in Variable(1), Variable (2)
Definition at line 236 of file facSparseHensel.h.
|
inline |
helper function for getBiTerms
Definition at line 202 of file facSparseHensel.h.
get equations for LucksWangSparseHeuristic
Definition at line 350 of file facSparseHensel.h.
|
inline |
get terms of F
Definition at line 167 of file facSparseHensel.h.
|
inline |
get terms of F wrt. Variable (1)
Definition at line 492 of file facSparseHensel.h.
get terms of entries in F and put them in result
Definition at line 524 of file facSparseHensel.h.
|
inline |
group together elements in A, where entries in A are put together if they coincide up to level level
Definition at line 278 of file facSparseHensel.h.
int LucksWangSparseHeuristic | ( | const CanonicalForm & | F, |
const CFList & | factors, | ||
int | level, | ||
const CFList & | leadingCoeffs, | ||
CFList & | result | ||
) |
sparse heuristic lifting by Wang and Lucks
[in] | F | polynomial to be factored |
[in] | factors | factors of F lifted to level |
[in] | level | level of lifted factors |
[in] | leadingCoeffs | leading coefficients of factors |
[in,out] | result | result |
Definition at line 26 of file facSparseHensel.cc.
merge B into A if possible, i.e. every non-zero entry in A should be zero in B
Definition at line 443 of file facSparseHensel.h.
normalize entries in L with normalizingFactor
Definition at line 555 of file facSparseHensel.h.
|
inline |
patch together F1 and F2 and normalize by a power of eval F1 and F2 are assumed to be bivariate with one variable having level 1
Definition at line 577 of file facSparseHensel.h.
|
inline |
quick sort helper function
Definition at line 85 of file facSparseHensel.h.
|
inline |
if possible simplify A as described above and store result in B
Definition at line 412 of file facSparseHensel.h.
|
inline |
simplify A if possible, i.e. A consists of 2 terms and contains only one variable of level greater or equal than level
Definition at line 390 of file facSparseHensel.h.
|
inline |
CFList sparseHeuristic | ( | const CanonicalForm & | A, |
const CFList & | biFactors, | ||
CFList *& | moreBiFactors, | ||
const CFList & | evaluation, | ||
int | minFactorsLength | ||
) |
sparse heuristic which patches together bivariate factors of A wrt. different second variables by their univariate images
[in] | A | polynomial to be factored |
[in] | biFactors | bivariate factors of A where the second variable has level 2 |
[in] | moreBiFactors | more bivariate factorizations wrt. different second variables |
[in] | evaluation | evaluation point |
[in] | minFactorsLength | minimal length of bivariate factorizations |
Definition at line 160 of file facSparseHensel.cc.
strip off those parts of entries in F whose level is less than or equal than level and store the stripped off parts in G
Definition at line 310 of file facSparseHensel.h.
|
inline |
s.a. stripped off parts are not returned
Definition at line 331 of file facSparseHensel.h.