ALGLIB

From Wikipedia, the free encyclopedia
Jump to: navigation, search
ALGLIB
Developer(s) Sergey Bochkanov
Stable release 3.8.2 / 25 November 2013; 9 months ago (2013-11-25)
Operating system Cross-platform
Type Numerical library
License Dual (commercial, GPL)
Website http://www.alglib.net/

ALGLIB is a cross-platform open source numerical analysis and data processing library. It is written in specially designed pseudocode which is automatically translated into several target programming languages (C++, C# and other). ALGLIB is relatively young project - active development started only in 2008, while GSL, for example, has 14 years long history. However, it is actively developed with new releases every 1–2 months.

ALGLIB is used by several open source and commercial libraries/applications (e.g. TOL project, Math.NET Numerics,[1][2] SpaceClaim[3]). Multiple precision edition of ALGLIB is planned to be included into SAGE (open source computer algebra system).[4][5][6]

Advantages[edit]

Several goals were pursued while developing ALGLIB:

  • support for several programming languages (as of 2010, it supports C++, C#, FreePascal, Delphi, VBA)
  • identical functionality for any programming language
  • ease of installation
  • portability (it was tested only under x86 and x86-64 Windows and Linux,[7] but should work under any CPU/OS which are at least 32-bit and support IEEE-compliant floating point numbers)
  • support for multiple precision computations

Alternatively, the project suffers from several drawbacks:

  • Only the commercial edition supports multi-threading
  • it can't use SSE to speed up floating point operations
  • although some linear algebra algorithms are implemented in cache oblivious manner,[8][9] many subroutines (especially SVD solvers) can't efficiently work with matrices that do not fit into CPU cache.

Features[edit]

ALGLIB provides facilities for:

  • Linear algebra (direct algorithms, solvers, EVD/SVD)
  • Fast Fourier transforms
  • Numerical integration
  • Interpolation
  • Linear and nonlinear least-squares fitting
  • Optimization
  • Ordinary differential equations
  • Special functions
  • Statistics (descriptive statistics, hypothesis testing)
  • Data analysis (classification/regression, including neural networks)
  • Multiple precision versions of linear algebra, interpolation and optimization algorithms (using MPFR for floating point computations)

See also[edit]

References[edit]

  1. ^ "Math.NET Numerics". Numerics.mathdotnet.com. Retrieved 2010-07-10. 
  2. ^ "Math.NET Numerics Contributors". GitHub.com. Retrieved 2013-05-07. 
  3. ^ "End User License". .spaceclaim.com. Retrieved 2010-07-10. 
  4. ^ "Support Vector Machine - sage-devel | Google Groups". Groups.google.com. Retrieved 2010-07-10. 
  5. ^ "multiprecision linear algebra - sage-devel | Google Groups". Groups.google.com. Retrieved 2010-07-10. 
  6. ^ "devel/SageTasks - Sage Wiki". Wiki.sagemath.org. 2010-05-09. Retrieved 2010-07-10. 
  7. ^ "Compatibility". ALGLIB. Archived from the original on 12 August 2010. Retrieved 2010-07-10. 
  8. ^ "LU decomposition". ALGLIB. Archived from the original on 6 August 2010. Retrieved 2010-07-10. 
  9. ^ "Cholesky decomposition". ALGLIB. Archived from the original on 30 May 2010. Retrieved 2010-07-10. 

External links[edit]