这些函数计算 x 的 gamma 函数绝对值的对数。将单独返回函数的符号,因此,这两个函数可用于计算 x 的实际 gamma 函数。
如果结果太大而不能用 double 表示,这两个函数将返回 ERANGE 错误。
ERANGE
如果 x 为零或负整数,这两个函数将返回 EDOM 错误。
x
EDOM
double lgamma(double x);
lgamma 在全局变量 signgam 中返回 x 的 gamma 函数的符号。
lgamma
signgam
double lgamma_r(double x, int *sign)
lgamma_r 在用户变量中返回该符号,用户变量的地址是在 sign 参数中传递的。 在这两种情况下,该值是 +1 或 -1。
lgamma_r
sign