![]() |
#include <misc/auxiliary.h>
#include <omalloc/omalloc.h>
#include <factory/factory.h>
#include <misc/sirandom.h>
#include <misc/prime.h>
#include <reporter/reporter.h>
#include "rmodulon.h"
#include "longrat.h"
#include "shortfl.h"
#include "modulop.h"
#include <string.h>
#include <float.h>
#include <coeffs/coeffs.h>
#include <coeffs/numbers.h>
#include <coeffs/mpr_complex.h>
Go to the source code of this file.
Macros | |
#define | LINLINE |
#define | nlTest(a, r) nlDBTest(a,__FILE__,__LINE__, r) |
#define | MAX_NUM_SIZE 28 |
#define | POW_2_28 (1L<<28) |
#define | POW_2_28_32 (1L<<28) |
#define | LONG int |
#define | LONGRAT_CC |
#define | BYTES_PER_MP_LIMB sizeof(mp_limb_t) |
#define | MP_SMALL 1 |
#define | mpz_isNeg(A) ((A)->_mp_size<0) |
#define | mpz_limb_size(A) ((A)->_mp_size) |
#define | mpz_limb_d(A) ((A)->_mp_d) |
#define | GCD_NORM_COND(OLD, NEW) (mpz_size1(NEW->z)>mpz_size1(OLD->z)) |
Functions | |
LINLINE BOOLEAN | nlEqual (number a, number b, const coeffs r) |
LINLINE number | nlInit (long i, const coeffs r) |
LINLINE BOOLEAN | nlIsOne (number a, const coeffs r) |
LINLINE BOOLEAN | nlIsZero (number za, const coeffs r) |
LINLINE number | nlCopy (number a, const coeffs r) |
LINLINE number | nl_Copy (number a, const coeffs r) |
LINLINE void | nlDelete (number *a, const coeffs r) |
LINLINE number | nlNeg (number za, const coeffs r) |
LINLINE number | nlAdd (number la, number li, const coeffs r) |
LINLINE number | nlSub (number la, number li, const coeffs r) |
LINLINE number | nlMult (number a, number b, const coeffs r) |
LINLINE void | nlInpAdd (number &a, number b, const coeffs r) |
LINLINE void | nlInpMult (number &a, number b, const coeffs r) |
number | nlRInit (long i) |
void | nlNormalize (number &x, const coeffs r) |
number | nlGcd (number a, number b, const coeffs r) |
number | nlExtGcd (number a, number b, number *s, number *t, const coeffs) |
number | nlNormalizeHelper (number a, number b, const coeffs r) |
BOOLEAN | nlGreater (number a, number b, const coeffs r) |
BOOLEAN | nlIsMOne (number a, const coeffs r) |
long | nlInt (number &n, const coeffs r) |
number | nlBigInt (number &n) |
number | nlMapGMP (number from, const coeffs src, const coeffs dst) |
BOOLEAN | nlGreaterZero (number za, const coeffs r) |
number | nlInvers (number a, const coeffs r) |
number | nlDiv (number a, number b, const coeffs r) |
number | nlExactDiv (number a, number b, const coeffs r) |
number | nlIntDiv (number a, number b, const coeffs r) |
number | nlIntMod (number a, number b, const coeffs r) |
void | nlPower (number x, int exp, number *lu, const coeffs r) |
const char * | nlRead (const char *s, number *a, const coeffs r) |
void | nlWrite (number a, const coeffs r) |
number | nlGetDenom (number &n, const coeffs r) |
number | nlGetNumerator (number &n, const coeffs r) |
void | nlCoeffWrite (const coeffs r, BOOLEAN details) |
number | nlChineseRemainder (number *x, number *q, int rl, const coeffs C) |
number | nlFarey (number nN, number nP, const coeffs CF) |
BOOLEAN | nlDBTest (number a, const char *f, const int l) |
nMapFunc | nlSetMap (const coeffs src, const coeffs dst) |
void | nlInpIntDiv (number &a, number b, const coeffs r) |
BOOLEAN | nlDBTest (number a, const char *f, int l, const coeffs r) |
static number | nlShort3 (number x) |
void | _nlDelete_NoImm (number *a) |
number | nlShort3_noinline (number x) |
void | mpz_mul_si (mpz_ptr r, mpz_srcptr s, long int si) |
static number | nlMapP (number from, const coeffs src, const coeffs dst) |
static number | nlMapLongR (number from, const coeffs src, const coeffs dst) |
static number | nlMapR (number from, const coeffs src, const coeffs dst) |
number | nlMapZ (number from, const coeffs src, const coeffs dst) |
number | nlMapMachineInt (number from, const coeffs, const coeffs) |
static CanonicalForm | nlConvSingNFactoryN (number n, const BOOLEAN setChar, const coeffs) |
static number | nlConvFactoryNSingN (const CanonicalForm f, const coeffs r) |
int | nlSize (number a, const coeffs) |
number | nlBigInt (number &i, const coeffs r) |
BOOLEAN | nlDivBy (number a, number b, const coeffs) |
int | nlDivComp (number a, number b, const coeffs r) |
number | nlGetUnit (number n, const coeffs r) |
coeffs | nlQuot1 (number c, const coeffs r) |
BOOLEAN | nlIsUnit (number a, const coeffs) |
static int | int_extgcd (int a, int b, int *u, int *x, int *v, int *y) |
number | nlShort1 (number x) |
number | nlModP (number q, const coeffs Q, const coeffs Zp) |
void | nlGMP (number &i, number n, const coeffs r) |
BOOLEAN | _nlEqual_aNoImm_OR_bNoImm (number a, number b) |
number | _nlCopy_NoImm (number a) |
number | _nlNeg_NoImm (number a) |
static void | nlNormalize_Gcd (number &x) |
number | _nlAdd_aNoImm_OR_bNoImm (number a, number b) |
void | _nlInpAdd_aNoImm_OR_bNoImm (number &a, number b) |
number | _nlSub_aNoImm_OR_bNoImm (number a, number b) |
number | _nlMult_aImm_bImm_rNoImm (number a, number b) |
number | _nlMult_aNoImm_OR_bNoImm (number a, number b) |
number | nlCopyMap (number a, const coeffs src, const coeffs dst) |
number | nlInit2 (int i, int j, const coeffs r) |
create a rational i/j (implicitly) over Q NOTE: make sure to use correct Q in debug mode More... | |
number | nlInit2gmp (mpz_t i, mpz_t j, const coeffs r) |
create a rational i/j (implicitly) over Q NOTE: make sure to use correct Q in debug mode More... | |
static void | nlMPZ (mpz_t m, number &n, const coeffs r) |
static number | nlInitMPZ (mpz_t m, const coeffs) |
number | nlXExtGcd (number a, number b, number *s, number *t, number *u, number *v, const coeffs r) |
number | nlQuotRem (number a, number b, number *r, const coeffs R) |
void | nlInpGcd (number &a, number b, const coeffs r) |
number | nlChineseRemainderSym (number *x, number *q, int rl, BOOLEAN sym, CFArray &inv_cache, const coeffs CF) |
static void | nlClearContent (ICoeffsEnumerator &numberCollectionEnumerator, number &c, const coeffs cf) |
static void | nlClearDenominators (ICoeffsEnumerator &numberCollectionEnumerator, number &c, const coeffs cf) |
char * | nlCoeffName (const coeffs r) |
static char * | nlCoeffString (const coeffs r) |
static void | nlWriteFd (number n, FILE *f, const coeffs) |
static number | nlReadFd (s_buff f, const coeffs) |
BOOLEAN | nlCoeffIsEqual (const coeffs r, n_coeffType n, void *p) |
static number | nlLcm (number a, number b, const coeffs r) |
static number | nlRandom (siRandProc p, number v2, number, const coeffs cf) |
BOOLEAN | nlInitChar (coeffs r, void *p) |
Variables | |
int | n_SwitchChinRem =0 |
#define BYTES_PER_MP_LIMB sizeof(mp_limb_t) |
Definition at line 149 of file longrat.cc.
Definition at line 1647 of file longrat.cc.
#define LINLINE |
Definition at line 26 of file longrat.cc.
#define LONG int |
Definition at line 108 of file longrat.cc.
#define LONGRAT_CC |
Definition at line 136 of file longrat.cc.
#define MAX_NUM_SIZE 28 |
Definition at line 105 of file longrat.cc.
#define MP_SMALL 1 |
Definition at line 157 of file longrat.cc.
Definition at line 159 of file longrat.cc.
Definition at line 161 of file longrat.cc.
Definition at line 160 of file longrat.cc.
#define POW_2_28 (1L<<28) |
Definition at line 106 of file longrat.cc.
#define POW_2_28_32 (1L<<28) |
Definition at line 107 of file longrat.cc.
number _nlAdd_aNoImm_OR_bNoImm | ( | number | a, |
number | b | ||
) |
Definition at line 1669 of file longrat.cc.
number _nlCopy_NoImm | ( | number | a | ) |
Definition at line 1595 of file longrat.cc.
void _nlDelete_NoImm | ( | number * | a | ) |
Definition at line 1616 of file longrat.cc.
BOOLEAN _nlEqual_aNoImm_OR_bNoImm | ( | number | a, |
number | b | ||
) |
Definition at line 1548 of file longrat.cc.
void _nlInpAdd_aNoImm_OR_bNoImm | ( | number & | a, |
number | b | ||
) |
Definition at line 1827 of file longrat.cc.
number _nlMult_aImm_bImm_rNoImm | ( | number | a, |
number | b | ||
) |
Definition at line 2177 of file longrat.cc.
number _nlMult_aNoImm_OR_bNoImm | ( | number | a, |
number | b | ||
) |
Definition at line 2190 of file longrat.cc.
number _nlNeg_NoImm | ( | number | a | ) |
Definition at line 1634 of file longrat.cc.
number _nlSub_aNoImm_OR_bNoImm | ( | number | a, |
number | b | ||
) |
Definition at line 1966 of file longrat.cc.
|
static |
Definition at line 1263 of file longrat.cc.
void mpz_mul_si | ( | mpz_ptr | r, |
mpz_srcptr | s, | ||
long int | si | ||
) |
Definition at line 179 of file longrat.cc.
Definition at line 2515 of file longrat.cc.
number nlBigInt | ( | number & | n | ) |
Definition at line 637 of file longrat.cc.
Definition at line 2953 of file longrat.cc.
number nlChineseRemainderSym | ( | number * | x, |
number * | q, | ||
int | rl, | ||
BOOLEAN | sym, | ||
CFArray & | inv_cache, | ||
const coeffs | CF | ||
) |
Definition at line 2919 of file longrat.cc.
|
static |
Definition at line 2959 of file longrat.cc.
|
static |
Definition at line 3050 of file longrat.cc.
BOOLEAN nlCoeffIsEqual | ( | const coeffs | r, |
n_coeffType | n, | ||
void * | p | ||
) |
Definition at line 3265 of file longrat.cc.
Definition at line 3144 of file longrat.cc.
Definition at line 3150 of file longrat.cc.
Definition at line 2910 of file longrat.cc.
|
static |
Definition at line 378 of file longrat.cc.
|
static |
Definition at line 340 of file longrat.cc.
Definition at line 2467 of file longrat.cc.
Definition at line 2298 of file longrat.cc.
Definition at line 248 of file longrat.cc.
Definition at line 2480 of file longrat.cc.
Definition at line 992 of file longrat.cc.
Definition at line 928 of file longrat.cc.
Definition at line 942 of file longrat.cc.
Definition at line 2411 of file longrat.cc.
Definition at line 735 of file longrat.cc.
Definition at line 2861 of file longrat.cc.
Definition at line 2792 of file longrat.cc.
Definition at line 1192 of file longrat.cc.
Definition at line 1488 of file longrat.cc.
Definition at line 1517 of file longrat.cc.
Definition at line 953 of file longrat.cc.
Definition at line 1467 of file longrat.cc.
Definition at line 1165 of file longrat.cc.
Definition at line 1155 of file longrat.cc.
Definition at line 2420 of file longrat.cc.
create a rational i/j (implicitly) over Q NOTE: make sure to use correct Q in debug mode
Definition at line 2358 of file longrat.cc.
create a rational i/j (implicitly) over Q NOTE: make sure to use correct Q in debug mode
Definition at line 2371 of file longrat.cc.
Definition at line 3301 of file longrat.cc.
Definition at line 2642 of file longrat.cc.
Definition at line 2533 of file longrat.cc.
Definition at line 2759 of file longrat.cc.
Definition at line 2774 of file longrat.cc.
Definition at line 2599 of file longrat.cc.
Definition at line 605 of file longrat.cc.
Definition at line 786 of file longrat.cc.
Definition at line 867 of file longrat.cc.
Definition at line 655 of file longrat.cc.
Definition at line 1180 of file longrat.cc.
Definition at line 2438 of file longrat.cc.
Definition at line 983 of file longrat.cc.
Definition at line 2447 of file longrat.cc.
Definition at line 3277 of file longrat.cc.
Definition at line 208 of file longrat.cc.
Definition at line 435 of file longrat.cc.
Definition at line 233 of file longrat.cc.
Definition at line 191 of file longrat.cc.
Definition at line 405 of file longrat.cc.
Definition at line 221 of file longrat.cc.
Definition at line 1425 of file longrat.cc.
Definition at line 2633 of file longrat.cc.
Definition at line 2551 of file longrat.cc.
Definition at line 2496 of file longrat.cc.
Definition at line 1334 of file longrat.cc.
|
static |
Definition at line 1649 of file longrat.cc.
Definition at line 1378 of file longrat.cc.
Definition at line 1102 of file longrat.cc.
Definition at line 958 of file longrat.cc.
Definition at line 2706 of file longrat.cc.
|
static |
Definition at line 3287 of file longrat.cc.
Definition at line 57 of file longrat0.cc.
Definition at line 3203 of file longrat.cc.
number nlRInit | ( | long | i | ) |
Definition at line 2344 of file longrat.cc.
Definition at line 2307 of file longrat.cc.
number nlShort1 | ( | number | x | ) |
Definition at line 1313 of file longrat.cc.
|
inlinestatic |
Definition at line 112 of file longrat.cc.
number nlShort3_noinline | ( | number | x | ) |
Definition at line 172 of file longrat.cc.
Definition at line 576 of file longrat.cc.
Definition at line 2581 of file longrat.cc.
Definition at line 116 of file longrat0.cc.
Definition at line 3157 of file longrat.cc.
number nlXExtGcd | ( | number | a, |
number | b, | ||
number * | s, | ||
number * | t, | ||
number * | u, | ||
number * | v, | ||
const coeffs | r | ||
) |
Definition at line 2654 of file longrat.cc.
int n_SwitchChinRem =0 |
Definition at line 2918 of file longrat.cc.