GAMMA(3)

ИМЯ
gamma, gammaf, gammal - логарифм гамма-функции

ОБЗОР
#include <math.h>

double gamma(double x);
float gammaf(float x);
long double gammal(long double x);

Компонуется при указании параметра -lm.

Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):

gamma():
    _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE
gammaf(), gammal():
    _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 600

ОПИСАНИЕ
Данные функции устарели. Используйте вместо них, по возможности, tgamma(3) либо lgamma(3). Определение гамма-функции смотрите в tgamma(3).

  Версия *BSD
В libm из 4.4BSD и некоторых версиях FreeBSD имеется функция gamma(), которая вычисляет гамма-функцию, как и ожидается.

  Версия glibc
В glibc есть функция gamma(), которая эквивалентна lgamma(3) и вычисляет натуральный логарифм гамма-функции.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
Смотрите lgamma(3).

ОШИБКИ
Смотрите lgamma(3).

АТРИБУТЫ
Описание терминов данного раздела смотрите в attributes(7).
Интерфейс | Атрибут | Значение
gamma(), gammaf(), gammal() | безвредность в нитях | небезопасно (MT-Unsafe race:signgam)

СООТВЕТСТВИЕ СТАНДАРТАМ
Из-за различий в поведении в различных системах эта функция не попала ни в один стандарт.

ЗАМЕЧАНИЯ

  История
В 4.2BSD функция gamma() вычисляет ln(|Gamma(|x|)|), записывая знак Gamma(|x|) во внешнее целое signgam. В 4.3BSD было изменено имя на lgamma(3), и в справочной странице указано

"Через некоторое время имя gamma было восстановлено и использовано для гаммы-функции"

В действительности это произошло в 4.4BSD, где gamma() вычисляла гамма-функцию (без влияния на signgam). Однако, это случилось слишком поздно и теперь мы имеем tgamma(3), «настоящую» гамма-функцию.

СМОТРИТЕ ТАКЖЕ
lgamma(3), signgam(3), tgamma(3)