lgamma, lgammaf, lgammal
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Definiert im Header
<math.h>
|
||
|
float
lgammaf
(
float
arg
)
;
|
(1) | (seit C99) |
|
double
lgamma
(
double
arg
)
;
|
(2) | (seit C99) |
|
long
double
lgammal
(
long
double
arg
)
;
|
(3) | (seit C99) |
|
Definiert im Header
<tgmath.h>
|
||
|
#define lgamma( arg )
|
(4) | (seit C99) |
lgammal
aufgerufen. Andernfalls, wenn
arg
ganzzahligen Typ oder den Typ
double
hat, wird
lgamma
aufgerufen. Andernfalls wird
lgammaf
aufgerufen.
Inhaltsverzeichnis |
Parameter
| arg | - | Gleitkommawert |
Rückgabewert
Wenn keine Fehler auftreten, wird der Wert des Logarithmus der Gammafunktion von
arg
, also
\(\log_{e}|{\int_0^\infty t^{arg-1} e^{-t} \mathsf{d}t}|\)
log
e
|
∫
∞
0
t
arg-1
e
-t
d
t
|
, zurückgegeben.
Wenn ein Polfehler auftritt,
+HUGE_VAL
,
+HUGE_VALF
, oder
+HUGE_VALL
wird zurückgegeben.
Wenn ein Bereichsfehler aufgrund von Überlauf auftritt,
±HUGE_VAL
,
±HUGE_VALF
, oder
±HUGE_VALL
wird zurückgegeben.
Fehlerbehandlung
Fehler werden gemeldet, wie in
math_errhandling
festgelegt.
Wenn arg null oder eine ganze Zahl kleiner als null ist, kann ein Polfehler auftreten.
Wenn die Implementierung IEEE-Gleitkommaarithmetik (IEC 60559) unterstützt,
- Wenn das Argument 1 ist, wird +0 zurückgegeben.
- Wenn das Argument 2 ist, wird +0 zurückgegeben.
- Wenn das Argument ±0 ist, wird +∞ zurückgegeben und FE_DIVBYZERO wird ausgelöst.
- Wenn das Argument eine negative Ganzzahl ist, wird +∞ zurückgegeben und FE_DIVBYZERO wird ausgelöst.
- Wenn das Argument ±∞ ist, wird +∞ zurückgegeben.
- Wenn das Argument NaN ist, wird NaN zurückgegeben.
Hinweise
Wenn arg eine natürliche Zahl ist, lgamma ( arg ) ist der Logarithmus der Fakultät von arg - 1 .
Die
POSIX-Version von
lgamma
ist nicht threadsicher: Jede Ausführung der Funktion speichert das Vorzeichen der Gammafunktion von
arg
in der statischen externen Variable
signgam
. Einige Implementierungen bieten
lgamma_r
an, das einen Zeiger auf benutzerbereitgestellten Speicher für signgam als zweiten Parameter verwendet und threadsicher ist.
Es gibt eine nicht standardisierte Funktion namens
gamma
in verschiedenen Implementierungen, aber ihre Definition ist inkonsistent. Zum Beispiel führt die glibc- und 4.2BSD-Version von
gamma
lgamma
aus, aber die 4.4BSD-Version von
gamma
führt
tgamma
aus.
Beispiel
#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)); // Spezielle Werte printf("lgamma(1) = %f\n", lgamma(1)); printf("lgamma(+Inf) = %f\n", lgamma(INFINITY)); // Fehlerbehandlung 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"); }
Mögliche Ausgabe:
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: Numerical result out of range
FE_DIVBYZERO raised
Referenzen
- C23-Standard (ISO/IEC 9899:2024):
-
- 7.12.8.3 Die lgamma-Funktionen (S.: TBD)
-
- 7.25 Typgenerische Mathematik <tgmath.h> (S.: TBD)
-
- F.10.5.3 Die lgamma-Funktionen (S.: TBD)
- C17-Standard (ISO/IEC 9899:2018):
-
- 7.12.8.3 Die lgamma-Funktionen (S: 182)
-
- 7.25 Typgenerische Mathematik <tgmath.h> (S: 272-273)
-
- F.10.5.3 Die lgamma-Funktionen (S: 383)
- C11-Standard (ISO/IEC 9899:2011):
-
- 7.12.8.3 Die lgamma-Funktionen (S: 250)
-
- 7.25 Typgenerische Mathematik <tgmath.h> (S: 373-375)
-
- F.10.5.3 Die lgamma-Funktionen (S: 525)
- C99-Standard (ISO/IEC 9899:1999):
-
- 7.12.8.3 Die lgamma-Funktionen (S: 231)
-
- 7.22 Typgenerische Mathematik <tgmath.h> (S: 335-337)
-
- F.9.5.3 Die lgamma-Funktionen (S: 462)
Siehe auch
|
(C99)
(C99)
(C99)
|
berechnet die Gamma-Funktion
(Funktion) |
|
C++-Dokumentation
für
lgamma
|
|
Externe Links
| Weisstein, Eric W. "Log Gamma Function." Von MathWorld — Eine Wolfram Web Resource. |