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;

Utilisez -lm à l'édition de liens pour lier avec la bibliothèque mathématique.

Exigences de macros de test de fonctionnalité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 néperien (ou naturel) 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 multithreads, les fonctions lgamma_r() etc. ont été introduites, elles renvoient le signe dans le paramètre signp.

Pour les valeurs entières négatives ou nulles de x, 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 si des erreurs se produisent, vous devez mettre zéro dans errno et appeler feclearexcept(FE_ALL_EXCEPT) avant d'invoquer ces fonctions. 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 dans C99 et POSIX.1-2001. signgam est spécifiée dans POSIX.1-2001 mais pas dans C99. Les fonctions lgamma_r() ne sont pas standard mais présentes sur d'autres systèmes.

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 17 juillet 2008.

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.