std::atanh, std::atanhf, std::atanhl
| Definiert in der Header-Datei <cmath> |
||
| (1) | ||
float atanh ( float num ); double atanh ( double num ); |
(bis C++23) | |
| /* Gleitkommazahl-Typ */ atanh ( /*Gleitkommazahltyp*/ num ); |
(seit C++23) (constexpr seit C++26) |
|
float atanhf( float num ); |
(2) | (seit C++11) (constexpr seit C++26) |
long double atanhl( long double num ); |
(3) | (seit C++11) (constexpr seit C++26) |
| SIMD-Überladung (seit C++26) |
||
| Definiert im Header <simd> |
||
| template< /*math-floating-point*/ V > constexpr /*deduzierter-simd-t*/<V> |
(S) | (seit C++26) |
| Zusätzliche Überladungen (seit C++11) |
||
| Definiert in der Header-Datei <cmath> |
||
template< class Integer > double atanh ( Integer num ); |
(A) | (constexpr seit C++26) |
std::atanh für alle cv-unqualifizierten Gleitkommatypen als Parametertyp bereit.(seit C++23)|
S) Die SIMD-Überladung führt eine elementweise
std::atanh für v_num durch.
|
(seit C++26) |
|
A) Zusätzliche Überladungen werden für alle ganzzahligen Typen bereitgestellt, die als double behandelt werden.
|
(seit C++11) |
Inhalt |
[edit] Parameter
| num | - | Gleitkomma- oder Ganzzahlwert |
[edit] Rückgabewert
Wenn keine Fehler auftreten, wird der inverse hyperbolische Tangens von num (tanh-1
(num) oder artanh(num)) 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 (mit dem korrekten Vorzeichen) zurückgegeben.
Wenn ein Bereichsfehler aufgrund eines Unterlaufs auftritt, wird das korrekte Ergebnis (nach Rundung) zurückgegeben.
[edit] Fehlerbehandlung
Fehler werden wie in math_errhandling beschrieben gemeldet.
Wenn das Argument nicht im Intervall [-1, +1] liegt, tritt ein Bereichsfehler auf.
Wenn das Argument ±1 ist, tritt ein Polfehler auf.
Wenn die Implementierung IEEE-Gleitkomma-Arithmetik (IEC 60559) unterstützt,
- Wenn das Argument ±0 ist, wird es unverändert zurückgegeben.
- Wenn das Argument ±1 ist, wird ±∞ zurückgegeben und FE_DIVBYZERO wird ausgelöst.
- Wenn |num|>1, wird NaN zurückgegeben und FE_INVALID wird ausgelöst.
- Wenn das Argument NaN ist, wird NaN zurückgegeben.
[edit] Hinweise
Obwohl der C-Standard (auf den sich C++ für diese Funktion bezieht) diese Funktion "arcus hyperbolicus tangens" nennt, sind die Umkehrfunktionen der hyperbolischen Funktionen die Flächenfunktionen. Ihr Argument ist die Fläche eines hyperbolischen Sektors, nicht ein Bogen. Der korrekte Name ist "inverser hyperbolischer Tangens" (von POSIX verwendet) oder "Flächen-hyperbolischer Tangens".
POSIX spezifiziert, dass im Falle eines Unterlaufs num unverändert zurückgegeben wird und, falls dies nicht unterstützt wird, ein implementierungsdefinierter Wert zurückgegeben wird, der nicht größer ist als DBL_MIN, FLT_MIN und LDBL_MIN.
Die zusätzlichen Überladungen müssen nicht exakt wie in (A) angegeben bereitgestellt werden. Sie müssen nur ausreichend sein, um sicherzustellen, dass für ihr Argument num vom Integer-Typ, std::atanh(num) dieselbe Wirkung hat wie std::atanh(static_cast<double>(num)).
[edit] Beispiel
#include <cerrno> #include <cfenv> #include <cfloat> #include <cmath> #include <cstring> #include <iostream> // #pragma STDC FENV_ACCESS ON int main() { std::cout << "atanh(0) = " << std::atanh(0) << '\n' << "atanh(-0) = " << std::atanh(-0.0) << '\n' << "atanh(0.9) = " << std::atanh(0.9) << '\n'; // error handling errno = 0; std::feclearexcept(FE_ALL_EXCEPT); std::cout << "atanh(-1) = " << std::atanh(-1) << '\n'; if (errno == ERANGE) std::cout << " errno == ERANGE: " << std::strerror(errno) << '\n'; if (std::fetestexcept(FE_DIVBYZERO)) std::cout << " FE_DIVBYZERO raised\n"; }
Mögliche Ausgabe
atanh(0) = 0
atanh(-0) = -0
atanh(0.9) = 1.47222
atanh(-1) = -inf
errno == ERANGE: Numerical result out of range
FE_DIVBYZERO raised[edit] Siehe auch
| (C++11)(C++11)(C++11) |
berechnet den inversen hyperbolischen Sinus (arsinh(x)) (Funktion) |
| (C++11)(C++11)(C++11) |
berechnet den inversen hyperbolischen Kosinus (arcosh(x)) (Funktion) |
| (C++11)(C++11) |
berechnet den hyperbolischen Tangens (tanh(x)) (Funktion) |
| (C++11) |
berechnet den Area Hyperbolicus Tangens einer komplexen Zahl (artanh(z)) (function template) |
| C-Dokumentation für atanh
| |
[edit] Externe Links
| Weisstein, Eric W. "Inverse Hyperbolic Tangent." From MathWorld — A Wolfram Web Resource. |