Manpages

名 前

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() は xn 次 の 第 二 種 ベ ッ セ ル 関 数 の 値 を 返 す 。

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 が 負 で あ る

errnoEDOM が 設 定 さ れ る 。 不 正 (invalid) 浮 動 小 数 点 例 外 (FE_INVALID) が 上 が る 。 極 エ ラ ー :

x が 0.0

errnoERANGE が 設 定 さ れ る (「 バ グ 」 の 節 を 参 照 の こ と )。 こ の エ ラ ー の 場 合 、 fetestexcept(3)FE_DIVBYZERO 例 外 を 返 さ な い 。 範 囲 エ ラ ー

(range error): 結 果 の ア ン ダ ー フ ロ ー

errnoERANGE が 設 定 さ れ る 。 こ の エ ラ ー の 場 合 、 fetestexcept(3)FE_UNDERFLOW 例 外 を 返 さ な い 。 範 囲 エ ラ ー

(range error): 結 果 の オ ー バ ー フ ロ ー こ の 場 合 、 errno は 設 定 さ れ な い 。 オ ー バ ー フ ロ ー 浮 動 小 数 点 例 外 (FE_OVERFLOW) が 上 が る 。

準 拠

double 型 の 値 を 返 す 関 数 は 、 SVr4, 4.3BSD, POSIX.1−2001 に 準 拠 す る 。 そ れ 以 外 は 非 標 準 の 関 数 で 、 BSD に も 存 在 す る 。

バ グ

極 エ ラ ー の 場 合 、 こ れ ら の 関 数 は errnoEDOM を 設 定 す る が 、 POSIX.1−2004 で は ERANGE を 設 定 す る こ と が 要 求 さ れ て い る 。

glibc バ ー ジ ョ ン 2.3.2 以 前 で は 、 領 域 エ ラ ー が 発 生 し た 場 合 に 、 こ れ ら の 関 数 は 不 正 浮 動 小 数 点 例 外 (FE_INVALID) を 上 げ な い 。

関 連 項 目

j0(3)

こ の 文 書 に つ い て

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