Namensräume
Varianten
Aktionen

std::tanh(std::complex)

Von cppreference.com
< cpp‎ | numeric‎ | complex
 
 
 
 
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).
  1. gemäß C11 DR471 gilt dies nur für x ≠ 0. Wenn z (0,∞) ist, sollte das Ergebnis (0,NaN) sein.
  2. 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

#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) [edit]
berechnet den hyperbolischen Kosinus einer komplexen Zahl (cosh(z))
(function template) [edit]
berechnet den Area Hyperbolicus Tangens einer komplexen Zahl (artanh(z))
(function template) [edit]
(C++11)(C++11)
berechnet den hyperbolischen Tangens (tanh(x))
(Funktion) [bearbeiten]
wendet die Funktion std::tanh auf jedes Element des Valarrays an
(function template) [edit]
C-Dokumentation für ctanh