Go forward to Assigning Floats.
Go up to Floating-point Functions.
Initialization and Assignment Functions
=======================================
- Function: void mpf_set_default_prec (unsigned long int PREC)
Set the default precision to be *at least* PREC bits. All
subsequent calls to `mpf_init' will use this precision, but
previously initialized variables are unaffected.
An `mpf_t' object must be initialized before storing the first value
in it. The functions `mpf_init' and `mpf_init2' are used for that
purpose.
- Function: void mpf_init (mpf_t X)
Initialize X to 0. Normally, a variable should be initialized
once only or at least be cleared, using `mpf_clear', between
initializations. The precision of X is undefined unless a default
precision has already been established by a call to
`mpf_set_default_prec'.
- Function: void mpf_init2 (mpf_t X, unsigned long int PREC)
Initialize X to 0 and set its precision to be *at least* PREC
bits. Normally, a variable should be initialized once only or at
least be cleared, using `mpf_clear', between initializations.
- Function: void mpf_clear (mpf_t X)
Free the space occupied by X. Make sure to call this function for
all `mpf_t' variables when you are done with them.
Here is an example on how to initialize floating-point variables:
{
mpf_t x, y;
mpf_init (x); /* use default precision */
mpf_init2 (y, 256); /* precision *at least* 256 bits */
...
/* Unless the program is about to exit, do ... */
mpf_clear (x);
mpf_clear (y);
}
The following three functions are useful for changing the precision
during a calculation. A typical use would be for adjusting the
precision gradually in iterative algorithms like Newton-Raphson, making
the computation precision closely match the actual accurate part of the
numbers.
- Function: void mpf_set_prec (mpf_t ROP, unsigned long int PREC)
Set the precision of ROP to be *at least* PREC bits. Since
changing the precision involves calls to `realloc', this routine
should not be called in a tight loop.
- Function: unsigned long int mpf_get_prec (mpf_t OP)
Return the precision actually used for assignments of OP.
- Function: void mpf_set_prec_raw (mpf_t ROP, unsigned long int PREC)
Set the precision of ROP to be *at least* PREC bits. This is a
low-level function that does not change the allocation. The PREC
argument must not be larger that the precision previously returned
by `mpf_get_prec'. It is crucial that the precision of ROP is
ultimately reset to exactly the value returned by `mpf_get_prec'.