5.7 Basic Arithmetic Functions
All the following functions are designed in such a way that, when working
with real numbers instead of complex numbers, their complexity should
essentially be the same as with the GNU MPFR library, with only a marginal
overhead due to the GNU MPC layer.
- Function: int mpc_add (mpc_t rop, mpc_t op1, mpc_t op2, mpc_rnd_t rnd)
- Function: int mpc_add_ui (mpc_t rop, mpc_t op1, unsigned long int op2, mpc_rnd_t rnd)
- Function: int mpc_add_fr (mpc_t rop, mpc_t op1, mpfr_t op2, mpc_rnd_t rnd)
Set rop to op1 + op2 rounded according to rnd.
- Function: int mpc_sub (mpc_t rop, mpc_t op1, mpc_t op2, mpc_rnd_t rnd)
- Function: int mpc_sub_fr (mpc_t rop, mpc_t op1, mpfr_t op2, mpc_rnd_t rnd)
- Function: int mpc_fr_sub (mpc_t rop, mpfr_t op1, mpc_t op2, mpc_rnd_t rnd)
- Function: int mpc_sub_ui (mpc_t rop, mpc_t op1, unsigned long int op2, mpc_rnd_t rnd)
- Macro: int mpc_ui_sub (mpc_t rop, unsigned long int op1, mpc_t op2, mpc_rnd_t rnd)
- Function: int mpc_ui_ui_sub (mpc_t rop, unsigned long int re1, unsigned long int im1, mpc_t op2, mpc_rnd_t rnd)
Set rop to op1 - op2 rounded according to rnd.
For mpc_ui_ui_sub
, op1 is re1 + im1.
- Function: int mpc_neg (mpc_t rop, mpc_t op, mpc_rnd_t rnd)
Set rop to -op rounded according to rnd.
Just changes the sign if rop and op are the same variable.
- Function: int mpc_mul (mpc_t rop, mpc_t op1, mpc_t op2, mpc_rnd_t rnd)
- Function: int mpc_mul_ui (mpc_t rop, mpc_t op1, unsigned long int op2, mpc_rnd_t rnd)
- Function: int mpc_mul_si (mpc_t rop, mpc_t op1, long int op2, mpc_rnd_t rnd)
- Function: int mpc_mul_fr (mpc_t rop, mpc_t op1, mpfr_t op2, mpc_rnd_t rnd)
Set rop to op1 times op2 rounded according to rnd.
Note: for mpc_mul
, in case op1 and op2 have the same value,
use mpc_sqr
for better efficiency.
- Function: int mpc_mul_i (mpc_t rop, mpc_t op, int sgn, mpc_rnd_t rnd)
Set rop to op times the imaginary unit i if sgn is
non-negative, set rop to op times -i otherwise,
in both cases rounded according to rnd.
- Function: int mpc_sqr (mpc_t rop, mpc_t op, mpc_rnd_t rnd)
Set rop to the square of op rounded according to rnd.
- Function: int mpc_fma (mpc_t rop, mpc_t op1, mpc_t op2, mpc_t op3, mpc_rnd_t rnd)
Set rop to op1*op2+op3,
rounded according to rnd, with only one final rounding.
- Function: int mpc_div (mpc_t rop, mpc_t op1, mpc_t op2, mpc_rnd_t rnd)
- Function: int mpc_div_ui (mpc_t rop, mpc_t op1, unsigned long int op2, mpc_rnd_t rnd)
- Function: int mpc_div_fr (mpc_t rop, mpc_t op1, mpfr_t op2, mpc_rnd_t rnd)
- Function: int mpc_ui_div (mpc_t rop, unsigned long int op1, mpc_t op2, mpc_rnd_t rnd)
- Function: int mpc_fr_div (mpc_t rop, mpfr_t op1, mpc_t op2, mpc_rnd_t rnd)
Set rop to op1/op2 rounded according to rnd.
- Function: int mpc_conj (mpc_t rop, mpc_t op, mpc_rnd_t rnd)
Set rop to the conjugate of op rounded according to rnd.
Just changes the sign of the imaginary part
if rop and op are the same variable.
- Function: int mpc_abs (mpfr_t rop, mpc_t op, mpfr_rnd_t rnd)
Set the floating-point number rop to the absolute value of op,
rounded in the direction rnd.
- Function: int mpc_norm (mpfr_t rop, mpc_t op, mpfr_rnd_t rnd)
Set the floating-point number rop to the norm of op
(i.e., the square of its absolute value),
rounded in the direction rnd.
- Function: int mpc_mul_2ui (mpc_t rop, mpc_t op1, unsigned long int op2, mpc_rnd_t rnd)
- Function: int mpc_mul_2si (mpc_t rop, mpc_t op1, long int op2, mpc_rnd_t rnd)
Set rop to op1 times 2 raised to op2
rounded according to rnd. Just modifies the exponents
of the real and imaginary parts by op2
when rop and op1 are identical.
- Function: int mpc_div_2ui (mpc_t rop, mpc_t op1, unsigned long int op2, mpc_rnd_t rnd)
- Function: int mpc_div_2si (mpc_t rop, mpc_t op1, long int op2, mpc_rnd_t rnd)
Set rop to op1 divided by 2 raised to op2
rounded according to rnd. Just modifies the exponents
of the real and imaginary parts by op2
when rop and op1 are identical.