zion - lgamma
Nom
lgamma, lgammaf, lgammal, lgamma_r, lgammaf_r, lgammal_r - Logarithme de la fonction gamma.
Résumé
.nf #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 ); .fi
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
Poster un commentaire