![]() |
#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) ntDBTest(a,__FILE__,__LINE__,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, 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 64 of file transext.cc.
| #define BOUND_COMPLEXITY 10 |
maximum complexity of a number
Definition at line 67 of file transext.cc.
Definition at line 72 of file transext.cc.
| #define DIFF_COMPLEXITY 2 |
complexity increase due to * and /
Definition at line 66 of file transext.cc.
| #define MULT_COMPLEXITY 2 |
complexity increase due to * and /
Definition at line 65 of file transext.cc.
Definition at line 93 of file transext.cc.
| #define ntRing cf->extRing |
Definition at line 87 of file transext.cc.
TRUE iff num. represents 1.
Definition at line 70 of file transext.cc.
| #define TRANSEXT_PRIVATES |
Definition at line 35 of file transext.cc.
| void definiteGcdCancellation | ( | number | a, |
| const coeffs | cf, | ||
| BOOLEAN | simpleTestsHaveAlreadyBeenPerformed | ||
| ) |
modifies a
Definition at line 1246 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 1100 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 1193 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 262 of file transext.cc.
Definition at line 815 of file transext.cc.
Definition at line 2333 of file transext.cc.
|
static |
Definition at line 2100 of file transext.cc.
|
static |
Definition at line 2189 of file transext.cc.
|
static |
Definition at line 1471 of file transext.cc.
Definition at line 721 of file transext.cc.
| number ntConvFactoryNSingN | ( | const CanonicalForm | n, |
| const coeffs | cf | ||
| ) |
Definition at line 2022 of file transext.cc.
| CanonicalForm ntConvSingNFactoryN | ( | number | n, |
| BOOLEAN | , | ||
| const coeffs | cf | ||
| ) |
Definition at line 2034 of file transext.cc.
Definition at line 341 of file transext.cc.
Definition at line 1862 of file transext.cc.
Definition at line 1806 of file transext.cc.
< t != 0 ==> numerator(t) != 0
Definition at line 178 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 283 of file transext.cc.
Definition at line 759 of file transext.cc.
Definition at line 963 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 295 of file transext.cc.
Definition at line 2361 of file transext.cc.
Definition at line 1581 of file transext.cc.
Definition at line 1869 of file transext.cc.
Definition at line 1835 of file transext.cc.
TODO: normalization of a!?
Definition at line 419 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 358 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 658 of file transext.cc.
forward declarations
Definition at line 711 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 556 of file transext.cc.
Definition at line 562 of file transext.cc.
takes over p!
Definition at line 583 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 2370 of file transext.cc.
Definition at line 630 of file transext.cc.
Definition at line 1696 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 530 of file transext.cc.
Definition at line 521 of file transext.cc.
if m == var(i)/1 => return i,
Definition at line 2074 of file transext.cc.
Definition at line 276 of file transext.cc.
| void ntKillChar | ( | coeffs | cf | ) |
Definition at line 2017 of file transext.cc.
Definition at line 1754 of file transext.cc.
Definition at line 1879 of file transext.cc.
Definition at line 1790 of file transext.cc.
Definition at line 1903 of file transext.cc.
Definition at line 1918 of file transext.cc.
Definition at line 1776 of file transext.cc.
Definition at line 893 of file transext.cc.
Definition at line 1455 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 1493 of file transext.cc.
return the specified parameter as a number in the given trans.ext.
Definition at line 2052 of file transext.cc.
Definition at line 2043 of file transext.cc.
Definition at line 1010 of file transext.cc.
Definition at line 1446 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 1940 of file transext.cc.
Definition at line 1657 of file transext.cc.
Definition at line 855 of file transext.cc.
Definition at line 1393 of file transext.cc.
Definition at line 1420 of file transext.cc.
| omBin fractionObjectBin = omGetSpecBin(sizeof(fractionObject)) |
Definition at line 96 of file transext.cc.
|
static |
Our own type!
Definition at line 83 of file transext.cc.