10
10
* ====================================================
13
#if defined(LIBM_SCCS) && !defined(lint)
14
static char rcsid[] = "$NetBSD: w_lgamma_r.c,v 1.6 1995/05/10 20:49:27 jtc Exp $";
14
18
* wrapper double lgamma_r(double x, int *signgamp)
18
#include <math_private.h>
22
__lgamma_r(double x, int *signgamp)
22
#include "math_private.h"
26
double __lgamma_r(double x, int *signgamp) /* wrapper lgamma_r */
28
double __lgamma_r(x,signgamp) /* wrapper lgamma_r */
29
double x; int *signgamp;
24
double y = __ieee754_lgamma_r(x,signgamp);
25
if(__builtin_expect(!__finite(y), 0)
26
&& __finite(x) && _LIB_VERSION != _IEEE_)
27
return __kernel_standard(x, x,
29
? 15 /* lgamma pole */
30
: 14); /* lgamma overflow */
33
return __ieee754_lgamma_r(x,signgamp);
36
y = __ieee754_lgamma_r(x,signgamp);
37
if(_LIB_VERSION == _IEEE_) return y;
38
if(!__finite(y)&&__finite(x)) {
39
if(__floor(x)==x&&x<=0.0)
40
return __kernel_standard(x,x,15); /* lgamma pole */
42
return __kernel_standard(x,x,14); /* lgamma overflow */
34
47
weak_alias (__lgamma_r, lgamma_r)
35
48
#ifdef NO_LONG_DOUBLE