|
Документ взят из кэша поисковой машины. Адрес
оригинального документа
: http://num-anal.srcc.msu.su/lib_na/cat/sf_htm_c/sf23c_c.htm
Дата изменения: Wed Nov 25 14:42:50 2015 Дата индексирования: Sun Apr 10 01:43:58 2016 Кодировка: Windows-1251 |
|
Текст подпрограммы и версий sf23c_c.zip sf23p_c.zip |
Тексты тестовых примеров tsf23c_c.zip tsf23p_c.zip |
Вычисление значений гамма - функции и 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.