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