Subject: [boost] [Review] ITL review starts today, February 18th
From: Hartmut Kaiser (hartmut.kaiser_at_[hidden])
Date: 2010-02-18 08:22:34
The formal review of the Interval Template Library (ITL) starts today,
February 18th, 2010 and will end February 27th, 2010.
ITL is being developed by Joachim Faulhaber.
About the library:
The Interval Template Library (ITL) is a library of interval containers that
facilitates computations on collections of intervals and associated values.
Use cases of such computations typically occur in the date and time problem
domain, when collections of time intervals with associated data are
analyzed, combined and aggregated. But the scope of applications for
interval containers is more general and not limited to date and time
Interval containers allow to access and manipulate collections of intervals
on an abstract level as sets and maps (of elements), but also to exploit
segmental information that is given by the interval borders. Interval
containers are fairly generic. They can be instantiated with discrete domain
(or key) types like integral numeric types or boost::date or time types. But
they also work with continuous domain types like double, rational or string.
Using the latter allows to represent infinite sets and maps.
The interface of the interval containers strives to be very intuitive and in
line with the stl and other boost libraries.
* The set theoretic operations union, difference, intersection
and symmetric difference are available as operators for all
interval containers and for many useful overloads between them.
* There is iterator support on the level of segments and interval
containers can be combined with stl containers of intervals via
* For discrete domain types, element iterators are available
which makes interval sets and maps models of SortedAssociative
Containers so they can be used with many stl algorithms.
All interval containers are addable and subtractable. The addability and
subtractability concept of the ITL leads to a general mechanism of
aggregation on interval_maps which is called 'aggregate on overlap'.
Exploiting 'aggregate on overlap' allows to compute many useful aggregation
results in a simple and abstract manner.
The ITL's Set and Map concepts are defined by a signature and collections of
laws or axioms. Those semantical constraints have been validated using
automatic law based tests. This gives the library both a well founded formal
specification and an unusual thorough test base.
The ITL emerged out of real world use cases and is successfully used at
Cortex Software GmbH since a couple of years in the production code of
various applications. On the boost developer's list it has been proposed in
four previews and a review request since May 2008 and has been refactored
and refined according to boost standards and suggestions from the list.
The ITL is available from the boost vault:
Documentation is online available at:
The current sources are in the sandbox:
Everybody on this list is invited to participate in this formal review. I
hope to see your review of this library, including your vote, and I welcome
your participation in the discussions on the Boost mailing list.
Please always state in your review, whether you think the library should be
accepted as a Boost library.
Additionally, please consider giving feedback on the following general
- What is your evaluation of the design?
- What is your evaluation of the implementation?
- What is your evaluation of the documentation?
- What is your evaluation of the potential usefulness of the library?
- Did you try to use the library? With what compiler? Did you have any
- How much effort did you put into your evaluation? A glance? A quick
reading? In-depth study?
- Are you knowledgeable about the problem domain?
Meet me at BoostCon
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk