Numerical Programming Resources on the Internet
(see also
Links to Parallel Programming Resources,
Programmers Tools and
High Performance Applications at IU).
Numerical Analysis FAQ
In case you need a little inspiration: Some disasters attributable to
bad numerical computing.
ACM Transactions on Mathematical Software
Center for Computational Mathematics Reports
Dr. Dobbs' Journal Scientific Computing Resources
Mathematical Programming Glossary
C. T. Kelley's Iterative Methods for Linear and Nonlinear Equations
and Iterative Methods for Optimization
(SIAM Frontiers in Applied Mathematics #16 and #18) are available for download.
Finite Difference and Spectral Methods for Ordinary and Partial Differential Equations by Lloyd Trefethen
MathWorks Inc. (vendor of MATLAB, a high-level language for numerical computations)
- IU Matlab Resources Page
- EigTool, a pseudospectra GUI for MATLAB
- INTLAB - INTerval LABoratory Matlab toolbox
for interval arithmetic ["self-validating algorithms"]. Free for for non-commercial use.
- Regularization Tools is a
collection of documented Matlab functions for analysis and solution of discrete ill-posed problems.
- MOORe Tools
(Modular Object Oriented Regularization Tools) is an object oriented toolbox for Matlab built upon the same ideas.
- CHEBFUN is a collection of algorithms, and a software system
in object-oriented Matlab, which extends familiar powerful methods of numerical computation involving numbers to
continuous or piecewise-continuous functions. The mathematical basis of the system combines tools of Chebyshev 9
expansions, fast Fourier transform, barycentric interpolation, Clenshaw-Curtis quadrature, and recursive zerofinding.
- MWrap generates MATLAB and Octave interfaces to C/C++ code.
MWrap input files consist of ordinary MATLAB code augmented with lines that describe C/C++ function and method calls;
the output is a MEX file to handle the C/C++ calls, and MATLAB scripts to call the MEX file.
GNU Octave is a free high-level language for
numerical computations.
O-Matrix
integrated technical computing environment and matrix-based scripting language.
Scilab is a free open-source package for
numerical computations providing a powerful open computing environment for
engineering and scientific applications. Developed by researchers from
INRIA and ENPC,
it is now maintained and developed by the Scilab Consortium.
The Fortran Library
F Programming
Language Resources
Cleanscape Software development tools -- FORTRAN-lint, etc.
Overview of Subroutine Libraries
at IUB
Visual Numerics, Inc. is the
vendor of the
IMSL Numerical
Libraries, written in C, Java and Fortran; and the PV-WAVE Family of
visualization tools.
Numerical Algorithms Group is the vendor of IRIS Explorer, the NAG Numerical
Libraries, and the NAGware Fortran 95 Compiler.
Numeritek library of source code for solving
numerically PDEs and other mathematical problems.
Netlib at UTK and ORNL contains a large
collection of high-quality mathematical software, most of it freely available.
- LAPACK is the successor to LINPACK; see the
LAPACK
Users' Guide for detail.
- The SLATEC archive provides
~1400 general purpose mathematical and statistical routines [written in Fortran 77].
- HPC-Netlib
is the high performance branch of the
Netlib mathematical software repository.
- Templates
for the Solution of Linear Systems!
NA-Net -- a system
developed to serve the community of numerical analysts and other researchers.
It provides a directory of personal information among its members, and a
weekly newsletter, the NA Digest.
Guide to Available Mathematical Software
from the National Institute of Standards and Technology.
Search by package name,
or text in the abstracts, or use the problem decision tree.
They also sponsor the full-text online of the ACM
Transactions on Mathematical
Software, and provide the
MatrixMarket test
data, a visual repository of test data for use in comparative studies
of algorithms for numerical linear algebra and matrix generation tools
and services.
Jack Dongarra maintains a list of freely-available
linear algebra software on the web.
Tim Davis maintains a large collection of sparse matrices,
in Harwell/Boeing and Matlab format,
e.g. the CHOLesky MODification package.
National High Performance Computing and
Communication Software Exchange
is a repository of software, documents, data,
and information of interest to the high performance and
parallel computing community.
Argonne National Laboratory
Mathematics and Computer Science Division offers software, for example
PETSc
[the Portable, Extensible Toolkit for Scientific Computation],
and Parallel Programming Tools, and information about their projects.
Numerical
Analysis Group, Rutherford Appleton Laboratory offers the Harwell Subroutine Library
of Fortran code for scientific computation and Harwell-Boeing sparse matrix collection;
the LANCELOT Fortran package for solving large-scale nonlinearly constrained optimization
problems; and the CUTE suite of Fortran subroutines, scripts and test problems
for linear and nonlinear optimization. (Formed in 1995, the Council for the
Central Laboratory of the Research Councils (CCLRC) now owns and operates the
Rutherford Appleton Laboratory in Oxfordshire, the Daresbury Laboratory in
Cheshire and the Chilbolton Observatory in Hampshire.)
Computer Physics Communications Program Library
The ASCI-Red Project has made available BLAS, FFT, and utilities for LINUX.
Panda
interactive visualization/ animation tool (for Windows 3.1).
LASSPTools
Graphical and Numerical Extensions to Unix
Lucent Technologies [Bell Labs] software tools
for mathematics and statistics:
SIPAMPL
software for semi-infinite programming problems
Nonlinear Optimization
Models from Robert Vanderbei
PSwarm
is a global optimization solver for bound constrained problems
makes no use of derivative information of the objective function.
The code is written in both Matlab and C, and the C code includes a parallel version using MPI.
It is NOT related to the Swarm Simulation System.
The Swarm Simulation System
for multi-agent simulation of complex systems,
being developed at the Santa Fe Institute.
Numerical Recipes -- home page
for a series of books offering pedagogically-oriented NA code.
Object-Oriented Numerics
Trilinos is a collection of
compatible software packages that support
parallel linear algebra computations, solution of linear, non-linear and
eigen systems of equations and related capabilities. The majority of
packages are written in C++ using object-oriented techniques. All packages
are self-contained, with the Trilinos top layer providing a common
look-and-feel and infrastructure.
Matrix Template Library from
the Lab for Scientific Computing at the University of Notre Dame, an
ANSI C++ library of generic components for high performance
numerical linear algebra.
PETE,
the Portable Expression Template Engine,
a generic C++ library that supports adding expression template capability to user-defined classes, and
POOMA,
the Parallel Object-oriented Methods and Applications framework, are available from LANL.
NUMLIB templated C++ library
using "Temporary Base Class Idiom" to avoid unnecessary copying.
C++
matrix/vector classes from Steve Pelikan
FLAME-
Formal Linear Algebra Method Environment - is an infrastructure for developing dense
(including banded) linear algebra libraries for sequential and multithreaded architectures.
It includes an implementation of the BLAS and "core LAPACK".
The Hilbert
Class Library is another collection of C++ classes representing basic mathematical objects.
TELPACK
allows users to solve structured Markov chains motivated by
probabilistic modeling and analysis.
Blitz++ seeks to make C++
rival Fortran
BOOST free peer-reviewed portable C++ source libraries
which work well with the C++ Standard Library.
JAMA A Java matrix package,
developed by the MathWorks and NIST.
Colt open source libraries
for high performance scientific and technical computing in Java.
NEOS Guide to
optimization software, operated by Argonne National Laboratory and Northwestern University,
includes NEOS Server [publicly accessible optimization software]
and Interior-Point Methods Online.
From Sandia, APPSPACK,
Asynchronous Parallel Pattern Search, s serial or parallel, derivative-free optimization software
for solving nonlinear unconstrained, bound-constrained, and linearly-constrained optimization problems,
with possibly noisy and expensive objective functions.
The ZIB Optimization
group offers SoPlex ,
Sequential object-oriented simplex class library.
OptSolve++ C++
class libraries for nonlinear optimization.
TSFIT: a library of C functions
that implements an approach to the problem of scattered data fitting
suitable for efficient approximation of very large data,
based on local approximation
with polynomials and radial basis functions in the first stage and bivariate spline
quasi-interpolation by extension in the second stage.
Fortran Codes
for stiff and non-stiff differential and differential-algebraic and mechanical
systems from Ernst Hairer in Geneva.
SYNODE Project
[Symmetries in Numerical solution of Ordinary Differential Equations]
FFTW claims to be
the fastest FFT (most of the time).
NFFT
is a C subroutine library for computing the nonequispaced discrete Fourier
transform (NDFT) and its generalisations in one or more dimensions, of
arbitrary input size, and of complex data.
From the Faculty of Mathematics at the Technische Universität Chemnitz and the University of Lübeck .
Peter Hellekalek's pLab at the University of Salzburg
maintains a site dedicated to the theory and practice of random number generation, including some
excellent software.
Michael Brundage's Random Number Generation page
SPRNG - Scalable
Parallel Random Number Generators Library, courtesy NCSA
MUMPS
MUltifrontal Massively Parallel sparse direct solver of large linear systems.
Mondriaan
is a two-dimensional, multilevel,
hypergraph-based package for the partitioning of a rectangular
sparse matrix, as a sequential preprocessing step for parallel
sparse matrix-vector multiplication.
ParaSails
parallel sparse approximate inverse preconditioner
SPAI parallel preconditioner
uses the SParse Approximate Inverse together together with an iterrative
method, offers Matlab and PETSc interfaces.
UMFpack
routines for solving unsymmetric sparse linear systems using the
Unsymmetric MultiFrontal method. Written in ANSI/ISO C, with a
Matlab interface.
Preconditioned
Eigensolvers [and domain decomposition] page
PLAPACK: Parallel Linear
Algebra Package
WSMP, Watson Sparse Matrix Package
PSPASES
(Parallel SPArse Symmetric dirEct Solver) is a high performance, scalable, parallel,
MPI-based library, intended for solving linear systems of equations involving
sparse symmetric positive definite matrices.
TAUCS is a C library of sparse linear solvers.
Mesh
Generation & Grid Generation on the Web -- a long list of pointers, with
some comments.
GrADS, Grid Analysis and Display
System, freely distributed interactive desktop tool designed for the analysis
and display of earth science data.
GrAL -- Grid Algorithms Library [Guntram Berti, 2001]
The Geometry Laboratory
at NASA Langley Research Center makes several grid generation codes available.
QMG,
a free fully automatic two and three dimensional unstructured finite element
mesh generation software, which can generate meshes for complex polyhedral
domains with nonmanifold features. QMG is written in primarily in C++ and
is a collection of m-files and mex-files that run under Matlab.
AFEM@matlab
MATLAB package of adaptive finite element methods for stationary and
evolution partial differential equations in two spatial dimensions.
TetGen generates exact
Delaunay tetrahedralizations, exact constrained Delaunay tetrahedralizations, and
quality tetrahedral meshes. The latter are quality conforming Delaunay and nicely
graded if no input angle is smaller than 60 degree.
TetGen is supported by the pdelib
project at the Weierstrass Institute for
Applied Analysis and Stochastics. pdelib is a collection of software components which
are useful to create simulators based on partial differential equations. The
TetView can be used to visualize the
input and output files of TetGen.
GRUMMP --
Generation and Refinement of Unstructured, Mixed-Element Meshes in Parallel
deal.II is a C++ program library
targeted at adaptive finite elements and error estimation.
OFELI (Object Finite Element LIbrary).
GeoFEM parallel finite element
codes for linear/nonlinear solid mechanics and thermal fluid simulations,
parallel iterative linear solver library, partitioning subsystem, parallel visualization subsystem and
utilities for parallel I/O and coupling of multiple codes. GeoFEM is
originally developed for solid earth simulation.
OORT (Object-Oriented Remeshing Toolkit)
GETFEM++ C++ finite element library.
Licensed under LGPL.
A MATLAB interface to this library is available.
SCOTCH
package for static mapping and sparse matrix reordering.
JOSTLE "is a software
package designed to partition unstructed meshes (for example, finite
element or finite volume meshes) for use on distributed memory parallel
computers. It can also be used to repartition existing partitions (such
as those deriving from adaptive refined meshes).
The code is extremely fast and provides high quality partitioning and
load-balancing."
METIS is a family of programs
for partitioning unstructured graphs and hypergraphs and computing fill-reducing
orderings of sparse matrices. The underlying algorithms used by METIS are based
on the state-of-the-art multilevel paradigm that has been shown to produce high
quality results and scale to very large problems.
UG Homepage
[large graphics -- may be slow!] -- adaptive multigrid toolbox.
MGNet
-- repository for
multigrid, multilevel, multiscale, and domain decomposition methods.
Multigrid
Algorithm Library of the German
Scientific Computing group.
DOUG,
Domain decomposition On Unstructured Grids, is a black box parallel iterative
solver for finite element systems
arising from elliptic partial differential equations.
Internet
Finite Element Resources -- a long list of pointers.
FEAT is a
general purpose subroutine system for the numerical solution of PDEs by
finite element methods.
Prometheus
parallel multigrid solver for unstructured finite element problems,
built on PETSc-2.0.22
and ParMetis-2.0.
MOUSE
is an object oriented framework for finite volume computations on unstructured grids.
Taylor Solver for ODEs
written by M. Zou and A. Jorba.
DAEPACK
symbolic and numeric library for general numerical calculations, with
a symbolic components that operate directly on Fortran-90 code to
produce general derivative matrices, performing tasks such as solution
of large sets of nonlinear equations,
efficient numerical integration and parametric sensitivity calculation,
hybrid discrete/continuous simulation, and others.
DiffPack -- the
goal of this project is to develop a fully object-oriented framework for
solution of partial differential equations.
PseudoPack
-- a software library for numerical differentiation by pseudospectral
methods.
Automatic
Differentiation Tools for augmenting computer programs with
derivative computations.
Includes links to ADIFOR, ADIC, OPTIMA90, AD with AMPL, SparsLinC, ...
Chains
of Recurrences demo: "a method for expediting the evaluation of closed
form functions."
Geometry
in Action -- computational geometry information.
AWFD (Adaptivity, Wavelets &
Finite Differences) C++ class library for wavelet/interpolet-based solvers for PDEs and integral equations.
Amara's Wavelet Page
- Wavelet Digest, software [with commentary], beginners bibliography,
pointers to other WWW wavelet resources.
LiftPack,
"an efficient method to implement the Wavelet transform."
WAILI C++ library
for wavelets based upon the lifting scheme.
Wavelet NetCare
-- long list of pointers.
Waterloo Fractal Compression Project
offers a tutorial, papers, software and a test suite.