|
Текст подпрограммы и версий 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