LGAMMA(3)

NOM
lgamma, lgammaf, lgammal, lgamma_r, lgammaf_r, lgammal_r, signgam - 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);

extern int signgam;

Exigences de macros de test de fonctionalités pour la glibc (voir feature_test_macros(7)) :

lgamma(), lgammaf(), lgammal() : _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE || _ISOC99_SOURCE; ou cc -std=c99
lgamma_r(), lgammaf_r(), lgammal_r() : _BSD_SOURCE || _SVID_SOURCE
signgam : _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE

DESCRIPTION
Pour la définition de la fonction Gamma, voir tgamma(3).

La fonction 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ée 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é introduites, 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ême, lgammaf() renvoie HUGE_VALF et lgammal() renvoie HUGE_VALL.)

ERREURS
Afin de vérifier les conditions d'erreur, vous devez mettre errno à zéro et appeler feclearexcept(FE_ALL_EXCEPT) avant d'invoquer ces fontions. En retour, si errno est non nul ou si fetestexcept(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW) est non nul, une erreur s'est produite.

Une erreur d'échelle survient si x est trop grand. Une erreur de pôle survient si x est un entier négatif ou nul.

CONFORMITÉ
Les fonctions lgamma() sont spécifiées par C99 et POSIX.1-2001. signgam est spécifiée par POSIX.1-2001 mais pas par C99. Les fonctions lgamma_r() ne sont pas standards mais présentes sur d'autres systèmes.

NOTES
Pour utiliser les fonctions de la bibliothèque mathématique, il ne faut pas oublier d'ajouter l'argument -lm sur la ligne de commande de cc(1) ou ld(1), lors de l'édition des liens.

VOIR AUSSI
tgamma(3)

TRADUCTION

Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 21 juillet 2003 et révisée le 19 décembre 2007.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 3 lgamma ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.