Next: I/O of Rationals, Previous: Comparing Rationals, Up: Rational Number Functions [Index]

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`

.

- Macro:
*mpz_t***mpq_numref***(const mpq_t*`op`) - Macro:
*mpz_t***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.

- Function:
*void***mpq_get_num***(mpz_t*`numerator`, const mpq_t`rational`) - Function:
*void***mpq_get_den***(mpz_t*`denominator`, const mpq_t`rational`) - Function:
*void***mpq_set_num***(mpq_t*`rational`, const mpz_t`numerator`) - Function:
*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.