Текст подпрограммы и версий
sf40r_c.zip  sf40d_c.zip 
Тексты тестовых примеров
tsf40r_c.zip  tsf40d_c.zip 

Функция:  sf40r_c

Назначение

Вычисление неполной гамма - функции  Гx (p) вещественного аргумента и вещественного параметра.

Математическое описание

sf40r_c вычисляет неполную гамма - функцию Гx (p)

                   x
     Гx (p) = ∫ e - t t p - 1 dt    ,
                  0 

где  x  и  p  - принимают вещественные значения, причем x ≥ 0 и p > 0.

M.Abramowitz, I.A.Stegun, Handbook of Mathematical Functions New York, Dover Publications, INC., 1965.

Использование

    real sf40r_c (real *x, real *p, integer *ierr)

Параметры

x - заданное значение аргумента x (тип: вещественный);
p - заданное значение параметра p (тип: вещественный);
ierr - целая переменная, служащая для сообщения об ошибках, обнаруженных в ходе работы функции; при этом:
ierr=65 - когда значение аргумента x меньше 0; значение функции полагается равным 3.4e38;
ierr=66 - когда значение параметра p неполной гамма - функции не принадлежит полуинтервалу (0, 21.4] ; значение функции полагается равным 3.4e38.

Версии

sf40d_c - вычисление неполной гамма - функции Гx (p) с повышенной точностью.

Вызываемые подпрограммы

sf39r_c - подпрограмма вычисления гамма - функции распределения вероятностей I (x, p);
sf39d_c - подпрограмма вычисления гамма - функции распределения вероятностей I (x, p) с повышенной точностью;
sf23c_c - подпрограмма вычисления гамма - функции и ее натурального логарифма от комплексного аргумента;
sf23p_c - подпрограмма вычисления гамма - функции и ее натурального логарифма от комплексного аргумента с повышенной точностью;
      utsf10_c -
      utsf12_c  
подпрограммы выдачи диагностических сообщений при работе функций sf23c_c, sf39r_c, sf40r_c;
      utsf11_c -
      utsf13_c  
подпрограммы выдачи диагностических сообщений при работе функций sf23p_c, sf39d_c, sf40d_c

Замечания по использованию

  Для функции sf40d_c параметры x и p (0 < p ≤ 408.909) должны иметь тип double и при ierr ≠ 0 значение sf40d_c полагается равным 1.7e308.

Пример использования

int main(void)
{
    /* Local variables */
    extern float sf40r_c(float *, float *, int *);
    static int ierr;
    static float p, r__, x;

    x = 1.f;
    p = 1.f;
    r__ = (float)sf40r_c(&x, &p, &ierr);

    printf("\n %16.7e %16.7e \n",x,p);
    printf("\n %16.7e %5i \n",r__,ierr);
    return 0;
} /* main */


Результаты:

       r__  =  0.6321205588074 , 
       ierr = 0