Espacios de nombres
Variantes
Acciones

std::sqrt, std::sqrtf, std::sqrtl

De cppreference.com
< cpp‎ | numeric‎ | math
 
 
 
Funciones matemáticas comunes
Funciones
Operaciones básicas
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
Funciones exponenciales
(C++11)
(C++11)
(C++11)
(C++11)
Funciones de potencias
sqrt
(C++11)
(C++11)
Funciones trigonométricas e hiperbólicas
(C++11)
(C++11)
(C++11)
Funciones de error y gamma
(C++11)
(C++11)
(C++11)
(C++11)
Operaciones de punto flotante del entero más cercano
(C++11)(C++11)(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
Funciones de manipulación de punto flotante
(C++11)(C++11)
(C++11)
(C++11)
(C++11)(C++11)
(C++11)
Clasificación/comparación
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
Constantes de macro
(C++11)(C++11)(C++11)(C++11)(C++11)
 
Definido en el archivo de encabezado <cmath>
(1)
float       sqrt ( float arg );
float       sqrtf( float arg );
(desde C++11)
double      sqrt ( double arg );
(2)
(3)
long double sqrt ( long double arg );
long double sqrtl( long double arg );
(desde C++11)
double      sqrt ( TipoEntero arg );
(4) (desde C++11)
1-3) Calcula la raíz cuadrada de arg.
4) Un conjunto de sobrecargas o una plantilla de función que acepta un argumento de cualquier tipo entero. Equivalente a (2) (el argumento se convierte a double).

Contenido

[editar] Parámetros

arg - Valor de un tipo de punto flotante o un tipo entero.

[editar] Valor de retorno

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

Si se produce un error de dominio, se devuelve un valor definido por la implementación (NaN donde se dé apoyo).

Si se produce un error debido a subdesbordamiento, se devuelve el resultado correcto (después del redondeo).

[editar] Manejo de errores

Los errores se informan como se especifica en math_errhandling

Se produce un error de dominio si arg es menor que cero.

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

  • Si el argumento es menor que -0, se genera FE_INVALID y se devuelve NaN.
  • Si el argumento es +∞, +0 o -0, se devuelve +∞, +0 o -0, respectivamente.
  • Si el argumento es NaN, se devuelve NaN.

[editar] Notas

El estándar IEEE requiere que std::sqrt sea exacta. Las únicas otras operaciones requeridas para ser exactas son los operadores aritméticos y la función std::fma. Después de redondear al tipo de retorno (utilizando el modo de redondeo por defecto), el resultado de std::sqrt es indistinguible del resultado infinitamente preciso. En otras palabras, el error es inferior a 0.5 ulp. Otras funciones, incluidas std::pow, no están tan limitadas.

[editar] Ejemplo

#include <iostream>
#include <cmath>
#include <cerrno>
#include <cfenv>
#include <cstring>
 
#pragma STDC FENV_ACCESS ON
 
int main()
{
    // normal use
    std::cout << "sqrt(100) = " << std::sqrt(100) << '\n'
              << "sqrt(2) = " << std::sqrt(2) << '\n'
              << "golden ratio = " << (1+std::sqrt(5))/2 << '\n';
    // valores especiales
    std::cout << "sqrt(-0) = " << std::sqrt(-0.0) << '\n';
    // manejo de errores
    errno = 0;
    std::feclearexcept(FE_ALL_EXCEPT);
    std::cout << "sqrt(-1.0) = " << std::sqrt(-1) << '\n';
    if(errno == EDOM)
        std::cout << "    errno = EDOM " << std::strerror(errno) << '\n';
    if(std::fetestexcept(FE_INVALID))
        std::cout << "    Se generó FE_INVALID\n";
}

Posible salida:

sqrt(100) = 10
sqrt(2) = 1.41421
golden ratio = 1.61803
sqrt(-0) = -0
sqrt(-1.0) = -nan
    errno = EDOM Argumento numérico fuera de dominio
    Se generó FE_INVALID

[editar] Véase también

(C++11)(C++11)
Eleva un número a la potencia dada (xy)
(función) [editar]
(C++11)(C++11)(C++11)
Calcula la raíz cúbica (3x)
(función) [editar]
(C++11)(C++11)(C++11)
Calcula la raíz cuadrada de la suma de los cuadrados de dos o tres (C++17) números dados (x2
+y2
), (x2
+y2
+z2
)
(función) [editar]
Raíz cuadrada en el rango del plano medio derecho.
(plantilla de función) [editar]
Se aplica la función std::sqrt a cada elemento de valarray.
(plantilla de función) [editar]