diff options
| author | Damien George <damien.p.george@gmail.com> | 2018-09-04 17:00:35 +1000 |
|---|---|---|
| committer | Damien George <damien.p.george@gmail.com> | 2018-09-04 17:00:35 +1000 |
| commit | b9a133e5ad6038ca7008a611966897be732f1416 (patch) | |
| tree | fe519e3e868f626a68dbcc57b51a32a8eaa33516 | |
| parent | afc7ddca311e9c5d785537bbadb86cabf8634bea (diff) | |
lib/libm/wf_tgamma: Fix tgammaf handling of -inf, should return nan.
| -rw-r--r-- | lib/libm/wf_tgamma.c | 4 |
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 |
