My Project  UNKNOWN_GIT_VERSION
cfGcdAlgExt.h
Go to the documentation of this file.
1 /**
2  * @file cfGcdAlgExt.h
3  *
4  * GCD over Q(a)
5  *
6  * ABSTRACT: Implementation of Encarnacion's GCD algorithm over number fields,
7  * see M.J. Encarnacion "Computing GCDs of polynomials over number fields",
8  * extended to the multivariate case.
9  *
10  * @sa cfNTLzzpEXGCD.h
11 **/
12 
13 #ifndef CF_GCD_ALGEXT_H
14 #define CF_GCD_ALGEXT_H
15 
16 // #include "config.h"
17 
18 #include "canonicalform.h"
19 #include "variable.h"
20 
21 /// gcd over Q(a)
22 CanonicalForm QGCD( const CanonicalForm &, const CanonicalForm & );
23 
24 #ifndef HAVE_NTL
25 void tryDivrem (const CanonicalForm&, const CanonicalForm&, CanonicalForm&,
27  bool&);
28 void tryEuclid( const CanonicalForm &, const CanonicalForm &, const CanonicalForm &, CanonicalForm &, bool & );
29 void tryExtgcd( const CanonicalForm & F, const CanonicalForm & G, const CanonicalForm& M, CanonicalForm & result, CanonicalForm & s, CanonicalForm & t, bool & fail );
30 #endif
31 void tryInvert( const CanonicalForm &, const CanonicalForm &, CanonicalForm &, bool & );
32 
33 /// modular gcd over F_p[x]/(M) for not necessarily irreducible M.
34 /// If a zero divisor is encountered fail is set to true.
35 void tryBrownGCD( const CanonicalForm & F, const CanonicalForm & G, const CanonicalForm & M, CanonicalForm & result, bool & fail, bool topLevel= true );
36 
37 int * leadDeg(const CanonicalForm & f, int *degs);
38 bool isLess(int *a, int *b, int lower, int upper);
39 bool isEqual(int *a, int *b, int lower, int upper);
41 
42 #endif
43 
f
FILE * f
Definition: checklibs.c:9
leadDeg
int * leadDeg(const CanonicalForm &f, int *degs)
Definition: cfGcdAlgExt.cc:919
canonicalform.h
Header for factory's main class CanonicalForm.
result
return result
Definition: facAbsBiFact.cc:76
QGCD
CanonicalForm QGCD(const CanonicalForm &, const CanonicalForm &)
gcd over Q(a)
Definition: cfGcdAlgExt.cc:715
firstLC
CanonicalForm firstLC(const CanonicalForm &f)
Definition: cfGcdAlgExt.cc:956
isLess
bool isLess(int *a, int *b, int lower, int upper)
Definition: cfGcdAlgExt.cc:936
b
CanonicalForm b
Definition: cfModGcd.cc:4044
CanonicalForm
factory's main class
Definition: canonicalform.h:83
M
#define M
Definition: sirandom.c:24
tryBrownGCD
void tryBrownGCD(const CanonicalForm &F, const CanonicalForm &G, const CanonicalForm &M, CanonicalForm &result, bool &fail, bool topLevel=true)
modular gcd over F_p[x]/(M) for not necessarily irreducible M. If a zero divisor is encountered fail ...
Definition: cfGcdAlgExt.cc:372
variable.h
operations on variables
isEqual
bool isEqual(int *a, int *b, int lower, int upper)
Definition: cfGcdAlgExt.cc:947
topLevel
const CanonicalForm CFMap CFMap bool topLevel
Definition: cfGcdAlgExt.cc:57
s
const CanonicalForm int s
Definition: facAbsFact.cc:55
G
static TreeM * G
Definition: janet.cc:32
tryInvert
void tryInvert(const CanonicalForm &, const CanonicalForm &, CanonicalForm &, bool &)
Definition: cfGcdAlgExt.cc:221