20#define OSTREAM std::ostream
21#elif defined(HAVE_IOSTREAM_H)
23#define OSTREAM ostream
44#define FACTORY_INT64 long int
46#define FACTORY_INT64 long long int
58#if defined(WINNT) && ! defined(__GNUC__)
72 return ((intptr_t)imm) >> 2;
85 if ( ((
long)(intptr_t)imm)) < 0 )
86 return -((-(
long)(intptr_t)imm) >> 2);
88 return (
long)(intptr_t)imm >> 2;
117 return ( (intptr_t)ptr & 3 );
338 return res->mulcoeff( rhs );
344 return res->mulcoeff( rhs );
417 long r = (-a) % (-
b);
418 return int2imm( (r==0) ? r : -
b-r );
481inline void imm_print (
OSTREAM & os,
const InternalCF *
const op,
const char *
const str )
#define ASSERT(expression, message)
static const int SW_RATIONAL
set to 1 for computations over Q
static const int SW_SYMMETRIC_FF
set to 1 for symmetric representation over F_q
Interface to generate InternalCF's over various domains from intrinsic types or mpz_t's.
INST_VAR CFSwitches cf_glob_switches
static InternalCF * basic(int value)
static InternalCF * rational(long num, long den)
bool isOn(int s) const
check if 's' is on
virtual class for internal CanonicalForm's
operations in a finite prime field F_p.
int ff_symmetric(const int a)
int ff_add(const int a, const int b)
int ff_div(const int a, const int b)
int ff_mul(const int a, const int b)
int ff_sub(const int a, const int b)
Operations in GF, where GF is a finite field of size less than 2^16 represented by a root of Conway p...
InternalCF * imm_div_p(const InternalCF *const lhs, const InternalCF *const rhs)
int imm_isone_p(const InternalCF *const ptr)
void imm_divrem_gf(const InternalCF *const lhs, const InternalCF *const rhs, InternalCF *&q, InternalCF *&r)
static long imm2int(const InternalCF *const imm)
InternalCF * imm_div(const InternalCF *const lhs, const InternalCF *const rhs)
InternalCF * imm_add_gf(const InternalCF *const lhs, const InternalCF *const rhs)
InternalCF * imm_mod(const InternalCF *const lhs, const InternalCF *const rhs)
int imm_isone(const InternalCF *const ptr)
const FACTORY_INT64 MAXIMMEDIATELL
InternalCF * imm_mod_p(const InternalCF *const, const InternalCF *const)
InternalCF * int2imm_p(long i)
int imm_sign(const InternalCF *const op)
imm_sign() - return sign of immediate object.
int imm_cmp_p(const InternalCF *const lhs, const InternalCF *const rhs)
int imm_cmp_gf(const InternalCF *const lhs, const InternalCF *const rhs)
InternalCF * imm_mul_p(const InternalCF *const lhs, const InternalCF *const rhs)
InternalCF * imm_add_p(const InternalCF *const lhs, const InternalCF *const rhs)
int imm_iszero(const InternalCF *const ptr)
int imm_iszero_gf(const InternalCF *const ptr)
InternalCF * imm_mul_gf(const InternalCF *const lhs, const InternalCF *const rhs)
InternalCF * imm_add(const InternalCF *const lhs, const InternalCF *const rhs)
long imm_intval(const InternalCF *const op)
InternalCF * imm_div_gf(const InternalCF *const lhs, const InternalCF *const rhs)
const FACTORY_INT64 MINIMMEDIATELL
int imm_iszero_p(const InternalCF *const ptr)
InternalCF * imm_sub_p(const InternalCF *const lhs, const InternalCF *const rhs)
InternalCF * imm_neg_p(const InternalCF *const op)
InternalCF * int2imm_gf(long i)
int imm_isone_gf(const InternalCF *const ptr)
int imm_cmp(const InternalCF *const lhs, const InternalCF *const rhs)
imm_cmp(), imm_cmp_p(), imm_cmp_gf() - compare immediate objects.
static InternalCF * int2imm(long i)
void imm_divrem_p(const InternalCF *const lhs, const InternalCF *const rhs, InternalCF *&q, InternalCF *&r)
InternalCF * imm_sub_gf(const InternalCF *const lhs, const InternalCF *const rhs)
InternalCF * imm_neg(const InternalCF *const op)
InternalCF * imm_sub(const InternalCF *const lhs, const InternalCF *const rhs)
InternalCF * imm_divrat(const InternalCF *const lhs, const InternalCF *const rhs)
InternalCF * imm_neg_gf(const InternalCF *const op)
InternalCF * imm_mod_gf(const InternalCF *const, const InternalCF *const)
InternalCF * imm_mul(InternalCF *lhs, InternalCF *rhs)
void imm_divrem(const InternalCF *const lhs, const InternalCF *const rhs, InternalCF *&q, InternalCF *&r)
Factory's internal CanonicalForm's.