Текст подпрограммы и версий sf83r_c.zip sf83d_c.zip |
Тексты тестовых примеров tsf83r_c.zip tsf83d_c.zip |
Вычисление неполного эллиптического интеграла 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