Boost logo

Boost :

From: Jens Maurer (jmaurer_at_[hidden])
Date: 2000-03-09 17:11:25


Here is the next round.

Changes relative to previous version:

 - Made nearly every function global
 - Implemented in(scalar, interval), subset(interval, interval),
proper_subset(interval, interval). Implementing the latter for
(scalar, interval) is not intuitive, if you need it, use
in(scalar, pred(interval)).
 - Renamed do_overlap() to overlap()
 - Implemented pos?? "possibly less/greater" comparison functions
 - Renamed inv() to multiplicative_inverse()
 - Added interval_traits_exceptions<>, automatically choose the
traits class depending on std::numeric_limits<>::traps (thanks
to Gabriel for the hint)
 - Adapted to MSVC brokenness, added multipliable2<> dividable2<>
templates to operators.hpp (patch in the docvault)
 - Specialization of std::less<>, giving a total order on
intervals. Suitable for std::map<>. Do we really need this?
 - Updated acknowledgements.

Please have a look at the docvault, and please report back
if you have compiler trouble, especially with MSVC.

Still open:

 (1) Functions for the bounds. lower(i), inf(i), or
lower_bound(i) seem to be the current favourites. I'm still
for lower(i), however lower_bound(i) is used in the STL (with
a different number of parameters, though). I'll leave in
lower() for now.

 (2) I would like to make isnan(interval) a free function (it's
now interval.is_nan()), however, it's a macro in my implementation
of ISO C99, which is crap. I'll probably make a free function
is_nan().

 (3) I've left out pos_sect()/ neg_sect() (or *_half()),
because they should probably have positive/negative 0 as bounds,
but I cannot get at that reasonably, so I would have to extend
the traits class, which I don't like.

I'll post to the reliable_computing mailing list Friday evening
or Saturday morning.

Jens Maurer


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk