GNU Multiple Precision
Introduction
These functions allow for arbitrary-length integers to be worked with using the GNU MP library.
Note:
Most GMP functions accept GMP number arguments. These are shown in this documentation as GMP objects. Most of these functions will also accept numeric and string arguments, so long as it is possible to convert the latter to a number. Also, if there is a more performant function that can operate on the arguments (integers only), then it will be used instead (this is done transparently). See also the gmp_init() function.
Note:
The arithmetic, bitwise, and comparison operators may be used with the GMP objects returned from gmp_init() and other GMP functions.
Large integers must be specified as strings - otherwise, PHP will coerce them to floats, resulting in a loss of precision.
- Installing/Configuring
- Predefined Constants
- Examples
- GMP Functions
- gmp_abs — Absolute value
- gmp_add — Add numbers
- gmp_and — Bitwise AND
- gmp_binomial — Calculates binomial coefficient
- gmp_clrbit — Clear bit
- gmp_cmp — Compare numbers
- gmp_com — Calculates one's complement
- gmp_div — Alias of gmp_div_q
- gmp_div_q — Divide numbers
- gmp_div_qr — Divide numbers and get quotient and remainder
- gmp_div_r — Remainder of the division of numbers
- gmp_divexact — Exact division of numbers
- gmp_export — Export to a binary string
- gmp_fact — Factorial
- gmp_gcd — Calculate GCD
- gmp_gcdext — Calculate GCD and multipliers
- gmp_hamdist — Hamming distance
- gmp_import — Import from a binary string
- gmp_init — Create GMP number
- gmp_intval — Convert GMP number to integer
- gmp_invert — Inverse by modulo
- gmp_jacobi — Jacobi symbol
- gmp_kronecker — Kronecker symbol
- gmp_lcm — Calculate LCM
- gmp_legendre — Legendre symbol
- gmp_mod — Modulo operation
- gmp_mul — Multiply numbers
- gmp_neg — Negate number
- gmp_nextprime — Find next prime number
- gmp_or — Bitwise OR
- gmp_perfect_power — Perfect power check
- gmp_perfect_square — Perfect square check
- gmp_popcount — Population count
- gmp_pow — Raise number into power
- gmp_powm — Raise number into power with modulo
- gmp_prob_prime — Check if number is "probably prime"
- gmp_random — Random number
- gmp_random_bits — Random number
- gmp_random_range — Get a uniformly selected integer
- gmp_random_seed — Sets the RNG seed
- gmp_root — Take the integer part of nth root
- gmp_rootrem — Take the integer part and remainder of nth root
- gmp_scan0 — Scan for 0
- gmp_scan1 — Scan for 1
- gmp_setbit — Set bit
- gmp_sign — Sign of number
- gmp_sqrt — Calculate square root
- gmp_sqrtrem — Square root with remainder
- gmp_strval — Convert GMP number to string
- gmp_sub — Subtract numbers
- gmp_testbit — Tests if a bit is set
- gmp_xor — Bitwise XOR
- GMP — The GMP class
- GMP::__construct — Create GMP number
- GMP::__serialize — Serializes the GMP object
- GMP::__unserialize — Deserializes the data parameter into a GMP object