The Interval Subroutine Library Project

Interval computing is the most used way to produce *bounds* on answers to numerical problems. Given lower and upper
bounds on each numeric input data value, it computes lower and upper bounds on
each output value. For instance ‘if the car’s speed is between 40
and 50 mph and the distance to travel is between 8 and 10 miles, the time for
the trip is between 9.6and 15 minutes.’ Symbolically this is the interval
calculation [8,10]/[40,50]*60 giving the result [9.6,15]. The bounds are mathematically
guaranteed – assuming correct algorithms are used – and in
particular take account of all roundoff errors in arithmetic operations. For
instance if we had to give the above answer in whole minutes we should have to
say ‘between 9 and 15 minutes’.

Interval computing has some notable successes but has been slow to live up
to its promise. One reason is that it requires access to low-level computer
arithmetic features such as control over rounding mode, which are ill-supported
by the main computer languages. Hence software is hard to port between
platforms and even between successive releases of a compiler. This severely
hampers progress on the *inherent *difficulties
of interval computing, mainly that for implicit problems such as solving
algebraic and differential equations one needs very different and more time
consuming algorithms.

For ordinary floating point computing a portable infrastructure has been available for many years, thanks to the IEEE arithmetic standard at the hardware level, and quality algorithm libraries such as NAG and IMSL at the software level.

The ISL project was begun in Summer 2005 with the mission to put in place a similar portable infrastructure for interval computing.

See other pages for more detail on the project’s origin and aims, its personnel, its achievements and current activities, a selection of journal papers, talks and working notes, and summaries of team meetings held so far.