# atan2(y, x): ArcTangent¶

Arctangent function or inverse tangent function.

## Declaration¶

### Syntax¶

retval = atan2(y, x)
elemental real(p) function atan2(y, x)


### Arguments¶

y the input value is the imaginary part of the complex expression

$$x + iy$$

x the input value, must be real part of the complex expression.

### Return values¶

The returned value has the kind and TYPE as of the input value y. The principal value of the argument function of the complex expression $$x + iy$$ is returned.

## Description¶

atan2(y, x) computes the principal value of the argument function of the complex expression $$x + iy$$. This is used to transform from cartesian into polar coordinates and allows to determine the angle in the correct quadrant.

It is also represented as:

$$tan^{-1}(\frac{y}{x})$$

If x is nonzero, the result lies in the range:

$$-\pi <= atan(x) <= \pi$$

The sign is positive if y is positive.

If y is zero and x is strictly positive, then the result is 0.

If x is negative and y is positive zero, then the result is $$\pi$$.

If x is negative and y is negative zero, then the result is $$-\pi$$.

If x is zero, then the magnitude of the result is $$\frac{\pi}{2}$$.

If y is negative real zero, the result is $$\frac{-\pi}{2}$$.

## Types¶

Supported argument type is real.

interface atan2
module procedure satan2, datan2
end interface

contains

interface
elemental real(sp) function satan2(y, x)
real(sp), intent(in) :: y, x
end function

elemental real(dp) function datan2(y, x)
real(dp), intent(in) :: y, x
end function

end interface


## Examples¶

program intrinsics_atan2
implicit none
print *, atan2(2.679676, 1.0)
end program


Result:

0.699521642