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