开发者

C++ time series library (analysis and processing) [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.

Questions asking us to recommend or find a book, tool, software library, tutorial or other off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.

Closed 8 years ago.

Improve this question

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
  • 开发者_Python百科
  • 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


I really think that the following link might help.

old cronos

It is open source and under the GPL license.


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.


Intel's IPP might be worth looking at.


Assuming your are looking for a library, suitable for some algorithmic trading application, you can take a look at Ta-Lib. It is written in C++. I do not know if it is capable of handling very large datasets but it is performant.


There is limited free code to do what you need. In fact there is limited code in general, free or commercial. NAG Time series chapter does some of what you need, but it's commercial software and written C. I would argue that for this sort of thing C++ has relatively little advantages over C (up to debate obviously, but there is more Fortran than C for this sort of problems, that says it all...)

There is some beta of a GPU aware NAG. In fact they are doing lots of work on that


Don't despair!

There is stuff out there, but your question is very general, in the sense that you might need several libraries to achieve your result.

  1. GSL (GNU Scientific Library) has statistical functions...
  2. FFTW (Fastest Fourier Transform in the West) lives up to its name, but if it meets your requirements... I don't know.

There are others, but don't know them. Some of the algorithms you need are in the C++ standard library, or aren't very hard to code as fast as possible like n-avg). GPU offloading is going to be difficult (especially due to the data set size, which will probably make it a bad idea, multi-threading is a possibility in the abovementioned libraries.


Vhayu has all the interesting stuff, amazing performance and compression abilities by former Intel engineers. Unfortunately having been bought by Reuters and now part of Thomson Reuters you aren't going to learn anything from their website:

http://thomsonreuters.com/products_services/financial/financial_products/a-z/enterprise_platform_for_velocity_analytics/

So have a little better luck with the Internet Archive version:

http://web.archive.org/web/20090322192616/http://www.vhayu.com/?


You might want to take a look at q (AKA kdb+).

It's not a library, and it's not C++, but it does a lot of that kind of stuff.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜