Espacios de nombres
Variantes

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

De cppreference.com
 
 
 
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
(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>
float sqrt ( float arg );
(1)
float sqrtf( float arg );
(desde C++11)
double      sqrt ( double arg );
(2)
long double sqrt ( long double arg );
(3)
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).

Parámetros

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

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).

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.

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.

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

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 (3√x)
(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]