summaryrefslogtreecommitdiff
path: root/libm/w_tgamma.c
diff options
context:
space:
mode:
Diffstat (limited to 'libm/w_tgamma.c')
-rw-r--r--libm/w_tgamma.c24
1 files changed, 11 insertions, 13 deletions
diff --git a/libm/w_tgamma.c b/libm/w_tgamma.c
index 15723c5d6..3ad473b2f 100644
--- a/libm/w_tgamma.c
+++ b/libm/w_tgamma.c
@@ -17,25 +17,23 @@
#include "math.h"
#include "math_private.h"
-libm_hidden_proto(signgam)
double tgamma(double x)
{
double y;
int local_signgam;
- y = __ieee754_gamma_r(x,&local_signgam);
- if (local_signgam < 0) y = -y;
-#ifdef _IEEE_LIBM
- return y;
-#else
- if(_LIB_VERSION == _IEEE_) return y;
- if(!isfinite(y)&&isfinite(x)) {
- if(floor(x)==x&&x<=0.0)
- return __kernel_standard(x,x,41); /* tgamma pole */
- else
- return __kernel_standard(x,x,40); /* tgamma overflow */
+ y = __ieee754_gamma_r(x, &local_signgam);
+ if (local_signgam < 0)
+ y = -y;
+#ifndef _IEEE_LIBM
+ if (_LIB_VERSION == _IEEE_)
+ return y;
+ if (!isfinite(y) && isfinite(x)) {
+ if (floor(x) == x && x <= 0.0)
+ return __kernel_standard(x, x, 41); /* tgamma pole */
+ return __kernel_standard(x, x, 40); /* tgamma overflow */
}
- return y;
#endif
+ return y;
}
libm_hidden_def(tgamma)