View Full Version : Source for public domain mathematical programs

unknown user
03-30-1990, 08:16 AM
Hello fellow biomechanicers:

I recently ran across information about getting public domain programs
(primarily mathematical and scientific applications) from the Internet
network. Most of you may already know about these, but I didn't (and wish I
had known of it earlier). So I thought it might be worthwhile to post the
information to the BIOMCH-L readers.

The following is a copy of the output obtained from issuing a SEND INDEX
request to netlib@ornl.gov

I hope some of you find this useful.

Richard T. Hart
Department of Biomedical Engineering
Tulane University
New Orleans, LA

************************************************** ******************

===== general NETLIB index =====

Welcome to netlib, a system for distribution of mathematical software
by electronic mail. This index is the reply you'll get to:
mail netlib@ornl.gov
send index.
To examine the full index for any library send a request of the form:
send index from eispack.
To search for all software with certain keywords:
find cubic spline.
To search for somebody in Gene Golub's address list:
Who is Joan Doe?
displays entries containing "Joan" and "Doe". (no spelling correction!)
You may include several requests in a single piece of mail, but put
each on a separate line.

Here are some additional forms a request may take...
send dgeco from linpack
(Retrieves routine DGECO and all routines it calls from the LINPACK library.)
send only dgeco from linpack
(Retrieves just DGECO and not subsidiary routines.)
send dgeco but not dgefa from linpack
(Retrieves DGECO and subsidiaries, but excludes DGEFA and subsidiaries.)
send list of dgeco from linpack
(Retrieves just the file names rather than the contents;
this can be helpful when one already has an entire library and just
wants to know what pieces are needed in a particular application.)

Send the requests to "netlib@ornl.gov" even though replies appear to be
coming from "netlibd@ornl.gov". You'll be talking to a program, so don't
expect it to understand much English. If your Unix system doesn't talk
directly to research (AT&T Bell Labs in Murray Hill, New Jersey), you might
try forwarding through ihnp4 (Bell Labs in Chicago) or mcvax (Math Centrum
in Amsterdam). Someone will be paying for long distance phone calls, so be
reasonable! Those with access to the arpanet can use netlib@ornl.gov (at
Oak Ridge National Labs). For an introduction to the mysteries of networks
and address syntax, see J. Quarterman and J. Hoskins, Comm. ACM (Oct 1986)
29,932-971. For background about netlib, see Jack J. Dongarra and Eric
Grosse, Distribution of Mathematical Software Via Electronic Mail, Comm.
ACM (1987) 30,403--407.

The default precision is double; to get single, prefix the library name
with "s". However, if the library only comes in one precision, that's what
you will be sent. To save space we remove sequence numbers and maintain a
central set of machine dependent constants. Otherwise the codes, which are
almost all in Fortran, are as received from the authors. Bugs found in
core libraries like eispack will receive prompt attention; in general, we
will forward comments (and annual lists of recipients) to the code authors.
Many of these codes are designed for use by professional numerical analysts
who are capable of checking for themselves whether an algorithm is suitable
for their needs. One routine can be superb and the next awful. So be

-------quick summary of contents---------
a - approximation algorithms (almost empty, but soon to grow)
alliant - set of programs collected from Alliant users
apollo - set of programs collected from Apollo users
benchmark - various benchmark programs and a summary of timings
bihar - Bjorstad's biharmonic solver
bmp - Brent's multiple precision package
cheney-kincaid - programs from the text Numerical Mathematics and Computing.
conformal - Schwarz-Christoffel codes by Trefethen; Bjorstad+Grosse
core - machine constants, blas
domino - communication and scheduling of multiple tasks; Univ. Maryland
eispack - matrix eigenvalues and vectors
elefunt - Cody and Waite's tests for elementary functions
errata - corrections to numerical books
fishpack - separable elliptic PDEs; Swarztrauber and Sweet
fitpack - Cline's splines under tension
fftpack - Swarztrauber's Fourier transforms
fmm - software from the book by Forsythe, Malcolm, and Moler
fn - Fullerton's special functions
gcv - Generalized Cross Validation
go - "golden oldies" gaussq, zeroin, lowess, ...
graphics - ray-tracing
harwell - MA28 sparse linear system
hompack - nonlinear equations by homotopy method
itpack - iterative linear system solution by Young and Kincaid
lanczos - Cullum and Willoughby's Lanczos programs
laso - Scott's Lanczos program for eigenvalues of sparse matrices
linpack - gaussian elimination, QR, SVD by Dongarra, Bunch, Moler, Stewart
lp - linear programming
machines - short descriptions of various computers
matlab - software from the MATLAB user's group
microscope - Alfeld and Harris' system for discontinuity checking
minpack - nonlinear equations and least squares by More, Garbow, Hillstrom
misc - everything else
na-digest - archive of mailings to NA distribution list
napack - numerical algebra programs
ode - ordinary differential equations
odepack - ordinary differential equations from Hindmarsh
paranoia - Kahan's floating point test
pchip - hermite cubics Fritsch+Carlson
picl - portable instrumented communication library for multiprocessors
pltmg - Bank's multigrid code; too large for ordinary mail
polyhedra - Hume's database of geometric solids
port - the public subset of PORT library
pppack - subroutines from de Boor's Practical Guide to Splines
quadpack - univariate quadrature by Piessens, de Donker, Kahaner
siam - typesetting macros for SIAM journal format
slatec - machine constants and error handling package from the Slatec library
sparse - a set of c codes for sparse systems of equations
sparspak - George + Liu, sparse linear algebra core
specfun - transportable special functions
toeplitz - linear systems in Toeplitz or circulant form by Garbow
toms - Collected Algorithms of the ACM
y12m - sparse linear system (Aarhus)

--------a bit more detail--------

The first few libraries here are widely regarded as being of high quality.
The likelihood of your encountering a bug is relatively small; if you do,
we certainly want to hear about it!

CORE Machine constants (i1mach,r1mach,d1mach), blas (level 1 and 2)

EISPACK A collection of Fortran subroutines that compute the eigenvalues
and eigenvectors of nine classes of matrices. The package can
determine the eigensystems of complex general, complex Hermitian,
real general, real symmetric, real symmetric band, real symmetric
tridiagonal, special real tridiagonal, generalized real, and
generalized real symmetric matrices. In addition, there are two
routines which use the singular value decomposition to solve
certain least squares problems.
Developed by the NATS Project at Argonne National Laboratory.
(d.p. refer to eispack, s.p. refer to seispack)

FFTPACK A package of Fortran subprograms for the Fast Fourier
Transform of periodic and other symmetric sequences
This package consists of programs which perform Fast Fourier
Transforms for both complex and real periodic sequences and
certian other symmetric sequences.
Developed by Paul Swarztrauber, at NCAR.

FISHPACK A package of Fortran subprograms providing finite difference
approximations for elliptic boundary value problems.
Developed by Paul Swarztrauber and Roland Sweet.

FNLIB Wayne Fullerton's special function library. (single and double)

GO Golden Oldies: routines that have been widely used,
but aren't available through the standard libraries.
Nominations welcome!

HARWELL Sparse matrix routine MA28 from the Harwell library. from Iain Duff

LINPACK A collection of Fortran subroutines that analyze and solve linear
equations and linear least squares problems. The package solves
linear systems whose matrices are general, banded, symmetric
indefinite, symmetric positive definite, triangular, and tridiagonal
square. In addition, the package computes the QR and singular value
decompositions of rectangular matrices and applies them to least
squares problems.
Developed by Jack Dongarra, Jim Bunch, Cleve Moler and Pete Stewart.
(all precisions contained here)

PPPACK Subroutines from: Carl de Boor, A Practical Guide to Splines,
Springer Verlag. This is an old version, from around the time the book
was published. We will install a newer version as soon as we can.

TOMS Collected algorithms of the ACM. When requesting a specific
item, please refer to the Algorithm number.


In contrast to the above libraries, the following are collections of codes
from a variety of sources. Most are excellent, but you should exercise
caution. We include research codes that we haven't tested and codes
that may not be state-of-the-art but useful for comparisons.
The following list is chronological, not by merit:

MISC Contains various pieces of software collected over time and:
the source code for the netlib processor itself;
the paper describing netlib and its implementation;
the abstracts list maintained by Richard Bartels.

FMM Routines from the book Computer Methods for Mathematical
Computations, by Forsythe, Malcolm, and Moler.
Developed by George Forsythe, Mike Malcolm, and Cleve Moler.
(d.p. refer to fmm, s.p. refer to sfmm)

QUADPACK A package for numerical computation of definite univariate integrals.
Developed by Piessens, Robert(Appl. Math. and Progr. Div.- K.U.Leuven)
de Donker, Elise(Appl. Math. and Progr. Div.- K.U.Leuven
Kahaner, David(National Bureau of Standards) (slatec version)

TOEPLITZ A package of Fortran subprograms for the solution of systems
of linear equations with coefficient matrices of Toeplitz or
circulant form, and for orthogonal factorization of column-
circulant matrices.
Developed by Burt Garbow at Argonne National Laboratory,
as a culmination of Soviet-American collaborative effort.
(d.p. refer to toeplitz, s.p. refer to stoeplitz)

ITPACK Iterative linear system solvers for symmetric and nonsymmetric
sparse problems. Includes ITPACK 2C (single and double
precision), ITPACKV 2C (vectorized version of ITPACK 2C),
and NSPCG. Developed by Young and Kincaid and the group at
U of Texas.

BIHAR Biharmonic solver in rectangular geometry and polar coordinates.
These routines were obtained from Petter Bjorstad,
Veritas Research, Oslo Norway in July 1984.

LANCZOS procedures computing a few eigenvalues/eigenvectors of a large (sparse)
symmetric matrix. Jane Cullum and Ralph Willoughby, IBM Yorktown.

LASO A competing Lanczos package. David Scott.

CONFORMAL contains routines to solve the "parameter problem" associated
with the Schwarz-Christoffel mapping. Includes:
SCPACK (polygons with straight sides) from Nick Trefethen.
CAP (circular arc polygons) from Petter Bjorstad and Eric Grosse.

FITPACK A package for splines under tension. (an early version)
For a current copy and for other routines, contact:
Alan Kaylor Cline, 8603 Altus Cove, Austin, Texas 78759, USA

BENCHMARK contains benchmark programs and the table of Linpack timings.

MACHINES contains information on high performance computers that
are or soon to be made available

MINPACK A package of Fortran programs for the solution of systems of
nonlinear equations and nonlinear least squares problems.
Five algorithmic paths each include a core subroutine and an
easy-to-use driver. The algorithms proceed either from an analytic
specification of the Jacobian matrix or directly from the problem
functions. The paths include facilities for systems of equations
with a banded Jacobian matrix, for least squares problems with a
large amount of data, and for checking the consistency of the
Jacobian matrix with the functions.
Developed by Jorge More', Burt Garbow, and Ken Hillstrom at
Argonne National Laboratory.
(d.p. refer to minpack, s.p. refer to sminpack)

PORT The public subset of the PORT library. Includes the latest version
of Gay's NL2SOL nonlinear least squares. The rest of the PORT3
library is available by license from AT&T.

Y12M calculation of the solution of systems of linear systems of
linear algebra equations whose matrices are large and sparse.
authors: Zahari Zlatev, Jerzy Wasniewski and Kjeld Schaumburg

PCHIP is a fortran package for piecewise cubic hermite inter-
polation of data. It features software to produce a monotone and
"visually pleasing" interpolant to monotone data.
Fred N. Fritsch, Lawrence Livermore National Laboratory

LP Linear Programming - At present, this consists of one subdirectory,
data: a set of test problems in MPS format, maintained by David Gay.
For more information, try a request of the form
send index for lp/data

ODE various initial and boundary value ordinary differential equation
solvers: colsys, dverk, rkf45, ode
A subset of these in single precision is in the library sode.

ODEPACK The ODE package from Hindmarch and others.
This is the double precision verison; to get sp refer to sodepack.
Alan Hindmarch, Lawrence Livermore National Laboratory

ELEFUNT is a collection of transportable Fortran programs for testing
the elementary function programs provided with Fortran compilers. The
programs are described in detail in the book "Software Manual for the
Elementary Functions" by W. J. Cody and W. Waite, Prentice Hall, 1980.

SPECFUN is an incomplete, but growing, collection of transportable
Fortran programs for special functions, and of accompanying test
programs similar in concept to those in ELEFUNT.
W.J. Cody, Argonne National Laboratory

PARANOIA is a rather large program, devised by Prof. Kahan of Berkeley,
to explore the floating point system on your computer.

SLATEC library DoE policy apparently prohibits us from distributing this.
Contact the National Energy Software Center or your congressman.

HOMPACK is a suite of FORTRAN 77 subroutines for solving nonlinear systems
of equations by homotopy methods. There are subroutines for fixed
point, zero finding, and general homotopy curve tracking problems,
utilizing both dense and sparse Jacobian matrices, and implementing
three different algorithms: ODE-based, normal flow, and augmented

DOMINO is a set of C-language routines with a short assembly language
interface that allows multiple tasks to communicate and schedules
local tasks for execution. These tasks may be on a single processor
or spread among multiple processors connected by a message-passing
network. (O'Leary, Stewart, Van de Geijn, University of Maryland)

GCV software for Generalized Cross Validation, from: Woltring,
(univariate spline smoothing ); Bates, Lindstrom, Wahba and Yandell
(multivariate thin plate spline smoothing and ridge regression).

Cheney-Kincaid programs from: Ward Cheney & David Kincaid, Numerical
Mathematics and Computing.

POLYHEDRA a database of angles, vertex locations, and so on for over a
hundred geometric solids, compiled by Andrew Hume.

GRAPHICS presently just contains some C routines for testing ray-tracing

A approximation algorithms (almost empty, but soon to grow)
lowess: multivariate smoothing of scattered data; Cleveland+Devlin+Grosse

Apollo A set of programs collected from Apollo users.

Alliant A set of programs collected from Alliant users.

parmacs - parallel programmming macros for monitors and send/receive
Rusty Lusk, Argonne National Laboratory, June 5, 1987 (lusk@mcs.anl.gov)

sched - The Schedule Package is an environment for the transportable
implementation of parallel algorithms in a Fortran setting.
Jack Dongarra and Dan Sorensen, Univ of Tenn. and Rice Univ.,
June 5, 1987 (dongarra@cs.utk.edu sorensen@rice.edu)

NAPACK A collection of Fortran subroutines to solve linear systems,
to estimate the condition number or the norm of a matrix,
to compute determinants, to multiply a matrix by a vector,
to invert a matrix, to solve least squares problems, to perform
unconstrained minimization, to compute eigenvalues, eigenvectors,
the singular value decomposition, or the QR decomposition.
The package has special routines for general, band, symmetric,
indefinite, tridiagonal, upper Hessenberg, and circulant matrices.
Code author: Bill Hager, Mathematics Department, Penn State
University, University Park, PA 16802, e-mail: hager@psuvax1.bitnet
or hager@psuvax1.psu.edu. Related book: Applied Numerical Linear
Algebra, Prentice-Hall, Englewood Cliffs, New Jersey.
Book scheduled to appear in December, 1987.

SPARSPAK Subroutines from the book "Computer Solution of Large Sparse
Positive Definite Systems" by George and Liu, Prentice Hall 1981.

Sparse A library of subroutines written in C that solve large sparse
systems of linear equations using LU factorization. The
package is able to handle arbitrary real and complex square
matrix equations. Besides being able to solve linear systems,
it is solves transposed systems, find determinants, multiplies
a vector by a matrix, and estimate errors due to
ill-conditioning in the system of equations and instability in
the computations. Sparse does not require or assume symmetry
and is able to perform numerical pivoting (either diagonal or
complete) to avoid unnecessary error in the solution. Sparse
also has an optional interface that allow it to be called from
FORTRAN programs.
Ken Kundert, Alberto Sangiovanni-Vincentelli. (sparse@ic.berkeley.edu)

SLAP This is the official release version 2.0 of the Sparse Linear
Algebra Package: a SLAP for the Masses! It contains "core"
routines for the iterative solution symmetric and non-symmetric
positive definite and positive semi-definite linear systems.
Included in this package are core routines to do Iterative
Refinement iteration, Preconditioned Conjugate Gradient
iteration, Preconditioned Conjugate Gradient iteration on the
Normal Equations, Preconditioned BiConjugate Gradient iteration,
Preconditioned BiConjugate Gradient Squared iteration, Orthomin
iteration and Generalized Minimum Residual iteration. Core
routines require the user to supply "MATVEC" (Matrix Vector
Multiply) and "MSOLVE" (Preconditiong) routines. This allows the
core routines to be written in a way that makes them independent
of the matrix data structure. For each core routine there are
several drivers and support routines that allow the user to
utilize Diagonal Scaling and Incomplete Cholesky/Incomplete LU
factorization as preconditioners with no coding. The price for
this convience is that one must use the a specific matrix data
structure: SLAP Column or SLAP Triad format.
Written by Mark K. Seager & Anne Greenbaum

problem-set: This set of directories is a collection of problems for
automated theorem provers. It is partioned by subject.
Larry Wos, Argonne National Laboratory

sequent software from the Sequent Users Group.
Jack Dongarra 9/88

UNCON/DATA test problems: unconstrained optimization, nonlinear least squares.
Problems from More, Garbow, and Hillstrom; Fraley, matrix square
root; Hanson, Salane; McKeown; De Villiers and Glasser;
Dennis, Gay, and Vu. Collected by Chris Fraley.

JAKEF is a precompiler that analyses a given Fortran77 source code for
the evaluation of a scalar or vector function and then generates an
expanded Fortran subroutine that simultaneously evaluates the gradient
or Jacobian respectively.
A. Griewank, Argonne National Laboratory, griewank@mcs.anl.gov, 12/1/88.

sparse-blas an extension to the set of Basic Linear Algebra Subprograms.
The extension is targeted at sparse vector operations, with the goal of
providing efficient, but portable, implementations of algorithms for high
performance computers.
convex!dodson@anl-mcs.ARPA Mon Aug 31 19:53:21 1987 (Dave Dodson)

voronoi - compute Voronoi diagram or Delaunay triangulation.
From research!sjf Thu May 5 14:09:33 EDT 1988

matlab - software from the MATLAB Users Group.
Christian Bischof bischof@mcs.anl.gov 12/89

picl - is a subroutine library that implements a generic message-passing
interface for a variety of multiprocessors. It also provides
timestamped trace data, if requested.
authors: Geist, Heath, Peyton, and Worley, Oak Ridge National Lab.
worley@msr.epm.ornl.gov 2/1/90.

parallel - a directory containing information on parallel processing and
high-performance computing.

MADPACK is a a compact package for solving systems of linear equations using
multigrid or aggregation-disaggregation methods. Imbedded in
the algorithms are implementations for sparse Gaussian elimination
and symmetric Gauss-Seidel (unaccelerated or accelerated by
conjugate gradients or Orthomin(1)). This package is particularly
useful for solving problems which arise from discretizing partial
differential equations, regardless of whether finite
differences, finite elements, or finite volumes are used.
It was written by Craig Douglas.