函式
<cmath> <ctgmath>

lgamma

     double lgamma  (double x);      float lgammaf (float x);long double lgammal (long double x);
     double lgamma (double x);      float lgamma (float x);long double lgamma (long double x);     double lgamma (T x);           // additional overloads for integral types
計算對數伽瑪函式
對數伽瑪函式 返回 x伽瑪函式絕對值的自然對數。

標頭檔案 <tgmath.h> 提供了此函式的型別通用宏版本。
此標頭檔案 (<cmath>) 為整型提供了額外的過載:這些過載在計算前有效地將 x 轉換為 double(為任意整型T 定義)。

引數

x
對數伽瑪函式的引數。

返回值

x 的對數伽瑪函式值。
如果 x 太大,會發生上溢範圍錯誤
如果 x 為零或函式呈漸進的負整數,可能會導致極點錯誤(取決於具體實現)。

如果發生上溢範圍錯誤
- 並且 math_errhandling 設定了 MATH_ERRNO:全域性變數 errno 被設定為 ERANGE
- 並且 math_errhandling 設定了 MATH_ERREXCEPT:將引發 FE_OVERFLOW

如果發生極點錯誤
- 並且 math_errhandling 設定了 MATH_ERRNO:全域性變數 errno 被設定為 ERANGE
- 並且 math_errhandling 設定了 MATH_ERREXCEPT:將引發 FE_DIVBYZERO

示例

1
2
3
4
5
6
7
8
9
10
11
12
/* lgamma example */
#include <stdio.h>      /* printf */
#include <math.h>       /* lgamma */

int main ()
{
  double param, result;
  param = 0.5;
  result = lgamma (param);
  printf ("lgamma(%f) = %f\n", param, result );
  return 0;
}

輸出

lgamma (0.500000) = 0.572365


另見