
breal_from_bounds(+Lo, +Hi, -Result)

   Constructs a bounded real from the given floating point bounds

Arguments
   Lo                  A number.
   Hi                  A number.
   Result              Output: bounded real number.

Type
   Arithmetic

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 --- Lo or Hi are not instantiated.
    20 --- The lower bound of Lo is greater than the upper bound of Hi.
    24 --- 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
