bcpowmod
Raise an arbitrary precision number to another, reduced by a specified modulus
Description
string bcpowmod(
string $num
,
string $exponent
,
string $modulus
,
intnull $scale
= null
)
Parameters
-
num
-
The base, as an integral string (i.e. the scale has to be zero).
-
exponent
-
The exponent, as an non-negative, integral string (i.e. the scale has to be zero).
-
modulus
-
The modulus, as an integral string (i.e. the scale has to be zero).
-
scale
-
This parameter is used to set the number of digits after the decimal place in the result.
If
null
, it will default to the default scale set with bcscale,
or fallback to the value of the
bcmath.scale
INI directive.
Return Values
Returns the result as a string.
Errors/Exceptions
This function throws a ValueError in the following cases:
num
, exponent
or modulus
is not a well-formed BCMath numeric string
num
, exponent
or modulus
has a fractional part
exponent
is a negative value
scale
is outside the valid range
This function throws a DivisionByZeroError exception if modulus
is 0
.
Examples
The following two statements are functionally identical. The
bcpowmod version however, executes in
less time and can accept larger parameters.
Notes
Note:
Because this method uses the modulus operation, numbers which are not
positive integers may give unexpected results.