views:

2632

answers:

4

I'm looking for high performance code (needs to run in real-time), preferably open source, but if there is nothing that's free and high-perf, I'll take something well supported and of high quality for a cost.

Any suggestions?

These are the ones I've found so far, in no particular order:

CodeCogs

GSL

Cephes

Boost MathToolkit

Blitz++

TNT

+5  A: 

Check the links on mathtools.net. The page for statistics libraries for C++ has links. Another page http://www.thefreecountry.com/sourcecode/mathematics.shtml lists few more.

Have you checked the 'R project'? I think you can call 'R objects' from C/C++.

Nitin Bhide
+1 from the R fanboy
ojblass
+1 for R from me too!
I need something native C++. I'm going to be running it on large amounts of data in real time, I don't want to have to deal with the costs of marshaling between C++ and any domain specific language.
ApplePieIsGood
R is written in C++. You can link against it.
+1 for R - its awesome!
Gravitas
A: 

Root has pretty good statistical support. At least as us particle physics types judge these thing. Works in cint interpretation or as a native c++ library.

dmckee
A: 

I have used the IT++ library in the past, this library supports ACML and MKL routines trough BLAS and LAPACK. If it are calculations that need to happen fast, there is the possibility of using this library together with HPC, this is an although undocumented feature so some thought will be required. The focus on this library is however positioned on matrix calculations, but many normal mathematic and statistic functions can be found in this framework thanks to its excellent signal processing support.

Regards,

Ben

A: 

TNT is for matrix calculations but doesn't have any statistics functionality. (e.g. erf, mean/std/cov etc)

I haven't used Boost Math Toolkit, but skimming through the documentation, it looks like it has the opposite problem, e.g. lots of goodies for scalar calculations, but no support (that I could find) for multivariate situations.

Jason S