[ Arithmetic | Reference Manual | Alphabetic Index ]

# abs(+Number, -Result)

Unifies the absolute value of Number with Result.
Number
A number.
Result
A variable or a number.

## Description

This predicate is used by the ECLiPSe compiler to expand evaluable arithmetic expressions. So the call to abs(Number, Result) is equivalent to
```    Result is abs(Number)
```
which should be preferred for portability.

Number and Result have to be of the same type.

In coroutining mode, if Number is uninstantiated, the call to abs/2 is delayed until this variable is instantiated.

### Modes and Determinism

• abs(+, -) is det

### Exceptions

(4) instantiation fault
Number is not instantiated (non-coroutining mode only).
(24) number expected
Number is not of a numeric type.

## Examples

```Success:
abs(1, 1).
abs(-5, Result).             (gives Result = 5)
abs(-6.2, Result).           (gives Result = 6.2)
Fail:
abs(1, 0).
abs(1, 1.0).
abs(-1.0, 1).
abs(1, r).
Error:
abs(A, 6).                   (Error 4).
abs(4 + 2, 6).               (Error 24).

```