Текст подпрограммы и версий sf28r_c.zip sf28d_c.zip |
Тексты тестовых примеров tsf28r_c.zip tsf28d_c.zip |
Вычисление модифицированной функции Бесселя первого рода нулевого порядка I0 (x).
sf28r_c вычисляет модифицированную функцию Бесселя первого рода нулевого порядка I0 (x) для вещественных x.
J.F.Hart, E.W.Cheney, C.L.Lawson et al, Computer Approximations, Wiley, New York, 1968.
real sf28r_c (real *x, integer *ierr)
Параметры
x - | заданное значение аргумента x (тип: вещественный); |
ierr - | целая переменная, служащая для сообщения об ошибках, обнаруженных в ходе работы функции; при этом: |
ierr=1 - | когда значение аргумента меньше 0; функция вычисляется для абсолютного значения аргумента; |
ierr=65 - | когда значение аргумента больше 67.35; значение функции полагается равным 3.4e38. |
Версии
sf28d_c - | вычисление модифицированной функции Бесселя первого рода нулевого порядка I0 (x) с повышенной точностью. |
Вызываемые подпрограммы
utsf10_c - | подпрограмма выдачи диагностических сообщений при работе функции sf28r_c. |
utsf11_c - | подпрограмма выдачи диагностических сообщений при работе функции sf28d_c. |
Замечания по использованию
Для функции sf28d_c параметр x имеет тип double и его областью допустимых значений является полуинтервал 0 ≤ x < 2070. При ierr = 65 значение функции sf28d_c полагается равным 1.7e308. Если значение x меньше нуля, то вычисляется I0 ( |x| ). |
int main(void) { /* Local variables */ static int ierr; extern float sf28r_c(float *, int *); static float r__, x; x = 1.f; r__ = (float)sf28r_c(&x, &ierr); printf("\n %16.7e %16.7e \n",x,r__); printf("\n %5i \n",ierr); return 0; } /* main */ Результаты: r__ = 1.26606587768 ierr = 0