Namespaces
Variants

std:: exp (std::complex)

From cppreference.net
헤더에 정의됨 <complex>
template < class T >
std:: complex < T > exp ( const std:: complex < T > & z ) ;

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) (임의의 유한한 0이 아닌 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) (임의의 0이 아닌 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))
와 같습니다.

지수 함수는 복소 평면에서 entire function 이며 가지(branch cut)를 갖지 않습니다.

실수부가 0일 때 다음은 동등한 결과를 가집니다:

이 경우 exp 는 약 4.5배 정도 느려질 수 있습니다. 실수부가 리터럴 0인 인수로 exp 를 호출하는 대신 다른 형태 중 하나를 사용해야 합니다. z. real ( ) == 0 의 런타임 검사로 exp 를 피하려고 시도하는 것은 아무런 이점이 없습니다.

예제

#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)

참고 항목

음의 실수축을 따라 가지 절단(branch cut)이 있는 복소수 자연 로그
(함수 템플릿)
(C++11) (C++11)
주어진 거듭제곱으로 올린 e 값을 반환 ( e x )
(함수)
함수 std::exp 를 valarray의 각 요소에 적용
(함수 템플릿)
크기와 위상 각도로부터 복소수를 생성
(함수 템플릿)
C 문서 for cexp