Namespaces
Variants

std:: exp (std::complex)

From cppreference.net
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:

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)