Next: , Previous: , Up: Floating-point Functions   [Index]


7.6 比較関数

Function: int mpf_cmp (const mpf_t op1, const mpf_t op2)
Function: int mpf_cmp_z (const mpf_t op1, const mpz_t op2)
Function: int mpf_cmp_d (const mpf_t op1, double op2)
Function: int mpf_cmp_ui (const mpf_t op1, unsigned long int op2)
Function: int mpf_cmp_si (const mpf_t op1, signed long int op2)

op1op2を比較します。op1 > op2の時は正数を,op1 = op2の時はゼロを,op1 < op2の時は負数を返します。

mpf_cmp_dは無限大を引数に取ることもできますが,NaNの時の結果は定義されていません。

Function: int mpf_eq (const mpf_t op1, const mpf_t op2, mp_bitcnt_t op3)

この関数は数学的には正しくないものなので,なるべく使わないで下さい。

op1op2の先頭のop3 bit分が等しい時には非ゼロを返し,等しくない時にはゼロを返します。 この関数の比較方法では,例えば,256 (2進表現 100000000)と255 (11111111) は常に等しくないと判断します。またゼロと等しいと判断できるのはゼロ自身だけです。

Function: void mpf_reldiff (mpf_t rop, const mpf_t op1, const mpf_t op2)

op1op2の相対差異を計算し,ropに格納します。相対差異とはabs(op1-op2)/op1のことです。

マクロ: int mpf_sgn (const mpf_t op)

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

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