이 글에서는 C++의 fdim() 함수에 대해 자세히 알아보겠습니다. fdim() 함수는 두 인수 사이의 양수 차이(positive difference)를 반환하는 수학 함수입니다. 두 인수가 각각 a와 b라고 할 때, a > b이면 a - b를 반환하고, 그렇지 않으면 0을 반환합니다.
이 함수는 <cmath> 헤더 파일에 정의되어 있으며, 결과값이 음수가 되지 않아야 하는 상황에서 유용하게 활용됩니다.
예제 코드
#include <cmath>
#include <iostream>
using namespace std;
main() {
cout << "fdim of (5.0, 2.0) is " << fdim(5.0, 2.0) << endl; // 양수 차이 반환
cout << "fdim of (2.0, 5.0) is " << fdim(2.0, 5.0) << endl; // 0 반환
cout << "fdim of (-5.0, -2.0) is " << fdim(-5.0, -2.0) << endl; // 0 반환
cout << "fdim of (-2.0, -5.0) is " << fdim(-2.0, -5.0) << endl; // 양수 차이 반환
}
실행 결과
fdim of (5.0, 2.0) is 3 fdim of (2.0, 5.0) is 0 fdim of (-5.0, -2.0) is 0 fdim of (-2.0, -5.0) is 3
결과 분석
위 실행 결과를 하나씩 살펴보면 다음과 같습니다.
- fdim(5.0, 2.0): 첫 번째 인수가 더 크므로 5.0 - 2.0 = 3을 반환합니다.
- fdim(2.0, 5.0): 첫 번째 인수가 작으므로 0을 반환합니다.
- fdim(-5.0, -2.0): -5.0이 -2.0보다 작으므로 0을 반환합니다.
- fdim(-2.0, -5.0): -2.0이 -5.0보다 크므로 -2.0 - (-5.0) = 3을 반환합니다.
참고로 fdim() 함수는 오버로드 형태도 함께 제공됩니다. float 타입에는 fdimf(), long double 타입에는 fdiml()을 사용하면 되며, 인수 중 하나가 NaN인 경우에도 NaN을 반환한다는 점을 기억해두면 좋습니다.