Подпрограмма: sf23c_c
Назначение
Вычисление значений гамма - функции и ee натурального
логарифма от комплексного аргумента.
Математическое описание
Подпрограмма sf23c_c вычисляет значение гамма-функции
∞
Г (Z) = ∫ t z - 1 e - t dt
0
и ее натурального логарифма для комплексных значений Z.
H.Kuki, Complex Gamma Function with Error Control,
Communications ACM, 15, 4, 1972.
Использование
int sf23c_c (real *argr, real *argi, real *ansr, real *ansi,
real *eps, integer *l, integer *ierr)
Параметры
argr -
|
заданное значение действительной части
аpгумента Z (тип: вещественный);
|
argi -
|
заданное значение мнимой части аргумента Z
(тип: вещественный);
|
ansr -
ansi
|
вещественные переменные, значения которых в
pезультате работы подпрограммы полагаются
равными действительной и мнимой части
pезультата соответственно;
|
eps -
|
вещественная переменная, определяющая на
входе абсолютную точность, с которой надо
найти результат; в результате работы
подпрограммы значение eps полагается равным
действительно достигнутой точности;
|
l -
|
задает режим работы подпрограммы (тип: целый); при этом:
|
l = 0 -
|
если вычисляется натуральный логарифм
от гамма - функции;
|
l = 1 -
|
если вычисляется гамма - функция;
|
ierr -
|
целая переменая, служащая для сообщения об
ошибках, обнаруженных в ходе работы
подпрограммы; при этом:
|
ierr=65 -
|
когда мнимая часть аргумента pавна
нулю, а вещественная часть аргумента больше 21.4;
|
ierr=66 -
|
когда вычисляемая функция
превосходит максимально допустимое в машине число;
|
ierr=67 -
|
когда значение аргумента pавно
нулю или любому целому отрицательному числу;
|
|
при ierr ≠ 0
переменным ansr и ansi присваивается значение 3.4e38.
|
Версии
sf23p_c -
|
вычисление значений гамма - функции и ее
натурального логарифма в комплексной области с
повышенной точностью.
|
Вызываемые подпрограммы
utsf10_c -
|
подпрограмма печати диагностических сообщений
при работе подпрограмы sf23c_c.
|
utsf11_c -
|
подпрограмма печати диагностических сообщений
при работе подпрограммы sf23p_c.
|
Замечания по использованию
|
Для подпрограммы sf23p_c параметры argr, argi, ansr, ansi
имеют тип double и ierr полагается равным 65,
если значение argi pавно нулю и значение argr больше 408.909.
При ierr ≠ 0
значения argr и argi полагаются равными 1.7e308.
|
Пример использования
int main(void)
{
/* Local variables */
extern int sf23c_c(float *, float *, float *, float *, float *,
int *, int *);
static float argi, argr;
static int ierr;
static float ansi1, ansr1;
static int l;
static float eps;
argr = 6.7f;
argi = .3f;
eps = 1e-12f;
l = 0;
sf23c_c(&argr, &argi, &ansr1, &ansi1, &eps, &l, &ierr);
printf("\n %16.7e %16.7e \n",ansr1, ansi1);
printf("\n %16.7e %5i \n",eps, ierr);
return 0;
} /* main */
Результаты:
ansr1 = 6.017194153159;
ansi1 = 0.547804744098;
eps = 3.2725e-11;
ierr = 0.