Previous: Custom Interface, Up: MPFR Interface
The following types and
functions were mainly designed for the implementation of mpfr
,
but may be useful for users too.
However no upward compatibility is guaranteed.
You may need to include mpfr-impl.h to use them.
The mpfr_t
type consists of four fields.
_mpfr_prec
field is used to store the precision of
the variable (in bits); this is not less than MPFR_PREC_MIN
.
_mpfr_sign
field is used to store the sign of the variable.
_mpfr_exp
field stores the exponent.
An exponent of 0 means a radix point just above the most significant
limb. Non-zero values n are a multiplier 2^n relative to that
point.
A NaN, an Infinity and a Zero are indicated by a special value of the exponent.
_mpfr_d
is a pointer to the limbs, least
significant limbs stored first.
The number of limbs in use is controlled by _mpfr_prec
, namely
ceil(_mpfr_prec
/mp_bits_per_limb
).
Non-singular values always have the most significant bit of the most
significant limb set to 1. When the precision does not correspond to a
whole number of limbs, the excess bits at the low end of the data are zero.
Assuming b is an approximation of an unknown number x in the direction rnd1 with error at most two to the power E(b)-err where E(b) is the exponent of b, return a non-zero value if one is able to round correctly x to precision prec with the direction rnd2, and 0 otherwise (including for NaN and Inf). This function does not modify its arguments.