[ Arithmetic | Reference Manual | Alphabetic Index ]

# breal_from_bounds(+Lo, +Hi, -Result)

Constructs a bounded real from the given floating point bounds
Lo
A number.
Hi
A number.
Result
A variable.

## Description

This predicate is used by the ECLiPSe compiler to expand evaluable arithmetic expressions. So a call to breal_from_bounds(Lo, Hi, Result) is equivalent to
```    Result is breal_from_bounds(Lo, Hi).
```
This predicate constructs a new bounded real number with the specified bounds. In effect, the bounds are first cast to bounded reals, and then the new bounded real is constructed from the lower bound of Lo and the upper bound of Hi.

### Modes and Determinism

• breal_from_bounds(+, +, -) is det

### Exceptions

(4) instantiation fault
Lo or Hi are not instantiated.
(20) arithmetic exception
The lower bound of Lo is greater than the upper bound of Hi.
(24) number expected
Lo or Hi are not numbers.

## Examples

```Success:
?- breal_from_bounds(0.99, 1.01, X).
X = 0.99__1.01

?- breal_from_bounds(1_3, 2_3, X).
X = 0.33333333333333326__0.66666666666666674

Error:
?- breal_from_bounds(1, H, X).
instantiation fault in breal_from_bounds(1, H, X)

?- breal_from_bounds("a", 2.0, X).
number expected in breal_from_bounds("a", 2.0, X)

?- breal_from_bounds(2 + 4, 3 + 5, Z).
number expected in breal_from_bounds(2 + 4, 3 + 5, Z)

?- breal_from_bounds(1.0, 2.0, 1.0__2.0).
type error in breal_from_bounds(1.0, 2.0, 1.0__2.0)

?- breal_from_bounds(1.1, 0.9, X).
arithmetic exception in breal_from_bounds(1.1, 0.9, X)
```

## See Also

breal_min / 2, breal_max / 2, breal / 1, breal / 2, breal_bounds / 3, is / 2