std::sqrt(std::complex)
De cppreference.com
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 six
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 unay
finita positiva. - Si
z
es(+∞,y)
, el resultado de(+∞,+0)
para unay
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
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)
[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) | |
(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
|