[ Arithmetic | Reference Manual | Alphabetic Index ]

# atan(+Y, +X, -Result)

Computes the arc tangent function of two variables and unifies the resulting value with Result.
Y
A number.
X
A number.
Result
Output: float or breal.

## 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) instantiation fault
X or Y is not instantiated (non-coroutining mode only).
(24) number expected
Number is not of a numeric type.

## Examples

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

Result is atan( 7.0,  7.0).		% gives Result =  0.785398
```