log1p(x) -> FloatRuby 4.0 から[permalink][rdoc][edit]-
1 に
xを足した値の自然対数、すなわちlog(x + 1)を返します。xが 0 に近いとき、1 にxを足してから Math?.log を取ると桁落ちによって精度が失われますが、このメソッドはそれを避けて計算します。- [PARAM]
x: - -1 以上の実数
- [EXCEPTION]
TypeError: -
xに数値以外を指定した場合に発生します。 - [EXCEPTION]
RangeError: -
xに実数以外の数値を指定した場合に発生します。 - [EXCEPTION]
Math::DomainError: -
xに -1 未満の実数を指定した場合に発生します。
例: 0 に近い値での精度p Math.log1p(0) # => 0.0 p Math.log1p(Math::E - 1) # => 1.0 p Math.log1p(-1.0) # => -Infinity
例: 定義域外p Math.log(1 + 1e-16) # => 0.0 (桁落ちして 0 になる) p Math.log1p(1e-16) # => 1.0e-16Math.log1p(-2.0) # ~> Math::DomainError[SEE_ALSO] log1p(3), Math?.log, Math?.expm1
- [PARAM]