Namespaces
Variants

std:: exp (std::complex)

From cppreference.net
Определено в заголовочном файле <complex>
template < class T >
std:: complex < T > exp ( const std:: complex < T > & z ) ;

Вычисляет экспоненту по основанию e от z , то есть e (число Эйлера, 2.7182818 ), возведённое в степень z .

Содержание

Параметры

z - комплексное значение

Возвращаемое значение

Если ошибок не возникает, e в степени z , e z
, возвращается.

Обработка ошибок и специальные значения

Ошибки сообщаются в соответствии с math_errhandling .

Если реализация поддерживает арифметику с плавающей точкой IEEE,

  • std:: exp ( std:: conj ( z ) ) == std:: conj ( std:: exp ( z ) )
  • Если z равно (±0,+0) , результат (1,+0)
  • Если z равно (x,+∞) (для любого конечного x), результат (NaN,NaN) и возбуждается FE_INVALID
  • Если z равно (x,NaN) (для любого конечного x), результат (NaN,NaN) и может быть возбуждено FE_INVALID
  • Если z равно (+∞,+0) , результат (+∞,+0)
  • Если z равно (-∞,y) (для любого конечного y), результат +0cis(y)
  • Если z равно (+∞,y) (для любого конечного ненулевого y), результат +∞cis(y)
  • Если z равно (-∞,+∞) , результат (±0,±0) (знаки не определены)
  • Если z равно (+∞,+∞) , результат (±∞,NaN) и возбуждается FE_INVALID (знак вещественной части не определен)
  • Если z равно (-∞,NaN) , результат (±0,±0) (знаки не определены)
  • Если z равно (+∞,NaN) , результат (±∞,NaN) (знак вещественной части не определен)
  • Если z равно (NaN,+0) , результат (NaN,+0)
  • Если z равно (NaN,y) (для любого ненулевого y), результат (NaN,NaN) и может быть возбуждено FE_INVALID
  • Если z равно (NaN,NaN) , результат (NaN,NaN)

где cis(y) это cos(y) + i sin(y) .

Примечания

Комплексная экспоненциальная функция e z
для z = x+iy равна e x
cis(y)
, или e x
(cos(y) + i sin(y))
.

Экспоненциальная функция является целой функцией в комплексной плоскости и не имеет точек ветвления.

Следующие выражения дают эквивалентные результаты, когда действительная часть равна 0:

В данном случае exp может быть примерно в 4.5 раза медленнее. Следует использовать одну из других форм вместо вызова exp с аргументом, вещественная часть которого является литеральным 0. Нет никакой пользы в попытке избежать exp с проверкой во время выполнения z. real ( ) == 0 однако.

Пример

#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';
}

Вывод:

exp(i * pi) = (-1.000000,0.000000)

Смотрите также

комплексный натуральный логарифм с разрезом ветвей вдоль отрицательной вещественной оси
(шаблон функции)
(C++11) (C++11)
возвращает e в заданной степени ( e x )
(функция)
применяет функцию std::exp к каждому элементу valarray
(шаблон функции)
создаёт комплексное число из модуля и фазового угла
(шаблон функции)