Next: , Previous: , Up: Rational Number Functions   [Index]


6.5 整数から有理数への変換

mpq関数の種類はとても少なく,特に入出力関数が殆どありません。ここで述べる関数はmpq_t型変数の分子と分母に直接アクセスを行うものです。

本章の最初に述べたように,分子と分母をそれぞれ代入すると,mpq_t型の値が標準形から外れたものになり得るので(see Rational Number Functions),mpq関数を適用する前にmpq_canonicalize関数で標準形に直しておく必要があります。

マクロ: mpz_t mpq_numref (const mpq_t op)
マクロ: mpz_t mpq_denref (const mpq_t op)

opの分子と分母への参照をそれぞれ返します。この参照を使ってmpz関数を直接利用することができるようになります。

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)

有理数の分子と分母を代入したり,取り出したりすることができます。これらの関数は, mpq_numrefmpq_denrefを呼び出し,mpz_set関数を組み合わせることで実現しています。この関数を使うよりは直接mpq_numrefmpq_denrefを使うことをお勧めします。