Текст подпрограммы и версий
sf23c_c.zip  sf23p_c.zip 
Тексты тестовых примеров
tsf23c_c.zip  tsf23p_c.zip 

Подпрограмма:  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.