
-----Original Message----- From: boost-bounces@lists.boost.org [mailto:boost-bounces@lists.boost.org] On Behalf Of Joachim Faulhaber Sent: 12 May 2008 16:36 To: boost@lists.boost.org Subject: [boost] proposal: interval containers
I would like to contribute some library code that covers the field of interval containers, specifically interval_set and interval_map.
My design of interval sets is based on the fact that an interval<T> is a set<T>, which implies that a set<T> t can be represented as a set<interval<T>> s, where t is the union over all intervals contained in s.
The implementation of a set<T> as a set<interval<T>> can be beneficial whenever in a given problem domain the elements of sets appear in contiguous chunks: intervals. This is obviously the case in many problem domains, namely in fields that deal with problems related to date and time.
The benefits of interval sets and maps are 1. The implementation of sets/maps via interval_set/map is very space and also time efficient. 2. All problems concerning overlaps of intervals and their handling can be encapsulated in the implementation and thus ... 3. A higher abstraction level dealing with interval and specifically time interval related problems can be obtained.
I wrote a library that provides generic classes for interval_sets and interval_maps and a few more things called "Interval Template Library (itl)". I'd like to give a very brief description of the library in this post. For more detailed information and the current source code you might want to download the itl from http://sourceforge.net/projects/itl.
A very brief reading of this (html) shows the code and documentation to be in mature shape with some interesting examples, that I feel sure will find application elsewhere. I found interesting the most simple example of people attending a party, and the more complex, attending hospital. (The examples might be more convincing to Boosters if the examples used Boost.TimeDate - to prove that the two work together). As ever, there is a problem connecting with the people who could use this code. You have obviously not found a horde of people desparate to use this ;-) (but perhaps they have already downloaded it and are using it?) I recommend exposing these examples so people don't have download the zip and unpack it before you can read the docs. (Yes I know people are idle - mea culpa). Personally, I think this would be a useful addition to Boost. Paul --- Paul A Bristow Prizet Farmhouse, Kendal, Cumbria UK LA8 8AB +44 1539561830 & SMS, Mobile +44 7714 330204 & SMS pbristow@hetp.u-net.com