Provided by: manpages-ru-dev_4.21.0-2_all bug

ИМЯ

       lgamma, lgammaf, lgammal, lgamma_r, lgammaf_r, lgammal_r, signgam - логарифм гамма-функции

LIBRARY

       Math library (libm, -lm)

СИНТАКСИС

       #include <math.h>

       double lgamma(double x);
       float lgammaf(float x);
       long double lgammal(long double x);

       double lgamma_r(double x, int *signp);
       float lgammaf_r(float x, int *signp);
       long double lgammal_r(long double x, int *signp);

       extern int signgam;

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

       lgamma():
           _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE
               || /* Since glibc 2.19: */ _DEFAULT_SOURCE
               || /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

       lgammaf(), lgammal():
           _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L
               || /* начиная с glibc 2.19: */ _DEFAULT_SOURCE
               || /* Glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

       lgamma_r(), lgammaf_r(), lgammal_r():
           /* начиная с glibc 2.19: */ _DEFAULT_SOURCE
               || /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

       signgam:
           _XOPEN_SOURCE
               || /* начиная с glibc 2.19: */ _DEFAULT_SOURCE
               || /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

ОПИСАНИЕ

       Определение гамма-функции смотрите в tgamma(3).

       Функции   lgamma(),   lgammaf()   и   lgammal()  возвращают  натуральный  логарифм  абсолютного  значения
       гамма-функции. Знак гамма-функции возвращается во внешнем целом  signgam,  объявленном  в  <math.h>.  Оно
       равно 1, если гамма-функция положительна или равна нулю, и -1, если она отрицательна.

       Так  как  использование  постоянного  расположения signgam не является безопасным при работе с нитями, то
       была созданы функции lgamma_r(), lgammaf_r() и lgammal_r(); они возвращают знак через аргумент signp.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

       При успешном выполнении данные функции возвращают натуральный логарифм Gamma(x).

       Если x имеет значение NaN, будет возвращено NaN.

       Если x равен 1 или 2, то возвращается +0.

       Если x равен плюс бесконечности или минус бесконечности, возвращается плюс бесконечность.

       Если x равно не положительному целому, генерируется ошибка особой точки, а функции возвращают  +HUGE_VAL,
       +HUGE_VALF или +HUGE_VALL, соответственно.

       Если  происходит  переполнение  результата,  возникает  ошибка  диапазона, а функция возвращает HUGE_VAL,
       HUGE_VALF или HUGE_VALL, соответственно, с математически правильным знаком.

ОШИБКИ

       Смотрите math_error(7), чтобы определить, какие ошибки могут возникать при вызове этих функций.

       Могут возникать следующие ошибки:

       Ошибка особой точки: x равно не положительному целому
              errno устанавливается в ERANGE (но  смотрите  ДЕФЕКТЫ).  Возникает  исключение  деления  плавающей
              запятой на ноль (FE_DIVBYZERO).

       Ошибка диапазона: результат превысил разрядность
              Значение  errno  устанавливается  в  ERANGE.  Возникает  исключение переполнения плавающей запятой
              (FE_OVERFLOW).

СТАНДАРТЫ

       Функции lgamma()  определены  в  C99,  POSIX.1-2001  и  POSIX.1-2008.  Переменная  signgam  определена  в
       POSIX.1-2001  и  POSIX.1-2008,  но  отсутствует  в  C99.  Функции  lgamma_r() являются нестандартными, но
       существуют в нескольких других системах.

ДЕФЕКТЫ

       In glibc 2.9 and earlier, when a pole error occurs, errno is set to EDOM; instead of  the  POSIX-mandated
       ERANGE.  Since glibc 2.10, glibc does the right thing.

СМ. ТАКЖЕ

       tgamma(3)

ПЕРЕВОД

       Русский  перевод  этой  страницы  руководства  был  сделан Artyom Kunyov <artkun@guitarplayer.ru>, Azamat
       Hackimov  <azamat.hackimov@gmail.com>,  Dmitry  Bolkhovskikh   <d20052005@yandex.ru>,   Katrin   Kutepova
       <blackkatelv@gmail.com>,  Konstantin Shvaykovskiy <kot.shv@gmail.com>, Yuri Kozlov <yuray@komyakino.ru> и
       Иван Павлов <pavia00@gmail.com>

       Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3
       или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

       Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное  письмо
       на man-pages-ru-talks@lists.sourceforge.net.

Linux man-pages 6.03                            5 февраля 2023 г.                                      lgamma(3)