gamma(), gamma_r(), gammaf(), gammaf_r()

Вернуть значение натурального логарифма от гамма-функции

Прототип:

#include <math.h>
double gamma( double x );
double gamma_r( double x,
int *signgam );
float gammaf( float x );
float gammaf_r( float x,
int *signgam );

Аргументы:

x
Произвольное число.
signgam
(только для gamma_r(), gammaf_r()) Указатель на область памяти, где функция может хранить знак Γ( x ).

Библиотека:

libm

Описание:

Функции gamma() и gamma_r() возвращают натуральный логарифм (ln) от gamma() функции и эквивалентны lgamma(). Данные функции возвращают ln|Γ( x )|, где Γ( x ) определена следующим образом:

Для x > 0:

gamma.png

Для x < 1: n / (Γ( 1 - x ) * sin( nx ))

Результаты сходятся, когда x находится в диапазоне от 0 до 1. Функция Г имеет свойство:

Γ( N ) = Γ( N - 1 ) × N

Функции gamma*() вычисляют логарифм, потому что функция Г растет очень быстро.

Функции gamma() и gammaf() используют внешнее целое число signgam для возвращения знака Γ( x ), в то время как gamma_r() и gammaf_r() используют память, выделенную пользователем по адресу signgamp.


Note: Переменная signgam не инициализирована до тех пор, пока не завершится gamma() или gammaf(). Например, выражение:

g = signgam * exp( gamma( x ) );

для вычисления g = Γ( x )'. Вместо этого, вычислите сначала gamma():

lg = gamma( x );
g = signgam * exp( lg );


Обратите внимание, что Γ( x ) должна переполниться при больших значениях x, и иметь крайне малые значения при больших значениях -x, и генерировать исключение деления на 0 при случаях, когда x является неположительным целым числом.

Возвращаемое значение:

ln|Γ( x )|


Note: В случае возникновения ошибки, эти функции возвращают 0, который также может быть и достоверным математическим результатом. Если вам необходимо проверить, возникла ли ошибка, установите errno в 0, вызовите функцию, и затем снова проверьте errno. Эти функции не изменяют errno в случае отсутствия ошибок.

Классификация:

Legacy Unix

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Нет
В потоке
Да

Тематические ссылки:

lgamma()




Предыдущий раздел: Описание API математической библиотеки