close
Espacios de nombres
Variantes

std::sqrt(std::complex)

De cppreference.com
 
 
 
std::complex
Funciones miembro
Funciones no miembro
Funciones exponenciales
Funciones de potencias
Funciones trigonométricas
(C++11)
(C++11)
(C++11)
Funciones hiperbólicas
(C++11)
(C++11)
(C++11)
 
<tbody> </tbody>
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.

Parámetros

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

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

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

Notas

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

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)

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.

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]