Skip to content

phpmath/biginteger

Repository files navigation

biginteger

Latest Version on Packagist Software License Total Downloads

A PHP library to work with big integers. This library makes use of the GMP extension to do its calculations.

Install

Via Composer

$ composer require phpmath/biginteger

Usage

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();

Features

This library provides a wide range of operations for working with big integers using the GMP extension:

Basic Arithmetic

  • Add, subtract, multiply, and divide large numbers.
  • Calculate powers and roots of numbers.
  • Perform modulo operations.
  • Negate numbers and get absolute values.

Comparison

  • Compare numbers using cmp() and check equality with equals().
  • Determine the sign of a number (positive, negative, or zero).

Bitwise Operations

  • Perform bitwise AND, OR, XOR, and NOT operations.
  • Compute Hamming distance between numbers.

Number Theory

  • 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.

Change log

We keep a changelog for every release, have a look at the releases overview.

Testing

$ composer test

To generate code coverage:

$ composer test-coverage

Contributing

All contributions are welcome. Feel free to create a PR or open an issue.

Security

If you discover any security related issues, please create an issue in the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.

About

A PHP library to work with big integers.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages