log, logf, logl
Von cppreference.com
| Definiert in Header <math.h> |
||
| float logf( float arg ); |
(1) | (seit C99) |
| double log( double arg ); |
(2) | |
| long double logl( long double arg ); |
(3) | (seit C99) |
| Definiert in Header <tgmath.h> |
||
| #define log( arg ) |
(4) | (seit C99) |
1-3) Berechnet den natürlichen (Basis e) Logarithmus von arg.
4) Typ-generisches Makro: Wenn arg vom Typ long double ist, wird
logl aufgerufen. Andernfalls, wenn arg einen ganzzahligen Typ oder den Typ double hat, wird log aufgerufen. Andernfalls wird logf aufgerufen. Wenn arg komplex oder imaginär ist, ruft das Makro die entsprechende komplexe Funktion auf (clogf, clog, clogl).Inhalt |
[edit] Parameter
| arg | - | Gleitkommawert |
[edit] Rückgabewert
Wenn keine Fehler auftreten, wird der natürliche (Basis-e) Logarithmus von arg (ln(arg) oder loge(arg)) zurückgegeben.
Wenn ein Domänenfehler auftritt, wird ein implementierungsabhängiger Wert zurückgegeben (NaN, wo unterstützt).
Wenn ein Polfehler auftritt, wird -HUGE_VAL, -HUGE_VALF oder -HUGE_VALL zurückgegeben.
[edit] Fehlerbehandlung
Fehler werden wie in math_errhandling angegeben gemeldet.
Ein Domänenfehler tritt auf, wenn arg kleiner als Null ist.
Ein Polfehler kann auftreten, wenn arg Null ist.
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 1 ist, wird +0 zurückgegeben.
- Wenn das Argument negativ 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] Beispiel
Führen Sie diesen Code aus
#include <errno.h> #include <fenv.h> #include <float.h> #include <math.h> #include <stdio.h> // #pragma STDC FENV_ACCESS ON int main(void) { printf("log(1) = %f\n", log(1)); printf("base-5 logarithm of 125 = %f\n", log(125) / log(5)); // special values printf("log(1) = %f\n", log(1)); printf("log(+Inf) = %f\n", log(INFINITY)); // error handling errno = 0; feclearexcept(FE_ALL_EXCEPT); printf("log(0) = %f\n", log(0)); if (errno == ERANGE) perror(" errno == ERANGE"); if (fetestexcept(FE_DIVBYZERO)) puts(" FE_DIVBYZERO raised"); }
Ausgabe
log(1) = 0.000000
base-5 logarithm of 125 = 3.000000
log(1) = 0.000000
log(+Inf) = inf
log(0) = -inf
errno == ERANGE: Numerical result out of range
FE_DIVBYZERO raised[edit] Referenzen
- C23-Standard (ISO/IEC 9899:2024)
- 7.12.6.7 Die log-Funktionen (S. TBD)
- 7.25 Typ-generische Mathematik <tgmath.h> (S. TBD)
- F.10.3.7 Die log-Funktionen (S. TBD)
- C17-Standard (ISO/IEC 9899:2018)
- 7.12.6.7 Die log-Funktionen (S. 178-179)
- 7.25 Typ-generische Mathematik <tgmath.h> (S. 272-273)
- F.10.3.7 Die log-Funktionen (S. 380)
- C11-Standard (ISO/IEC 9899:2011)
- 7.12.6.7 Die log-Funktionen (S. 244-245)
- 7.25 Typ-generische Mathematik <tgmath.h> (S. 373-375)
- F.10.3.7 Die log-Funktionen (S. 522)
- C99-Standard (ISO/IEC 9899:1999)
- 7.12.6.7 Die log-Funktionen (S. 225)
- 7.22 Typ-generische Mathematik <tgmath.h> (S. 335-337)
- F.9.3.7 Die log-Funktionen (S. 459)
- C89/C90-Standard (ISO/IEC 9899:1990)
- 4.5.4.4 Die log-Funktion
[edit] Siehe auch
| (C99)(C99) |
berechnet den gemeinsamen (Basis-10) Logarithmus (log10(x)) (Funktion) |
| (C99)(C99)(C99) |
berechnet den Basis-2 Logarithmus (log2(x)) (Funktion) |
| (C99)(C99)(C99) |
berechnet den natürlichen (Basis-e) Logarithmus von 1 plus die gegebene Zahl (ln(1+x)) (Funktion) |
| (C99)(C99) |
berechnet e hoch die gegebene Potenz (ex) (Funktion) |
| (C99)(C99)(C99) |
berechnet den komplexen natürlichen Logarithmus (Funktion) |
| C++ Dokumentation für log
| |