ATANPI — 아크탄젠트를 반 바퀴 단위로 계산하기

ATANPI — 아크탄젠트를 반 바퀴 단위로 계산하기

아크탄젠트 결과를 라디안 대신 반 바퀴(half-revolution) 단위로 받고 싶을 때가 있어요. 회전 횟수를 다루는 코드라면 2π 대신 1이 한 바퀴가 되는 체계가 편하죠. ATANPIatan(x) / π를 계산해 주는 내장 함수로, 두 인자 형태를 쓰면 atan2(y, x) / π도 계산할 수 있어요.

출처: ATANPI (The GNU Fortran Compiler)

본문

시그니처

RESULT = ATANPI(X)
RESULT = ATANPI(Y, X)

설명

ATANPI(X)atan(x) / π를 계산해요. ATANPI(Y, X)atan2(y, x) / π를 계산해요. 두 결과 모두 각도를 반 바퀴 단위로 잰 측정값이에요.

클래스

원소 함수(Elemental function)예요.

인자

  • Y — 타입은 실수(REAL)여야 해요.
  • XY가 함께 주어지면 XY와 같은 타입과 kind를 가져야 해요. Y가 0이면 X는 0이 아니어야 해요. Y 없이 한 인자로 쓸 때는 X가 실수(REAL)여야 해요.

반환값

반환값은 X와 같은 타입과 kind를 가져요. 반 바퀴 단위로 표현되며 -0.5 ≤ atanpi(x) ≤ 0.5를 만족해요.

예제

program test_atanpi
  implicit none
  real, parameter :: x = 0.123, y(3) = [0.123, 0.45, 0.8]
  real, parameter :: a = atanpi(x), b(3) = atanpi(y)
  call foo(x, y)
contains
  subroutine foo(u, v)
    real, intent(in) :: u, v(:)
    real :: f, g(size(v))
    f = atanpi(u)
    g = atanpi(v)
    if (abs(a - f) > 8 * epsilon(f)) stop 1
    if (any(abs(g - b) > 8 * epsilon(f))) stop 2
  end subroutine foo
end program test_atanpi

표준

Fortran 2023 표준이에요.

더 알아보기

  • 반 바퀴 단위 계열의 짝꿍 ACOSPI, ASINPI, ATAN2PI도 함께 보면 성질이 비슷해요.
  • GNU Fortran 내장 프로시저 전체 목록은 Intrinsic Procedures에서 확인할 수 있어요.