Namensräume
Varianten
Aktionen

sqrt, sqrtf, sqrtl

Von cppreference.com
< c‎ | numerik‎ | math
 
 
 
Allgemeine mathematische Funktionen
Funktionen
Grundlegende Operationen
(C99)
(C99)
(C99)
(C99)(C99)(C99)(C23)
Maximum/Minimum-Operationen
(C99)
(C99)
Exponentialfunktionen
(C23)
(C99)
(C99)
(C23)
(C23)

(C99)
(C99)(C23)
(C23)
(C23)
Potenzfunktionen
sqrt
(C99)
(C23)
(C23)

(C99)
(C23)
(C23)
Trigonometrische und hyperbolische Funktionen
(C23)
(C23)
(C23)
(C23)
(C99)
(C99)
(C99)
Nächste ganze Gleitkommazahlen
(C99)(C99)(C99)
(C99)

(C99)(C99)(C99)
(C23)(C23)(C23)(C23)
Gleitkomma-Manipulation
(C99)(C99)
(C99)(C23)
(C99)
Verengende Operationen
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
Quanten- und Quantenexponent-Funktionen
Dezimal-Neu-Kodierungsfunktionen
Gesamtordnung und Payload-Funktionen
Klassifizierung
(C99)
(C99)
(C99)
(C23)
Fehler- und Gammafunktionen
(C99)
(C99)
(C99)
(C99)
Typen
Makrokonstanten
Spezielle Gleitkommawerte
(C99)(C23)
Argumente und Rückgabewerte
Fehlerbehandlung
Schnelle Operationsanzeigen
 
Definiert in Header <math.h>
float       sqrtf( float arg );
(1) (seit C99)
double      sqrt( double arg );
(2)
long double sqrtl( long double arg );
(3) (seit C99)
Definiert in Header <tgmath.h>
#define sqrt( arg )
(4) (seit C99)
1-3) Berechnet die Quadratwurzel von arg.
4) Typ-generische Makrodefinition: Wenn arg vom Typ long double ist, wird sqrtl aufgerufen. Andernfalls, wenn arg einen ganzzahligen Typ oder den Typ double hat, wird sqrt aufgerufen. Andernfalls wird sqrtf aufgerufen. Wenn arg komplex oder imaginär ist, ruft das Makro die entsprechende komplexe Funktion auf (csqrtf, csqrt, csqrtl).

Inhalt

[edit] Parameter

arg - Gleitkommawert

[edit] Rückgabewert

Wenn keine Fehler auftreten, wird die Quadratwurzel von arg (arg) zurückgegeben.

Wenn ein Domänenfehler auftritt, wird ein implementierungsabhängiger Wert zurückgegeben (NaN, wo unterstützt).

Wenn ein Bereichsfehler aufgrund eines Unterlaufs auftritt, wird das korrekte Ergebnis (nach Rundung) zurückgegeben.

[edit] Fehlerbehandlung

Fehler werden wie in math_errhandling angegeben gemeldet.

Ein Domänenfehler tritt auf, wenn arg kleiner als Null ist.

Wenn die Implementierung IEEE-Gleitkomma-Arithmetik (IEC 60559) unterstützt,

  • Wenn das Argument kleiner als -0 ist, wird FE_INVALID ausgelöst und NaN zurückgegeben.
  • Wenn das Argument +∞ oder ±0 ist, wird es unverändert zurückgegeben.
  • Wenn das Argument NaN ist, wird NaN zurückgegeben.

[edit] Hinweise

sqrt muss gemäß dem IEEE-Standard korrekt gerundet sein vom unendlich präzisen Ergebnis. Insbesondere wird das exakte Ergebnis erzeugt, wenn es im Fließkommatyp dargestellt werden kann. Die einzigen anderen Operationen, die dies erfordern, sind die arithmetischen Operatoren und die Funktion fma. Andere Funktionen, einschließlich pow, sind nicht so eingeschränkt.

[edit] Beispiel

#include <errno.h>
#include <fenv.h>
#include <math.h>
#include <stdio.h>
// #pragma STDC FENV_ACCESS ON
 
int main(void)
{
    // normal use
    printf("sqrt(100) = %f\n", sqrt(100));
    printf("sqrt(2) = %f\n", sqrt(2));
    printf("golden ratio = %f\n", (1 + sqrt(5)) / 2);
 
    // special values
    printf("sqrt(-0) = %f\n", sqrt(-0.0));
 
    // error handling
    errno = 0; feclearexcept(FE_ALL_EXCEPT);
    printf("sqrt(-1.0) = %f\n", sqrt(-1));
    if (errno == EDOM)
        perror("    errno == EDOM");
    if (fetestexcept(FE_INVALID))
        puts("    FE_INVALID was raised");
}

Mögliche Ausgabe

sqrt(100) = 10.000000
sqrt(2) = 1.414214
golden ratio = 1.618034
sqrt(-0) = -0.000000
sqrt(-1.0) = -nan
    errno = EDOM: Numerical argument out of domain
    FE_INVALID was raised

[edit] Referenzen

  • C23-Standard (ISO/IEC 9899:2024)
  • 7.12.7.5 The sqrt functions (p: TBD)
  • 7.25 Typ-generische Mathematik <tgmath.h> (S. TBD)
  • F.10.4.5 The sqrt functions (p: TBD)
  • C17-Standard (ISO/IEC 9899:2018)
  • 7.12.7.5 The sqrt functions (p: TBD)
  • 7.25 Typ-generische Mathematik <tgmath.h> (S. TBD)
  • F.10.4.5 The sqrt functions (p: TBD)
  • C11-Standard (ISO/IEC 9899:2011)
  • 7.12.7.5 The sqrt functions (p: 249)
  • 7.25 Typ-generische Mathematik <tgmath.h> (S. 373-375)
  • F.10.4.5 The sqrt functions (p: 525)
  • C99-Standard (ISO/IEC 9899:1999)
  • 7.12.7.5 The sqrt functions (p: 229-230)
  • 7.22 Typ-generische Mathematik <tgmath.h> (S. 335-337)
  • F.9.4.5 The sqrt functions (p: 462)
  • C89/C90-Standard (ISO/IEC 9899:1990)
  • 4.5.5.2 The sqrt function

[edit] Siehe auch

(C99)(C99)
berechnet eine Zahl hoch die gegebene Potenz (xy)
(Funktion) [bearbeiten]
(C99)(C99)(C99)
berechnet die Kubikwurzel (3x)
(Funktion) [bearbeiten]
(C99)(C99)(C99)
berechnet die Quadratwurzel der Summe der Quadrate zweier gegebener Zahlen (x2
+y2
)
(Funktion) [bearbeiten]
(C99)(C99)(C99)
berechnet die komplexe Quadratwurzel
(Funktion) [bearbeiten]