Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
The complete library constists of three parts.
The core library (ITL) is currently submitted for review at the Boost c++ Libraries Collection as Boost.IntervalContainer Library. A detailed boost book documentation for Boost.IntervalContainers is online available here. We recommend to refer to this documentation for all informations related to interval containers. The boost book documentation also ships with this release and can be found at "<boost_root>/libs/itl/doc/html/index.html".
The extended part contains class templates interval_bitset, product_history, and tupel_computer (cubes). Those parts are not or not yet intended to be proposed for boost.
The Law Based Test Automaton (also refered to as LaBatea) is a tool for an automated teststing of code on the basis of laws or axioms. LaBatea has been used to validate the core library (itl) for a number of laws.
This doxygen generated documentation is provided for the additional library parts itl_xt and validate that are not yet covered by a proper boost book documentation.
The lastest addition to the library are interval_bitsets. Interval_bitsets use interval compression and bitset compression to achieve a very efficient and compact representation of large bitsets. The idea and implementation of interval_bitsets is explained in the project section of the boost book documentation.
To copy or tranform data from std::containers of intervals or segments into interval containers you can use an itl::insert_iterator or an itl::add_iterator. See examples std_copy and std_transform.
The implementation of all interval containers including interval_bitsets now provides iteration on the level of elements. This makes interval containers a model of SortedAssociativeContainers.
A minimal implementation of interval_bitset together with sample applications is included in the boost book documentation in the project section. The full implementation of interval_bitset is not yet part of the core library (itl). It's in the extended part (itl_xt) but it's integration into the core is intended.
History is a more sophisticated application of an interval_map to decompose data in time. Sample history.cpp shows how we can monitor a set of attributes in a history.
Cubes or tuple computers allow to perform computations on values associated to tuples. A ITL tuple computer works similar to pivot tables (in spreadsheet programs) olap cubes (online analytic processing) or crosstables (in statistical programs). Sample amount_cube.cpp presents an application where values are 'amounts', which is the simplest instance.
This example de_morgan.cpp shows how to test a single law on given type. It shows how LaBatea reports successful validation and what happens, if law validations are found. The law can be modified to a valid form in this example by choosing a different equality relation for one of the law's templates parameters.