3.3 Function Classes

There are six classes of functions in the GMP library:

  1. Functions for signed integer arithmetic, with names beginning with mpz_. The associated type is mpz_t. There are about 150 functions in this class. (see Integer Functions)
  2. Functions for rational number arithmetic, with names beginning with mpq_. The associated type is mpq_t. There are about 35 functions in this class, but the integer functions can be used for arithmetic on the numerator and denominator separately. (see Rational Number Functions)
  3. Functions for floating-point arithmetic, with names beginning with mpf_. The associated type is mpf_t. There are about 70 functions in this class. (see Floating-point Functions)
  4. Fast low-level functions that operate on natural numbers. These are used by the functions in the preceding groups, and you can also call them directly from very time-critical user programs. These functions’ names begin with mpn_. The associated type is array of mp_limb_t. There are about 60 (hard-to-use) functions in this class. (see Low-level Functions)
  5. Miscellaneous functions. Functions for setting up custom allocation and functions for generating random numbers. (see Custom Allocation, and see Random Number Functions)