Simultaneous Float Init & Assign (GNU MP 6.3.0)
Description: How to install and use the GNU multiple precision arithmetic library, version 6.3.0.

### 7.3 Combined Initialization and Assignment Functions ¶

For convenience, GMP provides a parallel series of initialize-and-set functions which initialize the output and then store the value there. These functions’ names have the form `mpf_init_set…`

Once the float has been initialized by any of the `mpf_init_set…` functions, it can be used as the source or destination operand for the ordinary float functions. Don’t use an initialize-and-set function on a variable already initialized!

Function: `void` mpf_init_set `(mpf_t rop, const mpf_t op)` ¶
Function: `void` mpf_init_set_ui `(mpf_t rop, unsigned long int op)` ¶
Function: `void` mpf_init_set_si `(mpf_t rop, signed long int op)` ¶
Function: `void` mpf_init_set_d `(mpf_t rop, double op)` ¶

  Initialize rop and set its value from op.

  The precision of rop will be taken from the active default precision, as set by `mpf_set_default_prec`.

Function: `int` mpf_init_set_str `(mpf_t rop, const char *str, int base)` ¶

  Initialize rop and set its value from the string in str. See `mpf_set_str` above for details on the assignment operation.

  Note that rop is initialized even if an error occurs. (I.e., you have to call `mpf_clear` for it.)

  The precision of rop will be taken from the active default precision, as set by `mpf_set_default_prec`.