No announcement yet.

Source for public domain mathematical programs

This topic is closed.
  • Filter
  • Time
  • Show
Clear All
new posts

  • Source for public domain mathematical programs

    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

    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:
    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 "" even though replies appear to be
    coming from "". 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 (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 (

    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 (

    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 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. (

    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,, 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 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. 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.