Ken Williams wrote:
Hi Brendan,
On Feb 26, 2006, at 6:46 PM, Brendan Leber wrote:
First I need to explain a bit about intervals. In this context an
interval is a new type of number just like a complex. Intervals are
used to represent values in calculations where the answer can not be
exactly represented. For example, the quantity 1/3 does not have an
exact binary representation so you must round the answer to the
nearest representable value. When evaluating calculations with an
interval the results are "rounded out" so that the real answer is
somewhere between a lower and upper bound. (The lower bound is
rounded down toward negative infinity and the upper bound is rounded
up to positive infinity.) So dividing 1 by 3 could result in the
interval [0.333; 0.334]. If you want to learn more the best place
to start is at: http://www.cs.utep.edu/interval-comp/
I fear that the name "interval" might be somewhat misleading here.
If I saw Math::Interval on CPAN, I'd expect it to deal with connected
subsets of the real number line, and to support methods like intersect
(), overlaps(), contains(), and so on. This is the sense that we'd
find in, say, the Rivest/Cormen/et-al algorithms book.
Your sense of intervals seems rather to be more akin to error bars on
a calculated variable, right? Is this interpretation of intervals
necessarily incompatible with the more "traditional" sense - in other
words, could a single interface support both notions?
If not, I might suggest something like Math::CalcInterval or
something like that, so people know it's this calculational sense
that the code deals with.
-Ken
This type of interval is also know as a Confidence Interval.
Spencer