Man page - lgamma_r(3)

Packages contains this manual

Available languages:

en fr ja ro de

Manual

LGAMMA

名 前
書 式
説 明
返 り 値
エ ラ ー
準 拠
バ グ
関 連 項 目
こ の 文 書 に つ い て

名 前

lgamma, lgammaf, lgammal, lgamma_r, lgammaf_r, lgammal_r, signgam - ガ ン マ 関 数 の 対 数 を 計 算 す る

書 式

#include <math.h>

double lgamma(double x );
float lgammaf(float
x );
long double lgammal(long double
x );

double lgamma_r(double x , int * signp );
float lgammaf_r(float
x , int * signp );
long double lgammal_r(long double
x , int * signp );

extern int signgam ;

-lm で リ ン ク す る 。

glibc 向 け の 機 能 検 査 マ ク ロ の 要 件 ( feature_test_macros (7) 参 照 ):

lgamma ():

_ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE
|| /* Since glibc 2.19: */ _DEFAULT_SOURCE
|| /* Glibc versions <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

lgammaf (), lgammal ():

_ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L
|| /* Since glibc 2.19: */ _DEFAULT_SOURCE
|| /* Glibc versions <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

lgamma_r (), lgammaf_r (), lgammal_r ():

/* Since glibc 2.19: */ _DEFAULT_SOURCE
|| /* Glibc versions <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

signgam :

_XOPEN_SOURCE
|| /* Since glibc 2.19: */ _DEFAULT_SOURCE
|| /* Glibc versions <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

説 明

ガ ン マ 関 数 の 定 義 に つ い て は 、 tgamma (3) を 参 照 の こ と 。

関 数 lgamma (), lgammaf (), lgammal () は 、 ガ ン マ 関 数 の 絶 対 値 の 自 然 対 数 を 返 す 。 ガ ン マ 関 数 の 符 号 は 、 <math.h> で 宣 言 さ れ て い る extern int signgam に 格 納 さ れ る 。 格 納 さ れ る 値 は 、 ガ ン マ 関 数 が 正 ま た は 0 の 場 合 1、 負 の 場 合 -1 で あ る 。

signgam と い う 固 定 さ れ た 場 所 を 使 う こ と は ス レ ッ ド セ ー フ で は な い の で 、 関 数 lgamma_r (), lgammaf_r (), lgammal_r () が 導 入 さ れ た 。 こ れ ら の 関 数 で は 、 符 号 は 引 数 signp 経 由 で 返 さ れ る 。

返 り 値

成 功 す る と 、 こ れ ら の 関 数 は Gamma(x) の 自 然 対 数 を 返 す 。

x が NaN の 場 合 、 NaN が 返 さ れ る 。

x が 1 か 2 の 場 合 、 +0 が 返 さ れ る 。

x が 正 の 無 限 大 か 負 の 無 限 大 の 場 合 、 正 の 無 限 大 が 返 さ れ る 。

x が 正 で な い 整 数 の 場 合 、 極 エ ラ ー (pole error) が 発 生 し 、 各 関 数 は そ れ ぞ れ + HUGE_VAL , + HUGE_VALF , + HUGE_VALL を 返 す 。

結 果 が オ ー バ ー フ ロ ー す る 場 合 、 範 囲 エ ラ ー (range error) が 発 生 し 、 各 関 数 は そ れ ぞ れ HUGE_VAL , HUGE_VALF , HUGE_VALL , を 返 す 。 こ の 際 、 数 学 的 に 正 し い 符 号 が 付 与 さ れ る 。

エ ラ ー

こ れ ら の 関 数 を 呼 び 出 し た 際 に エ ラ ー が 発 生 し た か の 判 定 方 法 に つ い て の 情 報 は math_error (7) を 参 照 の こ と 。

以 下 の エ ラ ー が 発 生 す る 可 能 性 が あ る 。
極 エ ラ ー : x が 正 で な い 整 数

errno ERANGE が 設 定 さ れ る (「 バ グ 」 の 節 も 参 照 )。 0 に よ る 除 算 (divide-by-zero) 浮 動 小 数 点 例 外 ( FE_DIVBYZERO ) が 上 が る 。

範 囲 エ ラ ー (range error): 結 果 の オ ー バ ー フ ロ ー

errno ERANGE が 設 定 さ れ る 。 オ ー バ ー フ ロ ー 浮 動 小 数 点 例 外 ( FE_OVERFLOW ) が 上 が る 。

準 拠

関 数 lgamma () は C99, POSIX.1-2001, POSIX.1-2008 で 規 定 さ れ て い る 。 signgam は POSIX.1-2001 と POSIX.1-2008 で 規 定 さ れ て い る が 、 C99 に は な い 。 関 数 lgamma_r () は 非 標 準 だ が 、 い く つ か の 他 の シ ス テ ム に も 存 在 す る 。

バ グ

glibc 2.9 と そ れ 以 前 の バ ー ジ ョ ン で は 、 極 エ ラ ー が 発 生 し た 場 合 、 POSIX で 要 求 さ れ て い る ERANGE で は な く EDOM errno に 設 定 さ れ る 。 POSIX.1 で は 、 ERANGE が 設 定 さ れ る べ き と さ れ て い る 。 バ ー ジ ョ ン 2.10 以 降 の glibc で は 、 正 し い 動 作 を す る 。

関 連 項 目

tgamma (3)

こ の 文 書 に つ い て

こ の man ペ ー ジ は Linux man-pages プ ロ ジ ェ ク ト の リ リ ー ス 5.10 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は https://www.kernel.org/doc/man-pages/ に 書 か れ て い る 。