Namespaces
Variants

catanf, catan, catanl

From cppreference.net
Definiert im Header <complex.h>
float complex catanf ( float complex z ) ;
(1) (seit C99)
double complex catan ( double complex z ) ;
(2) (seit C99)
long double complex catanl ( long double complex z ) ;
(3) (seit C99)
Definiert im Header <tgmath.h>
#define atan( z )
(4) (seit C99)
1-3) Berechnet den komplexen Arcustangens von z mit Verzweigungsschnitten außerhalb des Intervalls [−i,+i] entlang der imaginären Achse.
4) Typgenerisches Makro: Wenn z den Typ long double complex hat, wird catanl aufgerufen. Wenn z den Typ double complex hat, wird catan aufgerufen. Wenn z den Typ float complex hat, wird catanf aufgerufen. Wenn z reell oder ganzzahlig ist, ruft das Makro die entsprechende reelle Funktion auf ( atanf , atan , atanl ). Wenn z imaginär ist, ruft das Makro die entsprechende reelle Version der Funktion atanh auf, implementiert die Formel atan(iy) = i atanh(y) , und der Rückgabetyp des Makros ist imaginär.

Inhaltsverzeichnis

Parameter

z - komplexes Argument

Rückgabewert

Wenn keine Fehler auftreten, wird der komplexe Arkustangens 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 ist.

Fehler und Sonderfälle werden behandelt, als ob die Operation durch - I * catanh ( I * z ) implementiert wäre.

Hinweise

Arcustangens (oder inverser Tangens) ist eine mehrdeutige Funktion und erfordert einen Schnitt entlang der komplexen Ebene. Der konventionelle Schnitt verläuft entlang der Liniensegmente (-∞i,-i) und (+i,+∞i) der imaginären Achse.

The mathematical definition of the principal value of inverse tangent is atan z = -
1
2
i [ln(1 - iz) - ln (1 + iz)]

Beispiel

#include <stdio.h>
#include <float.h>
#include <complex.h>
int main(void)
{
    double complex z = catan(2*I);
    printf("catan(+0+2i) = %f%+fi\n", creal(z), cimag(z));
    double complex z2 = catan(-conj(2*I)); // or CMPLX(-0.0, 2)
    printf("catan(-0+2i) (the other side of the cut) = %f%+fi\n", creal(z2), cimag(z2));
    double complex z3 = 2*catan(2*I*DBL_MAX); // or CMPLX(0, INFINITY)
    printf("2*catan(+0+i*Inf) = %f%+fi\n", creal(z3), cimag(z3));
}

Ausgabe:

catan(+0+2i) = 1.570796+0.549306i
catan(-0+2i) (the other side of the cut) = -1.570796+0.549306i
2*catan(+0+i*Inf) = 3.141593+0.000000i
**Übersetzungshinweise:** - HTML-Tags, Attribute und Code-Blöcke wurden unverändert belassen - C++-spezifische Begriffe (Funktionsnamen, Typen, etc.) wurden nicht übersetzt - Nur die umgebenden Textelemente wurden ins Deutsche übersetzt - Formatierung und Struktur der Originalseite wurden vollständig beibehalten

Referenzen

  • C11-Standard (ISO/IEC 9899:2011):
  • 7.3.5.3 Die catan-Funktionen (S. 191)
  • 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.3 Die catan-Funktionen (S. 173)
  • 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 Arkussinus
(Funktion)
(C99) (C99) (C99)
berechnet den komplexen Arkuskosinus
(Funktion)
(C99) (C99) (C99)
berechnet den komplexen Tangens
(Funktion)
(C99) (C99)
berechnet Arkustangens ( arctan(x) )
(Funktion)