Функция: sf20r_c
Назначение
Вычисление неполных эллиптических интегралов второго рода.
Математическое описание
Функция sf20r_c производит вычисление интегралов вида:
T
E (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 sf20r_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.
|
Версии
sf20d_c -
|
вычисление неполных эллиптических интегралов
второго рода с повышенной точностью.
|
Вызываемые подпрограммы
utsf10_c -
|
подпрограмма выдачи диагностических сообщений
при работе функции sf20r_c.
|
utsf11_c -
|
подпрограмма выдачи диагностических сообщений
при работе функции sf20d_c.
|
Замечания по использованию
|
Для функции sf20d_c параметры rk2, t
имеют тип double.
Значение функции sf20d_c при
ierr ≠ 0
полагается равным 1.7e308.
|
Пример использования
int main(void)
{
/* Local variables */
extern float sf20r_c(float *, float *, int *);
static int ierr;
static float t, y, rk2;
rk2 = .75f;
t = 1.0471975500000001f;
y = (float)sf20r_c(&rk2, &t, &ierr);
printf("\n %16.7e %5i \n",y, ierr);
return 0;
} /* main */
Результаты:
y = 0.918393294308, ierr = 0