Note that exp(x)-1 can be approximated by x + x^2/2! + ... + x^n/n! and for any value
(PHP 4 >= 4.1.0, PHP 5, PHP 7)
expm1 — Returns exp(number) - 1, computed in a way that is accurate even when the value of number is close to zero
$num
) : float
expm1() returns the equivalent to
'exp(num
) - 1' computed in a way that is
accurate even if the value of num
is near zero,
a case where 'exp (num
) - 1' would be
inaccurate due to subtraction of two numbers that are nearly equal.
num
The argument to process
'e' to the power of num
minus one
Note that exp(x)-1 can be approximated by x + x^2/2! + ... + x^n/n! and for any value
Compare this to log1p (which is its inverse).
Also, You may have to use a similar workaraound in case the underlying C library
does not support expm1:
<?php
function expm1($x) {
return ($x>-1.0e-6 && $x<1.0e-6) ? ($x + $x*$x/2) : (exp($x)-1);
}
?>