ALGLIB est une bibliothèque open source multiplateforme d'analyse numérique et de traitement de données . Elle peut être utilisée avec plusieurs langages de programmation ( C++ , C# , VB.NET , Python , Delphi , Java ).
ALGLIB a débuté en 1999 et bénéficie d'une longue histoire de développement constant avec 3 versions par an. Il est utilisé par plusieurs projets open-source, bibliothèques commerciales et applications (par exemple, le projet TOL , Math.NET Numerics , SpaceClaim ).
Caractéristiques
Les caractéristiques distinctives de la bibliothèque sont :
- Prise en charge de plusieurs langages de programmation avec des API identiques (C++, C#, FreePascal/Delphi, VB.NET, Python et Java).
- Code autonome sans dépendances externes obligatoires et installation facile
- Portabilité (testé sous x86/x86-64/ARM, Windows et Linux )
- Deux backends indépendants (implémentation C# pure, implémentation C native) avec des API générées automatiquement (C++, C#, ...)
- Les versions commerciale et GPL offrent les mêmes fonctionnalités, la version commerciale bénéficiant d'améliorations en termes de vitesse et de parallélisme.
Les parties d'ALGLIB les plus activement développées sont :
- Optimisation en nombres entiers mixtes, avec prise en charge des problèmes MINLP analytiques et sans dérivée.
- Optimisation continue, avec des solveurs LP, QP, QCQP, SOCP (et autres types de problèmes coniques) et NLP, des solveurs globaux sans dérivée et des algorithmes d'optimisation multiobjectifs.
- L'algèbre linéaire, offrant un ensemble complet de solveurs et de factorisations linéaires denses et creux
- L'interpolation utilise des algorithmes standards comme les polynômes et les splines 1D/2D, ainsi que plusieurs algorithmes d'interpolation/d'ajustement à grande échelle. Parmi ceux-ci figurent les splines 1D/2D pénalisées, les splines à plaques minces rapides et les splines polyharmoniques rapides, tous adaptés à des centaines de milliers de points.
- Solveurs de moindres carrés, y compris les solveurs de moindres carrés linéaires/non linéaires avec et sans contraintes et les solveurs d'ajustement de courbes
- Analyse des données , avec mise en œuvre de divers algorithmes
Les autres fonctions de la bibliothèque comprennent :
- Transformées de Fourier rapides
- Intégration numérique
- Équations différentielles ordinaires
- Fonctions spéciales
- Statistiques ( statistiques descriptives , tests d'hypothèses )
- Versions à précision multiple d' algèbre linéaire , d'algorithmes d'interpolation et d'optimisation (utilisant MPFR pour les calculs en virgule flottante)