名前
tgamma, tgammaf, tgammal - 本当のガンマ関数書式
#include <math.h> double tgamma(double x);glibc
向けの機能検査マクロの要件
( feature_test_macros(7) 参照):
tgamma(), tgammaf(), tgammal():
_ISOC99_SOURCE ||
_POSIX_C_SOURCE >= 200112L
説明
これらの関数は x のガンマ関数を計算する。 ガンマ関数は以下のように定義される:Gamma(x) = t^(x-1) e^-t dt の 0 から無限大までの積分
Gamma(m+1) = m!
より一般的には、すべての
x
に関して以下が成立する:
Gamma(x+1) = x * Gamma(x)
さらに、極を除くすべての
x で次式も成立する:
Gamma(x) * Gamma(1 - x) = PI / sin(PI *
x)
返り値
成功すると、これらの関数は Gamma(x) を返す。 x が NaN の場合、NaN が返される。 x が正の無限大の場合、正の無限大が返される。 x が負の整数か負の無限大の場合、領域エラー (domain error) が発生し、 NaN が返される。 結果がオーバーフローする場合、範囲エラー (range error) が発生し、 各関数はそれぞれ HUGE_VAL, HUGE_VALF, HUGE_VALL, を返す。この際、数学的に正しい符号が付与される。 結果がアンダーフローする場合、範囲エラー (range error) が発生し、 関数は 0 をを返す。この際、数学的に正しい符号が付与される。 x が -0 か +0 の場合、極エラー (pole error) が発生し、 各関数はそれぞれ HUGE_VAL, HUGE_VALF, HUGE_VALL, を返す。 0 と同じ符号が付与される。エラー
これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は math_error(7) を参照のこと。 以下のエラーが発生する可能性がある。- 領域エラー: x が負の整数か負の無限大
- errno に EDOM が設定される。 不正 (invalid) 浮動小数点例外 ( FE_INVALID) が上がる (「バグ」の節を参照)。
- 極エラー (pole error): x が +0 か -0
- errno に ERANGE が設定される。 0 による除算 (divide-by-zero) 浮動小数点例外 ( FE_DIVBYZERO) が上がる。
- 範囲エラー (range error): 結果のオーバーフロー
- errno に ERANGE が設定される。 オーバーフロー浮動小数点例外 ( FE_OVERFLOW) が上がる。
- 範囲エラー (range error): 結果のアンダーフロー
- アンダーフロー浮動小数点例外 ( FE_UNDERFLOW) が上がり、 errno が ERANGE に設定される。
バージョン
これらの関数は glibc バージョン 2.1 で初めて登場した。属性
この節で使用されている用語の説明については、 attributes(7) を参照。インターフェース | 属性 | 値 |
tgamma(), tgammaf(), tgammal() | Thread safety | MT-Safe |
準拠
C99, POSIX.1-2001, POSIX.1-2008.注意
この関数を「本当の (true) ガンマ関数」と呼ばなければならなかった。 なぜなら、他の値を返す gamma(3) という関数がすでに存在するからである (詳細については gamma(3) を参照)。バグ
バージョン 2.18 より前の glibc の実装では、 x が負の無限大の場合、 errno に EDOM が設定されなかった。 glibc 2.19 より前では、これらの関数の glibc 実装はアンダーフロー範囲エラーの場合に errno に ERANGE を設定しなかった。 glibc バージョン 2.3.3 以前では、 引数に +0 や -0 を渡すと、極エラーではなく、 領域エラーを間違って発生していた (領域エラーの場合、 errno に EDOM を設定され、 FE_INVALID 例外が発生する)。関連項目
gamma(3), lgamma(3)この文書について
この man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。2017-09-15 | GNU |