Tools and Libraries used by B2000++


Available as free software in the public domain.

BLAS (Basic Linear Algebra Subprograms) is a standard library which provides a number of basic algorithms for numerical algebra.


Available as free software in the public domain.

MUMPS, a multi-frontal massively parallel sparse linear solver, allows for the resolution of linear systems with symmetric positive-definite matrices, general symmetric matrices, and general non-symmetric matrices. A sequential version exists also. Home

3. muParser

Available as free software under the MIT license.

A C++ library for the fast parsing and subsequent evaluation of user-specified mathematical expressions. Home page:


Available as free software under the CeCILL-C license.

From the PASTIX home page ( "PaStiX (Parallel Sparse matriX package) is a scientific library that provides a high performance parallel solver for very large sparse linear systems based on direct methods. Numerical algorithms are implemented in single or double precision (real or complex) using LLt, LDLt and LU with static pivoting (for non symmetric matrices having a symmetric pattern). (...)"


Available as free software under the BSD license.

Availability: The codes are available by anonymous ftp from or by connecting directly to the URL To get the software by anonymous ftp, connect by ftp to and login as anonymous. Then change directories to software/ARPACK or connect directly to the URL as described above and follow the instructions in the README file in that directory. The ARPACK software is also available from Netlib in the directory ScaLAPACK.


Available as free software under the CeCILL-C license.

SCOTCH and SCOTCH-PT are libraries for sequential/parallel graph partitioning, static mapping, and sparse matrix block ordering, and sequential mesh and hypergraph partitioning. They are used by the MUMPS library. Home page: Scotch & PT-Scotch.

7. GMM++

Available as free software under the GNU Lesser General Public License, version 2.1 (LGPL V2.1).

Gmm++ is a generic C++ template library for sparse, dense and skyline matrices with generic linear solvers (cg, bicgstag, qmr, gmres ...) with preconditioners for sparse matrices (ILUT, ILUTP, ILDLT, ...).

8. Intel® Threading Building Block 4.x

Available as free software under the GPLv2 license with the libstdc++ runtime exception. Also available as commercial software.

The Intel® Threading Building Blocks library (TBB) offers a rich and complete approach to expressing parallelism in a C++ program. It is used in B2000++ to implement task parallelism via multi-threading.

9. RayTrace Software Package

Available as free software (see below for the license terms).

RayTrace Software Package, release 3.1.2. February 12, 2007. Mathematics Subpackage (VrMath). Author: Samuel R. Buss. Software accompanying the book "3D Computer Graphics: A Mathematical Introduction with OpenGL", by S. Buss, Cambridge University Press, 2003.

License: Software is "as-is" and carries no warranty. It may be used without restriction, but if you modify it, please change the filenames to prevent confusion between different versions. Please acknowledge all use of the software in any publications or products based on it. Bug report : Sam Buss,