Namensräume
Varianten
Aktionen

cexpf, cexp, cexpl

Von cppreference.com
< c‎ | numeric‎ | complex
Definiert im Header <complex.h>
float complex       cexpf( float complex z );
(1) (seit C99)
double complex      cexp( double complex z );
(2) (seit C99)
long double complex cexpl( long double complex z );
(3) (seit C99)
Definiert in Header <tgmath.h>
#define exp( z )
(4) (seit C99)
1-3) Berechnet die komplexe Exponentialfunktion zur Basis e von z.
4) Typ-generische Makrodefinition: Wenn z vom Typ long double complex ist, wird cexpl aufgerufen. Wenn z vom Typ double complex ist, wird cexp aufgerufen. Wenn z vom Typ float complex ist, wird cexpf aufgerufen. Wenn z reell oder ganzzahlig ist, ruft das Makro die entsprechende reelle Funktion auf (expf, exp, expl). Wenn z imaginär ist, wird die entsprechende komplexe Argumentversion aufgerufen.

Inhalt

[edit] Parameter

z - complex argument

[edit] Rückgabewert

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

[edit] Fehlerbehandlung und Sonderwerte

Fehler werden konsistent mit math_errhandling gemeldet.

Wenn die Implementierung IEEE-Gleitkomma-Arithmetik unterstützt,

  • cexp(conj(z)) == conj(cexp(z))
  • Wenn z ±0+0i ist, ist das Ergebnis 1+0i.
  • Wenn z x+∞i ist (für jedes endliche x), ist das Ergebnis NaN+NaNi und FE_INVALID wird ausgelöst.
  • Wenn z x+NaNi ist (für jedes endliche x), ist das Ergebnis NaN+NaNi und FE_INVALID kann ausgelöst werden.
  • Wenn z +∞+0i ist, ist das Ergebnis +∞+0i.
  • Wenn z -∞+yi ist (für jedes endliche y), ist das Ergebnis +0cis(y).
  • Wenn z +∞+yi ist (für jedes endliche, von Null verschiedene y), ist das Ergebnis +∞cis(y).
  • Wenn z -∞+∞i ist, ist das Ergebnis ±0±0i (Vorzeichen nicht spezifiziert).
  • Wenn z +∞+∞i ist, ist das Ergebnis ±∞+NaNi und FE_INVALID wird ausgelöst (das Vorzeichen des Realteils ist nicht spezifiziert).
  • Wenn z -∞+NaNi ist, ist das Ergebnis ±0±0i (Vorzeichen nicht spezifiziert).
  • Wenn z +∞+NaNi ist, ist das Ergebnis ±∞+NaNi (das Vorzeichen des Realteils ist nicht spezifiziert).
  • Wenn z NaN+0i ist, ist das Ergebnis NaN+0i.
  • Wenn z NaN+yi ist (für jedes von Null verschiedene y), ist das Ergebnis NaN+NaNi und FE_INVALID kann ausgelöst werden.
  • Wenn z NaN+NaNi ist, ist das Ergebnis NaN+NaNi.

wobei cis(y) gleich cos(y) + i sin(y) ist.

[edit] Hinweise

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

Die Exponentialfunktion ist eine *ganze Funktion* in der komplexen Ebene und hat keine Schnittstellen.

[edit] Beispiel

#include <stdio.h>
#include <math.h>
#include <complex.h>
 
int main(void)
{
    double PI = acos(-1);
    double complex z = cexp(I * PI); // Euler's formula
    printf("exp(i*pi) = %.1f%+.1fi\n", creal(z), cimag(z));
 
}

Ausgabe

exp(i*pi) = -1.0+0.0i

[edit] Referenzen

  • C11-Standard (ISO/IEC 9899:2011)
  • 7.3.7.1 Die cexp-Funktionen (S. 194)
  • 7.25 Typ-generische Mathematik <tgmath.h> (S. 373-375)
  • G.6.3.1 Die cexp-Funktionen (S. 543)
  • G.7 Type-generic math <tgmath.h> (S: 545)
  • C99-Standard (ISO/IEC 9899:1999)
  • 7.3.7.1 Die cexp-Funktionen (S. 176)
  • 7.22 Typ-generische Mathematik <tgmath.h> (S. 335-337)
  • G.6.3.1 Die cexp-Funktionen (S. 478)
  • G.7 Type-generic math <tgmath.h> (S: 480)

[edit] Siehe auch

(C99)(C99)(C99)
berechnet den komplexen natürlichen Logarithmus
(Funktion) [bearbeiten]
(C99)(C99)
berechnet e hoch die gegebene Potenz (ex)
(Funktion) [bearbeiten]