Dense and sparse linear solvers

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.

Contents

    1 Programming languages supported
    2 Problems and solvers
           Dense solvers
           Sparse iterative solvers
           Sparse direct solvers
    3 Downloads section

Programming languages supported

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.

Problems and solvers

Dense solvers

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.

Sparse iterative solvers

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:

Sparse direct solvers

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):

Download ALGLIB for C++ / C# / Java / Python / ...

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:

ALGLIB 4.01.0 for C++

C++ library.
Delivered with sources.
Monolithic design.
Extreme portability.
Editions:   FREE   COMMERCIAL

ALGLIB 4.01.0 for C#

C# library with native kernels.
Delivered with sources.
VB.NET and IronPython wrappers.
Extreme portability.
Editions:   FREE   COMMERCIAL

ALGLIB 4.01.0 for Java

Java wrapper around HPC core.
Delivered with sources.
Seamless integration with Java.
Editions:   FREE   COMMERCIAL

ALGLIB 4.01.0 for Delphi

Delphi wrapper around C core.
Delivered as precompiled binary.
Compatible with FreePascal.
Editions:   FREE   COMMERCIAL

ALGLIB 4.01.0 for CPython

CPython wrapper around C core.
Delivered as precompiled binary.
Editions:   FREE   COMMERCIAL