
Dear list, I am happy to announce that the Interval Template Library (Boost.Itl) converges to a state, that conforms the standards of the boost libraries. It now contains substantial test suites and almost complete quickbook documentation. I hope it will soon be mature for a formal review after a last round of feedback and subsequent improvements. Since the last progress report in November last year the following work has been done. + Interoperability of interval_containers: Addition, subtraction, intersection and symmetric difference are now interoperable for all combinations of interval containers that make sense: You may for instance intersect a split_interval_map with an interval_map, an interval_set an interval or an element. + Added symmetric difference and renamed operators in accordance to other set class templates like e.g. boost::dynamic_bitset. + Introduced infix operators as itl::namespace global functions that are interoperable between interval_maps, sets, intervals and elements, so far as the combinations make sense. + Operators are now +=, +, |=, | : Set union / Map union with aggregation -=, - : Set difference / Map union with aggregation &=, & : Set intersection / Map intersection with aggregation ^=, ^ : Set symmetric difference / Map symmetric difference with aggregation. + Extended the test suite, specifically for the new operators and their overloadings. + Wrote quickbook documentation for the library. Please note that the original ITL as presented in May 2008 has been split into 3 parts and only the *first* part is prepared for boost now: itl : Core library, interval containers, PREPARED FOR BOOST itl_xt : Extensions like histories and generalized crosstables validate: The law based test automaton (LaBatea). A validation tool using laws aka axioms. So please focus on the core part (itl). Download the current version 'preview 4' from the boost vault's containers section: itl.zip http://www.boostpro.com/vault/index.php?action=downloadfile&filename=itl.zip&directory=Containers If you are interested in extended parts or LaBatea you may download all parts as itl_plus.zip http://www.boostpro.com/vault/index.php?action=downloadfile&filename=itl_plus.zip&directory=Containers The quickbook generated documentation is included in the zip files and is also availabe online at http://herold-faulhaber.de/boost_itl/doc/libs/itl/doc/html/index.html Sources are also available form the sandbox: https://svn.boost.org/svn/boost/sandbox/itl/ The documentation has a focus on tree aspects (1) A short introduction, that wants to be easy to understand and to provide good and use case related examples: http://herold-faulhaber.de/boost_itl/doc/libs/itl/doc/html/index.html#boost_... http://herold-faulhaber.de/boost_itl/doc/libs/itl/doc/html/boost_itl/example... (2) Synoptical representations that allows to see the complete 'picture' of the library. For instance the function matrix http://herold-faulhaber.de/boost_itl/doc/libs/itl/doc/html/boost_itl/interfa... is supposed to give a complete overview over the most important functions across all itl containers. (3) A description of the semantics which is characterized by sets of laws that apply for the different interval containers. The semantical analysis, based on sets of laws, was a quite interesting work, where software development sometimes transformed into software discovery guided by the validation tool LaBatea ;) My main finding out of that process was, that the semantics of the aggregating itl::Maps is determined by the semantics of their data or codomain parameter U, so that if U is model of concept C then itl::Map<T,U> is model of C which is stated in section concept induction: http://herold-faulhaber.de/boost_itl/doc/libs/itl/doc/html/boost_itl/semanti... All your feedback is welcome. Cheers Joachim