std::sqrt(std::complex)
De cppreference.com
<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
zes(±0,+0), el resultado de(+0,+0). - Si
zes(x,+∞), el resultado de(+∞,+∞)incluso sixes NaN. - Si
zes(x,NaN), el resultado de(NaN,NaN)(a menos que x sea ±∞) y se puede producir FE_INVALID. - Si
zes(-∞,y), el resultado de(+0,+∞)para unayfinita positiva. - Si
zes(+∞,y), el resultado de(+∞,+0)para unayfinita positiva. - Si
zes(-∞,NaN), el resultado de(NaN,∞)(el signo de la parte imaginaria no está especificado). - Si
zes(+∞,NaN), el resultado de(+∞,NaN). - Si
zes(NaN,y), el resultado de(NaN,NaN)y se puede producir FE_INVALID. - Si
zes(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
Ejecuta este código
#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) | |
(C++11)(C++11) |
Calcula la raíz cuadrada (√x) (función) |
| Se aplica la función std::sqrt a cada elemento de valarray. (plantilla de función) | |
Documentación de C para csqrt
| |