ATAN2 — 사분면을 고려한 아크탄젠트 함수

ATAN2 — 사분면을 고려한 아크탄젠트 함수

아크탄젠트라면 보통 ATAN으로 충분한데, 두 좌표 (x, y)에서 각도를 구하려면 이야기가 달라져요. 같은 비율이어도 어느 사분면에 있느냐에 따라 각도가 달라지거든요. ATAN2는 복소수 X + iY의 편각(argument)의 주값을 계산해서, 사분면까지 정확히 맞춰 각도를 돌려주는 내장 함수예요.

출처: ATAN2 (The GNU Fortran Compiler)

본문

시그니처

RESULT = ATAN2(Y, X)

설명

ATAN2(Y, X)는 복소수 X + iY의 편각 함수의 주값(principal value)을 계산해요. 데카르트 좌표를 극좌표로 변환할 때 쓰이며, 각도가 올바른 사분면에 오도록 해 줘요.

클래스

원소 함수(Elemental function)예요.

인자

  • Y — 타입은 실수(REAL)여야 해요.
  • X — 타입과 kind 타입 매개변수가 Y와 같아야 해요. Y가 0이면 X는 0이 아니어야 해요.

반환값

반환값은 Y와 같은 타입과 kind 타입 매개변수를 가져요. 복소수 X + iY의 편각의 주값이에요. X가 0이 아니면 -π ≤ atan(x) ≤ π 범위에 있어요.

부호는 Y가 양수이면 양수예요. Y가 0이면, X가 양수일 때 반환값은 0이고, X가 음수이고 Y가 양의 0이면(또는 프로세서가 부호 있는 0을 다루지 않으면) π, X가 음수이고 Y가 음의 0이면 예요. 마지막으로 X가 0이면 결과의 크기는 π/2예요.

예제

program test_atan2
  real(4) :: x = 1.e0_4, y = 0.5e0_4
  x = atan2(y,x)
end program test_atan2

특정 이름(Specific names)

이름 인자 반환 타입 표준
ATAN2(X, Y) REAL(4) X, Y REAL(4) Fortran 77 이후
DATAN2(X, Y) REAL(8) X, Y REAL(8) Fortran 77 이후

원문 표기는 ATAN2(X, Y)인데 인자 순서에 주의하세요. 실제 시그니처는 ATAN2(Y, X)예요.

표준

Fortran 77 이후부터 지원돼요.

더 알아보기

  • 한 인자 형태의 아크탄젠트라면 ATAN을, 도 단위 결과가 필요하면 ATAN2D를 써요.
  • GNU Fortran 내장 프로시저 전체 목록은 Intrinsic Procedures에서 확인할 수 있어요.