lgamma
double lgamma(double);
#define lgamma(x) __tg_simple(x, lgamma)
PROTO_NORMAL(lgamma);
DEF_STD(lgamma);
LDBL_MAYBE_CLONE(lgamma);
{"lgamma", lgamma, &NAN, &NAN, 0},
{"lgamma", lgamma, &INF, &INF, 0},
{"lgamma", lgamma, &MONE, &INF, 0},
{"lgamma", lgamma, &ZERO, &INF, 0},
{"lgamma", lgamma, &MINF, &INF, 0},
double lgamma (double);
double exp( double x ), lgamma( double x );
t = exp(lgamma(x)); return(t*signgam); }
#define F lgamma
assert(isnan(lgamma(NAN)));
assert(lgamma(-HUGE_VAL) == HUGE_VAL && signgam == 1);
assert(lgamma(HUGE_VAL) == HUGE_VAL && signgam == 1);
assert(lgamma(-0.0) == HUGE_VAL && signgam == -1);
assert(lgamma(0.0) == HUGE_VAL && signgam == 1);
assert(lgamma(1.0) == 0.0 && signgam == 1);
assert(fabs(lgamma(3.0) - M_LN2) < DBL_EPSILON && signgam == 1);