std::tanh, std::tanhf, std::tanhl
| Definiert in der Header-Datei <cmath> |
||
| (1) | ||
float tanh ( float num ); double tanh ( double num ); |
(bis C++23) | |
| /* Gleitkommazahl-Typ */ tanh ( /*Gleitkommatyp*/ num ); |
(seit C++23) (constexpr seit C++26) |
|
float tanhf( float num ); |
(2) | (seit C++11) (constexpr seit C++26) |
long double tanhl( 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 tanh ( Integer num ); |
(A) | (constexpr seit C++26) |
std::tanh für alle cv-unqualifizierten Gleitkommatypen als Parametertyp bereit.(seit C++23)|
S) Die SIMD-Überladung führt ein elementweises
std::tanh auf v_num aus.
|
(seit C++26) |
|
A) Zusätzliche Überladungen werden für alle ganzzahligen Typen bereitgestellt, die als double behandelt werden.
|
(seit C++11) |
Inhalt |
[bearbeiten] Parameter
| num | - | Gleitkomma- oder Ganzzahlwert |
[bearbeiten] Rückgabewert
Wenn keine Fehler auftreten, wird der hyperbolische Tangens von num (tanh(num) oder| enum -e-num |
| enum +e-num |
Wenn ein Bereichsfehler aufgrund eines Unterlaufs auftritt, wird das korrekte Ergebnis (nach Rundung) zurückgegeben.
[bearbeiten] Fehlerbehandlung
Fehler werden wie in math_errhandling beschrieben gemeldet.
Wenn die Implementierung IEEE-Gleitkomma-Arithmetik (IEC 60559) unterstützt,
- Wenn das Argument ±0 ist, wird ±0 zurückgegeben.
- Wenn das Argument ±∞ ist, wird ±1 zurückgegeben.
- Wenn das Argument NaN ist, wird NaN zurückgegeben.
[bearbeiten] Hinweise
POSIX legt fest, dass im Falle eines Unterlaufs num unverändert zurückgegeben wird, und wenn dies nicht unterstützt wird, ein implementierungsdefinierter Wert nicht größer als DBL_MIN, FLT_MIN und LDBL_MIN zurückgegeben wird.
Die zusätzlichen Überladungen müssen nicht exakt wie (A) bereitgestellt werden. Sie müssen nur ausreichen, um sicherzustellen, dass für ihr Argument num vom Ganzzahltyp std::tanh(num) die gleiche Wirkung hat wie std::tanh(static_cast<double>(num)).
[bearbeiten] Beispiel
#include <cmath> #include <iostream> #include <random> double get_random_between(double min, double max) { std::random_device rd; std::mt19937 gen(rd()); return std::uniform_real_distribution<>(min, max)(gen); } int main() { const double x = get_random_between(-1.0, 1.0); std::cout << std::showpos << "tanh(+1) = " << std::tanh(+1) << '\n' << "tanh(-1) = " << std::tanh(-1) << '\n' << "tanh(x)*sinh(2*x)-cosh(2*x) = " << std::tanh(x) * std::sinh(2 * x) - std::cosh(2 * x) << '\n' // special values: << "tanh(+0) = " << std::tanh(+0.0) << '\n' << "tanh(-0) = " << std::tanh(-0.0) << '\n'; }
Ausgabe
tanh(+1) = +0.761594 tanh(-1) = -0.761594 tanh(x)*sinh(2*x)-cosh(2*x) = -1 tanh(+0) = +0 tanh(-0) = -0
[bearbeiten] Siehe auch
| (C++11)(C++11) |
berechnet den hyperbolischen Sinus (sinh(x)) (Funktion) |
| (C++11)(C++11) |
berechnet den hyperbolischen Kosinus (cosh(x)) (Funktion) |
| (C++11)(C++11)(C++11) |
berechnet den inversen hyperbolischen Tangens (artanh(x)) (Funktion) |
| berechnet den hyperbolischen Tangens einer komplexen Zahl (tanh(z)) (function template) | |
| wendet die Funktion std::tanh auf jedes Element von valarray an (function template) | |
| C-Dokumentation für tanh
| |