cabs, cabsl

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Math.h - Index


Header-Datei

math.h

Kategorie

Mathematische Routinen

Prototyp

double cabs(struct complex z);

long double cabsl(struct _complexl z);

Beschreibung

cabs berechnet den Betrag einer komplexen Zahl. cabs ist ein Makro, das den Betrag der komplexen Zahl z berechnet. z ist eine Struktur vom Typ complex, die in math.h wie folgt definiert ist:

struct complex {

double x, y;

};

wobei x für den Realteil und y für den Imaginärteil steht.

Ein Aufruf von cabs ist gleichbedeutend mit folgendem Aufruf von sqrt mit dem Realteil und dem Imaginärteil von z:

sqrt(z.x * z.x + z.y * z.y)

cabsl ist die long double-Version; sie benötigt eine Struktur vom Typ _complexl als Argument und gibt als Ergebnis einen Wert vom Typ long double zurück. Die Struktur ist in math.h wie folgt definiert:

struct _complexl {

long double x, y;

};

Rückgabewert

cabs (bzw. cabsl) gibt den Betrag von z als Wert vom Typ double zurück. Wenn ein Überlauf auftritt gibt cabs (bzw. cabsl) HUGE_VAL (bzw. _LHUGE_VAL) zurück und weist der globalen Variablen errno folgenden Wert zu:

ERANGE

Result out of range (Ergebnis außerhalb des zulässigen Wertebereichs)


Die Fehlerbehandlung für diese Funktionen kann über die Funktionen _matherr und _matherrl geändert werden.

Beispiel

 #include <stdio.h>
 #include <math.h>
 #ifdef __cplusplus
   #include <complex.h>
 #endif
 #ifdef __cplusplus /* Wenn C++ verwendet wird, die Klasse complex verwenden */
   void print_abs(void)
   {
     complex<float> z(1.0, 2.0);
     double  absval;
     absval = abs(z);
     printf("The absolute value of %.2lfi %.2lfj is %.2lf",
       real(z), imag(z), absval);
   }
 #else  /* nachfolgende Funktion gilt für C (nicht C++) */
   void print_abs(void)
   {
     struct complex z;
     double  absval;
     z.x = 2.0;
     z.y = 1.0;
     absval = cabs(z);
     printf("The absolute value of %.2lfi %.2lfj is %.2lf",
       z.x, z.y, absval);
   }
 #endif
 int main(void)
 {
   print_abs();
   return 0;
 }

Portabilität

POSIX Win32 ANSI C ANSI C++

cabs

+

cabsl

+