ATAN2(3)

NAME
atan2 - arc tangent function of two variables

SYNOPSIS
#include <math.h>
double
atan2(double y, double x);
long double
atan2l(long double y, long double x);
float
atan2f(float y, float x);

DESCRIPTION
The atan2() function computes the principal value of the arc tangent of y/x, using the signs of both arguments to determine the quadrant of the return value.

SPECIAL VALUES
atan2(±0, -0) returns ±pi.

atan2(±0, +0) returns ±0.

atan2(±0, x) returns ±pi for x < 0.

atan2(±0, x) returns ±0 for x > 0.

atan2(y, ±0) returns +pi/2 for y > 0.

atan2(y, ±0) returns -pi/2 for y < 0.

atan2(±y, -infinity) returns ±pi for finite y > 0.

atan2(±y, +infinity) returns ±0 for finite y > 0.

atan2(±infinity, x) returns ±pi/2 for finite x.

atan2(±infinity, -infinity) returns ±3*pi/4.

atan2(±infinity, +infinity) returns ±pi/4.

NOTES
The atan2() function is used mostly to convert from rectangular (x,y) to polar coordinates that must satisfy x = and y = In general, conversions to polar coordinates should be computed thus:

    r	:= hypot(x,y);  ... := sqrt(x*x+y*y)
    theta	:= atan2(y,x).

VECTOR OPERATIONS
If you need to apply the atan2() function to SIMD vectors or arrays, using the following functions provided by the Accelerate.framework may give significantly better performance:

#include <Accelerate/Accelerate.h>

vFloat atan2f(vFloat y, vFloat x);
void vvatan2f(float *z, const float *y, const float *x, const int *n);
void vvatan2(double *z, const double *y, const double *x, const int *n);

SEE ALSO
acos(3), asin(3), atan(3), cos(3), cosh(3), sin(3), sinh(3), tan(3), tanh(3), math(3),

STANDARDS
The atan2() function conforms to ISO/IEC 9899:2011.