|
Boost : |
Subject: [boost] [icl/itl] Interval Container Library ready for inclusion
From: Joachim Faulhaber (afojgo_at_[hidden])
Date: 2010-11-04 19:16:56
Dear list!
After the review of the Interval Template Library in February
and its acceptance for inclusion, I worked on a number of
suggestions and proposals from the reviewers, in order to
improve the design and quality of the library. The library
is now renamed to Boost.Icl: Interval Container Library.
I have completed a release icl-4.0.0, where those suggestions
are implemented. Apart from typos and flaws in the docs that
might be there after renaming, this will be the version
for inclusion into the next boost release (1.46.0).
The now renamed library has a new path in the sandbox:
https://svn.boost.org/svn/boost/sandbox/icl/
The sources are also in the vault
http://www.boostpro.com/vault/index.php?&direction=0&order=&directory=Containers
and on sourceforge (extended version)
http://sourceforge.net/projects/itl/
The BoostBook docs are online available here:
http://www.joachim-faulhaber.de/boost_icl/doc/libs/icl/doc/html/index.html
Many of the proposals from the reviewers were agreed upon
during the discussion on the library. In particular I took
into account suggestions by Jeff Flinn (JF), Luke Simonson (LS),
Barend Gehrels (BG), Vicente Botet (VB), Thomas Klimpel (TK),
Paul A. Bristow (PB), Robert Stewart (RS), John Reid (JR) and
Markus Werle (MW).
Some suggestions by Phil Endecott, Jerry Jeremiah, Brian Wood,
Barend Gehrels, Luke Simonson and John Reid are not or not yet
implemented for different reasons but they may be considered
for the future evolution of the library.
* The library has been renamed from
Interval Template Library (ITL) to
Interval Container Library (ICL)
Its namespace is now icl instead of itl.
(Renaming was suggested by MW).
* Introduction of dynamically bounded and statically bounded intervals
(JF,JR,VB)
+ The 'universal' interval class itl::interval has been replaced by
+ dynamically bounded discrete_interval and continuous_interval
http://www.herold-faulhaber.de/boost_icl/doc/libs/icl/doc/html/boost_icl/examples/dynamic_interval.html
+ statically bounded right_open_interval, left_open_interval
closed_interval and open_interval and a uniform set of
namespace global functions or interval_concept for them.
Statically bounded intervals don't carry information about
their interval bounds and use less memory. (JF,JR)
http://www.herold-faulhaber.de/boost_icl/doc/libs/icl/doc/html/boost_icl/examples/static_interval.html
+ The interval class templates are now quite small. The functions
are namespace global functions that make up an interval
concept (JF,LS)
+ Added functions 'distance' and 'inner_complement' for
intervals.(JR)
http://www.herold-faulhaber.de/boost_icl/doc/libs/icl/doc/html/boost_icl/function_reference/miscellaneous_interval_functions.html
* User defined interval types are now customizable (JF)
+ An interval_traits and dynamic_interval_traits template
describes the generic properties of the interval concept ...
+ and allows to customize the icl library for user defined
interval types.
http://www.herold-faulhaber.de/boost_icl/doc/libs/icl/doc/html/boost_icl/examples/custom_interval.html
* Extraction of namespace global functions. (LS,JF,RS)
+ Member functions have been extracted form class templates
as long as they are not needed to maintain type invariants.
+ The sets of namespace global functions build concepts
icl::element_set, icl::element_map,
icl::interval_set, icl::interval_map
+ Some functions have been renamed to conform existing standards
(ISO/OGC). (BG)
+ std::set and other stl conformant set types are models of the
icl's element_set concept. Class template icl::set has been
removed.
+ Member functions for element iterations are extracted from
the interval container class templates. (LS)
* Names, referred to as 'colorful terminology' have been renamed
(TK,VB,PB)
+ neutron -> identity_element
+ unon -> unit_element
+ ... and also their occurrence in composite identifiers
If you find bugs in the library or typos or other flaws in the
docs, please let me know so I can fix them before inclusion of
the library into the next boost release.
Enjoy,
Joachim
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk