
breal(+Number, -Result)

   Converts Number into a breal number and unifies it with Result.

Arguments
   Number              A number.
   Result              A variable or bounded real number.

Type
   Arithmetic

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

    Result is breal(Number)

    which should be preferred.


Modes and Determinism
   breal(+, -) is det

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

Examples
   
Success:
    ?- breal(25, X).
    X = 25.0__25.0

    ?- breal(1.5, X).
    X = 1.5__1.5

    ?- breal(3_4, X).
    X = 0.74999999999999989__0.75000000000000011

    ?- breal(1.0__1.01, X).
    X = 1.0__1.01

Fail:
    ?- breal(1.0, 1.0__1.0).
    No (0.00s cpu)

Error:
    ?- breal(A, X).
    instantiation fault in breal(A, X)

    ?- breal(3, 3).
    type error in breal(3, 3)

    ?- breal(1, r).
    number expected in breal(1, r)

    ?- breal(4 + 2, X).
    number expected in breal(4 + 2, X)


See Also
   integer / 2, float / 2, rational / 2, is / 2, breal_min / 2, breal_max / 2, breal_bounds / 3, breal_from_bounds / 3, breal / 1
