`EPSILON` — 기계 엡실론

EPSILON — 기계 엡실론

부동소수점 계산에서 '1과 구별되는 가장 작은 수'가 무엇인지 알고 싶을 때가 있어요. 반올림 오차의 한계를 예측할 때 유용하죠. EPSILON(X)X와 같은 종류의 E 중에서 1 + E > 1을 만족하는 가장 작은 수를 돌려주는 내장 함수예요.

출처: gfortran — EPSILON

본문

시그니처

RESULT = EPSILON(X)

설명

EPSILON(X)X와 같은 종류의 E 중에서 1 + E > 1을 만족하는 가장 작은 수를 반환해요. 즉 그 부동소수점 종류에서 '1에 더했을 때 변화가 감지되는' 최소값, 곧 기계 엡실론(machine epsilon)이에요.

클래스

조회 함수(Inquiry function)

인자

  • XREAL 타입.

반환값

반환값은 인자와 같은 타입이에요.

예제

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 이상