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]