Namespaces
Variants

casinf, casin, casinl

From cppreference.net
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 im Header <tgmath.h>
#define asin( z )
(4) (seit C99)
1-3) Berechnet den komplexen Arkussinus von z mit Verzweigungsschnitten außerhalb des Intervalls [−1,+1] entlang der reellen Achse.
4) Typgenerisches 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, implementiert die Formel arcsin(iy) = i arsinh(y) , und der Rückgabetyp des Makros ist imaginär.

Inhaltsverzeichnis

Parameter

z - komplexes Argument

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 und im Intervall [−π/2; +π/2] entlang der reellen Achse liegt.

Fehler und Sonderfälle werden behandelt, als ob die Operation durch - I * casinh ( I * z )

Hinweise

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

Die mathematische Definition des Hauptwerts des Arkussinus ist arcsin z = - i ln( i z + 1-z 2
)

For any z, arcsin(z) = acos(-z) -
π
2

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)); // oder CMPLX(-2, -0.0)
    printf("casin(-2-0i) (the other side of the cut) = %f%+fi\n", creal(z2), cimag(z2));
    // für jedes z gilt: 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

Referenzen

  • C11-Standard (ISO/IEC 9899:2011):
  • 7.3.5.2 Die casin-Funktionen (S. 190)
  • 7.25 Typgenerische Mathematik <tgmath.h> (S. 373-375)
  • G.7 Typgenerische Mathematik <tgmath.h> (S. 545)
  • C99-Standard (ISO/IEC 9899:1999):
  • 7.3.5.2 Die casin-Funktionen (S. 172)
  • 7.22 Typgenerische Mathematik <tgmath.h> (S. 335-337)
  • G.7 Typgenerische Mathematik <tgmath.h> (S. 480)

Siehe auch

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