void ARingGF::set_from_mpq(ElementType &result, const mpq_ptr a) const { // std::cerr << "set_from_mpq" << std::endl; ElementType n, d; set_from_mpz(n, mpq_numref(a)); set_from_mpz(d, mpq_denref(a)); divide(result,n,d); }
/// @Mike: change all uses of set_from_mpq to return bool // or, perhaps, to raise an exception. void ARingZZpFFPACK::set_from_mpq(ElementType &result, const mpq_ptr a) const { ElementType n, d; set_from_mpz(n, mpq_numref(a)); set_from_mpz(d, mpq_denref(a)); divide(result, n, d); }
void set_from_mpq(elem &result, mpq_ptr a) const { elem n, d; set_from_mpz(n, mpq_numref(a)); set_from_mpz(d, mpq_denref(a)); ASSERT(d != 0); //TODO actually: we need to check for this... divide(result,n,d); }
bool set_from_mpq(elem &result, mpq_ptr a) const { ElementType n, d; set_from_mpz(n, mpq_numref(a)); set_from_mpz(d, mpq_denref(a)); if (is_zero(d)) return false; divide(result, n, d); return true; }
bool set_from_mpq(ElementType& result, const mpq_ptr a) const { if (mpz_cmp_si(mpq_denref(a), 1) == 0) { set_from_mpz(result, mpq_numref(a)); return true; } return false; }
bool promote(const Ring *Rf, const ring_elem f, ElementType& result) const { printf("ARingQQGMP::calling promote\n"); // Rf = ZZ ---> QQ if (Rf->is_ZZ()) { set_from_mpz(result, f.get_mpz()); return true; } return false; }
void set_from_mpq(elem &result, mpq_ptr a) const { int n, d; set_from_mpz(n, mpq_numref(a)); set_from_mpz(d, mpq_denref(a)); divide(result,n,d); }