interval arithmetic & assume database



>>>>> "David" == David Stoutemyer <dstout at hawaii.edu> writes:

    David> I would also like to see the infectiousness of Floats and
    David> Big Floats be on a local basis of each real arithmetic
    David> operation?rather than degrading all numbers in a
    David> multi-interval whenever one of them is a Float or a Big
    David> Float.

Do you mean that if x and y are both unions of the intervals [1,5] and
[8.0, 9.0], then you want x*y to be the union of [1, 25], [8.0, 45.0],
and [64.0, 81.0]?

Ray

P.S.  If you have cmucl or sbcl, you can try

(defun foo (x y)
  (declare (type (or (integer 1 5) (single-float 8.0 9.0)) x y))
  (* x y))
(compile 'foo)
(describe 'foo)
[snip other output from foo]
Its result type is:
  (OR (SINGLE-FLOAT 64.0 81.0) (SINGLE-FLOAT 8.0 45.0) (INTEGER 1 25))