ALGLIB

ALGLIB is a cross-platform numerical analysis and data processing library. It supports several programming languages (C++, C#, Pascal, VBA) and several operating systems (Windows, Linux, Solaris). ALGLIB features include:

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

Why to choose ALGLIB? Because it is:

  • portable. It can be compiled almost anywhere using almost any compiler (see compatibility matrix for more info).
  • easy to use. It supports many programming languages. If you use one language, you don't need to study another (FORTRAN, for example) to compile and link an external library.
  • open source. It can be used for free under GPL 2+.
  • suited for commercial users too. Those who want to use ALGLIB in commercial applications can buy commercial license without copyleft requirement.

Announcements

ALGLIB NEWS (archive, subscribe):

31.10.2010  ALGLIB 3.1.0 is released

30.09.2010  Final release of ALGLIB 3.0.0 for C++ and C#

01.09.2010  New release - ALGLIB 3.rc1 for C++

01.06.2010  ALGLIB 2.6.0 is released

12.04.2010  ALGLIB 2.5.0 is released

Licensing

ALGLIB uses dual licensing model. It can be used under GPL 2+ which suits needs of scientists, researchers, engineers. GPL allows free use and free modification of ALGLIB, but any derivative work (i.e. application using ALGLIB) must be distributed under GPL license too (copyleft requirement). It is good for those who just wants to solve some computational problem or to use ALGLIB in other GPL projects.

However, copyleft requirement is not good for commercial users. Basically, it means that you a) must distribute your program along with source code and b) can't restrict your users from copying your program, reselling copies or distributing them for free. That is where commercial license comes in. Commercial license:

  • does not require your to distribute source code with your program.
  • still gives you access to ALGLIB source code and allows to modify it as you want.
  • have no royalties or distribution fees - you pay only once
  • includes one year of free upgrades/bugfixes
  • includes 30-days money back guarantee

Here is comparison of two ALGLIB editions – commercial and open source:

  Open Source Edition Commercial Edition
License GPL 2+ Commercial
Functionality Same
User can see/modify source code Yes
Can be used in GPL applications Yes No
Can be used in commercial applications No Yes
Target audience Researchers,
open source developers
Commercial users
Price Free Price list

Download ALGLIB

Here you can download GPL-licensed version of ALGLIB. Commercial users may use GPL-licensed code as unlimited trial version. But if you want to distribute something that includes GPL-ed code, you have to either distribute it under GPL too or buy commercial license.

3.x branch
Change Log
alglib-3.1.0.cpp          zip   tgz          C++ version
alglib-3.1.0.csharp          zip   tgz          C# version (100% managed code)
 
pre-3.x releases
Pre-3.x releases are not compatible with 3.x branch;
however, they will be there for languages which were not ported to 3.x yet
alglib-2.6.0.mpfr.zip   Multiple precision version (MPFR)
alglib-2.6.0.freepascal.zip   FreePascal version
alglib-2.6.0.delphi.zip   Delphi version
alglib-2.6.0.vb6.zip   VBA version
 

ALGLIB User Guide online

ALGLIB User Guide is a set of articles which discusses general questions: ALGLIB reliability and portability, algorithms used and their strong and weak points. It does not contain detailed subroutines description nor it contains the most fresh and up-to-date information about ALGLIB units/classes/functions - you should read ALGLIB Reference Manual if you need such info.

DOCUMENTATION LICENSE: ALGLIB User Guide is licensed for personal use only.
1. You may read the Guide and make an unlimited number of copies for personal use, without the right to redistribute the Guide.
2. Any other kinds of using the Guide, specifically, sales or any other commercial use, distribution on any material media, through computer networks or any other ways, are prohibited.

See ALGLIB Reference Manual for a free documentation under FreeBSD documentation license.

Contents                                          

About ALGLIB

Differential equations

Equations (linear/nonlinear)

Matrix and vector operations
Eigenvalues and eigenvectors

Numerical integration
Interpolation and fitting
Optimization

FFT, convolution, correlation

Statistics: general algorithms
Hypothesis testing
Data analysis: classification, regression, other tasks

Special functions

ALGLIB Reference Manual

Reference manual for the latest release in HTML format. FreeBSD documentation license.
manual.cpp.html
manual.csharp.html
 

Resources and links

bugs.alglib.net      bug-tracker
forum.alglib.net      ALGLIB forum
Comments