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". New!
  • 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. New!
  • 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.