![]() |
#include <misc/auxiliary.h>
#include <omalloc/omalloc.h>
#include <factory/factory.h>
#include <reporter/reporter.h>
#include <coeffs/coeffs.h>
#include <coeffs/numbers.h>
#include <coeffs/longrat.h>
#include <polys/monomials/ring.h>
#include <polys/monomials/p_polys.h>
#include <polys/simpleideals.h>
#include <polys/clapsing.h>
#include <polys/clapconv.h>
#include <polys/prCopy.h>
#include "transext.h"
#include "algext.h"
#include <polys/PolyEnumerator.h>
Go to the source code of this file.
Data Structures | |
struct | NTNumConverter |
Macros | |
#define | TRANSEXT_PRIVATES |
#define | ADD_COMPLEXITY 1 |
complexity increase due to + and - More... | |
#define | MULT_COMPLEXITY 2 |
complexity increase due to * and / More... | |
#define | DIFF_COMPLEXITY 2 |
complexity increase due to * and / More... | |
#define | BOUND_COMPLEXITY 10 |
maximum complexity of a number More... | |
#define | NUMIS1(f) (p_IsOne(NUM(f), cf->extRing)) |
TRUE iff num. represents 1. More... | |
#define | COM(f) f->complexity |
#define | ntTest(a) n_Test(a, cf) |
#define | ntRing cf->extRing |
#define | ntCoeffs cf->extRing->cf |
Functions | |
BOOLEAN | ntDBTest (number a, const char *f, const int l, const coeffs r) |
BOOLEAN | ntGreaterZero (number a, const coeffs cf) |
forward declarations More... | |
BOOLEAN | ntGreater (number a, number b, const coeffs cf) |
BOOLEAN | ntEqual (number a, number b, const coeffs cf) |
BOOLEAN | ntIsOne (number a, const coeffs cf) |
BOOLEAN | ntIsMOne (number a, const coeffs cf) |
BOOLEAN | ntIsZero (number a, const coeffs cf) |
number | ntInit (long i, const coeffs cf) |
long | ntInt (number &a, const coeffs cf) |
number | ntNeg (number a, const coeffs cf) |
this is in-place, modifies a More... | |
number | ntInvers (number a, const coeffs cf) |
number | ntAdd (number a, number b, const coeffs cf) |
number | ntSub (number a, number b, const coeffs cf) |
number | ntMult (number a, number b, const coeffs cf) |
number | ntDiv (number a, number b, const coeffs cf) |
void | ntPower (number a, int exp, number *b, const coeffs cf) |
number | ntCopy (number a, const coeffs cf) |
void | ntWriteLong (number a, const coeffs cf) |
void | ntWriteShort (number a, const coeffs cf) |
number | ntRePart (number a, const coeffs cf) |
number | ntImPart (number a, const coeffs cf) |
number | ntGetDenom (number &a, const coeffs cf) |
TODO: normalization of a!? More... | |
number | ntGetNumerator (number &a, const coeffs cf) |
TODO: normalization of a!? More... | |
number | ntGcd (number a, number b, const coeffs cf) |
number | ntNormalizeHelper (number a, number b, const coeffs cf) |
int | ntSize (number a, const coeffs cf) |
void | ntDelete (number *a, const coeffs cf) |
void | ntCoeffWrite (const coeffs cf, BOOLEAN details) |
const char * | ntRead (const char *s, number *a, const coeffs cf) |
static BOOLEAN | ntCoeffIsEqual (const coeffs cf, n_coeffType n, void *param) |
void | heuristicGcdCancellation (number a, const coeffs cf) |
void | definiteGcdCancellation (number a, const coeffs cf, BOOLEAN simpleTestsHaveAlreadyBeenPerformed) |
modifies a More... | |
void | handleNestedFractionsOverQ (fraction f, const coeffs cf) |
static coeffs | nCoeff_bottom (const coeffs r, int &height) |
number | ntInit (poly p, const coeffs cf) |
takes over p! More... | |
number | ntDiff (number a, number d, const coeffs cf) |
void | ntNormalize (number &a, const coeffs cf) |
number | ntMap00 (number a, const coeffs src, const coeffs dst) |
number | ntMapZ0 (number a, const coeffs src, const coeffs dst) |
number | ntMapP0 (number a, const coeffs src, const coeffs dst) |
number | ntCopyMap (number a, const coeffs cf, const coeffs dst) |
number | ntGenMap (number a, const coeffs cf, const coeffs dst) |
number | ntCopyAlg (number a, const coeffs cf, const coeffs dst) |
number | ntGenAlg (number a, const coeffs cf, const coeffs dst) |
number | ntMap0P (number a, const coeffs src, const coeffs dst) |
number | ntMapPP (number a, const coeffs src, const coeffs dst) |
number | ntMapUP (number a, const coeffs src, const coeffs dst) |
nMapFunc | ntSetMap (const coeffs src, const coeffs dst) |
Get a mapping function from src into the domain of this type (n_transExt) More... | |
void | ntKillChar (coeffs cf) |
number | ntConvFactoryNSingN (const CanonicalForm n, const coeffs cf) |
CanonicalForm | ntConvSingNFactoryN (number n, BOOLEAN, const coeffs cf) |
static int | ntParDeg (number a, const coeffs cf) |
static number | ntParameter (const int iParameter, const coeffs cf) |
return the specified parameter as a number in the given trans.ext. More... | |
int | ntIsParam (number m, const coeffs cf) |
if m == var(i)/1 => return i, More... | |
static void | ntClearContent (ICoeffsEnumerator &numberCollectionEnumerator, number &c, const coeffs cf) |
static void | ntClearDenominators (ICoeffsEnumerator &numberCollectionEnumerator, number &c, const coeffs cf) |
number | ntChineseRemainder (number *x, number *q, int rl, BOOLEAN sym, CFArray &inv_cache, const coeffs cf) |
number | ntFarey (number p, number n, const coeffs cf) |
BOOLEAN | ntInitChar (coeffs cf, void *infoStruct) |
Initialize the coeffs object. More... | |
Variables | |
static const n_coeffType | ID = n_transExt |
Our own type! More... | |
omBin | fractionObjectBin = omGetSpecBin(sizeof(fractionObject)) |
#define ADD_COMPLEXITY 1 |
complexity increase due to + and -
Definition at line 62 of file transext.cc.
#define BOUND_COMPLEXITY 10 |
maximum complexity of a number
Definition at line 65 of file transext.cc.
Definition at line 70 of file transext.cc.
#define DIFF_COMPLEXITY 2 |
complexity increase due to * and /
Definition at line 64 of file transext.cc.
#define MULT_COMPLEXITY 2 |
complexity increase due to * and /
Definition at line 63 of file transext.cc.
Definition at line 90 of file transext.cc.
#define ntRing cf->extRing |
Definition at line 84 of file transext.cc.
TRUE iff num. represents 1.
Definition at line 68 of file transext.cc.
#define TRANSEXT_PRIVATES |
Definition at line 33 of file transext.cc.
void definiteGcdCancellation | ( | number | a, |
const coeffs | cf, | ||
BOOLEAN | simpleTestsHaveAlreadyBeenPerformed | ||
) |
modifies a
Definition at line 1332 of file transext.cc.
: TRUE iff (n != 0 and (LC(n) > 0 or deg(n) > 0)) in K(t_1, ..., t_n): TRUE iff (LC(numerator(n) is a constant and > 0) or (LC(numerator(n) is not a constant) in Z/2^kZ: TRUE iff 0 < n <= 2^(k-1) in Z/mZ: TRUE iff the internal mpz is greater than zero in Z: TRUE iff n > 0
Definition at line 1161 of file transext.cc.
: TRUE iff (n != 0 and (LC(n) > 0 or deg(n) > 0)) in K(t_1, ..., t_n): TRUE iff (LC(numerator(n) is a constant and > 0) or (LC(numerator(n) is not a constant) in Z/2^kZ: TRUE iff 0 < n <= 2^(k-1) in Z/mZ: TRUE iff the internal mpz is greater than zero in Z: TRUE iff n > 0
Definition at line 1255 of file transext.cc.
: TRUE iff (n != 0 and (LC(n) > 0 or deg(n) > 0)) in K(t_1, ..., t_n): TRUE iff (LC(numerator(n) is a constant and > 0) or (LC(numerator(n) is not a constant) in Z/2^kZ: TRUE iff 0 < n <= 2^(k-1) in Z/mZ: TRUE iff the internal mpz is greater than zero in Z: TRUE iff n > 0
Definition at line 313 of file transext.cc.
Definition at line 871 of file transext.cc.
number ntChineseRemainder | ( | number * | x, |
number * | q, | ||
int | rl, | ||
BOOLEAN | sym, | ||
CFArray & | inv_cache, | ||
const coeffs | cf | ||
) |
Definition at line 2463 of file transext.cc.
|
static |
Definition at line 2230 of file transext.cc.
|
static |
Definition at line 2319 of file transext.cc.
|
static |
Definition at line 1559 of file transext.cc.
Definition at line 775 of file transext.cc.
number ntConvFactoryNSingN | ( | const CanonicalForm | n, |
const coeffs | cf | ||
) |
Definition at line 2152 of file transext.cc.
CanonicalForm ntConvSingNFactoryN | ( | number | n, |
BOOLEAN | , | ||
const coeffs | cf | ||
) |
Definition at line 2164 of file transext.cc.
Definition at line 393 of file transext.cc.
Definition at line 1992 of file transext.cc.
Definition at line 1884 of file transext.cc.
< t != 0 ==> numerator(t) != 0
Definition at line 175 of file transext.cc.
: TRUE iff (n != 0 and (LC(n) > 0 or deg(n) > 0)) in K(t_1, ..., t_n): TRUE iff (LC(numerator(n) is a constant and > 0) or (LC(numerator(n) is not a constant) in Z/2^kZ: TRUE iff 0 < n <= 2^(k-1) in Z/mZ: TRUE iff the internal mpz is greater than zero in Z: TRUE iff n > 0
Definition at line 334 of file transext.cc.
Definition at line 813 of file transext.cc.
Definition at line 1022 of file transext.cc.
: TRUE iff (n != 0 and (LC(n) > 0 or deg(n) > 0)) in K(t_1, ..., t_n): TRUE iff (LC(numerator(n) is a constant and > 0) or (LC(numerator(n) is not a constant) in Z/2^kZ: TRUE iff 0 < n <= 2^(k-1) in Z/mZ: TRUE iff the internal mpz is greater than zero in Z: TRUE iff n > 0
simple tests
cheap test if gcd's have been cancelled in both numbers
Definition at line 347 of file transext.cc.
Definition at line 2493 of file transext.cc.
Definition at line 1669 of file transext.cc.
Definition at line 1999 of file transext.cc.
Definition at line 1913 of file transext.cc.
TODO: normalization of a!?
Definition at line 472 of file transext.cc.
: TRUE iff (n != 0 and (LC(n) > 0 or deg(n) > 0)) in K(t_1, ..., t_n): TRUE iff (LC(numerator(n) is a constant and > 0) or (LC(numerator(n) is not a constant) in Z/2^kZ: TRUE iff 0 < n <= 2^(k-1) in Z/mZ: TRUE iff the internal mpz is greater than zero in Z: TRUE iff n > 0
TODO: normalization of a!?
Definition at line 411 of file transext.cc.
: TRUE iff (n != 0 and (LC(n) > 0 or deg(n) > 0)) in K(t_1, ..., t_n): TRUE iff (LC(numerator(n) is a constant and > 0) or (LC(numerator(n) is not a constant) in Z/2^kZ: TRUE iff 0 < n <= 2^(k-1) in Z/mZ: TRUE iff the internal mpz is greater than zero in Z: TRUE iff n > 0
Definition at line 712 of file transext.cc.
forward declarations
Definition at line 765 of file transext.cc.
: TRUE iff (n != 0 and (LC(n) > 0 or deg(n) > 0)) in K(t_1, ..., t_n): TRUE iff (LC(numerator(n) is a constant and > 0) or (LC(numerator(n) is not a constant) in Z/2^kZ: TRUE iff 0 < n <= 2^(k-1) in Z/mZ: TRUE iff the internal mpz is greater than zero in Z: TRUE iff n > 0
Definition at line 609 of file transext.cc.
Definition at line 615 of file transext.cc.
takes over p!
Definition at line 636 of file transext.cc.
: TRUE iff (n != 0 and (LC(n) > 0 or deg(n) > 0)) in K(t_1, ..., t_n): TRUE iff (LC(numerator(n) is a constant and > 0) or (LC(numerator(n) is not a constant) in Z/2^kZ: TRUE iff 0 < n <= 2^(k-1) in Z/mZ: TRUE iff the internal mpz is greater than zero in Z: TRUE iff n > 0
Initialize the coeffs object.
Definition at line 2503 of file transext.cc.
Definition at line 684 of file transext.cc.
Definition at line 1772 of file transext.cc.
: TRUE iff (n != 0 and (LC(n) > 0 or deg(n) > 0)) in K(t_1, ..., t_n): TRUE iff (LC(numerator(n) is a constant and > 0) or (LC(numerator(n) is not a constant) in Z/2^kZ: TRUE iff 0 < n <= 2^(k-1) in Z/mZ: TRUE iff the internal mpz is greater than zero in Z: TRUE iff n > 0
Definition at line 583 of file transext.cc.
Definition at line 574 of file transext.cc.
if m == var(i)/1 => return i,
Definition at line 2204 of file transext.cc.
Definition at line 327 of file transext.cc.
void ntKillChar | ( | coeffs | cf | ) |
Definition at line 2147 of file transext.cc.
Definition at line 1830 of file transext.cc.
Definition at line 2009 of file transext.cc.
Definition at line 1868 of file transext.cc.
Definition at line 2033 of file transext.cc.
Definition at line 2048 of file transext.cc.
Definition at line 1854 of file transext.cc.
Definition at line 951 of file transext.cc.
Definition at line 1541 of file transext.cc.
: TRUE iff (n != 0 and (LC(n) > 0 or deg(n) > 0)) in K(t_1, ..., t_n): TRUE iff (LC(numerator(n) is a constant and > 0) or (LC(numerator(n) is not a constant) in Z/2^kZ: TRUE iff 0 < n <= 2^(k-1) in Z/mZ: TRUE iff the internal mpz is greater than zero in Z: TRUE iff n > 0
Definition at line 1581 of file transext.cc.
return the specified parameter as a number in the given trans.ext.
Definition at line 2182 of file transext.cc.
Definition at line 2173 of file transext.cc.
Definition at line 1071 of file transext.cc.
Definition at line 1531 of file transext.cc.
Get a mapping function from src into the domain of this type (n_transExt)
Q or Z –> Q(T)
Z –> K(T)
Z/p –> Q(T)
Q –> Z/p(T)
Z/p –> Z/p(T)
Z/u –> Z/p(T)
K(T') –> K(T)
K(T') –> K'(T)
K(T') –> K(T)
K(T') –> K'(T)
default
Definition at line 2070 of file transext.cc.
Definition at line 1745 of file transext.cc.
Definition at line 912 of file transext.cc.
Definition at line 1481 of file transext.cc.
Definition at line 1506 of file transext.cc.
omBin fractionObjectBin = omGetSpecBin(sizeof(fractionObject)) |
Definition at line 93 of file transext.cc.
|
static |
Our own type!
Definition at line 80 of file transext.cc.