Текст подпрограммы и версий
sf19r_c.zip  sf19d_c.zip 
Тексты тестовых примеров
tsf19r_c.zip  tsf19d_c.zip 

Функция:  sf19r_c

Назначение

Вычисление неполных эллиптических интегралов первого рода.

Математическое описание

Функция sf19r_c производит вычисление интегралов вида:

                     T
   F (K, T) = ∫ (1 - K2 sin2 t) -1/2 dt      для  0 ≤ K2 ≤ 1    и    0 ≤ T ≤ π/2
                    0 

J.F.Hart, E.W.Cheney, C.L.Lawson et al, Computer Approximations, Wiley, New York, 1968.

Использование

    real sf19r_c (real *rk2, real *t, integer *ierr)

Параметры

rk2, t - заданные значения аргументов K2 и T (тип: вещественный);
ierr - целая переменная, служащая для сообщения об ошибках, обнаруженных в ходе работы функции; при этом:
ierr=65 - когда значение rk2 меньше 0. или больше 1.; значение функции полагается равным 3.4e38;
ierr=66 - когда значение t меньше 0. или больше π / 2; значение функции полагается равным 3.4e38;
ierr=67 - когда rk2 = 1 и t = π / 2 (значение подинтегральной функции pавно 0); значение функции полагается равным 3.4e38.

Версии

sf19d_c - вычисление неполных эллиптических интегралов первого рода с повышенной точностью.

Вызываемые подпрограммы

utsf10_c - подпрограмма выдачи диагностических сообщений при работе функции sf19r_c.
utsf11_c - подпрограмма выдачи диагностических сообщений при работе функции sf19d_c.

Замечания по использованию

  Для функции sf19d_c параметры rk2 и t имеют тип double. Значение sf19d_c при ierr ≠ 0 полагается pавным 1.7e308.

Пример использования

         rk2 = 0.5
int main(void)
{
    /* Local variables */
    static int ierr;
    extern float sf19r_c(float *, float *, int *);
    static float t, y, rk2;

    rk2 = .5f;
    t = .78539816250000005f;
    y = (float)sf19r_c(&rk2, &t, &ierr);

    printf("\n %16.7e %5i \n",y, ierr);
    return 0;
} /* main */


Результаты:

       y  =  0.826017876245,    ierr  =  0