標準/拡張機能 | C/C++ | 依存項目 |
---|---|---|
XPG4 |
両方 |
#define _XOPEN_SOURCE
#include <math.h>
double lgamma(double x);
extern int signgam;
int *__signgam(void);
#define _ISOC99_SOURCE
#include <math.h>
double lgamma(double x);
float lgammaf(float x);
long double lgammal(long double x);
#define _TR1_C99
#include <math.h>
float lgamma(float x);
long double lgamma(long double x);
の符号は、外部整数 signgam に戻されます。引数 x は正の整数でなければなりません。
関数 | Hex | IEEE |
---|---|---|
lgamma | X | X |
lgammaf | X | X |
lgammal | X | X |
正常に実行された場合、lgamma() はその引数の上記の関数を戻します。
IEEE の特殊な動作: _XOPEN_SOURCE が定義されていて、_ISOC99_SOURCE は定義されていない場合でも、lgamma() は HUGE_VAL を戻し、errno に ERANGE を設定します。
/*
This example uses lgamma() to calculate ln(|G(x)|), where x = 42.
*/
#include <math.h>
#include <stdio.h>
int main(void)
{
double x=42, g_at_x;
g_at_x = exp(lgamma(x)); /* g_at_x = 3.345253e+49 */
printf ("The value of G(%4.2f) is %7.2e¥n", x, g_at_x);
}
The value of G(42.00) is 3.35e+49