Namespaces
Variants

std:: exp (std::complex)

From cppreference.net
Definiert im Header <complex>
template < class T >
std:: complex < T > exp ( const std:: complex < T > & z ) ;

Berechne die Basis-e-Exponentialfunktion von z , also e (Eulersche Zahl, 2.7182818 ) hoch z .

Inhaltsverzeichnis

Parameter

z - komplexer Wert

Rückgabewert

Wenn keine Fehler auftreten, wird e hoch z , e z
zurückgegeben.

Fehlerbehandlung und spezielle Werte

Fehler werden gemäß math_errhandling gemeldet.

Wenn die Implementierung IEEE-Gleitkommaarithmetik unterstützt,

  • std:: exp ( std:: conj ( z ) ) == std:: conj ( std:: exp ( z ) )
  • Wenn z gleich (±0,+0) ist, ist das Ergebnis (1,+0)
  • Wenn z gleich (x,+∞) ist (für jedes endliche x), ist das Ergebnis (NaN,NaN) und FE_INVALID wird ausgelöst.
  • Wenn z gleich (x,NaN) ist (für jedes endliche x), ist das Ergebnis (NaN,NaN) und FE_INVALID kann ausgelöst werden.
  • Wenn z gleich (+∞,+0) ist, ist das Ergebnis (+∞,+0)
  • Wenn z gleich (-∞,y) ist (für jedes endliche y), ist das Ergebnis +0cis(y)
  • Wenn z gleich (+∞,y) ist (für jedes endliche y ungleich null), ist das Ergebnis +∞cis(y)
  • Wenn z gleich (-∞,+∞) ist, ist das Ergebnis (±0,±0) (Vorzeichen sind nicht spezifiziert)
  • Wenn z gleich (+∞,+∞) ist, ist das Ergebnis (±∞,NaN) und FE_INVALID wird ausgelöst (das Vorzeichen des Realteils ist nicht spezifiziert)
  • Wenn z gleich (-∞,NaN) ist, ist das Ergebnis (±0,±0) (Vorzeichen sind nicht spezifiziert)
  • Wenn z gleich (+∞,NaN) ist, ist das Ergebnis (±∞,NaN) (das Vorzeichen des Realteils ist nicht spezifiziert)
  • Wenn z gleich (NaN,+0) ist, ist das Ergebnis (NaN,+0)
  • Wenn z gleich (NaN,y) ist (für jedes y ungleich null), ist das Ergebnis (NaN,NaN) und FE_INVALID kann ausgelöst werden
  • Wenn z gleich (NaN,NaN) ist, ist das Ergebnis (NaN,NaN)

wobei cis(y) für cos(y) + i sin(y) steht.

Hinweise

Die komplexe Exponentialfunktion e z
für z = x+iy ist gleich e x
cis(y)
, oder e x
(cos(y) + i sin(y))
.

Die Exponentialfunktion ist eine ganze Funktion in der komplexen Ebene und besitzt keine Verzweigungsschnitte.

Die folgenden haben äquivalente Ergebnisse, wenn der Realteil 0 ist:

In diesem Fall exp kann etwa 4,5-mal langsamer sein. Eine der anderen Formen sollte verwendet werden, anstatt exp mit einem Argument aufzurufen, dessen Realteil literal 0 ist. Es gibt keinen Vorteil darin, zu versuchen, exp mit einer Laufzeitüberprüfung von z. real ( ) == 0 zu vermeiden.

Beispiel

#include <cmath>
#include <complex>
#include <iostream>
int main()
{
   const double pi = std::acos(-1.0);
   const std::complex<double> i(0.0, 1.0);
   std::cout << std::fixed << " exp(i * pi) = " << std::exp(i * pi) << '\n';
}

Ausgabe:

exp(i * pi) = (-1.000000,0.000000)

Siehe auch

Komplexer natürlicher Logarithmus mit den Verzweigungsschnitten entlang der negativen reellen Achse
(Funktions-Template)
(C++11) (C++11)
liefert e hoch der gegebenen Potenz ( e x )
(Funktion)
wendet die Funktion std::exp auf jedes Element des valarray an
(Funktions-Template)
konstruiert eine komplexe Zahl aus Betrag und Phasenwinkel
(Funktions-Template)