Actions
Feature #21527
openProposal: Math.log1p and Math.expm1
Status:
Open
Assignee:
-
Target version:
-
Description
Let's add Math.log1p
and Math.expm1
.
-
Math.log1p(x)
: ComputesMath.log(x + 1)
-
Math.expm1(x)
: ComputesMath.exp(x) - 1
These methods are often more accurate than the straightforward computation, especially when x
is close to zero.
# The current approach loses precision
p Math.log(1 + 1.0e-16) #=> 0.0
p Math.exp(1.0e-16) - 1 #=> 0.0
# The proposed methods return the accurate result
p Math.log1p(1.0e-16) #=> 1.0e-16
p Math.expm1(1.0e-16) #=> 1.0e-16
Note that they are very standard; the C99 even defines log1p()
and expm1()
. Other major programming languages (Python, JavaScript, Java, Go, Rust, etc.) also provide them.
No data to display
Actions
Like0