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.