### 7.6 Comparison Functions

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)

  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 (const mpf_t op1, const mpf_t op2, mp_bitcnt_t op3)

  This function is mathematically ill-defined and should not be used.

  Return non-zero if the first op3 bits of op1 and op2 are equal, zero otherwise. Note that numbers like e.g., 256 (binary 100000000) and 255 (binary 11111111) will never be equal by this function’s measure, and furthermore that 0 will only be equal to itself.

Function: void mpf_reldiff (mpf_t rop, const mpf_t op1, const 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 (const 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 argument multiple times.