Namespaces
Variants

sqrt, sqrtf, sqrtl

From cppreference.net
< c ‎ | numeric ‎ | math
Common mathematical functions
Functions
Basic operations
(C99)
(C99)
(C99)
(C99) (C99) (C99) (C23)
Maximum/minimum operations
Exponential functions
Power functions
sqrt
(C99)
(C23)
(C23)

Trigonometric and hyperbolic functions
Nearest integer floating-point
(C99) (C99) (C99)
(C23) (C23) (C23) (C23)
Floating-point manipulation
Narrowing operations
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
Quantum and quantum exponent
Decimal re-encoding functions
Total order and payload functions
Classification
Error and gamma functions
(C99)
(C99)
(C99)
(C99)
Types
Macro constants
Special floating-point values
Arguments and return values
Error handling
Fast operation indicators
Definido en el encabezado <math.h>
float sqrtf ( float arg ) ;
(1) (desde C99)
double sqrt ( double arg ) ;
(2)
long double sqrtl ( long double arg ) ;
(3) (desde C99)
Definido en el encabezado <tgmath.h>
#define sqrt( arg )
(4) (desde C99)
1-3) Calcula la raíz cuadrada de arg .
4) Macro genérico de tipos: Si arg tiene tipo long double , sqrtl es llamado. De lo contrario, si arg tiene tipo entero o el tipo double , sqrt es llamado. De lo contrario, sqrtf es llamado. Si arg es complejo o imaginario, entonces el macro invoca la función compleja correspondiente ( csqrtf , csqrt , csqrtl ).

Contenidos

Parámetros

arg - valor de punto flotante

Valor de retorno

Si no ocurren errores, se devuelve la raíz cuadrada de arg ( arg ).

Si ocurre un error de dominio, se devuelve un valor definido por la implementación (NaN donde esté soportado).

Si ocurre un error de rango debido a desbordamiento inferior, se devuelve el resultado correcto (después del redondeo).

Manejo de errores

Los errores se reportan como se especifica en math_errhandling .

Error de dominio ocurre si arg es menor que cero.

Si la implementación soporta aritmética de punto flotante IEEE (IEC 60559),

  • Si el argumento es menor que -0, FE_INVALID se activa y se retorna NaN.
  • Si el argumento es +∞ o ±0, se retorna sin modificación.
  • Si el argumento es NaN, se retorna NaN.

Notas

sqrt es requerido por el estándar IEEE para ser redondeado correctamente a partir del resultado infinitamente preciso. En particular, se produce el resultado exacto si puede ser representado en el tipo de punto flotante. Las únicas otras operaciones que requieren esto son los operadores aritméticos y la función fma . Otras funciones, incluyendo pow , no están tan restringidas.

Ejemplo

#include <errno.h>
#include <fenv.h>
#include <math.h>
#include <stdio.h>
// #pragma STDC FENV_ACCESS ON
int main(void)
{
    // uso normal
    printf("sqrt(100) = %f\n", sqrt(100));
    printf("sqrt(2) = %f\n", sqrt(2));
    printf("golden ratio = %f\n", (1 + sqrt(5)) / 2);
    // valores especiales
    printf("sqrt(-0) = %f\n", sqrt(-0.0));
    // manejo de errores
    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");
}

Salida posible:

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

Referencias

  • Estándar C23 (ISO/IEC 9899:2024):
  • 7.12.7.5 Las funciones sqrt (p: TBD)
  • 7.25 Matemáticas genéricas de tipos <tgmath.h> (p: TBD)
  • F.10.4.5 Las funciones sqrt (p: TBD)
  • Estándar C17 (ISO/IEC 9899:2018):
  • 7.12.7.5 Las funciones sqrt (p: TBD)
  • 7.25 Matemáticas genéricas de tipos <tgmath.h> (p: TBD)
  • F.10.4.5 Las funciones sqrt (p: TBD)
  • Estándar C11 (ISO/IEC 9899:2011):
  • 7.12.7.5 Las funciones sqrt (p: 249)
  • 7.25 Matemáticas genéricas de tipos <tgmath.h> (p: 373-375)
  • F.10.4.5 Las funciones sqrt (p: 525)
  • Estándar C99 (ISO/IEC 9899:1999):
  • 7.12.7.5 Las funciones sqrt (p: 229-230)
  • 7.22 Matemáticas genéricas de tipos <tgmath.h> (p: 335-337)
  • F.9.4.5 Las funciones sqrt (p: 462)
  • Estándar C89/C90 (ISO/IEC 9899:1990):
  • 4.5.5.2 La función sqrt

Véase también

(C99) (C99)
calcula un número elevado a la potencia dada ( x y )
(función)
(C99) (C99) (C99)
calcula la raíz cúbica ( 3 x )
(función)
(C99) (C99) (C99)
calcula la raíz cuadrada de la suma de los cuadrados de dos números dados ( x 2
+y 2
)
(función)
(C99) (C99) (C99)
calcula la raíz cuadrada compleja
(función)