Provided by: manpages-ru-dev_4.18.1-1_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 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ или более позднюю, чтобы
       узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

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