The set of mpq functions is quite small. In particular, there are few
functions for either input or output. The following functions give direct
access to the numerator and denominator of an mpq_t.
Note that if an assignment to the numerator and/or denominator could take an
mpq_t out of the canonical form described at the start of this chapter
(see Rational Number Functions) then mpq_canonicalize must be
called before any other mpq functions are applied to that mpq_t.
mpz_ptr mpq_numref (const mpq_t op) ¶mpz_ptr mpq_denref (const mpq_t op) ¶Return a reference to the numerator and denominator of op, respectively.
The mpz functions can be used on the result of these macros. Such
calls may modify the numerator or denominator. However, care
should be taken so that op remains in canonical form prior to a
possible later call to an mpq function.
void mpq_get_num (mpz_t numerator, const mpq_t rational) ¶void mpq_get_den (mpz_t denominator, const mpq_t rational) ¶void mpq_set_num (mpq_t rational, const mpz_t numerator) ¶void mpq_set_den (mpq_t rational, const mpz_t denominator) ¶Get or set the numerator or denominator of a rational. These functions are
equivalent to calling mpz_set with an appropriate mpq_numref or
mpq_denref. Direct use of mpq_numref or mpq_denref is
recommended instead of these functions.