C++ time series library (analysis and processing)

Matthieu N. picture Matthieu N. · Dec 13, 2010 · Viewed 13.8k times · Source

I'm looking to get Stack Overflowers' advice and suggestion on time-series libraries written in C++, some of the constraints and requirements for the library:

  • Performance is very critical
  • Capable of handling very large data sets (1 MB - 100 TB range)
  • Various kind of discretization/grouping methodologies
  • Basic functionality (n-avg, EMA, smoothing, forecasting, normalization)
  • Suitable for use in a multi-threaded environments
  • Free or open source preferred, however commercial libraries are welcome
  • Libraries capable of delegating to GPU-based calculations are welcome

Answer

Dirk Eddelbuettel picture Dirk Eddelbuettel · Aug 27, 2011

Have you looked at IT++ ? The documentation and feature list are quite compelling and applicable, given your question. Its development may have stalled, but is the primary C++ time series / signal processing library that is open source that I know of.

Otherwise, for straight-up linear algebra, both Armadillo and Eigen are good and actively maintained, and Armadillo can even be used along with IT++.

Last but not least, consider R and Octave both of which can also be extended with C++ code (see Rcpp for the R/C++ interface, and RcppArmadillo for an R/C++/Armadillo interface.