tgamma, tgammaf, tgammal
| Definiert in Header <math.h> |
||
| float tgammaf( float arg ); |
(1) | (seit C99) |
| double tgamma( double arg ); |
(2) | (seit C99) |
| long double tgammal( long double arg ); |
(3) | (seit C99) |
| Definiert in Header <tgmath.h> |
||
| #define tgamma( arg ) |
(4) | (seit C99) |
tgammal aufgerufen. Andernfalls, wenn arg vom Integer-Typ oder vom Typ double ist, wird tgamma aufgerufen. Andernfalls wird tgammaf aufgerufen.Inhalt |
[edit] Parameter
| arg | - | Gleitkommawert |
[edit] Rückgabewert
Wenn keine Fehler auftreten, wird der Wert der Gammafunktion von arg zurückgegeben, d. h. ∫∞
0targ-1
e-t dt.
Wenn ein Domänenfehler auftritt, wird ein implementierungsdefinierter Wert (NaN, wo unterstützt) zurückgegeben.
Wenn ein Polfehler auftritt, wird ±HUGE_VAL, ±HUGE_VALF oder ±HUGE_VALL zurückgegeben.
Wenn ein Bereichsfehler aufgrund von Überlauf auftritt, wird ±HUGE_VAL, ±HUGE_VALF oder ±HUGE_VALL zurückgegeben.
Wenn ein Bereichsfehler aufgrund von Unterlauf auftritt, wird der korrekte Wert (nach Rundung) zurückgegeben.
[edit] Fehlerbehandlung
Fehler werden wie in math_errhandling angegeben gemeldet.
Wenn arg null oder eine negative ganze Zahl ist, kann ein Polfehler oder ein Domänenfehler auftreten.
Wenn die Implementierung IEEE-Gleitkomma-Arithmetik (IEC 60559) unterstützt
- Wenn das Argument ±0 ist, wird ±∞ zurückgegeben und FE_DIVBYZERO ausgelöst.
- Wenn das Argument eine negative ganze Zahl ist, wird NaN zurückgegeben und FE_INVALID ausgelöst.
- Wenn das Argument -∞ ist, wird NaN zurückgegeben und FE_INVALID ausgelöst.
- Wenn das Argument +∞ ist, wird +∞ zurückgegeben.
- Wenn das Argument NaN ist, wird NaN zurückgegeben.
[edit] Hinweise
Wenn arg eine natürliche Zahl ist, ist tgamma(arg) die Fakultät von arg - 1. Viele Implementierungen berechnen die exakte Fakultät für Ganzzahlargumente, wenn das Argument eine ausreichend kleine ganze Zahl ist.
Für den IEEE-kompatiblen Typ double tritt ein Überlauf auf, wenn 0 < x < 1/DBL_MAX oder wenn x > 171.7.
POSIX schreibt vor, dass ein Polfehler auftritt, wenn das Argument null ist, während ein Domänenfehler auftritt, wenn das Argument eine negative ganze Zahl ist. Es wird auch angegeben, dass Domänenfehler in Zukunft durch Polfehler für negative ganzzahlige Argumente ersetzt werden könnten (in diesem Fall würde der Rückgabewert von NaN zu ±∞ geändert).
Es gibt eine nicht standardmäßige Funktion namens gamma in verschiedenen Implementierungen, aber ihre Definition ist inkonsistent. Zum Beispiel führen die glibc und die 4.2BSD-Version von gamma lgamma aus, aber die 4.4BSD-Version von gamma führt tgamma aus.
[edit] 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("tgamma(10) = %f, 9!=%f\n", tgamma(10), 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9.0); printf("tgamma(0.5) = %f, sqrt(pi) = %f\n", tgamma(0.5), sqrt(acos(-1))); // special values printf("tgamma(+Inf) = %f\n", tgamma(INFINITY)); // error handling errno = 0; feclearexcept(FE_ALL_EXCEPT); printf("tgamma(-1) = %f\n", tgamma(-1)); if (errno == ERANGE) perror(" errno == ERANGE"); else if (errno == EDOM) perror(" errno == EDOM"); if (fetestexcept(FE_DIVBYZERO)) puts(" FE_DIVBYZERO raised"); else if (fetestexcept(FE_INVALID)) puts(" FE_INVALID raised"); }
Mögliche Ausgabe
tgamma(10) = 362880.000000, 9!=362880.000000
tgamma(0.5) = 1.772454, sqrt(pi) = 1.772454
tgamma(+Inf) = inf
tgamma(-1) = nan
errno == EDOM: Numerical argument out of domain
FE_INVALID raised[edit] Referenzen
- C23-Standard (ISO/IEC 9899:2024)
- 7.12.8.4 Die tgamma-Funktionen (S. 250)
- 7.25 Typ-generische Mathematik <tgmath.h> (S. 373-375)
- F.10.5.4 Die tgamma-Funktionen (S. 525)
- C17-Standard (ISO/IEC 9899:2018)
- 7.12.8.4 Die tgamma-Funktionen (S. 250)
- 7.25 Typ-generische Mathematik <tgmath.h> (S. 373-375)
- F.10.5.4 Die tgamma-Funktionen (S. 525)
- C11-Standard (ISO/IEC 9899:2011)
- 7.12.8.4 Die tgamma-Funktionen (S. 250)
- 7.25 Typ-generische Mathematik <tgmath.h> (S. 373-375)
- F.10.5.4 Die tgamma-Funktionen (S. 525)
- C99-Standard (ISO/IEC 9899:1999)
- 7.12.8.4 Die tgamma-Funktionen (S. 231)
- 7.22 Typ-generische Mathematik <tgmath.h> (S. 335-337)
- F.9.5.4 Die tgamma-Funktionen (S. 462)
[edit] Siehe auch
| (C99)(C99)(C99) |
berechnet den natürlichen (Basis-e) Logarithmus der Gammafunktion (Funktion) |
| C++-Dokumentation für tgamma
| |
[edit] Externe Links
| Weisstein, Eric W. "Gamma Function." From MathWorld — A Wolfram Web Resource. |