Документ взят из кэша поисковой машины. Адрес
оригинального документа
: http://num-anal.srcc.msu.ru/lib_na/cat/sf_htm_c/sf23c_c.htm
Дата изменения: Wed Nov 25 14:42:50 2015 Дата индексирования: Sun Apr 10 02:30:47 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.