Boost logo

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