ALGLIB
Encyclopedia
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, SpaceClaim). Multiple precision edition of ALGLIB is planned to be included into SAGE (open source computer algebra system).
Several goals were pursued while developing ALGLIB:
From the other side, project suffers from several drawbacks:
GNU Scientific Library
In computing, the GNU Scientific Library is a software library written in the C programming language for numerical calculations in applied mathematics and science...
, 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, SpaceClaim). Multiple precision edition of ALGLIB is planned to be included into SAGE (open source computer algebra system).
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, 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
From the other side, project suffers from several drawbacks:
- it doesn't support multithreading
- it can't use SSEStreaming SIMD ExtensionsIn computing, Streaming SIMD Extensions is a SIMD instruction set extension to the x86 architecture, designed by Intel and introduced in 1999 in their Pentium III series processors as a reply to AMD's 3DNow! . SSE contains 70 new instructions, most of which work on single precision floating point...
to speed up floating point operations - although some linear algebra algorithms are implemented in cache oblivious manner, many subroutines (especially SVD solvers) can't efficiently work with matrices which doesn't fit into CPU cache.
Features
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 MPFRMPFRGNU MPFR is a portable C library for arbitrary-precision binary floating-point computation with correct rounding, based on GNU Multi-Precision Library. The computation is both efficient and has a well-defined semantics. It copies the ideas from the ANSI/IEEE-754 standard for fixed-precision...
for floating point computations)