
breal_bounds(+Number, ?Min, ?Max)

   Extracts lower and upper floating point bounds of the bounded real Number

Arguments
   Number              A bounded real number.
   Min                 A variable or float.
   Max                 A variable or float.

Type
   Arithmetic

Description
    A bounded real is a real number represented by a lower and upper
    bound in floating point format. This predicate extracts both bounds
    and unifies them with Min and Max respectively.


Resatisfiable
      No

Fail Conditions
   Fails if Min or Max do not unify with the real's bounds

Exceptions
     4 --- Number is not instantiated
     5 --- Number is a not a bounded real number.
     5 --- Min is neither a variable nor a float.
     5 --- Max is neither a variable nor a float.

Examples
   
Success:
    ?- breal_bounds(0.99__1.01, Min, Max).
    Min = 0.99
    Max = 1.01

    ?- breal(1.0, One), breal_bounds(One, Min, Max).
    One = 1.0__1.0
    Min = 1.0
    Max = 1.0

    ?- breal(1, One), breal_bounds(One, Min, Max).
    One = 1.0__1.0
    Min = 1.0
    Max = 1.0

Error:
    ?- breal_bounds(1, Min, Max).
    type error in breal_bounds(1, Min, Max)

    ?- breal_bounds(1.0, Min, Max).
    type error in breal_bounds(1.0, Min, Max)

    ?- breal_bounds("a", Min, Max).
    type error in breal_bounds("a", Min, Max)

    ?- breal_bounds(2 + 4, Min, Max).
    type error in breal_bounds(2 + 4, Min, Max)


See Also
   breal / 1, breal / 2, breal_min / 2, breal_max / 2, breal_from_bounds / 3, is / 2
