Espacios de nombres
Variantes
Acciones

std::sqrt(std::complex)

De cppreference.com
< cpp‎ | numeric‎ | complex
 
 
 
std::complex
Funciones miembro
Funciones no miembro
Funciones exponenciales
Funciones de potencias
sqrt
Funciones trigonométricas
(C++11)
(C++11)
(C++11)
Funciones hiperbólicas
(C++11)
(C++11)
(C++11)
 
Definido en el archivo de encabezado <complex>
template< class T >
complex<T> sqrt( const complex<T>& z );

Calcula la raíz cuadrada del número complejo z con un punto de ramificación a lo largo del eje real negativo.

Contenido

[editar] Parámetros

z - El número complejo del que tomar la raíz cuadrada.

[editar] Valor de retorno

Si no se producen errores, devuelve la raíz cuadrada de z, en el rango del plano medio derecho, incluyendo el eje imaginario ([0; +∞) a lo largo del eje real y (−∞; +∞) a lo largo del eje imaginario).

[editar] Manejo de errores y valores especiales

Los errores se informan de acuerdo con math_errhandling.

Si la implementación es compatible con la aritmética de punto flotante IEEE,

  • La función es continua sobre el punto de ramificación teniendo en cuenta el signo de la parte imaginaria.
  • std::sqrt(std::conj(z)) == std::conj(std::sqrt(z)).
  • Si z es (±0,+0), el resultado de (+0,+0).
  • Si z es (x,+∞), el resultado de (+∞,+∞) incluso si x es NaN.
  • Si z es (x,NaN), el resultado de (NaN,NaN) (a menos que x sea ±∞) y se puede producir FE_INVALID.
  • Si z es (-∞,y), el resultado de (+0,+∞) para una y finita positiva.
  • Si z es (+∞,y), el resultado de (+∞,+0) para una y finita positiva.
  • Si z es (-∞,NaN), el resultado de (NaN,∞) (el signo de la parte imaginaria no está especificado).
  • Si z es (+∞,NaN), el resultado de (+∞,NaN).
  • Si z es (NaN,y), el resultado de (NaN,NaN) y se puede producir FE_INVALID.
  • Si z es (NaN,NaN), el resultado de (NaN,NaN).

[editar] Notas

La semántica de esta función pretende ser consistente con la función C csqrt.

[editar] Ejemplo

#include <iostream>
#include <complex>
 
int main()
{
    std::cout << "Raíz cuadrada de -4 es "
              << std::sqrt(std::complex<double>(-4, 0)) << '\n'
              << "Raíz cuadrada de (-4,-0), el otro lado de la ramificación, es "
              << std::sqrt(std::complex<double>(-4, -0.0)) << '\n';
}

Salida:

Raíz cuadrada de -4 es (0,2)
Raíz cuadrada de (-4,-0), el otro lado de la ramificación, es (0,-2)

[editar] Informes de defectos

Los siguientes informes de defectos de cambio de comportamiento se aplicaron de manera retroactiva a los estándares de C++ publicados anteriormente.

ID Aplicado a Comportamiento según lo publicado Comportamiento correcto
LWG 2597 C++98 La especificación maneja mal las partes imaginarias cero con signo. Se eliminó el requerimiento erróneo.

[editar] Véase también

Potencia compleja; uno o ambos argumentos pueden ser un número complejo.
(plantilla de función) [editar]
(C++11)(C++11)
Calcula la raíz cuadrada (x)
(función) [editar]
Se aplica la función std::sqrt a cada elemento de valarray.
(plantilla de función) [editar]