이 글에서는 C++ STL에 포함된 log() 함수의 동작 원리, 문법, 그리고 실제 사용 예제를 살펴보겠습니다.
log() 함수란 무엇인가?
log() 함수는 C++ 표준 라이브러리(STL)에 내장된 함수로, <complex> 헤더 파일에 정의되어 있습니다. 이 함수는 복소수(complex number)에 대한 자연로그(natural logarithm) 값을 계산하여 반환합니다.
<math.h> 헤더 파일의 log() 함수와 <complex> 헤더 파일의 log() 함수의 차이점은 다음과 같습니다. 전자는 일반적인 실수 로그 값을 계산하는 반면, 후자는 복소수에 대한 복소 로그(complex logarithm)를 계산합니다.
문법(Syntax)
template<class T> complex<T> log(const complex<T>& x);
매개변수(Parameters)
이 함수는 매개변수를 하나만 받습니다. 바로 로그 값을 구하고자 하는 복소수 값입니다.
반환 값(Return Value)
입력으로 주어진 복소수 x에 대한 로그 값이 반환됩니다.
예제 1
Input: complex<double> C_number(-7.0, 1.0);
log(C_number);
Output: log of (-7,1) is (1.95601,2.9997)#include <bits/stdc++.h>
using namespace std;
int main() {
complex<double> C_number(-7.0, 1.0);
cout<<"log of "<<C_number<<" is "<<log(C_number)<< endl;
return 0;
}출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
log of (-7,1) is (1.95601,2.9997)
예제 2
#include <bits/stdc++.h>
using namespace std;
int main() {
complex<double> C_number(-4.0, -1.0);
cout<<"log of "<< C_number<< " is "<<log(C_number);
return 0;
}출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
log of (-4,-1) is (1.41661,-2.89661)
정리
C++에서 복소수의 로그를 계산할 때는 반드시 <complex> 헤더에 정의된 log() 함수를 사용해야 합니다. 일반 실수용 log() 함수와 이름은 같지만, 내부적으로 오일러 공식을 기반으로 복소 평면에서의 로그 값을 계산한다는 점이 핵심입니다. 음수나 허수부가 포함된 값에도 정상적으로 로그를 계산할 수 있어 과학 및 공학 계산에 유용하게 활용됩니다.