std:: exp (std::complex)
|
Definido en el encabezado
<complex>
|
||
|
template
<
class
T
>
std:: complex < T > exp ( const std:: complex < T > & z ) ; |
||
Calcule la exponencial en base e de
z
, es decir
e
(número de Euler,
2.7182818
) elevado a la potencia
z
.
Contenidos |
Parámetros
| z | - | valor complejo |
Valor de retorno
Si no ocurren errores,
e
elevado a la potencia de
z
,
e
z
, es retornado.
Manejo de errores y valores especiales
Los errores se reportan de manera consistente con math_errhandling .
Si la implementación admite aritmética de punto flotante IEEE,
- std:: exp ( std:: conj ( z ) ) == std:: conj ( std:: exp ( z ) )
-
Si
z
es
(±0,+0), el resultado es(1,+0) -
Si
z
es
(x,+∞)(para cualquier x finito), el resultado es(NaN,NaN)y se genera FE_INVALID . -
Si
z
es
(x,NaN)(para cualquier x finito), el resultado es(NaN,NaN)y puede generarse FE_INVALID . -
Si
z
es
(+∞,+0), el resultado es(+∞,+0) -
Si
z
es
(-∞,y)(para cualquier y finito), el resultado es+0cis(y) -
Si
z
es
(+∞,y)(para cualquier y finito distinto de cero), el resultado es+∞cis(y) -
Si
z
es
(-∞,+∞), el resultado es(±0,±0)(los signos no están especificados) -
Si
z
es
(+∞,+∞), el resultado es(±∞,NaN)y se genera FE_INVALID (el signo de la parte real no está especificado) -
Si
z
es
(-∞,NaN), el resultado es(±0,±0)(los signos no están especificados) -
Si
z
es
(+∞,NaN), el resultado es(±∞,NaN)(el signo de la parte real no está especificado) -
Si
z
es
(NaN,+0), el resultado es(NaN,+0) -
Si
z
es
(NaN,y)(para cualquier y distinto de cero), el resultado es(NaN,NaN)y puede generarse FE_INVALID -
Si
z
es
(NaN,NaN), el resultado es(NaN,NaN)
donde cis(y) es cos(y) + i sin(y) .
Notas
La función exponencial compleja
e
z
para
z = x+iy
es igual a
e
x
cis(y)
, o,
e
x
(cos(y) + i sin(y))
.
La función exponencial es una función entera en el plano complejo y no tiene cortes de rama.
Los siguientes tienen resultados equivalentes cuando la parte real es 0:
- std:: exp ( std:: complex < float > ( 0 , theta ) )
- std:: complex < float > ( cosf ( theta ) , sinf ( theta ) )
- std:: polar ( 1 . f , theta )
En este caso
exp
puede ser aproximadamente 4.5 veces más lento. Debería usarse una de las otras formas en lugar de llamar a
exp
con un argumento cuya parte real sea literalmente 0. No hay beneficio en intentar evitar
exp
con una verificación en tiempo de ejecución de
z.
real
(
)
==
0
sin embargo.
Ejemplo
#include <cmath> #include <complex> #include <iostream> int main() { const double pi = std::acos(-1.0); const std::complex<double> i(0.0, 1.0); std::cout << std::fixed << " exp(i * pi) = " << std::exp(i * pi) << '\n'; }
Salida:
exp(i * pi) = (-1.000000,0.000000)
Véase también
|
logaritmo natural complejo con los cortes de rama a lo largo del eje real negativo
(plantilla de función) |
|
|
(C++11)
(C++11)
|
retorna
e
elevado a la potencia dada (
e
x
)
(función) |
|
aplica la función
std::exp
a cada elemento del valarray
(plantilla de función) |
|
|
construye un número complejo a partir de magnitud y ángulo de fase
(plantilla de función) |
|
|
Documentación C
para
cexp
|
|