Y0 - Linux手册页
Linux程序员手册 第3部分
更新日期: 2020-06-09
名称
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 || / *自glibc 2.19起:* / -_DEFAULT_SOURCE || / * Glibc版本
y0l(),
y1f(),
y1l(),
ynf(),
ynl():
- _XOPEN_SOURCE>= 600 || (_ISOC99_SOURCE && __ XOPEN_SOURCE) || / *自glibc 2.19起:* / -_DEFAULT_SOURCE || / * Glibc版本
说明
y0()和y1()函数分别返回第二种0和1阶x的Bessel函数。 yn()函数返回第二种n阶x的Bessel函数。
x的值必须为正。
y0f(),y1f()和ynf()函数是采用和返回float值的版本。 y0l(),y1l()和ynl()函数是采用并返回长双精度值的版本。
返回值
成功后,这些函数将为x返回第二种适当的Bessel值。
如果x是NaN,则返回NaN。
如果x为负,则发生域错误,并且函数分别返回-HUGE_VAL,-HUGE_VALF或-HUGE_VALL。 (在这种情况下,POSIX.1-2001还允许返回NaN。)
如果x为0.0,则发生极点错误,并且函数分别返回-HUGE_VAL,-HUGE_VALF或-HUGE_VALL。
如果结果下溢,则发生范围错误,并且函数返回0.0
如果结果溢出,则会发生范围错误,并且这些函数将分别返回-HUGE_VAL,-HUGE_VALF或-HUGE_VALL。 (在这种情况下,POSIX.1-2001还允许返回0.0。)
错误说明
有关在调用这些函数时如何确定是否发生错误的信息,请参见math_error(7)。
可能会发生以下错误:
- Domain error: xis negative
- errno设置为EDOM。引发了无效的浮点异常(FE_INVALID)。
- Pole error: xis 0.0
- errno设置为ERANGE并引发FE_DIVBYZERO异常(但请参阅BUGS)。
- Range error: result underflow
- errno设置为ERANGE。对于这种情况,fetestexcept(3)不会返回FE_UNDERFLOW异常。
- Range error: result overflow
- errno设置为ERANGE(但请参阅BUGS)。引发了溢出浮点异常(FE_OVERFLOW)。
属性
有关本节中使用的术语的说明,请参见attribute(7)。
Interface | Attribute | Value |
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上也存在的非标准功能。
BUGS
在glibc 2.19之前,这些函数误诊了极点错误:errno设置为EDOM,而不是ERANGE,并且未引发FE_DIVBYZERO异常。
在glibc 2.17之前,未将errno设置为"范围错误:结果下溢"。
在glibc 2.3.2和更早版本中,当发生域错误时,这些函数不会引发无效的浮点异常(FE_INVALID)。
另外参见
j0(3)
出版信息
这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/。