table of contents
Y0(3) | Руководство программиста Linux | Y0(3) |
ИМЯ¶
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():
y0f(), y0l(), y1f(), y1l(), ynf(), ynl():
ОПИСАНИЕ¶
Функции y0() и y1() возвращают функцию Бесселя второго рода от x для порядков 0 и 1 соответственно. Функция yn() возвращает функцию Бесселя второго рода от x для порядка n.
Значение x должно быть положительным.
Функции y0f() (и так далее) и y0l() (и так далее) являются версиями для типов переменных float и long double соответственно.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ¶
В случае успеха эти функции возвращают соответствующее значение функции Бесселя второго рода от x.
Если 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), чтобы определить, какие ошибки могут возникать при вызове этих функций.
Могут возникать следующие ошибки:
- Ошибка области: x является отрицательным
- errno устанавливается в EDOM. Вызывается исключение неправильной плавающей точки (FE_INVALID).
- Ошибка особой точки: x равно 0.0
- errno устанавливается в ERANGE (однако смотрите раздел ДЕФЕКТЫ). В данном случае от fetestexcept(3) исключение FE_DIVBYZERO не возвращается.
- Ошибка диапазона: результат потерял разрядность
- errno устанавливается в ERANGE. В данном случае от fetestexcept(3) исключение FE_DIVBYZERO не возвращается.
- Ошибка диапазона: результат превысил разрядность
- В данном случае errno не изменяется. Вызывается исключение переполнения плавающей точки (FE_OVERFLOW).
СООТВЕТСТВИЕ СТАНДАРТАМ¶
Функции, возвращающие double, соответствуют SVr4, 4.3BSD, POSIX.1-2001. Остальные являются не стандартизованными функциями, которые также существуют в BSD.
ДЕФЕКТЫ¶
В случае ошибки особой точки данные функции устанавливают errno в EDOM вместо ERANGE, как это требует POSIX.1-2004.
В glibc-2.3.2 и младше данные функции не вызывают исключение неправильной плавающей точки (FE_INVALID) при возникновении ошибки выхода за пределы области.
СМОТРИТЕ ТАКЖЕ¶
2008-08-10 |