A PHP library to work with big integers. This library makes use of the GMP extension to do its calculations.
Via Composer
$ composer require phpmath/biginteger
There are two ways to create a BigInteger. A mutable or immutable BigInteger.
$number = new PHP\Math\BigInteger\MutableBigInteger('8273467836243255543265432745');
$number = new PHP\Math\BigInteger\ImmutableBigInteger('8273467836243255543265432745');
$a = new PHP\Math\BigInteger\ImmutableBigInteger('12345678901234567890');
$b = new PHP\Math\BigInteger\ImmutableBigInteger('98765432109876543210');
$sum = $a->add($b);
echo $sum->value();
This library provides a wide range of operations for working with big integers using the GMP extension:
- Add, subtract, multiply, and divide large numbers.
- Calculate powers and roots of numbers.
- Perform modulo operations.
- Negate numbers and get absolute values.
- Compare numbers using
cmp()
and check equality withequals()
. - Determine the sign of a number (positive, negative, or zero).
- Perform bitwise AND, OR, XOR, and NOT operations.
- Compute Hamming distance between numbers.
- Calculate factorials.
- Check if numbers are prime or likely prime.
- Compute modular inverses.
- Compute Jacobi, Legendre, and Kronecker symbols.
- Calculate greatest common divisors (GCD) and least common multiples (LCM).
- Check for perfect squares and perfect powers.
- Find the next prime number.
- Compute binomial coefficients.
We keep a changelog for every release, have a look at the releases overview.
$ composer test
To generate code coverage:
$ composer test-coverage
All contributions are welcome. Feel free to create a PR or open an issue.
If you discover any security related issues, please create an issue in the issue tracker.
The MIT License (MIT). Please see License File for more information.