mirror of
https://github.com/golang/go
synced 2024-11-18 09:14:43 -07:00
math: speed up Gamma(+Inf)
Add special case for Gamma(+∞) which speeds it up: benchmark old ns/op new ns/op delta BenchmarkGamma-4 14.5 7.44 -48.69% The documentation for math.Gamma already specifies it as a special case: Gamma(+Inf) = +Inf The original C code that has been used as the reference implementation (as mentioned in the comments in gamma.go) also treats Gamma(+∞) as a special case: if( x == INFINITY ) return(x); Change-Id: Idac36e19192b440475aec0796faa2d2c7f8abe0b Reviewed-on: https://go-review.googlesource.com/31370 Reviewed-by: Robert Griesemer <gri@golang.org>
This commit is contained in:
parent
97b04152bc
commit
7eed848a17
@ -133,6 +133,8 @@ func Gamma(x float64) float64 {
|
||||
switch {
|
||||
case isNegInt(x) || IsInf(x, -1) || IsNaN(x):
|
||||
return NaN()
|
||||
case IsInf(x, 1):
|
||||
return Inf(1)
|
||||
case x == 0:
|
||||
if Signbit(x) {
|
||||
return Inf(-1)
|
||||
|
Loading…
Reference in New Issue
Block a user