Integer Arithmetic (GNU MP 6.3.0)
Description: How to install and use the GNU multiple precision arithmetic library, version 6.3.0.

### 5.5 Arithmetic Functions

Function: `void` mpz_add `(mpz_t rop, const mpz_t op1, const mpz_t op2)` ¶
Function: `void` mpz_add_ui `(mpz_t rop, const mpz_t op1, unsigned long int op2)` ¶

  Set rop to op1 + op2.

Function: `void` mpz_sub `(mpz_t rop, const mpz_t op1, const mpz_t op2)` ¶
Function: `void` mpz_sub_ui `(mpz_t rop, const mpz_t op1, unsigned long int op2)` ¶
Function: `void` mpz_ui_sub `(mpz_t rop, unsigned long int op1, const mpz_t op2)` ¶

  Set rop to op1 − op2.

Function: `void` mpz_mul `(mpz_t rop, const mpz_t op1, const mpz_t op2)` ¶
Function: `void` mpz_mul_si `(mpz_t rop, const mpz_t op1, long int op2)` ¶
Function: `void` mpz_mul_ui `(mpz_t rop, const mpz_t op1, unsigned long int op2)` ¶

  Set rop to op1 times op2.

Function: `void` mpz_addmul `(mpz_t rop, const mpz_t op1, const mpz_t op2)` ¶
Function: `void` mpz_addmul_ui `(mpz_t rop, const mpz_t op1, unsigned long int op2)` ¶

  Set rop to rop + op1 times op2.

Function: `void` mpz_submul `(mpz_t rop, const mpz_t op1, const mpz_t op2)` ¶
Function: `void` mpz_submul_ui `(mpz_t rop, const mpz_t op1, unsigned long int op2)` ¶

  Set rop to rop - op1 times op2.

Function: `void` mpz_mul_2exp `(mpz_t rop, const mpz_t op1, mp_bitcnt_t op2)` ¶

  Set rop to op1 times 2 raised to op2. This operation can also be defined as a left shift by op2 bits.

Function: `void` mpz_neg `(mpz_t rop, const mpz_t op)` ¶

  Set rop to −op.

Function: `void` mpz_abs `(mpz_t rop, const mpz_t op)` ¶

  Set rop to the absolute value of op.