Boost logo

Boost :

Subject: [boost] Review of Interval Template Library (ITL) for inclusion
From: Eric Jonas (jonas_at_[hidden])
Date: 2010-02-24 18:47:04

At the outset, I want to say that I enthusiastically support the
inclusion of this library in Boost. I also encourage others without a
specific application in mind to check out the library, as there are a
lot of fun examples that you might later find useful in other coding

My Background

My background: I develop combined hardware and software systems for
recording from high-throughput neural systems. One of the primary
challenges we face with such systems is the aggressive demands that 10
GB/hour of time-series data places on a typical workstation when you
want to visualize it -- especially in real time, with appropriate
historical context, at multiple zoom levels.

I wrestled with this problem for a great deal of time before settling
on various rendering and caching mechanisms. But the number one
challenge was efficiently representing the temporal regions that had
been viewed, those that had been rendered, and those that had been
cached. Then I needed to propagate this state information through a
complex dataflow pipeline.

ITL solved this problem for me, in a way that honestly freed me from
having to think about a lot of the unsavory low-level details.


All of my work has been on Linux with a modern (4.3+) gcc. I have had
collaborators build and use the resulting artifacts on OS X.

I originally only anticipated needing interval_sets, but interval_maps
became extremely useful as I started to keep track of metadata in my
timing epochs.

The segregation of interval_* and split_interval_*, while not
necessary for my application, provides historical context that I can
imagine being useful in some scenarios.

What is your evaluation of the documentation?

I'd say the documentation was "Boost-quality", but some might see that
 as pejorative :) The tutorial had me up and running quickly, and the
extensive examples helped me map my ideas to the library's primitives.

How much effort did you put into your evaluation? A glance? A quick
reading? In-depth study?

I have used this library in production code that I have shipped to
users, and have been working with it for several months.

What is your evaluation of the potential usefulness of the library?

For my applications, it was crucial -- they would have been far less
optimal (both from a software-engineering and asymptotic perspective)
without ITL. The examples showcase a wider range of potential
applications, especially the use of an example "Project" as a more
complex example.

Are you knowledgeable about the problem domain?

As a consumer of many boost libraries for many years, from the simple
(shared_tr) to more esoteric (variant) to completely crazy (fusion), I
feel like I have a good sense of modern C++ API aesthetic. As someone
who spends a great deal (too much) of his life working with
time-series data structures, I am familiar with many of the underlying
algorithms and data-structures.

...Eric Jonas

Eric Jonas (jonas_at_[hidden])
PhD Candidate, MIT Brain and Cognitive Sciences

Boost list run by bdawes at, gregod at, cpdaniel at, john at