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


6.4 比較関数

Function: int mpq_cmp (const mpq_t op1, const mpq_t op2)
Function: int mpq_cmp_z (const mpq_t op1, const mpz_t op2)

op1op2を比較します。op1 > op2であれば正数,op1 = op2であればゼロ,op1 < op2であれば負数を返します。

この二つの有理数が等しいかどうかを決めるときには,mpq_equal関数の方が高速に判定できます。

マクロ: int mpq_cmp_ui (const mpq_t op1, unsigned long int num2, unsigned long int den2)
マクロ: int mpq_cmp_si (const mpq_t op1, long int num2, unsigned long int den2)

op1num2/den2を比較します。op1 > num2/den2であれば正数,op1 =num2/den2であればゼロ,op1 <num2/den2であれば負数を返します。

num2den2が共通因子を持っていても正常に比較できます。

これらの関数はマクロとして実装されているので,引数を複数回評価します。

マクロ: int mpq_sgn (const mpq_t op)

op > 0であれば+1を, op = 0であればゼロを,op < 0であれば-1を返します。

この関数はマクロとして定義されていますので,引数は複数回評価されます。

Function: int mpq_equal (const mpq_t op1, const mpq_t op2)

op1op2が等しければ正数を,等しくなければゼロを返します。mpq_cmp関数も同様の比較ができますが,この関数の方が高速です。