Ruby 4.1 リファレンスマニュアル

module function Math?.log1p

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 未満の実数を指定した場合に発生します。
p Math.log1p(0)             # => 0.0
p Math.log1p(Math::E - 1)   # => 1.0
p Math.log1p(-1.0)          # => -Infinity
例: 0 に近い値での精度
p Math.log(1 + 1e-16) # => 0.0     (桁落ちして 0 になる)
p Math.log1p(1e-16)   # => 1.0e-16
例: 定義域外
Math.log1p(-2.0) # ~> Math::DomainError

[SEE_ALSO] log1p(3), Math?.log, Math?.expm1