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);
}
?>
expm1
(PHP 4 >= 4.1.0, PHP 5)
expm1 — Возвращает exp(number) - 1, рассчитанное таким образом, что результат точен, даже если number близок к нулю.
Описание
float expm1
( float
$arg
)
expm1() возвращает эквивалент выражения
'exp(arg) - 1', рассчитанный таким образом, что
результат точен, даже если значение arg близко к нулю,
тогда как 'exp (arg) - 1' будет неточно
из-за вычитания двух почти равных чисел.
Список параметров
-
arg -
Входное значение
Возвращаемые значения
'e' в степени arg минус один
Список изменений
| Версия | Описание |
|---|---|
| 5.3.0 | Теперь функция доступна на всех платформах |
hagen at von-eitzen dot de ¶
10 years ago
brettz9 AAT yah ¶
4 years ago
Note that exp(x)-1 can be approximated by x + x^2/2! + ... + x^n/n! and for any value
