std:: exp (std::complex)
|
Определено в заголовочном файле
<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:
- std:: exp ( std:: complex < float > ( 0 , theta ) )
- std:: complex < float > ( cosf ( theta ) , sinf ( theta ) )
- std:: polar ( 1 . f , theta )
В данном случае
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
(шаблон функции) |
|
|
создаёт комплексное число из модуля и фазового угла
(шаблон функции) |
|
|
Документация C
для
cexp
|
|