Next: , Previous: Complex Functions, Up: Complex Functions


5.1 Initialization Functions

An mpc_t object must be initialized before storing the first value in it. The functions mpc_init2 and mpc_init3 are used for that purpose.

— Function: void mpc_init2 (mpc_t z, mp_prec_t prec)

Initialize z to precision prec bits and set its real and imaginary parts to NaN. Normally, a variable should be initialized once only or at least be cleared, using mpc_clear, between initializations.

— Function: void mpc_init3 (mpc_t z, mp_prec_t prec_r, mp_prec_t prec_i)

Initialize z with the precision of its real part being prec_r bits and the precision of its imaginary part being prec_i bits, and set the real and imaginary parts to NaN.

— Function: void mpc_clear (mpc_t z)

Free the space occupied by z. Make sure to call this function for all mpc_t variables when you are done with them.

Here is an example on how to initialize complex variables:

     {
       mpc_t x, y;
       mpc_init2 (x, 256);		/* precision exactly 256 bits */
       mpc_init3 (y, 100, 50);	/* 100/50 bits for the real/imaginary part */
       ...
       mpc_clear (x);
       mpc_clear (y);
     }

The following function is 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 mpc_set_prec (mpc_t x, mp_prec_t prec)

Reset the precision of x to be exactly prec bits, and set its real/imaginary parts to NaN. The previous value stored in x is lost. It is equivalent to a call to mpc_clear(x) followed by a call to mpc_init2(x, prec), but more efficient as no allocation is done in case the current allocated space for the mantissa of x is sufficient.

— Function: mp_prec_t mpc_get_prec (mpc_t x)

If the real and imaginary part of x have the same precision, it is returned, otherwise, 0 is returned.

— Function: void mpc_get_prec2 (mp_prec_t* pr, mp_prec_t* pi, mpc_t x)

Returns the precision of the real part of x via pr and of its imaginary part via pi.