Last-Modified: $Date: 1993/05/02 21:14:39 $
Submitted-By: ajayshah@rcf.usc.edu (Ajay Shah)
Version: $Revision: 1.11 $
Frequency: Monthly
Welcome to of the index of free source code for numerical computation
written in either of C or C++. I also give pointers to books which
come with source code (and hence act as low-cost libraries).
This file is numcomp-free-c.z in pub/C-numanal on usc.edu
A slightly outdated version is c/numcomp-free-c on netlib.
Please see the section "interesting sites" below to get some help on
how to retrieve software listed here.
Table of Contents:
* Explanations of fields
* The index
* f2c
* Other pointers
* Interesting sites
* Books
* Credits
The index is biased towards fields I work in.
Please send me suggestions, corrections and improvements.
-Ajay Shah, ajayshah@rcf.usc.edu
Explanations of fields
----------------------
Name if the archive has a obvious name, then that is shown.
Otherwise I invent something sensible.
Where is a pointer into a ftp site, or sufficient information to
figure that out. The information at EOF may enlighten
you if you are still stuck.
Systems The default is Unix. If it runs on other systems this is shown,
if it does NOT run on Unix this is shown.
Language The default is ANSI C. The alternatives are K&R and C++.
Author I try to give the name(s) and email addresses. Sometimes the
email address is a contact person, even if it's not the author.
Version This tries to identify a most-recent version and gives it's date.
Description A one-line description
Comments Are a few keywords thrown in to help you egrep.
Many things are incomplete; tell me of anything which hurts your eyes.
Please point me to goodies I've overlooked. If you have source code
which may be of wide interest, please make it available to the net.
The index
---------
Name : ajay
Where : in general on Statlib
Description : cholesky decomposition and drawing from MVN
Author : Ajay Shah, ajayshah@rcf.usc.edu
Version : 23 Sept 1991
Name : as274_fc.tar.z (42748 bytes)
Author : Alan Miller (alan@dmsmelb.mel.dms.CSIRO.AU)
Port to C and packaging by Ajay Shah (ajayshah@rcf.usc.edu)
Systems : Unix
Version : 1 May 1993
Description : High accuracy least squares routines with facilities for
WLS for a subset of variables, changing the order
of variables, dealing with singularities, calculating an
estimated covariance matrix of the coefficients.
Both fortran and C versions are presented, along with
a regression testing setup using ten test programs.
See article "Least Squares Routines to Supplement those
of Gentleman" in Applied Statistics 41(2), 1992 by
Alan Miller.
Where : pub/C-numanal on usc.edu
Comments : note the .z is the new gzip compression.
Name : asa.Z
Where : in opt on netlib
file `asan' (421511 bytes) in general on statlib
Description : adaptive simulated reannealing
performing adaptive global optimization on multivariate
nonlinear stochastic systems
Language : either K&R or ANSI C
Author : Lester Ingber (ingber@alumni.caltech.edu)
Comments : this program was formerly called vfsr
Some documents can be found in file ingber.tar.z in
pub/C-numanal on usc.edu
Version : 1.2, 27 April 1993
Name : awesime
Description : a C++ task library explicitly designed for simulation.
Where : pub/cs/misc/Awesime on ftp.cs.colorado.edu
Author : Dirk Grunwald (grunwald@foobar.cs.colorado.edu)
Version : II
Name : bignum
Where : pub/bignum on rpub.msu.edu ; ripem.msu.edu
Description : directory filled with bignum software, and a file
BIGNUMS.TXT which summaries bignum alternatives.
Author : BIGNUMS.TXT is by Mark Riordan (mrr@scss3.cl.msu.edu)
The ftp site is maintained by him.
Version : April 1993.
Name : bignum.tar.Z
Where : in tars/math on einstein.mse.lehigh.edu (128.180.9.162)
Systems : Unix
Description : Arbitrary Precision Integer Arithmetic
Author : Serpette, Vuillemin, Jean-Claude Herve
Version : 23 Sept 1990
Comments : Excellent. very fast. possible problems with unalloc call.
Name : brent rootfinding, aitken-lagrange interpolation,
hooke-jeeve minimiser
Where : in c on Netlib
Author : Oleg Keselyov, oleg@nrcbsa.bio.nrc.ca
Comments : includes a vectors library. Netlib:c++/brent has C++ version.
Version : May 1991
Name : BSDmath
Where : e.g. agate.berkeley.edu
Description : BSD implementation of math.h
Name : cephes
Author : Stephen L. Moshier, moshier@world.std.com
Description : extremely good library for numerical computation in C.
Emphasis on special functions (of very high accuracy), but
also contains useful code for matrices, eigenvalues,
integration, ODEs, complex arithmetic, chebyshev approximation.
Where : the many files in directory cephes on netlib
Version : 2.2, June 1992
Name : Cfortran
Where : zebra.desy.de [131.169.2.244]
Systems : VAX VMS or Ultrix, DECstation, Silicon Graphics,
IBM RS/6000, Sun, CRAY, Apollo and HP9000.
Language : C, FORTRAN
Author : Burkhard Burow, burow@vxdesy.cern.ch, University of Toronto
Version : 2.5
Description : A set of macros (cfortran.h = 1000 lines) allowing function
calls to be made from C to FORTRAN and vice-versa.
Comments : Good compact way of calling functions without translating.
Easy to use.
Name : chernikov
Author : Ata Etemadi (atae@spva.physics.imperial.ac.uk)
Where : Volume 26, Issue 91 of comp.sources.unix
Description : computes the stochastic webs produced by the Chernikov
equations (see Nature Vol. 326, April 1987) and produces
a PGM image based on occupancy of cells. The equations
essentially describe the path of a non-relativistic
charged particle rotating about a magnetic field line,
and experiencing a periodic electric field impulse.
Version : v1.0, 3 April 1993
Name : cvmath.cc (12263 bytes)
Where : in pub/C-numanal on usc.edu
Systems : Unix
Language : C++
Description : An include file to make complex math look like
regular math.
Author : Leonard Kamlet, lik@engin.umich.edu
Version : 8 March 1993
Comments : The file uses a lot of operator overloading, so that
if x=a+ib and y=c+id, the code for multiplying the two
together looks like z = x*y; Also, the file includes nrutil
from Numerical Recipes, and adds the complex versions for
vectors and matrices.
Name : dcg.shar
Where : in c on Netlib
Description : preconditioned conjugate gradient method
Author : Mark K. Seager, seager@lll-crg.llnl.gov
Name : dddd
Where : in pub/dddd on madvax.uwa.edu.au
Description : dynamical data determinism detector (works with time-series
data). exploits Open windows 3.
Systems : Unix
Version : 21 Oct 1992
Author : Dave Watson, watson@maths.uwa.edu.au
Name : drpn
Where : pub/dank/drpn.tar.Z at punisher.caltech.edu
Systems : Unix
Description : RPN calculator for digital signal processing
Author : Dan Kegel, JPL
Version : 1.1
Comments : A simple way to do add, multiply, FFT, sum, shift operators
on a stream of fixed-length records of data. Handles several
data types (16 bit int, 32 bit float). Used, for example, to
process a synthetic aperture radar image.
Name : dstool
Where : somewhere on macomb.tn.cornell.edu
Systems : Unix, uses xview3 and open windows 3
Description : Dynamical systems simulation package
Plots Lorenz attractors and "other chaotic things" in realtime.
Includes a expression evaluator.
Author :
Version : 1.1
Name : dtoa.c
Where : in fp on Netlib
Description : correctly rounded decimal <--> binary conversion
Name : eigen.1.01.shar.Z (80545 bytes)
Version : 1.01, 25 March 1993
Author : Nadav Har'El, nyh@gauss.technion.ac.il
Description : Find the N largest eigenvalues and their eigenvectors of a
real matrix ( < 700x700). Includes postscript documentation.
Where : eigen directory on gauss.technion.ac.il (132.68.112.60)
Name : fft.shar
Where : in c++ on Netlib
Description : radix 2 FFT
Name : fft-summary.zoo (81360 bytes)
Where : in pub/C-numanal on usc.edu
Description : summary about FFT code in C, including lots of source
Author : Peter J. McKinney (pm860605@longs.LANCE.ColoState.Edu)
and Ron Mayer (mayer@acuson.com)
Version : 19 March 1993
Name : fftsing
Where : in edu/math/msdos/modelling on wuarchive.wustl.edu
Description : FFT of extremely long series; Singleton's mixed radix algo
Author : Javier Soley, FJSOLEY@UCRVM2.BITNET
Name : frac
Where : in c on Netlib
Description : finds rational approximation to floating point value
Author : Robert Craig, AT&T Bell Labs - Naperville
Name : fromskip
Where : send email to Skip Carter (address at EOF)
Language : C++
Description : numerical derivatives with richardson extrapolation,
runge-kutta code, monte-carlo integration, fredholm and
voltera integral equation solvers, etc.
Name : FSQP, CFSQP
Where : send email to andre@eng.umd.edu
Systems : many (including DOS)
Language : FORTRAN (FSQP), C (CFSQP)
Authors : J.L. Zhou (jzhou@eng.umd.edu) and
Andre' L. Tits (andre@eng.umd.edu);
translated to C by C.T. Lawrence (craigl@eng.umd.edu)
Version : FSQP: 3.2, 3/93; CFSQP: 1.1, 3 April 93
Description : solution of constrained continuous optimization problems,
possibly minimax (cost function is max of finitely many
functions).
Comments : modified SQP scheme; successive iterates are all feasible
(inequality constraints) or "semi-feasible" (equality
constraints)
keywords nonlinear minimisation maximisation
nonlinear programming
Name : fudgit_2.31.tar.Z (451691 bytes)
Author : Martin-D. Lacasse, isaac@physics.mcgill.ca
Where : pub/Fudgit on ftp.physics.mcgill.ca
Description : C-based fitting and data manipulation program (works on
top of gnuplot). Gives you a C-like interpreted script
language.
Systems : Unix only.
Comments : FYI, you can pick up gnuplot from pub/gnu on prep.ai.mit.edu
Version : 2.31, 13 April 1993
Name : gaut
Where : in general on Statlib
Description : upper-tail probabilities on normal and t densities
Author : Ajay Shah, ajayshah@rcf.usc.edu
Version : 12 May 1991
Name : ga's
Where : pub/galist/source-code/ga-source on ftp.aic.nrl.navy.mil
(192.26.18.74)
Description : many genetic algorithm optimisation libraries, all in C
Comments : they are GAucsd 1.4 (Nici Schraudolph, nici@cs.ucsd.edu),
GENEsYS 1.0 (Thomas Baeck, baeck@home.informatik.uni-dortmund.de)
Genesis 5.0 (John J. Grefenstette, gref@aic.nrl.navy.mil),
Goldberg's SGA in C (with a nCube version) by Rob Smith,
rob@galab2.mh.ua.edu
Also see survey of GA software in file GAsoft.txt at
cs.ucsd.edu
Name : gemmw
Description : a highly portable Level 3 BLAS implementation of Winograd's
variant of Strassen's matrix multiplication algorithm
Where : in misc on Netlib
Author : Craig C. Douglas, douglas-craig@CS.YALE.EDU
Version : 22 May 1992
Name : genocop
Where : somewhere on unccsun.uncc.edu (152.15.10.88)
Description : nonlinear maximisation with linear constraints. You write C
code for the function to optimise and link into genocop.
Allowable ranges for each parameter can be defined. Author
plans to do nonlinear constraints "soon".
Author : ??, zbyszek@unccvax.ucc.edu
Name : gle
Description : graphics layout editor
script or menu driven program for composing a graphics
page. Graphics primitives + PostScript file inclusion,
plot generation from equations or tabular data + manipulation.
Various output formats (X,ps,hpgl..) and utility programs
(contour, surface, fits..)
Systems : Unix, PC
Where : wuarchive.wustl.edu:/graphics/graphics/packages/gle
Version : 3.3b
Language : ANSI C
Author : Chris Pugmire, srghcxp@grv.grace.cri.nz
Name : gmp-1.2.tar.z (146993 bytes)
Description : GNU multiple precision library
Where : in pub/gnu on prep.ai.mit.edu
Version : 1.2, 9 Dec 1991
Author : ?
Name : go.c.Z (7288 bytes)
Where : in pub/C-numanal on usc.edu
Description : Calculate gaussian quadrature rules. Translation of
Netlib: go/gausq.f using f2c with some hand-cleaning. You
need a log gamma function.
Comments : numerical integration
Name : hare (Hazard Regression)
Where : file hare (a shar file) in S directory on statlib
Author : Charles Kooperberg (clk@stat.washington.edu)
Description : estimates the conditional hazard rate based on possibly
censored data and covariates. Includes parametric and
non-parametric, additive and non-additive proportional and
non-proportional hazards model as special cases. Addition
and deletion of basis functions make the fit highly adaptive.
Version : statlib, last update April 21, 1993
Comments : actually the objective of this file is to give a end-user
of the S statistical package this functionality. But the
actual computation is done in C.
Described in Univ. of California, Berkeley, Stat tech rep 389.
Available from the author.
Name : heft (Hazard Estimation with Flexible Tails)
Where : file heft (a shar file) in S directory on statlib
Author : Charles Kooperberg (clk@stat.washington.edu)
Description : estimates the unconditional hazard rate using splines. Knot
addition, deletion and two extra tail terms make the fit
highly adaptive.
Version : statlib, last update April 21, 1993
Comments : actually the objective of this file is to give a end-user
of the S statistical package this functionality. But the
actual computation is done in C.
Described in Univ. of California, Berkeley, Stat tech rep 388.
Available from the author.
Name : ieeetest.zoo (65783 bytes)
Where : in pub/C-numanal on usc.edu
Author : Stephen L. Moshier, moshier@world.std.com
Description : includes a improved version of paranoia, and code for
testing the precision of the C I/O library on FP I/O.
Version : 8 March 1993
Name : IND Tree Package
Where : available in the US only, contact author
Systems : Unix
Description : Tree classification routines (supervised learning) including
reimplementations of parts of CART, C4.5, and Bayesian
and MDL methods with tree smoothing and "decision graphs".
The package is made up of a collection of interconnected
Unix tools. It comes with a lot of documentation.
Author : Wray Buntine, wray@kronos.arc.nasa.gov
Version : Version 2.1, January 1993
Name : in-spice
Where : part of Spice. SPICE3E1 is free, SPICE3E2 is not-free
less-buggy.
Description : files src/lib/ni/ni{integ,comcof}.c are first- (backward
euler) and second- (trapezoidal) order integrator and a >6
order GEAR.
Name : kalman.zoo (27417 bytes)
Where : in pub/C-numanal on usc.edu
Author : Skip Carter (skip@taygeta.oc.nps.navy.mil)
Description : A class library for Kalman filtering
Language : C++
Version : v1.0, 6 October 1992
Name : Kaskade
Description : Linear elliptic FEM solver written in C. Reads problem
description from plain text file - can be (mis)used as
triangular mesh generator. Graphical output under X11 and MacOS.
Mailing list.
Authors : 2-D -- Rainer Roitzsch (roitzsch@sc.zib-berlin.de)
3-D -- Bodo Erdmann (erdmann@sc.zib-berlin.de)
Konrad-Zuse-Zentrum fuer Informationstechnik (ZIB)
Systems : compiles on Unix and Macintosh
Where : elib.zib-berlin.de:/pub/kaskade. (The slightly outdated
user manual is in pub/kaskade/AltesZeug/tr-89-4.ps - in
english)
Name : LASSPTools
Where : /pub/LASSPTools at helios.tn.cornell.edu
Systems : Unix
Description : Data manipulation and entry tools for Unix.
Author : Various people in the Cornell physics department
Comments : A diverse set of tools by various people at the Laboratory
of Atomic and Solid State Physics at Cornell. Most useful for
a set of X-windows applications and UNIX filters for
interactive data manipulation. For instance, there's a
mouse-operated track-ball that outputs a rotation matrix
describing the orientation of the ball.
Name : leda
Description : library of efficient data types and algorithms
Version : v3.0, 26 Nov 1992
Where : in pub/LEDA on ftp.cs.uni-sb.de (134.96.252.31)
Author : Stefan Naeher (stefan@mpi-sb.mpg.de)
Comments : includes code on computational geometry
Name : lin_alg.shar.Z
Where : in c++ on Netlib
Description : BLAS 1 and 2 in C++
Name : logspline
Where : file logspline (a shar file) in S directory on statlib
Author : Charles Kooperberg (clk@stat.washington.edu)
Description : logspline density estimation
fully automatic nonparametric density estimation
adaptive smoothing using splines
Version : statlib, last update April 21, 1993
Comments : actually the objective of this file is to give a end-user
of the S statistical package this functionality. But the
actual computation is done in C.
Described in Journal of Computational and Graphical Statistics,
(1993), vol 1, 301-328.
Name : lpsolve
Where : volume02 of comp.sources.reviewed
Description : very good mixed integer linear program solver
Author : Michel Berkelaar (michel@es.ele.tue.nl)
Comments : Its core is a sparse matrix dual simplex LP solver. MILP
problems are solved with a branch-and-bound iteration over LP
solutions. It uses a lex+yacc parser to read a human-friendly
algebraic input format. The author has used the program to
solve LP problems up to about 30000 variables and 50000
constraints (on a 22 MFLOPS HP9000/750).
Name : machar
Where : in misc on Netlib
Description : find out properties of floating point hardware
Author : William J. Cody, cody@antares.mcs.anl.gov, and Tim Hopkins
Version : October 1985
Name : madpack
Where : Netlib, in pdes/madpack
Description : 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.
Author : Craig Douglas, douglas-craig@cs.yale.edu
Comments : see directory mgnet on casper.cs.yale.edu too
Name : marsaglia-random
Where : bugs.nosc.mil:pub/ada/random/*
Systems : highly portable
Language : C, Pascal, Ada
Authors : G Marsaglia, M G Harmon & T P Baker, V Broman.
Description : highly machine-independent uniform RNG,
requires 24-bit fixed point or floating point arithmetic.
953118087 different seed pairs give pseudo-random sequences
with period about 2**144. passes stringent randomness tests.
Comments : correct operation with 24-bit floats seems to require
a guard bit. failing that, try fixed point arithmetic.
Name : matcalc
Author : M. Gerberg, E.J. Moore, University of New South Wales, Australia
Version : 2.1
Systems : Unix, VMS and DOS installation scripts exist
Description : Matlab-like numerical solver. Good support of singular
problems. Well structured - easy extension with own C routines
which can use the matcalc library.
Where : netlib/matcalc on draci.cs.uow.edu.au
Name : matrices.asc
Where : inside ddj9106.zip in published/dr-dobbs on ftp.uu.net
Description : efficiently raise matrices to an integer power
Author : Victor Duvanenko
Version : June 1991
Name : matrix-multiply (18229 bytes)
Where : in pub/C-numanal on usc.edu
Description : collection of net postings and email about fast matrix multiply
Includes C source.
Version : 1 May 1993
Name : matrix.tar.Z
Where : in ftp-raimund/pub/src/Math on nestroy.wu-wien.ac.at
(137.208.3.4)
Author : Paul Schmidt, TI
Description : Small matrix library, including SOR, WLS
Name : matrix04.zip
Where : in mirrors/msdos/c on wuarchive.wustl.edu
Description : Small matrix toolbox
Name : Matrix.tar.Z
Where : in pub ftp.cs.ucla.edu
Description : The C++ Matrix class, including a matrix implementation
of the backward error propagation (backprop) algorithm for
training multi-layer, feed-forward artificial neural networks
Version : 15 April 1993
Author : E. Robert (Bob) Tisdale, edwin@cs.ucla.edu
Name : mclaughl.lst
Where : inside ddj8909.arc in published/dr-dobbs on ftp.uu.net
Description : source code (500 lines) associated with article on
Simulated Annealing by Michael P. McLaughlin.
Version : September 1989
Name : meschach
Where : in c/meschach on netlib
Systems : Unix, PC
Description : a library for matrix computation; matrix,
vector, permutation, sparse matrix data structures; basic
linear algebra; min/max, sorting & componentwise operations;
dense LU, Cholesky, QR, LDL factorisations; dense
eigenvalues/vectors, singular value decomposition; sparse
matrix factorisations (LU, Cholesky, BKP); iterative
methods; error handling; input/output
Author : David E. Stewart, des@thrain.anu.edu.au
Version : 1.1, April 1993
Name : meschach
Where : in c/meschach on netlib
Systems : Unix, PC
Description : a library for matrix computation; more functionality than
Linpack; nonstandard matrices
Author : David E. Stewart, des@thrain.anu.edu.au
Version : 1.1, 8 April 1993
Name : minit
Where : volume 7 of comp.sources.misc
Systems : Unix
Description : linear programming by dual simplex method
Author : Badri Lokanathan
Version : 1.0, July 1989
Comments : don't miss minit.p1
Name : morrow.arc and gamaze.asc
Where : inside ddj9104.zip in published/dr-dobbs on ftp.uu.net
Description : genetic algorithm for optimisation, associated with
article on the subject by Mike Morrow.
Version : April 1991
Name : Mrandom (version 1)
Where : Comp.sources.unix, Volume 25, Issue 23, December 1991
Systems : 4.3bsd Unix
Language : C
Author : Clark Thomborson
Version : 1, 12/91
Description : bug fix for 4.3bsd Unix random()
Comments : random number generator, 4.3bsd Unix library routine
Name : Mrandom (version 2.3)
Where : anon ftp from theory.lcs.mit.edu, directory pub/cthombor,
have submitted to comp.sources.unix
Systems : 4.3bsd Unix
Language : C
Author : Clark Thomborson
Version : 2.3, 8/92
Description : bug fix for 4.3bsd Unix random(), interface to other RNGs
Comments : random number generator, 4.3bsd Unix library routine
Name : newmat
Where : volume34, issue 107 of comp.sources.misc
Language : C++
Systems : Unix (g++ 2.3.3 ok), MS-DOS (Borland C++)
Description : a very thorough matrix class
Author : Robert Davies (robertd@kauri.vuw.ac.nz)
Version : v7, 11 Jan 1993
Name : nlmdl
Where : in pub/arg/nlmdl at ccvr1.cc.ncsu.edu (128.109.212.20)
Language : C++
Systems : Unix, MS-DOS (Turbo C++)
Description : a library for estimation of nonlinear models
Author : A. Ronald Gallant, arg@ccvr1.cc.ncsu.edu
Comments : nonlinear maximisation, estimation, includes a real matrix class
Version : January 1991
Name : nonlinear
Where : in pub on lyapunov.ucsd.edu (132.239.86.10)
Language : various
Description : archive of programs in nonlinear dynamics, signal processing
Author : various, contact person is mbk@lyapunov.ucsd.edu (Matt Kennel)
Name : nrutil
Where : pub/incoming/nrutil.shar.Z on hilbert.math.ksu.edu or
usenet/alt.sources/articles/6772.Z on wuarchive.wustl.edu
Description : Appendix B of Numerical Recipes 2nd ed, a group of
vector/matrix initialisation function which NR has
standardised on.
Author : Numerical Recipes is by William Press et al, posted on
alt.sources by James C. Hu (jxh@math.ksu.edu)
Version : 8 Dec 1992
Comments : Note this is public domain, while none of the other NR
source is.
Name : nurbs.tar.Z
Where : in /pub/misc/unix/nurbs/nurbs.tar.Z on unix.hensa.ac.uk
Author : W. T. Hewitt et.al.
Description : Data structures and procedures for creation and
manipulation of B-Spline curves and surfaces.
Name : Octave
Where : ftp.che.utexas.edu:/pub/octave/octave-M.N.tar.Z
Systems : Compiles and runs on SPARC, RS/6000, DEC/Ultrix, i386/Linux
Language : C/C++/Fortran
Author : John W. Eaton
Version : In alpha test. Currently 0.70.
Description : Matlab-like interactive system for numerical computations
Comments : Includes C++ classes for matrix manipulation, numerical
integration, and the solution of systems of nonlinear equations,
ODEs and DAEs. Distributed under the GPL.
Name : ols
Where : ftp.uu.net in usenet/comp.sources.reviewed/volume01/ols
Systems : almost anything, but it's most useful under Unix
Description : A small linear regression package dressed as a Unix tool
Author : Ajay Shah, ajayshah@rcf.usc.edu
Version : v1.00, late 1991
Name : p4.tar.Z
Where : pub/p4 on info.mcs.anl.gov
Description : a library for writing parallel programs for shared-memory
or message-passing. It will work on a network of workstations
or on parallel hardware.
Author : lusk@mcs.anl.gov
Version : July 28, 1992
Name : paranoia
Where : research.att.com in dist; check netlib/paranoia too
Systems : Unix
Description : exercise the edges of your floating point implementation
Comments : also see `ieeetest' in this file.
Name : Pari/GP
Where : math.ucla.edu, ftp.infia.fr, other sites
Description : mainly oriented towards number theory, can and is used
for numerical computation. Contains arbitrary precision
code for all elementary transcendental functions,
many higher ones, numerical integration and summation, etc.
Systems : all 32 bit OS.
Name : pca
Where : in multi on Statlib
Description : principal component analysis
Name : perlman
Where : in misc on Netlib
Description : normal, chi-squared and F distributions
Author : Gary Perlman
Name : pierreQP.tar.Z (17680 bytes)
Where : in pub/C-numanal on usc.edu
Author : Pierre Asselin, pa@verano.sba.ca.us
Description : Extremely good package for calculation of gaussian
quadrature rules
Comments : numerical integration
Name : pinv
Where : in dhlib on elib.ZIB-Berlin.de
Description : cholesky decomp. for possibly rank-deficient PD matrices,
householder
Name : polyfit.tar.Z
Description : fit polynomials to data
Where : in ftp-raimund/pub/src/Math on nestroy.wu-wien.ac.at
(137.208.3.4)
Author : Ted Stefanik, ted@adelie.Adelie.COM
Version : 8 August 1989
Name : praxis
Where : in math on Simtel
Description : derivative-free maximisation
Version : July 1987
Name : presto
Where : pub/presto1.0.tar.Z on cs.washington.edu
Language : C++
Systems : Unix-like OS on (moderate) multiprocessor machines
Description : C++ routines for fine-grained parallel programming
(lightweight threads) on multiprocessors. Tuned for the Sequent
machines, but highly adaptable and customizable.
Author : Brian N. Bershad, Edward D. Lazowska, Henry M. Levy
Version : Version 1.0 is an optimized version by John E. Faust. (All
above are from U. Washington, Seattle)
Comments : Presto was the subject of a number of research papers in
multiprocessor OS. Version 1.0 looks usable (ie not
experimental anymore).
Name : psuedo.asc
Where : inside ddj9105.zip in published/dr-dobbs on ftp.uu.net
Description : implements R250 random number generator, from
S. Kirkpatrick and E. Stoll, Journal of Computational Physics,
40, p. 517 (1981).
Author : W. L. Maier
Name : random
Where : bsd-sources/src/lib/libc/gen on gatekeeper.dec.com
Description : the BSD C library random number generator
Name : random-c
Where : in c on Simtel
Description : portable, good random number generator
Name : range.tar.Z (191867 bytes)
Where : in pub/range on math.tamu.edu
Description : C++ class for interval arithmetic.
Associated with article in TOMS, Dec 1992 title
"Precise computation using range arithmetic, via C++"
Author : Oliver Aberth and Mark J. Schaefer
Version : Dec 1992 (?)
Name : ranpm
Where : in prog/libraries on nuri.inria.fr (128.93.1.26)
also in volume5 of comp.sources.misc in "random"
Description : the Park-Miller "minimal standard" random-number generator
Author : Ajay Shah, ajayshah@rcf.usc.edu
Version : February 1992
Comments : there are several other independent implementations,
all are quite alike
Name : ranlib-c
Where : pub/unix on odin.mda.uth.tmc.edu or in general on Statlib
Description : large library for random variate generation from many
univariate and multivariate distributions
Author : Barry Brown, bwb@odin.mda.uth.tmc.edu
Version : 16 Jan 1992
Name : rktec.Z
Where : in misc on netlib
Description : computes the truncation error coefficients, tecs, of a
Runge-Kutta formula, or a pair of formulas, specified in an
input file.
Author : Mike Hosea (mhosea@sun.cis.smu.edu)
Version : Sep 26 14:04:23 1992
Name : rlab
Where : /pub/alpha/RLaB/rlab-0.50.tar.Z on evans.ee.adfa.oz.au
Systems : Compiles and runs on Sun4, RS/6000, DEC/Ultrix, SysV/R4 i386,
Linux, HP-UX, SGI
Language : C + Fortran
Author : Ian Searle (ians@eskimo.com)
Version : In alpha test, currently v0.75, 25 April 1993
Description : "Matlab-like" interactive programming environment for
numerical computations.
Comments : Includes online help and LaTeX manual.
Name : robot
Description : a scientific graph plotting and data analysis package.
Works for Xview v3, and knows to generates postscript.
Where : in pub/astrod on ftp.astro.psu.edu (128.118.147.28)
Version : v0.46, 7 Feb 1993
Author : Robin Corbet (corbet@astro.psu.edu)
Name : rpart
Where : in general on Statlib
Description : Routines for recursive partitioning
Author : Terry Therneau, therneau@mayo.edu
Version : Feb 1991
Name : sa.zoo (40682 bytes)
Where : in pub/C-numanal on usc.edu
Description : library for simulated annealing
Language : versions for C, C++ and Ada exist.
Author : Skip Carter (skip@taygeta.oc.nps.navy.mil)
Version : Tue Nov 10 12:00:42 PST 1992
Name : sabre.tar.Z (813499 bytes)
Where : in pub on athena.erc.msstate.edu
Description : (not clear) a linear/nonlinear simulation system
Comments : the `portable math library' directory is definitely
very useful (5k lines). I noticed some interesting
interpolation, integration, banded LU decomposition,
nonlinear solver, etc.
Author : ?
Version : ?
Name : sge.shar
Where : in c on Netlib
Description : Linpack functions geco, gefa, gesl and a little of BLAS;
nonstandard matrices
Author : Mark K. Seager, seager@lll-crg.llnl.gov
Version : April 88
Name : SIMATH
Author : SIMATH-Gruppe, Saarbruecken, Germany
Systems : Unix
Where : via anonymous ftp: ftp.math.uni-sb.de (134.96.32.23),
ftp.math.orst.edu (128.193.160) in pub/simath
Version : 3.6.1
Description : SIMATH contains a lot of C-functions over algebraic
structures as arbitrary long integers, rational
numbers, polynomials, Galois fields, matrices,
elliptic curves, algebraic number fields, modular
integers, etc. There is also an interactive calculator
(simath) which uses the C-libraries of SIMATH.
Comments : version 3.6.1 contains a handbook written in English.
The SIMATH package also includes a user interface,
which makes it possible to use the on-line
documentation of the functions and the keyword index.
Name : simpack
Author : Paul A. Fishwick, fishwick@cis.ufl.edu
Description : tools for writing simulations with a EECS bias
Where : pub/simdigest/tools on bikini.cis.ufl.edu, also see
tr92-022.ps.Z from cis/tech-reports/tr92
Language : C and C++ versions exist
Version : v2.0, June 1992
Name : smirnov.shar.Z (3599 bytes)
Author : David Rapoport (actize@cea.berkeley.edu)
Version : 22 February 1993
Description : Kolmogorov Smirnov two-sample statistic
Where : in pub/C-numanal on usc.edu
Name : smooth.tar.Z
Description : Unix tool for smoothing
Where : in ftp-raimund/pub/src/Math on nestroy.wu-wien.ac.at
(137.208.3.4)
Author : Bill Davidsen (davisen@crd.ge.com)
Version : v1.9, 15 Aug 1989
Name : SPARSE
Where : in sparse on Netlib
Description : library for LU factorisation for large sparse matrices
Author : Ken Kundert, Alberto Sangiovanni-Vincentelli,
sparse@ic.berkeley.edu
Name : spline29.zip
Where : in mirrors/msdos/c on wuarchive.wustl.edu
Description : Interpolation using splines under tension, dressed up as
a Unix tool
Author : James. R. Van Zandt
Version : v2.9, 21 Nov 1992
Name : submit1
Where : in jcgs on Statlib
Description : damped convex minorant algorithm
Author : David Eberly, eberly@cs.unc.edu
Version : May 1992
Name : svd.c.Z (8704 bytes)
Where : in pub/C-numanal on usc.edu
Description : SVD based on pascal from J. C. Nash book
Author : Bryant Marks (bryant@sioux.stanford.edu)
Brian Collett (bcollett@hamilton.edu)
Version : 14 April 1993
Name : taranto-1.0.shar.Z
Where : in prog/libraries on nuri.inria.fr (128.93.1.26)
Description : portable, accurate FP to decimal conversion.
Name : totinfo
Where : in volume7 of comp.sources.misc
Description : info statistic and chi-square for 2-D contingency tables
Date : August 1989
Name : tsp
Where : pub/dank/tsp.zip at punisher.caltech.edu
Systems : Any C environment
Description : Simple heuristic Travelling Salesman Problem solver
Author : Dan Kegel - from "Discrete Optimization Algorithms," Maciej Syslo
Version : 1.1
Name : using-lapack.Z (8478 bytes)
Where : pub/C-numanal on usc.edu
Description : Notes on using Lapack through f2c.
Author : S. Sullivan (sullivan@mathcom.com)
Version : 14 April 1993
Name : vis5d
Where : vis5d.ssec.wisc.edu (128.104.231.66)
Systems : SGI, Stardent, IBM PC
Language : C, Fortran
Authors : Brian Paul (bpaul@vms.macc.wisc.edu) and Bill Hibbard
Version : 3.0 (soon to be 3.1)
Description : visualizing/animating data made by numerical weather
models and similar sources
Comments : vis5d interactively provides 3-D isosurfaces, vector-field
slices, horizontal and vertical contour and colored slices,
and ribbon "particle" trajectories (integral curves)
Name : vspline
Where : in gcv on Netlib
Description : non-parametric estimate of a smooth vector-valued
function from noisy data
Author : Jeff Fessler
Comments : splines
Name : weisfeld-simplex.shar (7457 bytes)
Where : pub/C-numanal on usc.edu
Description : small implementation of simplex method for linear programming.
Author : Matt Weisfeld (not on Internet)
Version : Feb 1993
Comments : associated with article in Feb 1993 CUJ.
For production use (where you want a black-box solver),
the `lpsolve' package (above) is better. If you want to
open up a simplex implementation and modify it, then this is
quite good, using the article as documentation.
Name : xgobi
Where : in general on Statlib
Systems : Unix, needs X Windows
Description : a data analysis package emphasising graphical data exploration
Author : Debby Swayne, dfs@bellcore.com
Dianne Cook, dcook@fisher.rutgers.edu
Andreas Buja, andreas@bellcore.com
Date : 23 March 1993
Comments : EDA
Name : XLispStat
Where : pub/xlispstat on umnstat.stat.umn.edu
Systems : Unix, Macintosh, MSW
Description : a statistical package
Author : Luke Tierney, luke%umnstat@umn-cs.cs.umn.edu
Version :
Comments : object-oriented, EDA, graphics, lisp
Name : xtrap.c.Z (4463 bytes)
Author : Bryan M. Gorman, gorman@scri.fsu.edu
Version : 28 July 1992
Description : extrapolation program. Supports 6 algorithms: VBS
approximants, Aitken delta-squared, Wynn epsilon algo,
Wynn rho algo, Brezenski theta algo, Levin u-transform.
Is dressed up as a Unix tool.
Where : pub/C-numanal on usc.edu
Name : xvgr/xmgr (open look or motif versions)
Where : /CCALMR/pub/acegr on amb4.ccalmr.ogi.edu
Systems : Unix, with either open look or motif
Description : graphics for EDA
Author : Paul J. Turner, pturner@amb4.ccalmr.ogi.edu
Version : 2.10, 2 May 1993
f2c
---
In case you had not already noticed it: a public domain, industrial
strength, fortran-to-C translator named f2c exists. It has one great
strength and one great weakness: "It is a true compiler". Thus the
code generated always "works", at the price of frequently looking like
fortran.
A lot of useful fortran libraries can readily be turned into working C
using f2c, and the resulting C can often be made almost human after
some hand-editing. The weakest link of f2c is code which involves
matrices.
A pointer to f2c is at EOF. f2c is also inside Netlib, so you are
probably better off figuring out how to use Netlib.
Other pointers
--------------
There is a lot of interesting C source in these fields which I know nothing
about:
- signal processing
- pattern recognition, neural networks
The comp.dsp FAQ has some pointers to source code.
Please send me complete entries to include in the above index.
A lot of 3rd party source code which hooks into the S statistical package
uses computational engines written in C. With a little work you can extract
useful source from this. Look in the S directory on Statlib for more
pointers. If you find something which is remarkably useful and easy
to extract, please tell me about it.
The same phenomenon operates to some extent for the XLispStat package.
Look around on the umnstat.stat.umn.edu site.
Interesting sites
-----------------
If you don't have ftp access, send email to ftpmail@decwrl.dec.com
saying "help". You will get instructions on how to do ftp via email.
source-code newsgroups:
ftp.uu.net (e.g. usenet/comp.sources.reviewed archives the
comp.sources.reviewed newsgroup).
f2c:
dist/f2c on research.att.com
pub/gnu on prep.ai.mit.edu
Netlib:
research.att.com email, ftp
ornl.gov email, xnetlib
nac.no email, xnetlib for Europe
(e.g. send email to netlib@ornl.gov to access by email)
unix.hensa.ac.uk is a mail server useful for Europe.
ci.cs.uow.edu.au (130.130.64.3) in Australia
Statlib:
lib.stat.cmu.edu (as statlib)
dmssyd.syd.dms.csiro.au (130.155.96.1)
others:
qiclab.scn.rain.com has a small collection in pub/math, including
fft stuff not listed above. elib.ZIB-Berlin.de is quite interesting
too.
Books
-----
Name : C Mathematical Function Handbook
Author : Louis Baker
Language : C and C++
Version : 757 pages, soft, including floppy, McGraw Hill, 1992, $50
Description : Code implementing the algorithms and formulas in
Abramovitz and Stegun, with several chapters added. It will
save you a lot of time as compared with writing code out of A&S.
95% of the pages in the book are merely the source code, without
even doing pretty printing. It improves on A&S in (broadly)
mathematical physics.
The code does not show very good C competence. The code
and the book betray their development on a computer running
MS-DOS. Sometimes, more-recent algorithms which improve on A&S
are ignored.
Name : Applied Numerical Methods in C
Author : Shoichiro Nakamura
Version : Prentice Hall, hardback, $48; disk+manual costs $35.
604 pages.
Name : Numerical Recipes in C
Author : William H. Press, Saul A. Teukolsky, William T. Vetterling
and Brian P. Plannery
Language : C
Version : 2nd edition, 933 pages, Cambridge University Press, 1992,
$50 hard, $20 for the floppy.
Description : A very thorough first book on numerical computation, with
accompanying source code. The methods are often not
industrial-strength, and a expert on (say) linear algebra
will be disappointed at the treatment of linear algebra.
But to a relative novice it's easy to start using, and
likely to work pretty well pretty often. Within the
constraint of being accessible to a novice to numerical
computation, the methods here are uptodate.
The text is refreshing and a real pleasure to read. Thus,
for example, even if you plan to use Linpack source code
to do a SVD, it's well worth reading the text here. The
authors are often opinionated in situations where the
relative merits of alternative methods are not known "for
sure", this gives the reader the benefit of their wisdom
(in ways that experts will sometimes consider
superficial). I think such editorialising is very useful
to the novice, even though it is bound to be misleading at
times.
The typesetting is superb: it is done using TeX. The
second edition has a two-tier treatment where advanced
topics are in smaller type. All the source code is
printed in the book, and very beautifully at that -- i.e.,
it's not a mere waste of paper. The floppy has examples
of usage of every function; these examples are not in the
book.
The source code is widely used, but not as much as
Linpack. Hence we often hear complaints on the net about
subtle errors in their FFT and SVD functions. Presumably
there are other errors too. The book exists in a fortran
version too, and the development of the C version is not
done independently of the fortran. Hence their C is a bit
fortran-like.
Their C uses base-1 arrays. This is inconsistent with C
idiom and incorrect according to the ANSI C standard. It
can be fixed by wasting a little memory and fixing nrutil.
Perhaps the worst drawback of the source code is that it
is copyrighted (unlike (say) Linpack). Thus while you can
use it in your programs (after buying the floppy), you are
not allowed to send a program containing this source code
to anyone else. Thus when you choose to use Numerical
Recipes source code for your work, you implicitly give up
the right to {give your program to a colleague, or post it
on the net, or sell it} without dealing with their
lawyers.
The file usc.edu:pub/C-numanal/nr.experiences (16158 bytes)
will tell why a lot of "real numerical analysts" dislike
Numerical Recipes.
Name : Computing for Scientists and Engineers: A workbook for
analysis, numerics and applications
Author : William J. Thompson
Language : C
Version : 464 pages, $55, John Wiley and Sons
Credits
-------
The following people helped me put this index together:
Bardo Muller bardo@gonzales.ief-paris-sud.fr
David E. Stewart des@thrain.anu.edu.au
Skip Carter skip@taygeta.oc.nps.navy.mil
John Gregory jwg@db.cray.com
John Eaton jwe@che.utexas.edu
P. G. Hamer P.G.Hamer@bnr.co.uk
Alan Magnuson awm@osc.edu
David Rapoport actize@garnet.berkeley.edu
Peter Fraenkel pnf@pwcm.com
Martin-D. Lacasse isaac@physics.mcgill.ca
Matthew Koebbe phaedrus@alioth.cc.nps.navy.mil
Nicolas Ratier ratier@laas.laas.fr
Henri Cohen cohen@merak.greco-prog.fr
Bill Hutchison bhutchi@godiva.ssw.com
Ronald F. Guilmette segfault!rfg@netcom.com
Jay Han han@corto.inria.fr
Van Snyder vsnyder@math.Jpl.Nasa.Gov
Alan Cabrera adc@tardis.cl.msu.edu
Vincent Broman broman@peanuts.nosc.mil
Piercarlo Grandi pcg@aberystwyth.ac.uk
Of course, we owe infinite gratitude to the authors themselves, for
making their work available in the public domain.