csqrtf, csqrt, csqrtl
Von cppreference.com
| Definiert im Header <complex.h> |
||
| (1) | (seit C99) | |
| (2) | (seit C99) | |
| (3) | (seit C99) | |
| Definiert in Header <tgmath.h> |
||
| #define sqrt( z ) |
(4) | (seit C99) |
1-3) Berechnet die komplexe Quadratwurzel von
z mit dem Schnitt entlang der negativen reellen Achse.4) Typ-generische Makro: Wenn
z vom Typ long double complex ist, wird csqrtl aufgerufen. Wenn z vom Typ double complex ist, wird csqrt aufgerufen. Wenn z vom Typ float complex ist, wird csqrtf aufgerufen. Wenn z reell oder ganzzahlig ist, ruft das Makro die entsprechende reelle Funktion auf (sqrtf, sqrt, sqrtl). Wenn z imaginär ist, wird die entsprechende komplexe Version aufgerufen.Inhalt |
[bearbeiten] Parameter
| z | - | complex argument |
[bearbeiten] Rückgabewert
Wenn keine Fehler auftreten, wird die Quadratwurzel von z zurückgegeben, im Bereich der rechten Halbebene, einschließlich der imaginären Achse ([0; +∞) entlang der reellen Achse und (−∞; +∞) entlang der imaginären Achse.)
[bearbeiten] Fehlerbehandlung und Sonderwerte
Fehler werden konsistent mit math_errhandling gemeldet.
Wenn die Implementierung IEEE-Gleitkomma-Arithmetik unterstützt,
- Die Funktion ist kontinuierlich auf dem Schnitt, unter Berücksichtigung des Vorzeichens des Imaginärteils
- csqrt(conj(z)) == conj(csqrt(z))
- Wenn
z±0+0iist, ist das Ergebnis+0+0i - Wenn
zx+∞iist, ist das Ergebnis+∞+∞i, auch wenn x NaN ist - Wenn
zx+NaNiist, ist das ErgebnisNaN+NaNi(es sei denn, x ist ±∞) und FE_INVALID kann ausgelöst werden - Wenn
z-∞+yiist, ist das Ergebnis+0+∞ifür endliches positives y - Wenn
z+∞+yiist, ist das Ergebnis+∞+0i)für endliches positives y - Wenn
z-∞+NaNiist, ist das ErgebnisNaN±∞i(Vorzeichen des Imaginärteils nicht spezifiziert) - Wenn
z+∞+NaNiist, ist das Ergebnis+∞+NaNi - Wenn
zNaN+yiist, ist das ErgebnisNaN+NaNiund FE_INVALID kann ausgelöst werden - Wenn
zNaN+NaNiist, ist das ErgebnisNaN+NaNi.
[bearbeiten] Beispiel
Führen Sie diesen Code aus
#include <stdio.h> #include <complex.h> int main(void) { double complex z1 = csqrt(-4); printf("Square root of -4 is %.1f%+.1fi\n", creal(z1), cimag(z1)); double complex z2 = csqrt(conj(-4)); // or, in C11, CMPLX(-4, -0.0) printf("Square root of -4-0i, the other side of the cut, is " "%.1f%+.1fi\n", creal(z2), cimag(z2)); }
Ausgabe
Square root of -4 is 0.0+2.0i Square root of -4-0i, the other side of the cut, is 0.0-2.0i
[bearbeiten] Referenzen
- C11-Standard (ISO/IEC 9899:2011)
- 7.3.8.3 The csqrt functions (S. 196)
- 7.25 Typ-generische Mathematik <tgmath.h> (S. 373-375)
- G.6.4.2 The csqrt functions (S. 544)
- G.7 Type-generic math <tgmath.h> (S: 545)
- C99-Standard (ISO/IEC 9899:1999)
- 7.3.8.3 The csqrt functions (S. 178)
- 7.22 Typ-generische Mathematik <tgmath.h> (S. 335-337)
- G.6.4.2 The csqrt functions (S. 479)
- G.7 Type-generic math <tgmath.h> (S: 480)
[bearbeiten] Siehe auch
| (C99)(C99)(C99) |
berechnet die komplexe Potenzfunktion (Funktion) |
| (C99)(C99) |
berechnet die Quadratwurzel (√x) (Funktion) |
| C++ Dokumentation für sqrt
| |