summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2018-09-04 17:00:35 +1000
committerDamien George <damien.p.george@gmail.com>2018-09-04 17:00:35 +1000
commitb9a133e5ad6038ca7008a611966897be732f1416 (patch)
treefe519e3e868f626a68dbcc57b51a32a8eaa33516
parentafc7ddca311e9c5d785537bbadb86cabf8634bea (diff)
lib/libm/wf_tgamma: Fix tgammaf handling of -inf, should return nan.
-rw-r--r--lib/libm/wf_tgamma.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/libm/wf_tgamma.c b/lib/libm/wf_tgamma.c
index 64b2488d1..3ff05f331 100644
--- a/lib/libm/wf_tgamma.c
+++ b/lib/libm/wf_tgamma.c
@@ -35,6 +35,10 @@
{
float y;
int local_signgam;
+ if (!isfinite(x)) {
+ /* special cases: tgammaf(nan)=nan, tgammaf(inf)=inf, tgammaf(-inf)=nan */
+ return x + INFINITY;
+ }
y = expf(__ieee754_lgammaf_r(x,&local_signgam));
if (local_signgam < 0) y = -y;
#ifdef _IEEE_LIBM