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


7.6 Comparison Functions

Function: int mpf_cmp (mpf_t op1, mpf_t op2)
Function: int mpf_cmp_d (mpf_t op1, double op2)
Function: int mpf_cmp_ui (mpf_t op1, mpir_ui op2)
Function: int mpf_cmp_si (mpf_t op1, mpir_si op2)

Compare op1 and op2. Return a positive value if op1 > op2, zero if op1 = op2, and a negative value if op1 < op2.

mpf_cmp_d can be called with an infinity, but results are undefined for a NaN.

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

Return non-zero if the first op3 bits of op1 and op2 are equal, zero otherwise. I.e., test if op1 and op2 are approximately equal.

In the future values like 1000 and 0111 may be considered the same to 3 bits (on the basis that their difference is that small).

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

Compute the relative difference between op1 and op2 and store the result in rop. This is abs(op1-op2)/op1.

Macro: int mpf_sgn (mpf_t op)

Return +1 if op > 0, 0 if op = 0, and -1 if op < 0.

This function is actually implemented as a macro. It evaluates its arguments multiple times.