std::tanh(std::complex)
Von cppreference.com
| Definiert in der Header-Datei <complex> |
||
| template< class T > complex<T> tanh( const complex<T>& z ); |
(seit C++11) | |
Berechnet den komplexen hyperbolischen Tangens eines komplexen Werts z.
Inhalt |
[edit] Parameter
| z | - | komplexer Wert |
[edit] Rückgabewert
Wenn keine Fehler auftreten, wird der komplexe hyperbolische Tangens von z zurückgegeben.
[edit] Fehlerbehandlung und spezielle Werte
Fehler werden konsistent mit math_errhandling gemeldet.
Wenn die Implementierung IEEE-Gleitkomma-Arithmetik unterstützt,
- std::tanh(std::conj(z)) == std::conj(std::tanh(z)).
- std::tanh(-z) == -std::tanh(z).
- Wenn z
(+0,+0)ist, ist das Ergebnis(+0,+0). - Wenn z
(x,+∞)ist (für jedes[1] endliche x), ist das Ergebnis(NaN,NaN)und FE_INVALID wird ausgelöst. - Wenn z
(x,NaN)ist (für jedes[2] endliche x), ist das Ergebnis(NaN,NaN)und FE_INVALID kann ausgelöst werden. - Wenn z
(+∞,y)ist (für jedes endliche positive y), ist das Ergebnis(1,+0). - Wenn z
(+∞,+∞)ist, ist das Ergebnis(1,±0)(das Vorzeichen des Imaginärteils ist nicht spezifiziert). - Wenn z
(+∞,NaN)ist, ist das Ergebnis(1,±0)(das Vorzeichen des Imaginärteils ist nicht spezifiziert). - Wenn z
(NaN,+0)ist, ist das Ergebnis(NaN,+0). - Wenn z
(NaN,y)ist (für jedes nicht-null y), ist das Ergebnis(NaN,NaN)und FE_INVALID kann ausgelöst werden. - Wenn z
(NaN,NaN)ist, ist das Ergebnis(NaN,NaN).
- ↑ gemäß C11 DR471 gilt dies nur für x ≠ 0. Wenn
z(0,∞)ist, sollte das Ergebnis(0,NaN)sein. - ↑ gemäß C11 DR471 gilt dies nur für x ≠ 0. Wenn
z(0,NaN)ist, sollte das Ergebnis(0,NaN)sein.
[edit] Hinweise
Die mathematische Definition des hyperbolischen Tangens ist tanh z =| ez -e-z |
| ez +e-z |
Der hyperbolische Tangens ist eine analytische Funktion auf der komplexen Ebene und hat keine Zweigschnitte. Er ist bezüglich der imaginären Komponente mit der Periode πi periodisch und hat Pole erster Ordnung entlang der imaginären Achse an den Koordinaten (0, π(1/2 + n)). Keine gängige Gleitkommadarstellung kann jedoch π/2 exakt darstellen, daher tritt für keinen Argumentwert ein Pol-Fehler auf.
[edit] Beispiel
Führen Sie diesen Code aus
#include <cmath> #include <complex> #include <iostream> int main() { std::cout << std::fixed; std::complex<double> z(1.0, 0.0); // behaves like real tanh along the real line std::cout << "tanh" << z << " = " << std::tanh(z) << " (tanh(1) = " << std::tanh(1) << ")\n"; std::complex<double> z2(0.0, 1.0); // behaves like tangent along the imaginary line std::cout << "tanh" << z2 << " = " << std::tanh(z2) << " ( tan(1) = " << std::tan(1) << ")\n"; }
Ausgabe
tanh(1.000000,0.000000) = (0.761594,0.000000) (tanh(1) = 0.761594) tanh(0.000000,1.000000) = (0.000000,1.557408) ( tan(1) = 1.557408)
[edit] Siehe auch
| berechnet den hyperbolischen Sinus einer komplexen Zahl (sinh(z)) (function template) | |
| berechnet den hyperbolischen Kosinus einer komplexen Zahl (cosh(z)) (function template) | |
| (C++11) |
berechnet den Area Hyperbolicus Tangens einer komplexen Zahl (artanh(z)) (function template) |
| (C++11)(C++11) |
berechnet den hyperbolischen Tangens (tanh(x)) (Funktion) |
| wendet die Funktion std::tanh auf jedes Element des Valarrays an (function template) | |
| C-Dokumentation für ctanh
| |