Last updated Jul 8, 2005
The Object-Oriented Numerics Page
Quick Index
The Object-Oriented Numerics
List is a forum for discussing scientific
computing in object-oriented environments.
An archive is
available.
To subscribe or unsubscribe, please visit
this page.
Freely available libraries
|
- Linear Algebra
- PyMat,
a matrix package for the Python programming language.
- 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.
- dnAnalytics,
C# numerics library, linear algebra, BLAS interface.
- 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++.
- Seldon, C++ library
for linear algebra with BLAS interface. Many matrix types (sparse, symmetric,
hermitian, etc.) are supported.
- 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++.
- CPPLapack,
C++ wrapper for BLAS and LAPACK.
- Lapack++,
C++ wrapper for BLAS and LAPACK.
-
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++.
-
ARPACK++,
a C++ template library for solving large-scale standard and
generalized eigenvalue problems.
-
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.
- Arrays and Images
- FreePOOMA
framework for scientific computing on sequential and parallel computers.
C++.
- The Blitz++
class library: Array and Vector classes which rival Fortran's
performance. C++.
-
The AIPS++ Array and Image Classes
(Astronomical Information Processing System). C++.
-
Daixtrose, a
general-purpose expression template engine.
-
PETE,
an expression templates library -- add expression templates to your own array
class.
-
SCTL (BlueSail), C++,
arrays, matrics, vectors, sparse, rotations.
-
NumPy, Numerical extensions to Python.
-
VIGRA,
generic computer vision/image processing library.
-
CPPIMA
A C++ image processing library
-
LIMP, Large Image
Manipulation Program
-
Image Restoration and Inpainting, C++ library for image restoration.
-
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
- 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.
-
MUNTL,
Multiprecision unsigned number template library (C++).
-
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.
- Differential Equations
-
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.
-
P2MESH,
2D finite volume/finite elements, C++ library designed for fast
prototyping of high-performance PDE solvers.
-
Femlisp, a Common Lisp framework for
Finite Element Methods.
-
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]
- PETSc,
object-oriented software for partial differential equations
(programmed in C)
- 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/CCSE Applications Suite
(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
(BROKEN LINK, no longer supported)
- Automatic differentiation and interval arithmetic
-
Gaol, C++
library for interval arithmetic. Includes methods for interval
constraint solvers.
- 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
- Graph Theory/Combinatorics
-
Boost Graph
Library, a general purpose, generic C++ library for graph data
structures and graph algorithms.
-
GTL,
the Graph Template Library (C++).
-
LEDA, a C++ library
for graph theory and combinatorial computing.
- Language interoperability/scripting
-
CPPF77
(cppf77.zip),
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.
- Transforms
-
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.
- Compilers
-
KAI C++, an optimizing
compiler from Kuck & Associates (now a division of Intel).
Unfortunately, this product has been discontinued.
- The free GCC (Gnu Compiler
Collection) has a good C++ compiler which can be used under unix
or windows (with CygWin).
- Intel's C++ compiler.
- The Portland Group C++ compiler
- The MPC++,
a massively parallel, message passing, meta-level processing C++.
-
Titanium
(free),
a dialect of Java for large-scale scientific computing.
-
Diffpack, a development
framework for multi-physics simulations (C++).
-
VectorSpace provides
vs.lib (integrable/differentiable objects in C++) and fe.lib
(an object-oriented finite element library).
-
NMath
provides vector, matrix, complex numbers and math functions
for the .NET platform (e.g. C#)
-
macstl,
std::valarray implementation using SIMD opcodes
(Altivec on PowerPC, SSE/SSE2 on Intel)
-
ExacMath library
(quad and double-quad precision floating point math),
from Floating Point Software.
-
Math.h++ and
LAPACK.h++
from Rogue Wave Software, Inc (LAPACK.h++ is not the same package as Roldan
Pozo's LAPACK++ listed above)
- MtxVec,
linear algebra/numerical library for Delphi and C++ Builder.
- Extreme Optimization
Library, numerical library for .NET
- MAT<LIB> (Matlab compatible
C++ Matrix Class Library)
- C-XSC: A C++ Class Library for
Extended Scientific Computing
(A C++ interval methods class library)
- Siscat,
C++ software for scattered data approximation
- JNL, A numerical
language/library proposal for Java from Visual Numerics.
- LIA,GIA,ICE libraries for
interval methods in C++ from Delisoft Ltd. Includes interval arithmetic,
global optimization, and solving nonlinear equations.
- AMRES, a C++ library
for financial analysis.
-
POOSC 2003,
Parallel Object-Oriented Scientific Computing,
July 22, Darmstadt, Germany
-
Joint ACM Java
Grande - ISCOPE 2001 Conference, Stanford University, California,
June 2-4, 2001
-
Java Grande 2000,
San Francisco, California, June 3-5, 2000
-
ISCOPE'99:
International Symposium on Computing in Object-oriented Parallel
Environments, December 7-10 1999, San Francisco, California
-
POOSC'99
Workshop on Parallel/High-performance Object-Oriented
Scientific Computing at the European Conference on
Object-Oriented Programming (ECOOP'99), Lisbon, Portugal,
June 14-18.
-
ACM 1999 Java Grande Conference, Palo Alto, California,
June 12-14.
-
ISCOPE'98:
International Symposium on Computing in Object-oriented Parallel
Environments, December 8-11 1998, Santa Fe, New Mexico
-
SIAM
Workshop on Object-Oriented Methods for Inter-operable Scientific
and Engineering Computing, October 21-23, 1998, Yorktown Heights,
New York
-
SciTools'98:
Workshop on Modern Software Tools for Scientific Computing,
Sept. 14 - 16, Oslo, Norway
-
POOSC'98:
Workshop on Parallel Object-Oriented Scientific Computing, Brussels,
Belgium, July 20-24 1998.
-
ACM 1998
Workshop on Java for High-Performance Network Computing,
Palo Alto, California, February 28 and March 1, 1998.
-
International Scientific
Computing in Object-Oriented Parallel Environments (ISCOPE'97),
Marina del Rey, California, December 8-11, 1997.
-
Physics Computing'97,
Santa Cruz, California, August 25-28, 1996. Included a session on
object-oriented methods.
-
ACM 1997 Workshop on Java for Science and Engineering Computation
June 21-27, 1997.
-
SciTools'96:
Workshop on Modern Software Tools for Scientific Computing,
Sept. 16 - 18, Oslo, Norway
-
Object Oriented Numerics
Conference (OONSCI'96) (broken URL)
Mississippi State University, March 27-29, 1996
-
International
Workshop on Parallel C++, Kanazawa, Japan March 10-12, 1996
-
POOMA'96:
Parallel Object-Oriented Methods and Applications Conference,
Feb. 28 - Mar. 1, Santa Fe, New Mexico
This page is maintained by
Todd Veldhuizen.
Do you know of a URL which should be on this page? Please
tell me.