Текст подпрограммы и версий
sf84r_c.zip  sf84d_c.zip 
Тексты тестовых примеров
tsf84r_c.zip  tsf84d_c.zip 

Функция:  sf84r_c

Назначение

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

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

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

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

где  kc,  p,  a,  b - вещественные числа

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

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

    real sf84r_c (real *rkc, real *p, real *a, real *b)

Параметры

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

Версии

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

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

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

 

Если rkc = 0 и  b = 0, то значение функции полагается равным 1.

Если rkc = 0 и  b ≠ 0, то значение функции полагается равным наибольшему представимому на используемой машине числу (это означает, что при данном условии интеграл расходится)

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

int main(void)
{
    /* Local variables */
    extern float sf84r_c(float *, float *, float *, float *);
    static float a, b, p, r__, rkc;

    rkc = .5f;
    p = 1.f;
    a = 1.f;
    b = 1.f;
    r__ = (float)sf84r_c(&rkc, &p, &a, &b);

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


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