Y0

Section: Linux Programmer's Manual (3)
Updated: 2020-06-09
Index JM Home Page
 

名前

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():

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

y0f(), y0l(), y1f(), y1l(), ynf(), ynl():
_XOPEN_SOURCE  >= 600
    || (_ISOC99_SOURCE && _XOPEN_SOURCE)
    || /* Since glibc 2.19: */ _DEFAULT_SOURCE
    || /* Glibc versions <= 2.19: */ _SVID_SOURCE || _BSD_SOURCE
 

説明

関数 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 が設定され、 FE_DIVBYZERO 例外が上がる (ただし「バグ」を参照)。
範囲エラー (range error): 結果のアンダーフロー
errno に ERANGE が設定される。 このエラーの場合、 fetestexcept(3) は FE_UNDERFLOW 例外を返さない。
範囲エラー (range error): 結果のオーバーフロー
errno に ERANGE が設定される (「バグ」の節も参照)。 オーバーフロー浮動小数点例外 (FE_OVERFLOW) が上がる。
 

属性

この節で使用されている用語の説明については、 attributes(7) を参照。
インターフェース 属性 値
y0(), y0f(), y0l() Thread safety MT-Safe
y1(), y1f(), y1l() Thread safety MT-Safe
yn(), ynf(), ynl() Thread safety MT-Safe
 

準拠

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

バグ

Before glibc 2.19, these functions misdiagnosed pole errors: errno was set to EDOM, instead of ERANGE and no FE_DIVBYZERO exception was raised.

Before glibc 2.17, did not set errno for "range error: result underflow".

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

関連項目

j0(3)  

この文書について

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

関連キーワード

double   ベッセル   範囲   range   float   long   領域   オーバーフロー   浮動   小数点   バグ   Thread   safety   Since   versions   返り値   domain   pole   アンダー   フロー   不正   Before   math   検査   マクロ

Linux マニュアル 一覧

関連するコマンド・関数

y0.3   y0f.3   y0l.3   y1.3   y1f.3   yn.3
 

Index

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

This document was created by man2html, using the manual pages.
Time: 04:39:03 GMT, October 11, 2026