[comp.lang.fortran] LINPACK source

pa1081@sdcc13.ucsd.edu (pa1081) (10/18/89)

Does anyone out there know the uucp address of Jack Dongarra of the
Argonne Institute? (the guy who does the LINPACK stuff).  I need to
get the all FORTRAN LINPACK source to test our machine here.

Please reply to: pa1081@sdcc13.ucsd.edu

hirchert@uxe.cso.uiuc.edu (10/20/89)

Argonne National Laboratory distributes the software it has developed via
a mail based server.  Send messages to netlib@mcs.anl.gov (Internet) or
research!netlib (UUCP).  The message should contain one or more commands
of one of the following forms:
send index
send index from <library>
send <routine> from <library>
find <keywords>

Note that the above does not provide a way to request who libraries.  I
believe they still prefer to do that by sending tapes rather than over the
network.

(The above is based on an article I read a couple of years ago.  I tried it
out then, but I haven't tested it recently to verify that it still works.)

hirchert@uxe.cso.uiuc.edu (10/21/89)

I tested out what I posted earlier.  Some of the details have changed.
It's all explained in the reply I received:

===== How to use netlib =====

This file is the reply you'll get to:
	mail netlib@research.att.com
	send index
Here are examples of the various kinds of requests.
*  get the full index for a library
	send index from eispack
*  get a particular routine and all it depends on
	send dgeco from linpack
*  get just the one routine, not subsidiaries
	send only dgeco from linpack
*  get dependency tree, but excluding a subtree
	send dgeco but not dgefa from linpack
*  just tell how large a reply would be, don't actually send the file
	send list of dgeco from linpack
*  search for somebody in the SIAM membership list:
	who is gene golub
*  keyword search for netlib software
	find cubic spline
*  keyword search in the approximation catalog
	find schumaker from approximation

The Internet address "netlib@research.att.com" refers to a gateway
machine at AT&T Bell Labs in Murray Hill, New Jersey.  This address
should be understood on all the major networks.  For systems having
only uucp connections, use the address uunet!research!netlib.  In this
case, someone will be paying for long distance 1200 baud phone calls,
so keep your requests to a reasonable size!  An excellent guide to the
mysteries of networks and address syntax is: Donnalyn Frey and Rick
Adams (1989) "!%@:: A Directory of Electronic Mail Addressing and
Networks", O'Reilly & Associates, Inc, 632 Petaluma Ave, Sebastopol CA
95472.  Background about netlib is in Jack J. Dongarra and Eric Grosse,
Distribution of Mathematical Software Via Electronic Mail, Comm. ACM
(1987) 30, 403--407.

Bugs reports, comments, and annual lists of recipients will be
forwarded to the code authors when possible.  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 careful!

An inventory list is given below and in the indices for the individual
libraries.  If you know exactly what you're looking for, these guides
may be enough.  An interactive system called "walk" provides a more
systematic list (not limited to netlib) but at present covers only
approximation.  Volunteers from other fields are needed.  The reference
is Eric Grosse, "A Catalog ...", in Algorithms for Approximation",
Mason and Cox (eds.), Chapman and Hall, 1989.  Dialup (at 1200 baud)
201-582-1238  or telnet to research.att.com and login as walk; no
password is required.

-------quick summary of contents---------
a - approximation algorithms
alliant - set of programs collected from Alliant users
amos - special functions by D. Amos.  = toms/644
apollo - set of programs collected from Apollo users
benchmark - various benchmark programs and a summary of timings
bihar - Bjorstad's biharmonic solver
blas3 - matrix * matrix BLAS
bmp - Brent's multiple precision package
c - another "misc" library, for software written in C
cascade - analysis and design of linear control systems
cheney-kincaid - programs from the text Numerical Mathematics and Computing.
conformal - Schwarz-Christoffel codes by Trefethen; Bjorstad+Grosse
core - machine constants, vector and matrix * vector BLAS
dierckx - spline fitting
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
uncon/data - optimization test problems
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
jakef - automatic differentiation of Fortran subroutines
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
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
parmacs	-  parallel programmming macros
pchip - hermite cubics  Fritsch+Carlson
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
sched - environment for portable parallel algorithms in a Fortran setting.
slap - Seager + Greenbaum, iterative methods for symmetric and unsymmetric
slatec - machine constants and error handling package from the Slatec library
sparse - Kundert + Sangiovanni-Vincentelli, C sparse linear algebra
sparse-blas - BLAS by indirection
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
typesetting - typesetting macros and preprocessors
vanhuffel - total least squares, partial SVD  by Van Hufell
voronoi - Voronoi diagrams and Delaunay triangulations
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 Solver based on a number of methods:
	Jacobi method, SOR, SSOR with conjugate gradient acceleration 
	or with Chebyshev (semi-iteration - SI) acceleration.
	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
	Jacobian.  

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:  O'Sullivan,
        Woltring (univariate spline smoothing), Bates, Lindstrom, 
        Wahba and Yandell (multivariate thin plate spline smoothing 
        and ridge regression), Gu (multiple smoothing parameters). 

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@anl-mcs.arpa)

sched - The Schedule Package is an environment for the transportable 
        implementation of parallel algorithms in a Fortran setting.  
        Jack Dongarra and Dan Sorensen, Argonne National Laboratory, 
        June 5, 1987 (dongarra@anl-mcs.arpa sorensen@anl-mcs.arpa)

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.

VANHUFFEL
   The TLS problem assumes an overdetermined set of linear equations
   AX = B, where both the data matrix A as well as the observation
   matrix B are inaccurate.
   The subroutine PTLS solves the Total Least Squares (TLS) problem by
   using a Partial Singular Value Decomposition (PSVD), hereby improving
   considerably the computational efficiency with respect to the classi-
   cal TLS algorithm.
      Sabine VAN HUFFEL
      ESAT Laboratory, KU Leuven.
      Kardinaal Mercierlaan 94, 3030 Heverlee, Belgium

DIERCKX
   A package of spline fitting routines for various kinds of data and
   geometries.  Written by: Professor Paul Dierckx, Dept. Computer Science,
   K. U. Leuven, Celestijnenlaan 200A, B-3030 Heverlee, Belgium.

VORONOI
   Algorithms for Voronoi regions and Delaunay triangulations.  Currently
   contains Fortune's 2d sweepline method.

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

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. For scalar functions the ratio between the 
	run-time of the resulting gradient routine and that of the original
	evaluation routine is never greater than a fixed bound of about five. 
	The storage requirement may be considerable as it is also proportional 
	to the run-time of the original routine. Since no differencing is done
	the partial derivative values obtained are exact up to round-off errors.	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)