16 #define OSTREAM std::ostream
17 #elif defined(HAVE_IOSTREAM_H)
19 #define OSTREAM ostream
47 static void normalize(
const mpz_ptr,
const mpz_ptr, mpz_ptr, mpz_ptr );
52 ASSERT( 0,
"ups there is something wrong in your code" );
63 const char *
classname()
const {
return "InternalRational"; }
InternalCF * modcoeff(InternalCF *, bool)
InternalCF * mulcoeff(InternalCF *)
InternalCF * addsame(InternalCF *)
int comparesame(InternalCF *)
comparesame(), comparecoeff() - compare with an InternalRational.
InternalCF * mulsame(InternalCF *)
void divremcoeff(InternalCF *, InternalCF *&, InternalCF *&, bool)
InternalCF * normalize_myself()
reduce InternalRational to lowest terms
void divremsame(InternalCF *, InternalCF *&, InternalCF *&)
InternalCF * addcoeff(InternalCF *)
bool divremcoefft(InternalCF *, InternalCF *&, InternalCF *&, bool)
InternalCF * dividecoeff(InternalCF *, bool)
const CanonicalForm CFMap CFMap int &both_non_zero int n
InternalCF * bextgcdsame(InternalCF *, CanonicalForm &, CanonicalForm &)
friend void gmp_denominator(const CanonicalForm &f, mpz_ptr result)
static mpz_ptr MPQDEN(const InternalCF *const c)
virtual class for internal CanonicalForm's
InternalCF * neg()
InternalCF * InternalRational::neg ()
InternalCF * bgcdcoeff(const InternalCF *const )
InternalCF * subcoeff(InternalCF *, bool)
int comparecoeff(InternalCF *)
comparecoeff() compares the CO=a/b and the integer c using the equivalence a/b < c iff a < c*b...
InternalCF * dividesame(InternalCF *)
void print(OSTREAM &, char *)
InternalCF * divsame(InternalCF *)
const char * classname() const
static void normalize(const mpz_ptr, const mpz_ptr, mpz_ptr, mpz_ptr)
InternalCF * modulosame(InternalCF *)
friend void gmp_numerator(const CanonicalForm &f, mpz_ptr result)
friend CanonicalForm make_cf(const mpz_ptr n, const mpz_ptr d)
InternalCF * bgcdsame(const InternalCF *const ) const
InternalRational(const InternalCF &)
InternalCF * subsame(InternalCF *)
operations on immediates, that is elements of F_p, GF, Z, Q that fit into intrinsic int...
bool divremsamet(InternalCF *, InternalCF *&, InternalCF *&)
InternalCF * modulocoeff(InternalCF *, bool)
Factory's internal CanonicalForm's.
InternalCF * modsame(InternalCF *)
#define ASSERT(expression, message)
factory's class for integers
InternalCF * bextgcdcoeff(InternalCF *, CanonicalForm &, CanonicalForm &)
InternalCF * divcoeff(InternalCF *, bool)
factory's class for rationals
static mpz_ptr MPQNUM(const InternalCF *const c)
InternalCF * deepCopyObject() const