Текст подпрограммы и версий
sf29r_c.zip  sf29d_c.zip 
Тексты тестовых примеров
tsf29r_c.zip  tsf29d_c.zip 

Функция:  sf29r_c

Назначение

Вычисление модифицированной функции Бесселя первого рода первого порядка  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