math: Expm1 returns -1 with large negative argument.
Fixes #11442
Change-Id: I2053fe752c6a122924d28565f1338f73e00ed417
Reviewed-on: https://go-review.googlesource.com/11791
Reviewed-by: David Chase <drchase@google.com>
Run-TryBot: David Chase <drchase@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Robert Griesemer <gri@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
diff --git a/src/math/expm1.go b/src/math/expm1.go
index 8f56e15..064e131 100644
--- a/src/math/expm1.go
+++ b/src/math/expm1.go
@@ -158,11 +158,11 @@
// filter out huge argument
if absx >= Ln2X56 { // if |x| >= 56 * ln2
- if absx >= Othreshold { // if |x| >= 709.78...
- return Inf(1) // overflow
- }
if sign {
- return -1 // x < -56*ln2, return -1.0
+ return -1 // x < -56*ln2, return -1
+ }
+ if absx >= Othreshold { // if |x| >= 709.78...
+ return Inf(1)
}
}