1
/* w_lgammal.c -- long double version of w_lgamma.c.
2
* Conversion to long double by Ulrich Drepper,
3
* Cygnus Support, drepper@cygnus.com.
7
* ====================================================
8
* Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
10
* Developed at SunPro, a Sun Microsystems, Inc. business.
11
* Permission to use, copy, modify, and distribute this
12
* software is freely granted, provided that this notice
14
* ====================================================
17
#if defined(LIBM_SCCS) && !defined(lint)
18
static char rcsid[] = "$NetBSD: $";
21
/* long double lgammal(long double x)
22
* Return the logarithm of the Gamma function of x.
24
* Method: call __ieee754_lgammal_r
28
#include "math_private.h"
31
long double __lgammal(long double x)
33
long double __lgammal(x)
38
return __ieee754_lgammal_r(x,&signgam);
41
int local_signgam = 0;
42
y = __ieee754_lgammal_r(x,&local_signgam);
43
if (_LIB_VERSION != _ISOC_)
44
/* ISO C99 does not define the global variable. */
45
signgam = local_signgam;
46
if(_LIB_VERSION == _IEEE_) return y;
47
if(!__finitel(y)&&__finitel(x)) {
48
if(__floorl(x)==x&&x<=0.0)
49
return __kernel_standard(x,x,215); /* lgamma pole */
51
return __kernel_standard(x,x,214); /* lgamma overflow */
56
weak_alias (__lgammal, lgammal)
57
strong_alias (__lgammal, __gammal)
58
weak_alias (__gammal, gammal)