LGAMMA

Section: Manuel du programmeur Linux (3)
Updated: 21 juillet 2003
Index


NOM
SYNOPSIS
DESCRIPTION
ERREURS
CONFORMITÉ
VOIR AUSSI
TRADUCTION

NOM

lgamma, lgammaf, lgammal, lgamma_r, lgammaf_r, lgammal_r - Logarithme de la fonction gamma.

SYNOPSIS

#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);

DESCRIPTION

La fonction Gamma est définie ainsi :

 Gamma(x) = intégrale de 0 à l'infini de t^(x-1) e^-t dt
Elle est déféinie pour tous réels sauf les entiers négatifs ou nuls. Pour un entier non-négatif m on a

 Gamma(m+1) = m!
et, plus généralement pour tout x:

 Gamma(x+1) = x * Gamma(x)
Pour x < 0.5 on peut écrire

 Gamma(x) * Gamma(1-x) = PI/sin(PI*x)
La fonctin lgamma() renvoie le logarithme naturel (néperien) de la valeur absolue de la fonction Gamma. Le signe de la fonction Gamma est stocké dans la variable entière externe signgam déclaré dans <math.h>. Il vaut 1 si la fonction Gamma est positive ou nulle, -1 si elle est négative.
Comme l'utilisation de la variable statique signgam n'est pas sûre en multi-threads, les fonctions lgamma_r() etc. ont été introduite, elles renvoient le signe dans le paramètre signp.
Pour les x entiers négatifs ou nuls, lgamma() renvoie HUGE_VAL, remplit errno avec ERANGE, et déclenche l'exception Division par zéro. (De mêm, lgammaf() renvoie HUGE_VALF et lgammal() renvoie HUGE_VALL.)

ERREURS

Une application voulant vérifier les conditions d'erreur doit mettre errno à zéro et appeler feclearexcept(FE_ALL_EXCEPT) avant d'invoquer ces fontions. En retour, si errno est non-null ou si fetestexcept(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW) est non-nul, une erreur s'est produite.
ERANGE
Argument invalide, valeur entière négative dans x.

CONFORMITÉ

C99, SVID 3, BSD 4.3

VOIR AUSSI

tgamma(3)

TRADUCTION

Christophe Blaess, 2003