名 前
y0, y0f, y0l, y1, y1f, y1l, yn, ynf, ynl − 第 二 種 ベ ッ セ ル 関 数
書 式
#include <math.h>
double
y0(double x);
double y1(double x);
double yn(int n, double
x);
float
y0f(float x);
float y1f(float x);
float ynf(int n, float
x);
long double
y0l(long double x);
long double y1l(long double x);
long double ynl(int n, long double
x);
−lm で リ ン ク す る 。
glibc 向 け の 機 能 検 査 マ ク ロ の 要 件 (feature_test_macros(7) 参 照 ):
y0(), y1(), yn():
_SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE
y0f(), y0l(), y1f(), y1l(), ynf(), ynl():
_SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE >= 600
説 明
関 数 y0() と y1() は そ れ ぞ れ x の 0 次 、 1 次 の 第 二 種 ベ ッ セ ル 関 数 の 値 を 返 す 。 関 数 yn() は x の n 次 の 第 二 種 ベ ッ セ ル 関 数 の 値 を 返 す 。
x は 正 の 値 で な け れ ば な ら な い 。 関 数 y0f(), y1f(), ynf() は 、 float 型 を 引 数 に 取 り 、 返 り 値 と し て 返 す 。 関 数 y0l(), y1l(), ynl() は 、 long double 型 を 引 数 に 取 り 、 返 り 値 と し て 返 す 。
返 り 値
成 功 す る と 、 こ れ ら の 関 数 は x に 対 す る 第 二 種 ベ ッ セ ル 関 数 の 値 を 返 す 。
x が NaN の 場 合 、 NaN が 返 さ れ る 。
x が 負 の 場 合 、 領 域 エ ラ ー (domain error) が 発 生 し 、 各 関 数 は そ れ ぞ れ −HUGE_VAL, −HUGE_VALF, −HUGE_VALL を 返 す (POSIX.1−2001 で は こ の 場 合 に NaN を 返 す こ と も 認 め て い る )。
x が 0.0 の 場 合 、 極 エ ラ ー (pole error) が 発 生 し 、 各 関 数 は そ れ ぞ れ −HUGE_VAL, −HUGE_VALF, −HUGE_VALL を 返 す 。 結 果 が ア ン ダ ー フ ロ ー す る 場 合 、 範 囲 エ ラ ー (range error) が 発 生 し 、 各 関 数 は 0.0 を 返 す 。 結 果 が オ ー バ ー フ ロ ー す る 場 合 、 範 囲 エ ラ ー が 発 生 し 、 各 関 数 は そ れ ぞ れ −HUGE_VAL, −HUGE_VALF, −HUGE_VALL を 返 す (POSIX.1−2001 で は こ の 場 合 に 0.0 を 返 す こ と も 認 め て い る )。
エ ラ ー
こ れ ら の 関 数 を 呼 び 出 し た 際 に エ ラ ー が 発 生 し た か の 判 定 方 法 に つ い て の 情 報 は math_error(7) を 参 照 の こ と 。 以 下 の エ ラ ー が 発 生 す る 可 能 性 が あ る 。 領 域 エ ラ ー
(domain error): x が 負 で あ る
errno に EDOM が 設 定 さ れ る 。 不 正 (invalid) 浮 動 小 数 点 例 外 (FE_INVALID) が 上 が る 。 極 エ ラ ー :
x が 0.0
errno に ERANGE が 設 定 さ れ る (「 バ グ 」 の 節 を 参 照 の こ と )。 こ の エ ラ ー の 場 合 、 fetestexcept(3) は FE_DIVBYZERO 例 外 を 返 さ な い 。 範 囲 エ ラ ー
(range error): 結 果 の ア ン ダ ー フ ロ ー
errno に ERANGE が 設 定 さ れ る 。 こ の エ ラ ー の 場 合 、 fetestexcept(3) は FE_UNDERFLOW 例 外 を 返 さ な い 。 範 囲 エ ラ ー
(range error): 結 果 の オ ー バ ー フ ロ ー こ の 場 合 、 errno は 設 定 さ れ な い 。 オ ー バ ー フ ロ ー 浮 動 小 数 点 例 外 (FE_OVERFLOW) が 上 が る 。
準 拠
double 型 の 値 を 返 す 関 数 は 、 SVr4, 4.3BSD, POSIX.1−2001 に 準 拠 す る 。 そ れ 以 外 は 非 標 準 の 関 数 で 、 BSD に も 存 在 す る 。
バ グ
極 エ ラ ー の 場 合 、 こ れ ら の 関 数 は errno に EDOM を 設 定 す る が 、 POSIX.1−2004 で は ERANGE を 設 定 す る こ と が 要 求 さ れ て い る 。
glibc バ ー ジ ョ ン 2.3.2 以 前 で は 、 領 域 エ ラ ー が 発 生 し た 場 合 に 、 こ れ ら の 関 数 は 不 正 浮 動 小 数 点 例 外 (FE_INVALID) を 上 げ な い 。
関 連 項 目
こ の 文 書 に つ い て
こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。