Текст подпрограммы и версий
sf83r_c.zip  sf83d_c.zip 
Тексты тестовых примеров
tsf83r_c.zip  tsf83d_c.zip 

Функция:  sf83r_c

Назначение

Вычисление неполного эллиптического интеграла  el2 (x, kc, a, b) второго рода общего вида.

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

Подпрограмма - функция sf83r_c вычисляет неполный эллиптический интеграл второго рода общего вида:

                               x
  el2(x, kc, a, b)  =  ∫   [(a + b t 2) dt] / [ (1 + t 2) ( (1 + t 2)(1 + kc2 t 2) ) 1/2 ]  ,
                              0 

где  x ≥ 0,  kc,  a,  b - вещественные числа.

Справочник по специальным функциям. Под ред. Абрамовица М. и Стиган И., Изд - во "Наука", 1979.

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

    real sf83r_c (real *x, real *rkc, real *a, real *b)

Параметры

x, rkc -
a, b  
заданные значения аргументов  x,  kc,  a  и  b соответственно (тип: вещественный).

Версии

sf83d_c - вычисление неполного эллиптического интеграла  el2 (x, kc, a, b) второго рода общего вида в режиме удвоенной точности; при этом все параметры функции sf83d_c должны иметь тип double, а сама функция должна быть описана как double.

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

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

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

int main(void)
{
    /* Builtin functions */
    double sqrt(double);

    /* Local variables */
    extern float sf83r_c(float *, float *, float *, float *);
    static float a, r__, x, rkc, rkc2;

    x = 1.0471975500000001f;
    rkc2 = .25f;
    rkc = (float)sqrt(rkc2);
    a = 1.f;
    r__ = (float)sf83r_c(&x, &rkc, &a, &rkc2);

    printf("\n %16.7e %16.7e \n",rkc,r__);
    return 0;
} /* main */


Результат:    r__ = 0.746321