Info Node: (gmp.info)Nomenclature and Types

gmp.info: Nomenclature and Types
GMP Basics
Function Classes
Headers and Libraries
Back to Software Index
3.2 Nomenclature and Types
==========================
In this manual, "integer" usually means a multiple precision integer, as
defined by the GMP library. The C data type for such integers is
'mpz_t'. Here are some examples of how to declare such integers:
mpz_t sum;
struct foo { mpz_t x, y; };
mpz_t vec[20];
"Rational number" means a multiple precision fraction. The C data
type for these fractions is 'mpq_t'. For example:
mpq_t quotient;
"Floating point number" or "Float" for short, is an arbitrary
precision mantissa with a limited precision exponent. The C data type
for such objects is 'mpf_t'. For example:
mpf_t fp;
The floating point functions accept and return exponents in the C
type 'mp_exp_t'. Currently this is usually a 'long', but on some
systems it's an 'int' for efficiency.
A "limb" means the part of a multi-precision number that fits in a
single machine word. (We chose this word because a limb of the human
body is analogous to a digit, only larger, and containing several
digits.) Normally a limb is 32 or 64 bits. The C data type for a limb
is 'mp_limb_t'.
Counts of limbs of a multi-precision number represented in the C type
'mp_size_t'. Currently this is normally a 'long', but on some systems
it's an 'int' for efficiency, and on some systems it will be 'long long'
in the future.
Counts of bits of a multi-precision number are represented in the C
type 'mp_bitcnt_t'. Currently this is always an 'unsigned long', but on
some systems it will be an 'unsigned long long' in the future.
"Random state" means an algorithm selection and current state data.
The C data type for such objects is 'gmp_randstate_t'. For example:
gmp_randstate_t rstate;
Also, in general 'mp_bitcnt_t' is used for bit counts and ranges, and
'size_t' is used for byte or character counts.
automatically generated by info2www version 1.2