логарифмическая гамма-функция (log gamma function)
Пролог (Prolog)
This manual page is part of the POSIX Programmer's Manual. The
Linux implementation of this interface may differ (consult the
corresponding Linux manual page for details of Linux behavior),
or the interface may not be implemented on Linux.
Имя (Name)
lgamma, lgammaf, lgammal, signgam — log gamma function
Синопсис (Synopsis)
#include <math.h>
double lgamma(double x);
float lgammaf(float x);
long double lgammal(long double x);
extern int signgam;
Описание (Description)
The functionality described on this reference page is aligned
with the ISO C standard. Any conflict between the requirements
described here and the ISO C standard is unintentional. This
volume of POSIX.1‐2017 defers to the ISO C standard.
These functions shall compute log_e │Γ(x)│ where Γ(x) is defined
as ∞0∫e^ −tt^ x−1dt. The argument x need not be a non-positive
integer (Γ(x) is defined over the reals, except the non-positive
integers).
If x is NaN, -Inf, or a negative integer, the value of signgam is
unspecified.
These functions need not be thread-safe.
An application wishing to check for error situations should set
errno to zero and call feclearexcept(FE_ALL_EXCEPT) before
calling these functions. On return, if errno is non-zero or
fetestexcept(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW |
FE_UNDERFLOW) is non-zero, an error has occurred.
Возвращаемое значение (Return value)
Upon successful completion, these functions shall return the
logarithmic gamma of x.
If x is a non-positive integer, a pole error shall occur and
lgamma(), lgammaf(), and lgammal() shall return +HUGE_VAL,
+HUGE_VALF, and +HUGE_VALL, respectively.
If the correct value would cause overflow, a range error shall
occur and lgamma(), lgammaf(), and lgammal() shall return
±HUGE_VAL, ±HUGE_VALF, and ±HUGE_VALL (having the same sign as
the correct value), respectively.
If x is NaN, a NaN shall be returned.
If x is 1 or 2, +0 shall be returned.
If x is ±Inf, +Inf shall be returned.
Ошибки (Error)
These functions shall fail if:
Pole Error The x argument is a negative integer or zero.
If the integer expression (math_errhandling &
MATH_ERRNO) is non-zero, then errno shall be set to
[ERANGE]
. If the integer expression
(math_errhandling & MATH_ERREXCEPT) is non-zero, then
the divide-by-zero floating-point exception shall be
raised.
Range Error The result overflows.
If the integer expression (math_errhandling &
MATH_ERRNO) is non-zero, then errno shall be set to
[ERANGE]
. If the integer expression
(math_errhandling & MATH_ERREXCEPT) is non-zero, then
the overflow floating-point exception shall be
raised.
The following sections are informative.
Примеры (Examples)
None.
Использование в приложениях (Application usage)
On error, the expressions (math_errhandling & MATH_ERRNO) and
(math_errhandling & MATH_ERREXCEPT) are independent of each
other, but at least one of them must be non-zero.
Обоснование (Rationale)
None.
Будущие направления (Future directions)
None.
Смотри также (See also)
exp(3p), feclearexcept(3p), fetestexcept(3p), isnan(3p)
The Base Definitions volume of POSIX.1‐2017, Section 4.20,
Treatment of Error Conditions for Mathematical Functions,
math.h(0p)