carl
24.04
Computer ARithmetic Library
|
Extended Zassenhaus algorithm for multivariate GCD calculation. More...
#include <EZGCD.h>
Public Member Functions | |
EZGCD (const MultivariatePolynomial< Coeff, Ordering, Policies > &p1, const MultivariatePolynomial< Coeff, Ordering, Policies > &p2) | |
Result | calculate (bool approx=true) |
Private Types | |
typedef MultivariatePolynomial< Coeff, Ordering, Policies > | Polynomial |
typedef GCDResult< Coeff, Ordering, Policies > | Result |
typedef Polynomial::TermType | Term |
typedef IntegralType< Coeff >::type | Integer |
typedef UnivariatePolynomial< MultivariatePolynomial< Coeff, Ordering, Policies > > | UnivReprPol |
typedef UnivariatePolynomial< Coeff > | UnivPol |
Private Member Functions | |
Variable | getMainVar (const Polynomial p1, const Polynomial p2) const |
Given the two polynomials, find a suitable main variable for gcd. More... | |
Integer | getPrime (const UnivReprPol &A, const UnivReprPol &B) |
std::map< Variable, Integer > | findEval (const UnivReprPol &A, const UnivReprPol &B, Integer p) const |
Find a valid evaluation point b = (b_1, ... More... | |
Private Attributes | |
const Polynomial & | mp1 |
const Polynomial & | mp2 |
PrimeFactory< Integer > | mPrimeFactory |
Extended Zassenhaus algorithm for multivariate GCD calculation.
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
inline |
|
inline |
|
inlineprivate |
Find a valid evaluation point b = (b_1, ...
, b_k) with 0 <= b_i < p and b_i = 0 for as many i as possible.
A | Polynomial in Z[x, y_1,...,y_k] |
B | Polynomial in Z[x, y_1,...,y_k] |
p | Prime number |
Definition at line 226 of file EZGCD.h.
|
inlineprivate |
Given the two polynomials, find a suitable main variable for gcd.
p1 | |
p2 |
Definition at line 187 of file EZGCD.h.
|
inlineprivate |
|
private |
|
private |
|
private |