# from Ken Williams # on Wednesday 01 March 2006 07:28 pm: >>(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.
It sounds like this usage is part of the foundation (if not "base") class Math::Interval which Brendan will need even though he might not be working directly on those bits. Brendan, do you have some example code? Maybe some code of what you're trying to do without the module and corresponding snippets for how you would like the code to look with the module? Error bars are a special case of subsets on the real number line in that they are rounded to a given precision. So, I would expect Math::Interval to provide basic arithmetic between intervals as well as between numbers and intervals: my $d = Math::Interval->new(3.2, 4.2); my $r = $d + 7; # returns an interval [10.2,11.2] # adding intervals adds the endpoints (ala Math::Vec), right? my $d = Math::Interval->new(2,4) + Math::Interval->new(3,8); # returns an interval [5,12] And then you have intersect(), overlap(), etc for those dealing purely in interval manipulations, but Brendan wants to generate some error bars, so he needs Math::ConfidenceInterval, where most of the calculations return a new Math::Interval object: my $conf = Math::ConfidenceInterval->new(0.001); # 0.001 accuracy my $d = $conf->divide(1,3); # returns a Math::Interval->new(0.333, 0.334); Maybe Brendan isn't planning to flesh-out Math::Interval right now, but someone that wants to do that can either send him patches or take over maintenance of it. I certainly don't think he should be using something like Math::ConfidenceInterval::Interval when a generic Interval can be used to represent his results and with a few more methods could also be applied to the "subsets manipulation" interval problem. --Eric -- "Everything goes wrong all at once." --Quantized Revision of Murphy's Law --------------------------------------------------- http://scratchcomputing.com ---------------------------------------------------