std::exp(std::complex)
Definido en el archivo de encabezado <complex>
|
||
template< class T > complex<T> exp( const complex<T>& z ); |
||
Calcula el exponencial base e de z
, es decir e (el número de Euler, 2.7182818
) elevado a la potencia z
.
Contenido |
[editar] Parámetros
z | - | El valor complejo. |
[editar] Valor de retorno
Si no se producen errores, e elevado a la potencia de z
, se devuelve ez
.
[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,
- 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 cualquierx
finita), el resultado es(NaN,NaN)
y se produce FE_INVALID. - Si
z
es(x,NaN)
(para cualquierx
finita), el resultado es(NaN,NaN)
y puede producirse FE_INVALID. - Si
z
es(+∞,+0)
, el resultado es(+∞,+0)
. - Si
z
es(-∞,y)
(para cualquiery
finita), el resultado es+0cis(y)
. - Si
z
es(+∞,y)
(para cualquiery
finita distinta 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 produce 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 cualquiery
distinta de cero), el resultado es(NaN,NaN)
y puede producirse FE_INVALID. - Si
z
es(NaN,NaN)
, el resultado es(NaN,NaN)
.
Donde cis(y) es cos(y) + i sin(y).
[editar] Notas
La función exponencial compleja ez
para z = x+iy es igual a ex
cis(y), o, ex
(cos(y) + i sin(y))
La función exponencial es una "función completa" en el plano complejo y no tiene puntos de ramificación.
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 unas 4,5 veces más lenta. Se debe usar una de las otras formas en lugar de usar exp con un componente literal 0. Sin embargo, no hay ningún beneficio en tratar de evitar exp con una verificación en tiempo de ejecución de z.real() == 0
.
[editar] Ejemplo
#include <complex> #include <iostream> int main() { const double pi = std::acos(-1); const std::complex<double> i(0, 1); std::cout << std::fixed << " exp(i*pi) = " << std::exp(i * pi) << '\n'; }
Salida:
exp(i*pi) = (-1.000000,0.000000)
[editar] Véase también
Logaritmo natural complejo con los cortes de ramificaciones a lo largo del eje real negativo. (plantilla de función) | |
(C++11)(C++11) |
Devuelve e elevada a la potencia dada (ex) (función) |
se aplica la std::exp función a cada elemento de valarray Original: applies the function std::exp to each element of valarray The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (plantilla de función) | |
Construye un número complejo a partir de una magnitud y un ángulo de fase. (plantilla de función) | |
Documentación de C para cexp
|