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)
Clasificación/comparación
(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)
longdouble sqrt (longdouble arg );
longdouble sqrtl(longdouble 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 usestd::cout<<"sqrt(100) = "<< std::sqrt(100)<<'\n'<<"sqrt(2) = "<< std::sqrt(2)<<'\n'<<"golden ratio = "<<(1+std::sqrt(5))/2<<'\n';// valores especialesstd::cout<<"sqrt(-0) = "<< std::sqrt(-0.0)<<'\n';// manejo de erroreserrno=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]
close