Namensräume
Varianten
Aktionen

casinf, casin, casinl

Von cppreference.com
< c‎ | numeric‎ | complex
Definiert im Header <complex.h>
float complex       casinf( float complex z );
(1) (seit C99)
double complex      casin( double complex z );
(2) (seit C99)
long double complex casinl( long double complex z );
(3) (seit C99)
Definiert in Header <tgmath.h>
#define asin( z )
(4) (seit C99)
1-3) Berechnet den komplexen Arkussinus von z mit Schnitten außerhalb des Intervalls [−1,+1] entlang der reellen Achse.
4) Typ-generische Makro: Wenn z den Typ long double complex hat, wird casinl aufgerufen. Wenn z den Typ double complex hat, wird casin aufgerufen. Wenn z den Typ float complex hat, wird casinf aufgerufen. Wenn z reell oder ganzzahlig ist, ruft das Makro die entsprechende reelle Funktion auf (asinf, asin, asinl). Wenn z imaginär ist, ruft das Makro die entsprechende reelle Version der Funktion asinh auf, wobei die Formel arcsin(iy) = i arsinh(y) implementiert wird und der Rückgabetyp des Makros imaginär ist.

Inhalt

[edit] Parameter

z - complex argument

[edit] Rückgabewert

Wenn keine Fehler auftreten, wird der komplexe Arkussinus von z zurückgegeben, im Bereich eines Streifens, der entlang der imaginären Achse unbeschränkt ist, und im Intervall [−π/2; +π/2] entlang der reellen Achse.

Fehler und Sonderfälle werden behandelt, als ob die Operation von -I * casinh(I*z) implementiert würde.

[edit] Anmerkungen

Der Inverse Sinus (oder Arkussinus) ist eine mehrdeutige Funktion und erfordert einen Schnitt auf der komplexen Ebene. Der Schnitt wird konventionell auf den Liniensegmenten (-∞,-1) und (1,∞) der reellen Achse platziert.

Die mathematische Definition des Hauptwertes des Arkussinus ist arcsin z = -iln(iz + 1-z2
)

Für jedes z gilt: arcsin(z) = acos(-z) -
π
2

[edit] Beispiel

#include <stdio.h>
#include <math.h>
#include <complex.h>
 
int main(void)
{
    double complex z = casin(-2);
    printf("casin(-2+0i) = %f%+fi\n", creal(z), cimag(z));
 
    double complex z2 = casin(conj(-2)); // or CMPLX(-2, -0.0)
    printf("casin(-2-0i) (the other side of the cut) = %f%+fi\n", creal(z2), cimag(z2));
 
    // for any z, asin(z) = acos(-z) - pi/2
    double pi = acos(-1);
    double complex z3 = csin(cacos(conj(-2))-pi/2);
    printf("csin(cacos(-2-0i)-pi/2) = %f%+fi\n", creal(z3), cimag(z3));
}

Ausgabe

casin(-2+0i) = -1.570796+1.316958i
casin(-2-0i) (the other side of the cut) = -1.570796-1.316958i
csin(cacos(-2-0i)-pi/2) = 2.000000+0.000000i

[edit] Referenzen

  • C11-Standard (ISO/IEC 9899:2011)
  • 7.3.5.2 The casin functions (S. 190)
  • 7.25 Typ-generische Mathematik <tgmath.h> (S. 373-375)
  • G.7 Type-generic math <tgmath.h> (S: 545)
  • C99-Standard (ISO/IEC 9899:1999)
  • 7.3.5.2 The casin functions (S. 172)
  • 7.22 Typ-generische Mathematik <tgmath.h> (S. 335-337)
  • G.7 Type-generic math <tgmath.h> (S: 480)

[edit] Siehe auch

(C99)(C99)(C99)
berechnet den komplexen Arkuskosinus
(Funktion) [bearbeiten]
(C99)(C99)(C99)
berechnet den komplexen Arkustangens
(Funktion) [bearbeiten]
(C99)(C99)(C99)
berechnet den komplexen Sinus
(Funktion) [bearbeiten]
(C99)(C99)
berechnet Arkussinus (arcsin(x))
(Funktion) [bearbeiten]