tgamma
| Определено в заголовочном файле <math.h>
|
||
float tgammaf( float arg ); |
(начиная с C99) | |
double tgamma( double arg ); |
(начиная с C99) | |
long double tgammal( long double arg ); |
(начиная с C99) | |
Вычисляет гамма-функцию от arg.
Параметры
| arg | — | значение с плавающей точкой
Оригинал: floating point value Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
Возвращаемое значение
Если не возникает ошибок, возвращается значение гамма-функции от arg, то есть ∫∞
0targ-1
e-t dt.
Если возникает ошибка области определения, возвращается значение, определенное реализацией (NaN, где он поддерживается).
Если возникает ошибка выхода на полюс, возвращается ±HUGE_VAL, ±HUGE_VALF или ±HUGE_VALL.
Если возникает ошибка области значений из-за переполнения через верхнюю границу, возвращается ±HUGE_VAL, ±HUGE_VALF или ±HUGE_VALL.
Если возникает ошибка области значений из-за переполнения через нижнюю границу, возвращается корректное значение после округления.
Заметки
Если arg — натуральное число, то tgamma(arg) является факториалом от arg-1. Многие реализации вычисляют точный факториал на области целых чисел, если аргумент является достаточно малым целым.
Пример
#include <stdio.h>
#include <math.h>
#include <float.h>
#include <errno.h>
#include <fenv.h>
#pragma STDC FENV_ACCESS ON
int main(void)
{
printf("tgamma(10) = %f, 9!=%f\n", tgamma(10), 2*3*4*5*6*7*8*9.0);
printf("tgamma(0.5) = %f, sqrt(pi) = %f\n", sqrt(acos(-1)), tgamma(0.5));
// special values
printf("tgamma(+Inf) = %f\n", tgamma(INFINITY));
// error handling
errno = 0; feclearexcept(FE_ALL_EXCEPT);
printf("tgamma(-1) = %f\n", tgamma(-1));
if(errno == ERANGE) perror(" errno == ERANGE");
else if(errno == EDOM) perror(" errno == EDOM");
if(fetestexcept(FE_DIVBYZERO)) puts(" FE_DIVBYZERO raised");
else if(fetestexcept(FE_INVALID)) puts(" FE_INVALID raised");
}
Возможный вывод:
tgamma(10) = 362880.000000, 9!=362880.000000
tgamma(0.5) = 1.772454, sqrt(pi) = 1.772454
tgamma(+Inf) = inf
tgamma(-1) = nan
errno == EDOM: Numerical argument out of domain
FE_INVALID raised
См. также
(C99) |
натуральный логарифм гамма-функции (функция) |
Документация C++ по tgamma
| |
Внешние ссылки
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.