ALGLIB, a free and commercial open source numerical library, provides one of the best open-source suites of dense and sparse linear equations solvers. ALGLIB is available in multiple programming languages, including C++, C#, Java, and Python.
The library supports various types of problems and solvers: dense and sparse, nonsymmetric and symmetric, direct and iterative ones. Both free and commercial editions of the ALGLIB are scalable to problems with millions of variables.
1 Programming languages supported
2 Problems and solvers
Dense solvers
Sparse iterative solvers
Sparse direct solvers
3 Downloads section
ALGLIB supports many programming languages, including C++, C#, Java, Python, and others:
A distinctive feature of ALGLIB is that it provides the same API in all programming languages. This is achieved through our exclusive automatic code translation and wrapper generation technology.
Dense linear equations are traditionally solved by direct solvers (ones that factorize the system matrix to find a solution). The directdensesolvers subpackage of ALGLIB includes many dense solvers intended for various kinds of problems.
The subpackage is discussed in greater detail in the separate article; here, we merely briefly outline the problem types supported:
The ALGLIB Reference Manual entry for the subpackage (directdensesolvers) includes several examples in all programming languages supported by ALGLIB.
Iterative methods are a popular approach to large sparse systems of linear equations. They usually have modest memory requirements (often linear with respect to the problem size) and predictable iteration costs that do not depend on the specific sparsity pattern of the system being solved. The only downside is that their convergence speed depends heavily on the system's condition number.
ALGLIB includes several sparse iterative solvers provided by various ALGLIB subpackages:
Direct (factorization-based) sparse solvers are, in some sense, complementary to iterative ones. The running time of direct solvers shows no dependency on the condition number of the system being solved. They also tend to find solutions with very high accuracy. By contrast, their running time and memory requirements depend strongly on the sparsity pattern of the system's matrix.
ALGLIB includes several sparse direct solvers provided by the directsparsesolvers subpackage (see the link for examples):
ALGLIB Project offers you two editions of ALGLIB:
ALGLIB Free Edition:
+delivered for free
+offers full set of numerical functionality
+extensive algorithmic optimizations
-no multithreading
-non-commercial license
ALGLIB Commercial Edition:
+flexible pricing
+offers full set of numerical functionality
+extensive algorithmic optimizations
+high performance (SMP, SIMD)
+commercial license with support plan
Links to download sections for Free and Commercial editions can be found below: