
The Sequence concept on which all the time series' are built requires readable and incrementable cursors. That means the time series algorithms *should* all work with an "input" or single-pass series types -- that is, one with a destructive read. That would be the way to go IMO. I could see a time series type implemented in terms of std::istream that reads runs from std::cin, for instance. Or more practially, one that memory-maps parts of a huge file and traverses it with single pass cursors. This would be a very interesting time series! The algorithms haven't been tested with such a single pass series, but I don't see a fundamental problem with it.
Excellent. Files normally contain multivariate data though, so presumabley it would require multiple series backed by a common object to do the memory mapping?
Reading further into the documentation, I see another misconception on my part. If I now understand correctly all the algorithms pull data from series. In the above case, with a destructive read, I think that means I could only run a single algorithm on each of the series? Would it be worth considering exposing an interface for pushing data to the algorithms? It seems from your comments at the start of "Defining New TimeSeries algorithms" and the display_run example, that most of the algorithms are implemented that way anyway.