`EPSILON` — 기계 엡실론
EPSILON — 기계 엡실론
부동소수점 계산에서 '1과 구별되는 가장 작은 수'가 무엇인지 알고 싶을 때가 있어요. 반올림 오차의 한계를 예측할 때 유용하죠. EPSILON(X)는 X와 같은 종류의 E 중에서 1 + E > 1을 만족하는 가장 작은 수를 돌려주는 내장 함수예요.
본문
시그니처
RESULT = EPSILON(X)
설명
EPSILON(X)는 X와 같은 종류의 E 중에서 1 + E > 1을 만족하는 가장 작은 수를 반환해요. 즉 그 부동소수점 종류에서 '1에 더했을 때 변화가 감지되는' 최소값, 곧 기계 엡실론(machine epsilon)이에요.
클래스
조회 함수(Inquiry function)
인자
X—REAL타입.
반환값
반환값은 인자와 같은 타입이에요.
예제
program test_epsilon
real :: x = 3.143
real(8) :: y = 2.33
print *, EPSILON(x)
print *, EPSILON(y)
end program test_epsilon
단정밀도와 배정밀도 각각의 기계 엡실론을 돌려줘요. 배정밀도 y가 단정밀도 x보다 훨씬 작은 값을 반환하는 걸 볼 수 있어요.
표준
Fortran 90 이상