OSDN Git Service

934b2237f24f0435381c261da0e17af3ffc2e167
[linuxjm/LDP_man-pages.git] / release / man3 / tgamma.3
1 .\" Copyright 2002 Walter Harms (walter.harms@informatik.uni-oldenburg.de)
2 .\"
3 .\" %%%LICENSE_START(GPL_NOVERSION_ONELINE)
4 .\" Distributed under GPL
5 .\" %%%LICENSE_END
6 .\"
7 .\" Based on glibc infopages
8 .\" and Copyright 2008, Linux Foundation, written by Michael Kerrisk
9 .\"     <mtk.manpages@gmail.com>
10 .\" Modified 2004-11-15, fixed error noted by Fabian Kreutz
11 .\"      <kreutz@dbs.uni-hannover.de>
12 .\"
13 .\"*******************************************************************
14 .\"
15 .\" This file was generated with po4a. Translate the source file.
16 .\"
17 .\"*******************************************************************
18 .\"
19 .\" Japanese Version Copyright (c) 2002 Akihiro MOTOKI
20 .\"         all rights reserved.
21 .\" Translated Sun Sep 22 09:31:52 2002
22 .\"         by Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
23 .\" Updated & Modified Sat Feb 12 12:00:00 2005
24 .\"         by SAITOH Akira <s-akira@users.sourceforge.net>
25 .\" Updated 2008-09-16, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
26 .\"
27 .TH TGAMMA 3 2014\-12\-31 GNU "Linux Programmer's Manual"
28 .SH 名前
29 tgamma, tgammaf, tgammal \- 本当のガンマ関数
30 .SH 書式
31 \fB#include <math.h>\fP
32 .sp
33 \fBdouble tgamma(double \fP\fIx\fP\fB);\fP
34 .br
35 \fBfloat tgammaf(float \fP\fIx\fP\fB);\fP
36 .br
37 \fBlong double tgammal(long double \fP\fIx\fP\fB);\fP
38 .sp
39 \fI\-lm\fP でリンクする。
40 .sp
41 .in -4n
42 glibc 向けの機能検査マクロの要件 (\fBfeature_test_macros\fP(7)  参照):
43 .in
44 .sp
45 .ad l
46 \fBtgamma\fP(), \fBtgammaf\fP(), \fBtgammal\fP():
47 .RS 4
48 _XOPEN_SOURCE\ >=\ 600 || _ISOC99_SOURCE || _POSIX_C_SOURCE\ >=\ 200112L;
49 .br
50 or \fIcc\ \-std=c99\fP
51 .RE
52 .ad
53 .SH 説明
54 ガンマ関数は以下のように定義される:
55 .sp
56      Gamma(x) = t^(x\-1) e^\-t dt の 0 から無限大までの積分
57 .sp
58 この関数は正でない整数を除くすべての実数に対して定義されている。 非負の整数 \fIm\fP に関して、以下が成立する:
59 .sp
60     Gamma(m+1) = m!
61 .sp
62 より一般的には、すべての \fIx\fP に関して以下が成立する:
63 .sp
64     Gamma(x+1) = x * Gamma(x)
65 .sp
66 さらに、極を除くすべての \fIx\fP で次式も成立する:
67 .sp
68     Gamma(x) * Gamma(1 \- x) = PI / sin(PI * x)
69 .PP
70 .SH 返り値
71 成功すると、これらの関数は Gamma(x) を返す。
72
73 \fIx\fP が NaN の場合、NaN が返される。
74
75 \fIx\fP が正の無限大の場合、正の無限大が返される。
76
77 \fIx\fP が負の整数か負の無限大の場合、領域エラー (domain error) が発生し、 NaN が返される。
78
79 結果がオーバーフローする場合、範囲エラー (range error) が発生し、 各関数はそれぞれ \fBHUGE_VAL\fP, \fBHUGE_VALF\fP,
80 \fBHUGE_VALL\fP, を返す。この際、数学的に正しい符号が付与される。
81
82 結果がアンダーフローする場合、範囲エラー (range error) が発生し、 関数は 0 をを返す。この際、数学的に正しい符号が付与される。
83
84 \fIx\fP が \-0 か +0 の場合、極エラー (pole error) が発生し、 各関数はそれぞれ \fBHUGE_VAL\fP,
85 \fBHUGE_VALF\fP, \fBHUGE_VALL\fP, を返す。 0 と同じ符号が付与される。
86 .SH エラー
87 これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は \fBmath_error\fP(7)  を参照のこと。
88 .PP
89 以下のエラーが発生する可能性がある。
90 .TP 
91 領域エラー: \fIx\fP が負の整数か負の無限大
92 \fIerrno\fP に \fBEDOM\fP が設定される。 不正 (invalid) 浮動小数点例外 (\fBFE_INVALID\fP)  が上がる
93 (「バグ」の節を参照)。
94 .TP 
95 極エラー (pole error): \fIx\fP が +0 か \-0
96 \fIerrno\fP に \fBERANGE\fP が設定される。 0 による除算 (divide\-by\-zero) 浮動小数点例外
97 (\fBFE_DIVBYZERO\fP)  が上がる。
98 .TP 
99 範囲エラー (range error): 結果のオーバーフロー
100 \fIerrno\fP に \fBERANGE\fP が設定される。 オーバーフロー浮動小数点例外 (\fBFE_OVERFLOW\fP)  が上がる。
101 .PP
102 glibc では、C99 や POSIX.1\-2001 で規定されていない以下のエラーも 起こり得る。
103 .TP 
104 範囲エラー (range error): 結果のアンダーフロー
105 .\" e.g., tgamma(-172.5) on glibc 2.8/x86-32
106 .\" .I errno
107 .\" is set to
108 .\" .BR ERANGE .
109 アンダーフロー浮動小数点例外 (\fBFE_UNDERFLOW\fP)  が上がる。
110 .IP
111 .\" FIXME . Is it intentional that errno is not set:
112 .\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6810
113 .\"
114 .\" glibc (as at 2.8) also supports and an inexact
115 .\" exception for various cases.
116 この場合は \fIerrno\fP は設定されない。
117 .SH バージョン
118 これらの関数は glibc バージョン 2.1 で初めて登場した。
119 .SH 準拠
120 C99, POSIX.1\-2001.
121 .SH 注意
122 この関数を「本当の (true) ガンマ関数」と呼ばなければならなかった。 なぜなら、他の値を返す \fBgamma\fP(3)
123 という関数がすでに存在するからである (詳細については \fBgamma\fP(3)  を参照)。
124 .SH バグ
125 .\" http://sources.redhat.com/bugzilla/show_bug.cgi?id=6809
126 バージョン 2.18 より前の glibc の実装では、 \fIx\fP が負の無限大の場合、 \fIerrno\fP に \fBEDOM\fP が設定されなかった。
127
128 glibc バージョン 2.3.3 以前では、 引き数に +0 や \-0 を渡すと、極エラーではなく、 領域エラーを間違って発生していた
129 (領域エラーの場合、 \fIerrno\fP に \fBEDOM\fP を設定され、 \fBFE_INVALID\fP 例外が発生する)。
130 .SH 関連項目
131 \fBgamma\fP(3), \fBlgamma\fP(3)
132 .SH この文書について
133 この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.76 の一部
134 である。プロジェクトの説明とバグ報告に関する情報は
135 http://www.kernel.org/doc/man\-pages/ に書かれている。