
atan(+Y, +X, -Result)

   Computes the arc tangent function of two variables and unifies the resulting value with Result.

Arguments
   Y                   A number.
   X                   A number.
   Result              A variable, float or breal.

Type
   Arithmetic

Description
   This predicate is used by the ECLiPSe compiler to expand evaluable
   arithmetic expressions.  So the call to atan(Y, X, Result) is
   equivalent to

    Result is atan(Y, X)

    which should be preferred for portability.

    It is similar to calculating the arc tangent of Y/X, except that the
    signs of both arguments are used to determine the quadrant of the result.
    The result lies in the interval -pi..pi. The operation is valid even if
    X is zero, in which case the result is pi/2 or -pi/2.  One application
    is the conversion of cartesian to polar coordinates, where this function
    computes the angle component (in radians).

   In coroutining mode, if X or Y is uninstantiated, the call to atan/3 is
   delayed until both variables are instantiated.




Modes and Determinism
   atan(+, +, -) is det

Exceptions
     4 --- X or Y is not instantiated (non-coroutining mode only).
     5 --- Result is a number but not a float or breal
    24 --- Number is not of a numeric type.
    24 --- Result is neither a number nor a variable.

Examples
   
Success:
      atan( 0.0, -1.0, Result).	(gives Result =  3.141592)
      atan( 1.0, -1.0, Result).	(gives Result =  2.356194)
      atan( 1.0,  0.0, Result).	(gives Result =  1.570796)
      atan( 1.0,  1.0, Result).	(gives Result =  0.785398)
      atan( 0.0,  0.0, Result).	(gives Result =  0.0)
      atan(-1.0,  1.0, Result).	(gives Result = -0.785398)
      atan(-1.0,  0.0, Result).	(gives Result = -1.570796)
      atan(-1.0, -1.0, Result).	(gives Result = -2.356194)
      atan(-0.0, -1.0, Result).	(gives Result = -3.141592)

      atan( 7.0,  7.0, Result).	(gives Result =  0.785398)

Error:
      atan(A, 0.0, 6.0).              (Error 4).
      atan(1.55741, 0.0, 1).          (Error 5).
      atan(1 + 0.55741, 1.0, R).      (Error 24).


See Also
   is / 2
