General Mathematical Libraries:
Automatically Tuned Linear
Algebra Software (ATLAS)
GAMS Guide to
Available Mathematical Software
MPB
The R Project
Scientific Python
Scilab
FREE LINEAR ALGEBRA LIBS
CLRC's Computational Science Department - HARWELL LIB and others
The Matrix Template Library
The Object-Oriented
Numerics Page
CCA Forum Home - Common
Component Architecture Forum
Linear Algebra
- BabelInterface
Definition Language for scientific problems
-
LAPACK
-
BLAS
- High-Performance
BLAS by Kazushige Goto
-
ATLASImproved Lapack used in
GAUSSIAN
-
LinAl home
page Good Linear algebra C++ library with interface to LAPACK and more
- not complete enough?
- UMFPACKUniveristy
of Florida Library
- hypre ProjectHigh-Performance
Preconditioners
- ARPACK++,
a C++ template library for solving large-scale standard and generalized
eigenvalue problems. Looks good but not developed any more?
-
PyMat, a matrix package for the Python programming language.
- ESI, Equation Solver
Interface
- TeraScale - Parallel Mesh
Object (PMO)
- JAMA, an
elementary linear algebra package for Java.
- MTL, the Matrix
Template Library. Dense and sparse matrices and vectors; banded, symmetric,
triangular matrices; basic algorithms. C++.
- uBLAS, BLAS in C++ with
expression templates.
- tvmet, a C++ library for
"tiny" vectors and matrices with expression templates.
- GMM++, generic
C++ template library for sparse, dense and skyline matrices, with solvers
from ITL.
- MET, a C++ matrix library with
expression templates, which eliminates the overhead of overloaded operators.
- SL++,
the Scientific Library project. Will provide matrices, random numbers,
complex, quaternions, plotting, and FFTs. C++.
- ALP,
linear and polynomial algebra. Vectors, matrices, polynomials.
- SVMT: E. Robert
Tisdale's proposal for a standard C++ Scalar, Vector, Matrix and Tensor
Class Library (with implementation). Note: this is a proposal, not an
official standard.
- GNUSSL [ftp only],
the GNU Scientific Software Library. Linear algebra and arrays. C++.
- LAPACK++ (Linear Algebra
PACKage in C++), solves systems of linear equations and eigenvalue problems
on high performance computer architectures.
- IML++ A C++ template library
for numerical iterative methods.
- MV++ Numerical Matrix/Vector
Classes in C++
- SparseLib++ A library for
sparse matrix computations, including the Sparse BLAS (Basic Linear Algebra
Subprograms). C++.
- ISIS++, an object-oriented
framework for solving sparse linear systems of equations. C++.
- The Template Numerical Toolkit
(TNT) for linear algebra is a successor to the
Lapack++,
Sparselib++,
IML++, and
MV++ packages. Its goal is to
integrate these ideas into a generic algorithmic library, supporting generic
user-defined data types, and increasing its functionality. C++.
- LinAlg,
basic linear algebra and optimization classes. C++.
- CAM
C++ Class Library (Matrix, vector, and graphics classes)
- Newmat, a C++ matrix library (docs,
download)
- CLHEP includes
matrix classes, random number generators for the High Energy Physics (HEP)
community. C++.
- BPKIT, Block
Preconditioning Toolkit for iterative solution of linear systems. Callable
from C++, C, or FORTRAN.
Differential Equations
- PETSc, object-oriented
software for partial differential equations (programmed in C) - Seemed to be
well supported, parlellized etc
-
Rheoolef, finite element environment in C++.
-
EXPDE, a C++ library for solving partial differential equations on
semi-unstructured grids. Parallel.
- PZ, a
C++ library for finite elements. 1-3 dimensions with hp-adaptivity,
continuous or discontinuous, variety of matrix formats.
- MBDyn, multibody
dynamics analysis in C++. Built-in parallelization via MPI/Metis.
- GETFEM++, a C++ finite
element library, generic, arbitrary dimensions.
- MOUSE, a C++ library
for finite volume computations on unstructured grids.
- DEAL, a C++
library for adaptive finite elements and error estimation. Supports SMPs.
- ODE++, a class library for ordinary differential equations. Explicit and
linear-implicit ODE systems, IVP and BVP parameters, various solvers (Runge-Kutta,
multistep, BDF). [English]
[Deutsch]
- Diffpack, partial
differential equations in C++. ($)
-
TIDE: Classes for Ordinary Differential Equations. Provides vectors and
matrices, extrapolation integrator for ODEs, sparse matrix classes,
eigenvalues, shooting for two point BVPs, nonlinear solver, continuation
- BoxLib (docs),
a class library supporting adaptive mesh refinement (AMR) schemes for
computational fluid dynamics.
- OVERTURE, a C++ class
library for solving PDEs in complicated domains. Includes adaptive mesh
refinement and overlapping grids.
- FEMLIB (ftp,
www) A Finite
Element package [ftp only] by Michael Tiller, no longer
supported)
Graph Theory
RANDOM Number generators
Random Number Generation,
Taygeta Scientific Inc.
Finite-Element analysis
Arrays and Images
- POOMA II framework for scientific
computing on sequential and parallel computers. Provides parallel arrays;
fields, meshes, particles to come in version 2.1 (June 1999). C++.
- The Blitz++ class library:
Array and Vector classes which rival Fortran's performance. C++.
- The P++
Library: Serial and Parallel Array Classes. C++. [BROKEN: AUTHOR CONTACTED]
- The AIPS++
Array and Image Classes (Astronomical Information Processing System).
C++.
- PETE, an expression
templates library -- add expression templates to your own array class.
- NumPy,
Numerical extensions to Python.
- VIGRA,
generic computer vision/image processing library.
- CPPIMA A
C++ image processing library
- LIMP, Large
Image Manipulation Program
- valarray<Troy>
[ftp only], approximation of the valarray<T> class described in Ch.
26 of the ANSI/ISO C++ Standard. Uses expression templates for
efficient evaluation.
- Image Understanding
Environment (IUE), a DARPA project. C++.
- WAILI, a wavelet
transform library in C++.
Neural Networks, genetic algorithms, machine learning, data mining
Calculations on JAVA
Java Numerics at NIST
Plotting programs and libraries
xmgr4
High-Energy Physics and Quantum Chemistry
Multiprecision, arbitrary precision data types
- NTL, arbitrary length integers,
vectors/matrices/polynomials over integers and over finite fields.
- EXTNUM, version
of double which has the same number of mantissa bits as IEEE 754, but
extends the exponent to have range from 10^-646456993 to 10^646456992.
- CLN, an
extensive number library. Arbitrary precision integer, float, rational,
polynomials, complex, modular integers, transcendental functions, assembly
language kernels for some CPUs.
- MPFUN++, a
multiple precision floating point computation package in C++.
- LiDIA, A
library for computational number theory. Provides a collection of highly
optimized implementations of various multiprecision data types and
time-intensive algorithms.
- Apfloat, a C++ High
Performance Arbitrary Precision Arithmetic Package
- hfloat, An arbitrary precision
package, optimized for very large (> 1000) (decimal) digit numbers.
- fPoint, a C++
class which helps convert floating-point arithmetic to fixed-point
arithmetic by recommending range and precision requirements.
-
doubledouble, a quad-precision (approximately 30 decimal place) floating
point arithmetic class.
Automatic differentiation and interval arithmetic
- FADBAD-TADIFF, a C++
package for automatic differentiation using any arithmetic (double or
interval) by operator overloading.
- PROFIL/BIAS [English]
[Deutsch], a
C++ interval arithmetic class library.
Visualization
Language interoperability/scripting
- CPPF77, a utility for
interfacing C++ and Fortran 77 programs.
- Paul Dubois's code
for interfacing Python and C++
- SWIG, generates Perl, Python, Tcl,
Java, Eiffel and Guile wrappers for C++ libraries.
- SILOON (Scripting Interface
Languages for Object-Oriented Numerics), toolkits and run-time support for
building scripting interfaces to existing numerical codes in C, C++, and
Fortran. Generates script bindings for Perl, Tcl, and Python.
- Matwrap, a
tool which generates C++ wrapper code for matrix-oriented scripting
languages such as Matlab 5, Octave, and tela.
Fourie Transform and others
-
FFTPACK++, a C++ wrapper for FFTPACK complex routines using LAPACK++
Matrix and Vector classes.
- The FXT library of transforms. FFTs,
Hartley, Number theoretic, Walsh, others coded in C++.
Optimization
- COOOL, an object-oriented
optimization library
- OptSolve++, a
C++ optimization library from Tech-X. (commercial)
- StarFLIP,
optimization library for combinatorial problems with fuzzy constraints (C++)
- LM
(Levenberg-Marquardt) implementation in Java for nonlinear least squares
problems.
Miscellaneous
Tools
- TAU (Tuning and
Analysis Utilities), explicit instrumentation of C++ libraries for profiling
and tracing. For both serial and parallel codes.