2009-04-14 5 views
27

Je suis à la recherche de code haute performance (doit fonctionner en temps réel), de préférence open source, mais s'il n'y a rien de gratuit et de très performant, je prendrai quelque chose de bien supporté et de haute qualité pour un coût .Meilleure bibliothèque pour les statistiques en C++?

Des suggestions?

Ce sont ceux que j'ai trouvé jusqu'à présent, sans ordre particulier:

CodeCogs

GSL

Cephes

Boost MathToolkit

Blitz++

TNT

+0

Quelles sont les fonctionnalités que vous désirez dans les statistiques> –

+0

A cette époque, principalement des corrélations. Spearman, etc. – ApplePieIsGood

Répondre

18

Vérifiez les liens sur mathtools.net. La page pour statistics libraries for C++ contient des liens. Une autre page http://www.thefreecountry.com/sourcecode/mathematics.shtml en énumère quelques autres.

Avez-vous vérifié le «R project»? Je pense que vous pouvez appeler 'R objects' de C/C++.

+0

J'ai besoin de quelque chose de natif en C++. Je vais l'exécuter sur de grandes quantités de données en temps réel, je ne veux pas avoir à faire face aux coûts de marshaling entre C++ et n'importe quel langage spécifique au domaine. – ApplePieIsGood

+2

R n'est pas écrit en C++, et vous ne pouvez pas simplement lier avec lui. http://blog.revolutionanalytics.com/2011/08/what-language-is-r-written-in.html –

2

Root a un assez bon support statistique. Au moins comme nous les types de physique des particules jugent ces choses. Fonctionne en interprétation de cint ou en tant que bibliothèque C++ native.

0

J'ai utilisé la bibliothèque IT++ dans le passé, cette bibliothèque supporte les routines ACML et MKL à travers BLAS et LAPACK. Si ce sont des calculs qui doivent se faire rapidement, il y a la possibilité d'utiliser cette bibliothèque avec HPC, c'est une fonctionnalité non documentée, donc une certaine réflexion sera nécessaire. L'accent mis sur cette bibliothèque est cependant positionné sur des calculs matriciels, mais de nombreuses fonctions mathématiques et statistiques normales peuvent être trouvées dans ce cadre grâce à son excellent support de traitement du signal.

1

TNT est pour les calculs matriciels mais n'a aucune fonctionnalité de statistiques. (par exemple, erf, mean/std/cov, etc.)

Je n'ai pas utilisé Boost Math Toolkit, mais en parcourant la documentation, on dirait qu'il a le problème inverse, par ex. beaucoup de goodies pour les calculs scalaires, mais pas de support (que j'ai pu trouver) pour les situations multivariées.

5

Je suis surpris que personne est mentionné ALGLIB: http://www.alglib.net/

+0

La version open source (avec les exigences strictes de la GPL, nous ne parlons pas de BSD ici) est paralysée, ce qui est tellement boiteux. –

Questions connexes