class PHP64 extends PHP (View source)

Pure-PHP 64-bit Engine.

Uses 64-bit integers if int size is 8 bits

Constants

VALUE

$result[self::VALUE] contains the value.

SIGN

$result[self::SIGN] contains the sign.

KARATSUBA_CUTOFF

Karatsuba Cutoff

At what point do we switch between Karatsuba multiplication and schoolbook long multiplication?

FAST_BITWISE

Can Bitwise operations be done fast?

ENGINE_DIR

Engine Directory

BASE

BASE_FULL

MAX_DIGIT

MSB

MAX10

MAX10 in greatest MAX10LEN satisfying MAX10 = 10MAX10LEN <= 2BASE.

MAX10LEN

MAX10LEN in greatest MAX10LEN satisfying MAX10 = 10MAX10LEN <= 2BASE.

MAX_DIGIT2

Properties

protected mixed $value Holds the BigInteger's value from  Engine
protected bool $is_negative Holds the BigInteger's sign from  Engine
protected $precision Precision from  Engine
protected $bitmask Precision Bitmask from  Engine
protected callable $reduce Recurring Modulo Function from  Engine
static protected string $modexpEngine Modular Exponentiation Engine
static protected bool $isValidEngine Engine Validity Flag
static protected array $primes Primes > 2 and < 1000
static protected PHP64 $zero BigInteger(0)
static protected PHP64 $one BigInteger(1)
static protected PHP64 $two BigInteger(2)

Methods

__construct(mixed $x = 0, int $base = 10)

Default constructor

from  PHP
static 
setModExpEngine(string $engine)

Sets engine type.

from  Engine
string
toBytesHelper()

Converts a BigInteger to a byte string (eg. base-256).

from  Engine
string
toHex(bool $twos_compliment = false)

Converts a BigInteger to a hex string (eg. base-16).

from  Engine
string
toBits(bool $twos_compliment = false)

Converts a BigInteger to a bit string (eg. base-2).

from  Engine
Engine|false
modInverseHelper(Engine $n)

Calculates modular inverses.

from  Engine
string
serialize()

Serialize

from  Engine
unserialize(string $serialized)

Serialize

from  Engine
string
__toString()

Converts a BigInteger to a base-10 number.

from  Engine
__debugInfo()

__debugInfo() magic method

from  Engine
setPrecision(int $bits)

Set Precision

from  Engine
int
getPrecision()

Get Precision

from  Engine
static Engine
setBitmask(int $bits)

Set Bitmask

from  Engine
Engine|string
bitwise_not()

Logical Not

from  Engine
static string
base256_lshift(string $x, int $shift)

Logical Left Shift

from  Engine
bitwise_leftRotate(int $shift)

Logical Left Rotate

from  Engine
bitwise_rightRotate(int $shift)

Logical Right Rotate

from  Engine
static Engine[]
minMaxBits(int $bits)

Returns the smallest and largest n-bit number

from  Engine
int
getLength()

Return the size of a BigInteger in bits

from  Engine
int
getLengthInBytes()

Return the size of a BigInteger in bytes

from  Engine
bool|Engine
powModOuter(Engine $e, Engine $n)

Performs some pre-processing for powMod

from  Engine
static Engine
slidingWindow(Engine $x, Engine $e, Engine $n, string $class)

Sliding Window k-ary Modular Exponentiation

from  Engine
static Engine
random(int $size)

Generates a random number of a certain size

from  Engine
static Engine
randomPrime(int $size)

Generates a random prime number of a certain size

from  Engine
static bool|Engine
randomRangePrimeOuter(Engine $min, Engine $max)

Performs some pre-processing for randomRangePrime

from  Engine
static Engine
randomRangeHelper(Engine $min, Engine $max)

Generate a random number between a range

from  Engine
static bool|Engine
randomRangePrimeInner(Engine $x, Engine $min, Engine $max)

Performs some post-processing for randomRangePrime

from  Engine
int
setupIsPrime()

Sets the $t parameter for primality testing

from  Engine
bool
testPrimality(int $t)

Tests Primality

from  Engine
bool
isPrime(int|bool $t = false)

Checks a numer to see if it's prime

from  Engine
rootHelper(int $n)

Performs a few preliminary checks on root

from  Engine
rootInner(int $n)

Calculates the nth root of a biginteger.

from  Engine
Engine
root(int $n = 2)

Calculates the nth root of a biginteger.

from  Engine
static Engine
minHelper(array $nums)

Return the minimum BigInteger between an arbitrary number of BigIntegers.

from  Engine
static Engine
maxHelper(array $nums)

Return the minimum BigInteger between an arbitrary number of BigIntegers.

from  Engine
callable
createRecurringModuloFunction()

Create Recurring Modulo Function

from  Engine
Engine
extendedGCDHelper(Engine $n, Engine $stop = null)

Calculates the greatest common divisor and Bezout's identity.

from  Engine
Engine[]
bitwise_split(int $split)

Bitwise Split

from  PHP
Engine
bitwiseAndHelper(Engine $x)

Logical And

from  Engine
Engine
bitwiseOrHelper(Engine $x)

Logical Or

from  Engine
Engine
bitwiseXorHelper(Engine $x)

Logical Exclusive Or

from  Engine
initialize(int $base)

Initialize a PHP64 BigInteger Engine instance

string
pad(string $str)

Pads strings so that unpack may be used on them

from  PHP
string
toString()

Converts a BigInteger to a base-10 number.

from  PHP
string
toBytes(bool $twos_compliment = false)

Converts a BigInteger to a byte string (eg. base-256).

from  PHP
static array
addHelper(array $x_value, bool $x_negative, array $y_value, bool $y_negative)

Performs addition.

from  PHP
static array
subtractHelper(array $x_value, bool $x_negative, array $y_value, bool $y_negative)

Performs subtraction.

from  PHP
static array
multiplyHelper(array $x_value, bool $x_negative, array $y_value, bool $y_negative)

Performs multiplication.

from  PHP
static array
regularMultiply(array $x_value, array $y_value)

Performs long multiplication on two BigIntegers

from  PHP
array
divideHelper(PHP $y)

Divides two BigIntegers.

from  PHP
convertToObj(array $arr)

No description

from  PHP
PHP
normalize(PHP $result)

Normalize

from  PHP
static 
compareHelper(array $x_value, $x_negative, array $y_value, $y_negative)

No description

from  PHP
PHP
abs()

Absolute value.

from  PHP
static PHP
trim(array $value)

Trim

from  PHP
PHP
bitwise_rightShift(int $shift)

Logical Right Shift

from  PHP
PHP
bitwise_leftShift(int $shift)

Logical Left Shift

from  PHP
static array
array_repeat(int $input, int $multiplier)

Array Repeat

from  PHP
lshift(int $shift)

Logical Left Shift

from  PHP
rshift(int $shift)

Logical Right Shift

from  PHP
PHP
powModInner(PHP $e, PHP $n)

Performs modular exponentiation.

from  PHP
static array
square(array $x)

Performs squaring

from  PHP
static array
baseSquare(array $value)

Performs traditional squaring on two BigIntegers

from  PHP
static array
karatsubaSquare(array $value)

Performs Karatsuba "squaring" on two BigIntegers

from  PHP
make_odd()

Make the current number odd

from  PHP
testSmallPrimes()

Test the number against small primes.

from  PHP
static int
scan1divide(PHP $r)

Scan for 1 and right shift by that amount

from  PHP
PHP
powHelper(PHP $n)

Performs exponentiation.

from  PHP
bool
isOdd()

Is Odd?

from  PHP
bool
testBit($x)

Tests if a bit is set

from  PHP
bool
isNegative()

Is Negative?

from  PHP
BigInteger
negate()

Negate

from  PHP
static bool
isValidEngine()

Test for engine validity

PHP64
add(PHP64 $y)

Adds two BigIntegers.

PHP64
subtract(PHP64 $y)

Subtracts two BigIntegers.

PHP64
multiply(PHP64 $y)

Multiplies two BigIntegers.

PHP64
divide(PHP64 $y)

Divides two BigIntegers.

false|PHP64
modInverse(PHP64 $n)

Calculates modular inverses.

PHP64[]
extendedGCD(PHP64 $n)

Calculates modular inverses.

PHP64
gcd(PHP64 $n)

Calculates the greatest common divisor

PHP64
bitwise_and(PHP64 $x)

Logical And

PHP64
bitwise_or(PHP64 $x)

Logical Or

PHP64
bitwise_xor(PHP64 $x)

Logical Exclusive Or

int
compare(PHP64 $y)

Compares two numbers.

bool
equals(PHP64 $x)

Tests the equality of two numbers.

PHP64
modPow(PHP64 $e, PHP64 $n)

Performs modular exponentiation.

PHP64
powMod(PHP64 $e, PHP64 $n)

Performs modular exponentiation.

static false|PHP64
randomRangePrime(PHP64 $min, PHP64 $max)

Generate a random prime number between a range

static PHP64
randomRange(PHP64 $min, PHP64 $max)

Generate a random number between a range

PHP64
pow(PHP64 $n)

Performs exponentiation.

static PHP64
min(PHP64 ...$nums)

Return the minimum BigInteger between an arbitrary number of BigIntegers.

static PHP64
max(PHP64 ...$nums)

Return the maximum BigInteger between an arbitrary number of BigIntegers.

bool
between(PHP64 $min, PHP64 $max)

Tests BigInteger to see if it is between two integers, inclusive

Details

__construct(mixed $x = 0, int $base = 10)

Default constructor

Parameters

mixed $x integer Base-10 number or base-$base number if $base set.
int $base

See also

\parent::__construct()

static setModExpEngine(string $engine)

Sets engine type.

Throws an exception if the type is invalid

Parameters

string $engine

protected string toBytesHelper()

Converts a BigInteger to a byte string (eg. base-256).

Negative numbers are saved as positive numbers, unless $twos_compliment is set to true, at which point, they're saved as two's compliment.

Return Value

string

string toHex(bool $twos_compliment = false)

Converts a BigInteger to a hex string (eg. base-16).

Parameters

bool $twos_compliment

Return Value

string

string toBits(bool $twos_compliment = false)

Converts a BigInteger to a bit string (eg. base-2).

Negative numbers are saved as positive numbers, unless $twos_compliment is set to true, at which point, they're saved as two's compliment.

Parameters

bool $twos_compliment

Return Value

string

protected Engine|false modInverseHelper(Engine $n)

Calculates modular inverses.

Say you have (30 mod 17 * x mod 17) mod 17 == 1. x can be found using modular inverses.

{@internal See {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=21 HAC 14.64} for more information.}

Parameters

Engine $n

Return Value

Engine|false

string serialize()

Serialize

Will be called, automatically, when serialize() is called on a BigInteger object.

Return Value

string

unserialize(string $serialized)

Serialize

Will be called, automatically, when unserialize() is called on a BigInteger object.

Parameters

string $serialized

string __toString()

Converts a BigInteger to a base-10 number.

Return Value

string

__debugInfo()

__debugInfo() magic method

Will be called, automatically, when print_r() or var_dump() are called

setPrecision(int $bits)

Set Precision

Some bitwise operations give different results depending on the precision being used. Examples include left shift, not, and rotates.

Parameters

int $bits

int getPrecision()

Get Precision

Returns the precision if it exists, -1 if it doesn't

Return Value

int

static protected Engine setBitmask(int $bits)

Set Bitmask

Parameters

int $bits

Return Value

Engine

See also

\self::setPrecision()

Engine|string bitwise_not()

Logical Not

Return Value

Engine|string

static protected string base256_lshift(string $x, int $shift)

Logical Left Shift

Shifts binary strings $shift bits, essentially multiplying by 2**$shift.

Parameters

string $x
int $shift

Return Value

string

Engine bitwise_leftRotate(int $shift)

Logical Left Rotate

Instead of the top x bits being dropped they're appended to the shifted bit string.

Parameters

int $shift

Return Value

Engine

Engine bitwise_rightRotate(int $shift)

Logical Right Rotate

Instead of the bottom x bits being dropped they're prepended to the shifted bit string.

Parameters

int $shift

Return Value

Engine

static Engine[] minMaxBits(int $bits)

Returns the smallest and largest n-bit number

Parameters

int $bits

Return Value

Engine[]

int getLength()

Return the size of a BigInteger in bits

Return Value

int

int getLengthInBytes()

Return the size of a BigInteger in bytes

Return Value

int

protected bool|Engine powModOuter(Engine $e, Engine $n)

Performs some pre-processing for powMod

Parameters

Engine $e
Engine $n

Return Value

bool|Engine

static protected Engine slidingWindow(Engine $x, Engine $e, Engine $n, string $class)

Sliding Window k-ary Modular Exponentiation

Based on {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=27 HAC 14.85} / {@link http://math.libtomcrypt.com/files/tommath.pdf#page=210 MPM 7.7}. In a departure from those algorithims, however, this function performs a modular reduction after every multiplication and squaring operation. As such, this function has the same preconditions that the reductions being used do.

Parameters

Engine $x
Engine $e
Engine $n
string $class

Return Value

Engine

static Engine random(int $size)

Generates a random number of a certain size

Bit length is equal to $size

Parameters

int $size

Return Value

Engine

static Engine randomPrime(int $size)

Generates a random prime number of a certain size

Bit length is equal to $size

Parameters

int $size

Return Value

Engine

static protected bool|Engine randomRangePrimeOuter(Engine $min, Engine $max)

Performs some pre-processing for randomRangePrime

Parameters

Engine $min
Engine $max

Return Value

bool|Engine

static protected Engine randomRangeHelper(Engine $min, Engine $max)

Generate a random number between a range

Returns a random number between $min and $max where $min and $max can be defined using one of the two methods:

BigInteger::randomRange($min, $max) BigInteger::randomRange($max, $min)

Parameters

Engine $min
Engine $max

Return Value

Engine

static protected bool|Engine randomRangePrimeInner(Engine $x, Engine $min, Engine $max)

Performs some post-processing for randomRangePrime

Parameters

Engine $x
Engine $min
Engine $max

Return Value

bool|Engine

protected int setupIsPrime()

Sets the $t parameter for primality testing

Return Value

int

protected bool testPrimality(int $t)

Tests Primality

Uses the {@link http://en.wikipedia.org/wiki/Miller%E2%80%93Rabin_primality_test Miller-Rabin primality test}. See {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap4.pdf#page=8 HAC 4.24} for more info.

Parameters

int $t

Return Value

bool

bool isPrime(int|bool $t = false)

Checks a numer to see if it's prime

Assuming the $t parameter is not set, this function has an error rate of 2**-80. The main motivation for the $t parameter is distributability. BigInteger::randomPrime() can be distributed across multiple pageloads on a website instead of just one.

Parameters

int|bool $t

Return Value

bool

protected Engine rootHelper(int $n)

Performs a few preliminary checks on root

Parameters

int $n

Return Value

Engine

protected Engine rootInner(int $n)

Calculates the nth root of a biginteger.

Returns the nth root of a positive biginteger, where n defaults to 2

{@internal This function is based off of {@link http://mathforum.org/library/drmath/view/52605.html this page} and {@link http://stackoverflow.com/questions/11242920/calculating-nth-root-with-bcmath-in-php this stackoverflow question}.}

Parameters

int $n

Return Value

Engine

Engine root(int $n = 2)

Calculates the nth root of a biginteger.

Parameters

int $n

Return Value

Engine

static protected Engine minHelper(array $nums)

Return the minimum BigInteger between an arbitrary number of BigIntegers.

Parameters

array $nums

Return Value

Engine

static protected Engine maxHelper(array $nums)

Return the minimum BigInteger between an arbitrary number of BigIntegers.

Parameters

array $nums

Return Value

Engine

callable createRecurringModuloFunction()

Create Recurring Modulo Function

Sometimes it may be desirable to do repeated modulos with the same number outside of modular exponentiation

Return Value

callable

protected Engine extendedGCDHelper(Engine $n, Engine $stop = null)

Calculates the greatest common divisor and Bezout's identity.

Parameters

Engine $n
Engine $stop (optional)

Return Value

Engine

Engine[] bitwise_split(int $split)

Bitwise Split

Splits BigInteger's into chunks of $split bits

Parameters

int $split

Return Value

Engine[]

protected Engine bitwiseAndHelper(Engine $x)

Logical And

Parameters

Engine $x

Return Value

Engine

protected Engine bitwiseOrHelper(Engine $x)

Logical Or

Parameters

Engine $x

Return Value

Engine

protected Engine bitwiseXorHelper(Engine $x)

Logical Exclusive Or

Parameters

Engine $x

Return Value

Engine

protected initialize(int $base)

Initialize a PHP64 BigInteger Engine instance

Parameters

int $base

See also

\parent::initialize()

protected string pad(string $str)

Pads strings so that unpack may be used on them

Parameters

string $str

Return Value

string

string toString()

Converts a BigInteger to a base-10 number.

Return Value

string

string toBytes(bool $twos_compliment = false)

Converts a BigInteger to a byte string (eg. base-256).

Parameters

bool $twos_compliment

Return Value

string

static protected array addHelper(array $x_value, bool $x_negative, array $y_value, bool $y_negative)

Performs addition.

Parameters

array $x_value
bool $x_negative
array $y_value
bool $y_negative

Return Value

array

static array subtractHelper(array $x_value, bool $x_negative, array $y_value, bool $y_negative)

Performs subtraction.

Parameters

array $x_value
bool $x_negative
array $y_value
bool $y_negative

Return Value

array

static protected array multiplyHelper(array $x_value, bool $x_negative, array $y_value, bool $y_negative)

Performs multiplication.

Parameters

array $x_value
bool $x_negative
array $y_value
bool $y_negative

Return Value

array

static protected array regularMultiply(array $x_value, array $y_value)

Performs long multiplication on two BigIntegers

Modeled after 'multiply' in MutableBigInteger.java.

Parameters

array $x_value
array $y_value

Return Value

array

protected array divideHelper(PHP $y)

Divides two BigIntegers.

Returns an array whose first element contains the quotient and whose second element contains the "common residue". If the remainder would be positive, the "common residue" and the remainder are the same. If the remainder would be negative, the "common residue" is equal to the sum of the remainder and the divisor (basically, the "common residue" is the first positive modulo).

Parameters

PHP $y

Return Value

array

protected convertToObj(array $arr)

Parameters

array $arr

protected PHP normalize(PHP $result)

Normalize

Removes leading zeros and truncates (if necessary) to maintain the appropriate precision

Parameters

PHP $result

Return Value

PHP

static protected compareHelper(array $x_value, $x_negative, array $y_value, $y_negative)

Parameters

array $x_value
$x_negative
array $y_value
$y_negative

PHP abs()

Absolute value.

Return Value

PHP

static protected PHP trim(array $value)

Trim

Removes leading zeros

Parameters

array $value

Return Value

PHP

PHP bitwise_rightShift(int $shift)

Logical Right Shift

Shifts BigInteger's by $shift bits, effectively dividing by 2**$shift.

Parameters

int $shift

Return Value

PHP

PHP bitwise_leftShift(int $shift)

Logical Left Shift

Shifts BigInteger's by $shift bits, effectively multiplying by 2**$shift.

Parameters

int $shift

Return Value

PHP

static protected array array_repeat(int $input, int $multiplier)

Array Repeat

Parameters

int $input
int $multiplier

Return Value

array

protected lshift(int $shift)

Logical Left Shift

Shifts BigInteger's by $shift bits.

Parameters

int $shift

protected rshift(int $shift)

Logical Right Shift

Shifts BigInteger's by $shift bits.

Parameters

int $shift

protected PHP powModInner(PHP $e, PHP $n)

Performs modular exponentiation.

Parameters

PHP $e
PHP $n

Return Value

PHP

static protected array square(array $x)

Performs squaring

Parameters

array $x

Return Value

array

static protected array baseSquare(array $value)

Performs traditional squaring on two BigIntegers

Squaring can be done faster than multiplying a number by itself can be. See {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=7 HAC 14.2.4} / {@link http://math.libtomcrypt.com/files/tommath.pdf#page=141 MPM 5.3} for more information.

Parameters

array $value

Return Value

array

static protected array karatsubaSquare(array $value)

Performs Karatsuba "squaring" on two BigIntegers

See {@link http://en.wikipedia.org/wiki/Karatsuba_algorithm Karatsuba algorithm} and {@link http://math.libtomcrypt.com/files/tommath.pdf#page=151 MPM 5.3.4}.

Parameters

array $value

Return Value

array

protected make_odd()

Make the current number odd

If the current number is odd it'll be unchanged. If it's even, one will be added to it.

See also

\self::randomPrime()

protected testSmallPrimes()

Test the number against small primes.

See also

\self::isPrime()

static int scan1divide(PHP $r)

Scan for 1 and right shift by that amount

ie. $s = gmp_scan1($n, 0) and $r = gmp_div_q($n, gmp_pow(gmp_init('2'), $s));

Parameters

PHP $r

Return Value

int

See also

\self::isPrime()

protected PHP powHelper(PHP $n)

Performs exponentiation.

Parameters

PHP $n

Return Value

PHP

bool isOdd()

Is Odd?

Return Value

bool

bool testBit($x)

Tests if a bit is set

Parameters

$x

Return Value

bool

bool isNegative()

Is Negative?

Return Value

bool

BigInteger negate()

Negate

Given $k, returns -$k

Return Value

BigInteger

static bool isValidEngine()

Test for engine validity

Return Value

bool

See also

\parent::__construct()

PHP64 add(PHP64 $y)

Adds two BigIntegers.

Parameters

PHP64 $y

Return Value

PHP64

PHP64 subtract(PHP64 $y)

Subtracts two BigIntegers.

Parameters

PHP64 $y

Return Value

PHP64

PHP64 multiply(PHP64 $y)

Multiplies two BigIntegers.

Parameters

PHP64 $y

Return Value

PHP64

PHP64 divide(PHP64 $y)

Divides two BigIntegers.

Returns an array whose first element contains the quotient and whose second element contains the "common residue". If the remainder would be positive, the "common residue" and the remainder are the same. If the remainder would be negative, the "common residue" is equal to the sum of the remainder and the divisor (basically, the "common residue" is the first positive modulo).

Parameters

PHP64 $y

Return Value

PHP64

false|PHP64 modInverse(PHP64 $n)

Calculates modular inverses.

Say you have (30 mod 17 * x mod 17) mod 17 == 1. x can be found using modular inverses.

Parameters

PHP64 $n

Return Value

false|PHP64

PHP64[] extendedGCD(PHP64 $n)

Calculates modular inverses.

Say you have (30 mod 17 * x mod 17) mod 17 == 1. x can be found using modular inverses.

Parameters

PHP64 $n

Return Value

PHP64[]

PHP64 gcd(PHP64 $n)

Calculates the greatest common divisor

Say you have 693 and 609. The GCD is 21.

Parameters

PHP64 $n

Return Value

PHP64

PHP64 bitwise_and(PHP64 $x)

Logical And

Parameters

PHP64 $x

Return Value

PHP64

PHP64 bitwise_or(PHP64 $x)

Logical Or

Parameters

PHP64 $x

Return Value

PHP64

PHP64 bitwise_xor(PHP64 $x)

Logical Exclusive Or

Parameters

PHP64 $x

Return Value

PHP64

int compare(PHP64 $y)

Compares two numbers.

Although one might think !$x->compare($y) means $x != $y, it, in fact, means the opposite. The reason for this is demonstrated thusly:

$x > $y: $x->compare($y) > 0 $x < $y: $x->compare($y) < 0 $x == $y: $x->compare($y) == 0

Note how the same comparison operator is used. If you want to test for equality, use $x->equals($y).

{@internal Could return $this->subtract($x), but that's not as fast as what we do do.}

Parameters

PHP64 $y

Return Value

int in case < 0 if $this is less than $y; > 0 if $this is greater than $y, and 0 if they are equal.

See also

\self::equals()

bool equals(PHP64 $x)

Tests the equality of two numbers.

If you need to see if one number is greater than or less than another number, use BigInteger::compare()

Parameters

PHP64 $x

Return Value

bool

PHP64 modPow(PHP64 $e, PHP64 $n)

Performs modular exponentiation.

Parameters

PHP64 $e
PHP64 $n

Return Value

PHP64

PHP64 powMod(PHP64 $e, PHP64 $n)

Performs modular exponentiation.

Alias for modPow().

Parameters

PHP64 $e
PHP64 $n

Return Value

PHP64

static false|PHP64 randomRangePrime(PHP64 $min, PHP64 $max)

Generate a random prime number between a range

If there's not a prime within the given range, false will be returned.

Parameters

PHP64 $min
PHP64 $max

Return Value

false|PHP64

static PHP64 randomRange(PHP64 $min, PHP64 $max)

Generate a random number between a range

Returns a random number between $min and $max where $min and $max can be defined using one of the two methods:

BigInteger::randomRange($min, $max) BigInteger::randomRange($max, $min)

Parameters

PHP64 $min
PHP64 $max

Return Value

PHP64

PHP64 pow(PHP64 $n)

Performs exponentiation.

Parameters

PHP64 $n

Return Value

PHP64

static PHP64 min(PHP64 ...$nums)

Return the minimum BigInteger between an arbitrary number of BigIntegers.

Parameters

PHP64 ...$nums

Return Value

PHP64

static PHP64 max(PHP64 ...$nums)

Return the maximum BigInteger between an arbitrary number of BigIntegers.

Parameters

PHP64 ...$nums

Return Value

PHP64

bool between(PHP64 $min, PHP64 $max)

Tests BigInteger to see if it is between two integers, inclusive

Parameters

PHP64 $min
PHP64 $max

Return Value

bool