Availability::- use_module(library(clpBNR)).
 small(+X:numeric_List) is semidet
Succeeds if the width of the domain of Numeric is less than the value defined by the environment flag clpBNR_default_precision which is a positive integer specifying number of digits; otherwise fails. For example, a clpBNR_default_precision value of 6 (the default) defines a domain width limit of 1e-7. Numbers have a domain width of 0, so they are always "small".

If Numeric is a list of numerics, all elements of the list must be "small". Examples:

?- X::real, small(X).
false.

?- X::real(-1e-10,1e-10), small(X).
X::real(-1.0000000000000002e-10, 1.0000000000000002e-10).

?- X::real(-1e-10,1e-10), small([X,42]).
X::real(-1.0000000000000002e-10, 1.0000000000000002e-10).

Note that this is really only useful for real intervals; integer intervals are not small until they become point values.