math.atan2

FLOATmath.atan2FLOATyFLOATx

Available in all subroutines.

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.

Parameters

  • y - Floating point value.
  • x - Floating point value.

Return Value

Upon successful completion, this function returns the arc tangent of y/x in the range -math.PI to math.PI radians inclusive.

If y is ±0 and x is < 0, ±math.PI will be returned.

If y is ±0 and x is > 0, ±0 will be returned.

If y is < 0 and x is ±0, -math.PI_2 will be returned.

If y is > 0 and x is ±0, math.PI_2 will be returned.

If x is 0, a pole error will not occur.

If either x or y is math.NAN, a NaN will be returned.

If y is ±0 and x is +0, ±0 will be returned.

For finite values of ±y > 0, if x is math.NEG_INFINITY, ±math.PI will be returned.

For finite values of ±y > 0, if x is math.POS_INFINITY, ±0 will be returned.

For finite values of x, if y is math.POS_INFINITY or math.NEG_INFINITY, ±math.PI_2 will be returned.

If y is math.POS_INFINITY or math.NEG_INFINITY and x is math.NEG_INFINITY, ±(3*math.PI_4) will be returned.

If y is math.POS_INFINITY or math.NEG_INFINITY and x is math.POS_INFINITY, ±math.PI_4 will be returned.

If both arguments are 0, a domain error will not occur.

If the result would cause an underflow, a range error occurs and math.atan2() will return y/x.

Example

declare local var.fo FLOAT;
set var.fo = math.atan2(7, -0);