lgamma, lgammaf, lgammal
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Défini dans l'en-tête
<math.h>
|
||
|
float
lgammaf
(
float
arg
)
;
|
(1) | (depuis C99) |
|
double
lgamma
(
double
arg
)
;
|
(2) | (depuis C99) |
|
long
double
lgammal
(
long
double
arg
)
;
|
(3) | (depuis C99) |
|
Défini dans l'en-tête
<tgmath.h>
|
||
|
#define lgamma( arg )
|
(4) | (depuis C99) |
lgammal
est appelé. Sinon, si
arg
a un type entier ou le type
double
,
lgamma
est appelé. Sinon,
lgammaf
est appelé.
Table des matières |
Paramètres
| arg | - | valeur à virgule flottante |
Valeur de retour
Si aucune erreur ne se produit, la valeur du logarithme de la fonction gamma de
arg
, c'est-à-dire
\(\log_{e}|{\int_0^\infty t^{arg-1} e^{-t} \mathsf{d}t}|\)
log
e
|
∫
∞
0
t
arg-1
e
-t
d
t
|
, est retournée.
Si une erreur de pôle se produit,
+HUGE_VAL
,
+HUGE_VALF
, ou
+HUGE_VALL
est retourné.
Si une erreur de plage due à un dépassement de capacité se produit,
±HUGE_VAL
,
±HUGE_VALF
, ou
±HUGE_VALL
est renvoyé.
Gestion des erreurs
Les erreurs sont signalées comme spécifié dans
math_errhandling
.
Si arg est nul ou est un entier inférieur à zéro, une erreur de pôle peut survenir.
Si l'implémentation prend en charge l'arithmétique à virgule flottante IEEE (IEC 60559),
- Si l'argument est 1, +0 est retourné.
- Si l'argument est 2, +0 est retourné.
- Si l'argument est ±0, +∞ est retourné et FE_DIVBYZERO est déclenché.
- Si l'argument est un entier négatif, +∞ est retourné et FE_DIVBYZERO est déclenché.
- Si l'argument est ±∞, +∞ est retourné.
- Si l'argument est NaN, NaN est retourné.
Notes
Si arg est un nombre naturel, lgamma ( arg ) est le logarithme de la factorielle de arg - 1 .
La
version POSIX de
lgamma
n'est pas thread-safe : chaque exécution de la fonction stocke le signe de la fonction gamma de
arg
dans la variable externe statique
signgam
. Certaines implémentations fournissent
lgamma_r
, qui prend un pointeur vers un stockage fourni par l'utilisateur pour signgam comme second paramètre, et est thread-safe.
Il existe une fonction non standard nommée
gamma
dans diverses implémentations, mais sa définition est incohérente. Par exemple, la version glibc et 4.2BSD de
gamma
exécute
lgamma
, mais la version 4.4BSD de
gamma
exécute
tgamma
.
Exemple
#include <errno.h> #include <fenv.h> #include <float.h> #include <math.h> #include <stdio.h> // #pragma STDC FENV_ACCESS ON int main(void) { printf("lgamma(10) = %f, log(9!) = %f\n", lgamma(10), log(2 * 3 * 4 * 5 * 6 * 7 * 8 * 9)); const double pi = acos(-1); printf("lgamma(0.5) = %f, log(sqrt(pi)) = %f\n", log(sqrt(pi)), lgamma(0.5)); // valeurs spéciales printf("lgamma(1) = %f\n", lgamma(1)); printf("lgamma(+Inf) = %f\n", lgamma(INFINITY)); // gestion des erreurs errno = 0; feclearexcept(FE_ALL_EXCEPT); printf("lgamma(0) = %f\n", lgamma(0)); if (errno == ERANGE) perror(" errno == ERANGE"); if (fetestexcept(FE_DIVBYZERO)) puts(" FE_DIVBYZERO raised"); }
Sortie possible :
lgamma(10) = 12.801827, log(9!) = 12.801827
lgamma(0.5) = 0.572365, log(sqrt(pi)) = 0.572365
lgamma(1) = 0.000000
lgamma(+Inf) = inf
lgamma(0) = inf
errno == ERANGE: Résultat numérique hors limites
FE_DIVBYZERO raised
Références
- Norme C23 (ISO/CEI 9899:2024) :
-
- 7.12.8.3 Les fonctions lgamma (p: TBD)
-
- 7.25 Mathématiques génériques de type <tgmath.h> (p: TBD)
-
- F.10.5.3 Les fonctions lgamma (p: TBD)
- Norme C17 (ISO/CEI 9899:2018) :
-
- 7.12.8.3 Les fonctions lgamma (p: 182)
-
- 7.25 Mathématiques génériques <tgmath.h> (p: 272-273)
-
- F.10.5.3 Les fonctions lgamma (p: 383)
- Norme C11 (ISO/IEC 9899:2011) :
-
- 7.12.8.3 Les fonctions lgamma (p: 250)
-
- 7.25 Mathématiques génériques de type <tgmath.h> (p: 373-375)
-
- F.10.5.3 Les fonctions lgamma (p: 525)
- Norme C99 (ISO/CEI 9899:1999) :
-
- 7.12.8.3 Les fonctions lgamma (p: 231)
-
- 7.22 Mathématiques génériques de type <tgmath.h> (p: 335-337)
-
- F.9.5.3 Les fonctions lgamma (p: 462)
Voir aussi
|
(C99)
(C99)
(C99)
|
calcule la fonction gamma
(fonction) |
|
documentation C++
pour
lgamma
|
|
Liens externes
| Weisstein, Eric W. "Log Gamma Function." De MathWorld — Une ressource Web Wolfram. |