Namespaces
Variants

cacosf, cacos, cacosl

From cppreference.net
Definiert im Header <complex.h>
float complex cacosf ( float complex z ) ;
(1) (seit C99)
double complex cacos ( double complex z ) ;
(2) (seit C99)
long double complex cacosl ( long double complex z ) ;
(3) (seit C99)
Definiert im Header <tgmath.h>
#define acos( z )
(4) (seit C99)
1-3) Berechnet den komplexen Arkuskosinus 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 cacosl aufgerufen. Wenn z den Typ double complex hat, wird cacos aufgerufen. Wenn z den Typ float complex hat, wird cacosf aufgerufen. Wenn z reell oder ganzzahlig ist, ruft das Makro die entsprechende reelle Funktion auf ( acosf , acos , acosl ). Wenn z imaginär ist, ruft das Makro die entsprechende komplexe Version auf.

Inhaltsverzeichnis

Parameter

z - komplexes Argument

Rückgabewert

Wenn keine Fehler auftreten, wird der komplexe Arkuskosinus von z zurückgegeben, im Bereich eines Streifens unbegrenzt entlang der imaginären Achse und im Intervall [0; π] entlang der reellen Achse.

Fehlerbehandlung und spezielle Werte

Fehler werden gemäß math_errhandling gemeldet.

Wenn die Implementierung IEEE-Gleitkommaarithmetik unterstützt,

  • cacos ( conj ( z ) ) == conj ( cacos ( z ) )
  • Wenn z ±0+0i ist, ist das Ergebnis π/2-0i
  • Wenn z ±0+NaNi ist, ist das Ergebnis π/2+NaNi
  • Wenn z x+∞i ist (für jedes endliche x), ist das Ergebnis π/2-∞i
  • Wenn z x+NaNi ist (für jedes endliche x ungleich null), ist das Ergebnis NaN+NaNi und FE_INVALID kann ausgelöst werden.
  • Wenn z -∞+yi ist (für jedes positive endliche y), ist das Ergebnis π-∞i
  • Wenn z +∞+yi ist (für jedes positive endliche y), ist das Ergebnis +0-∞i
  • Wenn z -∞+∞i ist, ist das Ergebnis 3π/4-∞i
  • Wenn z +∞+∞i ist, ist das Ergebnis π/4-∞i
  • Wenn z ±∞+NaNi ist, ist das Ergebnis NaN±∞i (das Vorzeichen des Imaginärteils ist nicht spezifiziert)
  • Wenn z NaN+yi ist (für jedes endliche y), ist das Ergebnis NaN+NaNi und FE_INVALID kann ausgelöst werden
  • Wenn z NaN+∞i ist, ist das Ergebnis NaN-∞i
  • Wenn z NaN+NaNi ist, ist das Ergebnis NaN+NaNi

Hinweise

Arkuskosinus (oder inverser Kosinus) ist eine mehrdeutige Funktion und erfordert einen Schnitt im Komplexen. Der Schnitt wird konventionell entlang der Strecken (-∞,-1) und (1,∞) der reellen Achse platziert.

The mathematical definition of the principal value of arc cosine is acos z =
1
2
π + i ln( i z + 1-z 2
)

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

Beispiel

#include <stdio.h>
#include <math.h>
#include <complex.h>
int main(void)
{
    double complex z = cacos(-2);
    printf("cacos(-2+0i) = %f%+fi\n", creal(z), cimag(z));
    double complex z2 = cacos(conj(-2)); // oder CMPLX(-2, -0.0)
    printf("cacos(-2-0i) (the other side of the cut) = %f%+fi\n", creal(z2), cimag(z2));
    // für jedes z gilt: acos(z) = pi - acos(-z)
    double pi = acos(-1);
    double complex z3 = ccos(pi-z2);
    printf("ccos(pi - cacos(-2-0i) = %f%+fi\n", creal(z3), cimag(z3));
}

Ausgabe:

cacos(-2+0i) = 3.141593-1.316958i
cacos(-2-0i) (the other side of the cut) = 3.141593+1.316958i
ccos(pi - cacos(-2-0i) = 2.000000+0.000000i

Referenzen

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

Siehe auch

(C99) (C99) (C99)
berechnet den komplexen Arkussinus
(Funktion)
(C99) (C99) (C99)
berechnet den komplexen Arkustangens
(Funktion)
(C99) (C99) (C99)
berechnet den komplexen Kosinus
(Funktion)
(C99) (C99)
berechnet den Arkuskosinus ( arccos(x) )
(Funktion)