std:: exp (std::complex)
|
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:
- std:: exp ( std:: complex < float > ( 0 , theta ) )
- std:: complex < float > ( cosf ( theta ) , sinf ( theta ) )
- std:: polar ( 1 . f , theta )
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) |
|
|
C-Dokumentation
für
cexp
|
|