Last-Modified: $Date: 1994/12/01 06:00:46 $
Version: $Revision: 1.24 $
Frequency: Monthly
Welcome to of the index of resources for numerical computation
in C or C++. It is a collection of pointers to:
- free source code available on the net,
- articles and documents, especially those available over the net.
This file is
ftp://usc.edu/pub/C-numanal/numcomp-free-c.gz
ftp://ftp.math.psu.edu/pub/FAQ/numcomp-free-c
or c/numcomp-free-c on netlib (slightly outdated).
Also see the last item on http://www.*-*-*.com/
The book reviews which were here have been deleted in order to
fight bloat. You can find them in
http://www.*-*-*.com/ ~ajayshah
but be warned that we have a slow leased line and our systems are only
up from 9 to 7 GMT+0530.
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
* Credits
The index is biased towards fields I work in.
Please send me suggestions, corrections and improvements.
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. Ideally I try to give information
which is explicit enough for use with (say) ftpmail.
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 : AIPS++ library (beta)
Where : ftp://aips2.cv.nrao.edu/pub/aips++/RELEASED/libaips-3
Systems : Unix
Language : C++
Version : 3
Description : A class library under development for radio astronomical
calibration and imaging.
Comments : Released library has multidimensional array classes, FFT's
gridding of ungridded data, containers, tables, a documentation
extractor (from comments), etc.
Name : ADOL-C
Systems : Unix, cfront or g++
Version : 1.5 (Dec 1993)
Description : Automatic differentiation package in C++
Where : In pub/ADOLC at ftp sites
info.mcs.anl.gov and nbtf02.math.tu-dresden.de
Comments : Contains{*filter*}documentation.
Associated with article in TOMS.
See book "Automatic differentiation of algorithms" edited
by George Corliss and Andreas Grie{*filter*}, SIAM, Dec 1991, where
the chapter by D. Juedes lists many other automatic
differentiation packages.
Name : ajay
Where : in general on Statlib
Description : cholesky decomposition and drawing from MVN
Version : 23 Sept 1991
Name : as274_fc.tar.z (42748 bytes)
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-num{*filter*}on usc.edu
Comments : note the .z is the new gzip compression.
Name : ASA
Where : file ASA.tar.gz. ASA.tar.Z, ASA-shar.Z, ASA-shar in
ftp.alumni.caltech.edu:/pub/ingber [131.215.139.234]
Description : adaptive simulated annealing: performing adaptive global
optimization on multivariate nonlinear stochastic systems
Language : either K&R or ANSI C
Comments : See file /pub/ingber/MISC.DIR/parallel.txt for a running
account of the Parallelizing ASA and PATHINT Project (PAPP)
Version : 5.6, Fri Dec 23 18:54:32 GMT+0530 1994
Name : awesime
Description : a C++ task library explicitly designed for simulation.
Where : pub/cs/misc/Awesime on ftp.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.
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 : blas.cpp.shar.z
Where : in pub/C-num{*filter*}on usc.edu
Description : a BLAS in C++
Version : beta, 8 May 1993
Name : brent rootfinding, aitken-lagrange interpolation,
hooke-jeeve minimiser
Where : in c on Netlib
Comments : includes a vectors library. Netlib:c++/brent has C++ version.
Version : May 1991
Name : c++ (5665 bytes)
Description : Summary of 1992 workshop "Scientific Computing in C++"
(plain text file)
Where : mgnet/papers/Ruede on casper.cs.yale.edu
Date : August 4 1992
Name : C++SIM
Where : on arjuna.ncl.ac.uk
pub/C++SIM/Source/C++SIM_PR1.0_tar.Z
pub/C++SIM/Papers/C++SIM_EuropeA4.ps.Z
pub/C++SIM/Papers/C++SIM_USLetter.ps.Z
Description : SIMULA and SIMSET style simulation package in C++
with accompanying documentation.
Version : 1.0 (June 14th 1993)
Comments : A complete simulation package for creating process based
discrete event simulation as in SIMULA. The linked-list
manipulation facilities provided by SIMSET are also
provided in the package. The system is built in an object-
oriented manner and the documentation provides information
on how it can be modified and extended. Active objects in
C++ can also be provided outside of the simulation package
by simply inheriting the desired thread characteristic.
Name : cdhc
Where : ftp://pasture.ecn.purdue.edu/pub/mccauley/grass/cdhc.tar.gz
Systems : Unix
Language : C
Version : 1.0 (12 Sep 1994)
Description : A library for testing normality & exponentiality
Comments : Draft docs at ftp://pasture.ecn.purdue.edu/pub/mccauley\
grass/tutorials/libcdhc-tutorial.ps.gz. Includes
D'Agostino's D, Anderson-Darling, Cramer-Von Mises W^2,
Kolmogorov-Smirnov, Chi-Square, Shapiro-Wilk, many others.
Expands and fixes bugs in general/cdh in statlib.
Name : cephes
Description : Emphasis on high accuracy special functions, 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
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
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 : code++
Where : in pub/code++ on elib.ZIB-Berlin.de
Language : C++
Systems : UNIX, GNU g++ and cfront
Description : C++ class library for ordinary differential equations
and related problems. Contains lots of useful classes
for linear algebra (vectors, matrices, linear solvers,
pseudoinverses), and other utilities (minimal tool command
language, etc.).
The integration classes for ODEs are based on adaptive
extrapolation methods (explicit Euler discretization
for non-stiff, and implicit for stiff ODEs). Classes
for continuous output, stepsize freezing, and variational
equations are also provided, as well as an experimental
multiple shooting environment for BVPs.
Name : cvmath.cc (12263 bytes)
Where : in pub/C-num{*filter*}on usc.edu
Systems : Unix
Language : C++
Description : An include file to make complex math look like
regular math.
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 : CVODE
Where : netlib/ode/cvode.tar.Z
Author : Choen, Scott D. and Alan C. Hindmarsh
Version : 5 October 1994
Language : Ansi C
Description : ODE solver
Comments : Integrates ODE's. BDF or Adams-Moulton Formula.
Implicit equation is solved with Functional or Newtontype
iteration. Direct or iterative solution of the lin. eq. of
the Newton iteration. Dense, diagonal, banded or sparse
approximation of the Jacobimatrix of the right hand side of
the ODE. Manual (91 p.) in postscript.
Name : dcdflib
Authors : Barry W. Brown, James Lovato, Kathy Russell
Description : Library of Routines for Cumulative Distribution
Functions, Inverses, and Other Parameters
Systems : Unix
Where : odin.mda.uth.tmc.edu in pub/unix/dcdflib.c-1.0-tar.Z
Language : K&R and ANSI C available.
Version : 1.0, February 1994
Name : dcg.shar
Where : in c on Netlib
Description : preconditioned conjugate gradient method
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
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
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 : fec
Authors : B. Bagheri (email?)
Description : A collection of finite element libraries in C++
Where : pub/Math on karazm.math.uh.edu
Language : GNU C++
Version : 1.1
Date :
Name : FElt
Where : pub/felt on cs.ucsd.edu
Description : introductory finite element analysis
Systems : Unix commandline or Unix + X
HP-SUX, Sun, Linux, DOS.
Version : 2.0, 28 February 1994
Comments : postscript manual and mailing list exists.
Name : femlib-1.1.tar.gz
Where : pub/C-num{*filter*}on usc.edu
Systems : UNIX
Language : C++
Version : 1.1, June 17 1993
Description : C++ class libraries for doing Finite Element simulations,
Garbage Collection, Automatic Differentiation as
well as a library for Sparse Matrices.
Comments : This release is still pretty rough but should compile
with gcc-2.4.3, gnumake-3.6x, libg++-2.3.1 and
makedepend (from X11 distribution).
Name : fft.shar
Where : in c++ on Netlib
Description : radix 2 FFT
Name : fft-sstuff.tar.z
Where : in pub/C-num{*filter*}on usc.edu
Description : summary about FFT code in C, including lots of source
Version : 19 March 1993
Comments : Includes DDJ's improved version of Numerical Recipes four1().
Name : fftsing
Where : in edu/math/msdos/modelling on wuarchive.wustl.edu
Description : FFT of extremely long series; Singleton's mixed radix algo
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
Systems : many (including DOS)
Language : FORTRAN (FSQP), C (CFSQP) ,
Version : FSQP: 3.3b, 9/93; CFSQP: 2.0, 7 Feb 1994
Description : solution of constrained continuous optimization problems,
possibly minimax (cost function is max of finitely many
functions). CFSQP also includes efficient scheme to
handle problems with many "sequentially related" objectives
or constraints (e.g., finely discretized minimax problems
or semi-infinite problems).
Comments : modified SQP scheme; successive iterates are all feasible
(inequality constraints) or "semi-feasible" (equality
constraints). 70 page manual.
keywords nonlinear minimisation maximisation
nonlinear programming
Name : fudgit_2.31.tar.Z (451691 bytes)
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 : See entry on gnuplot elsewhere in this document.
Version : 2.31, 13 April 1993
Name : gaut
Where : in general on Statlib
Description : upper-tail probabilities on normal and t densities
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
Goldberg's SGA in C (with a nCube version) by Rob Smith,
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
Version : 22 May 1992
Name : genocop{,2}.tar.Z
Where : in coe/evol 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".
Version : 2
Name : geometry
Description : archive containing many programs on geometry
Where : pub on geom.umn.edu
Comments : Short summary as of 5 June 1993
geomview -- interactive geometry viewing for SGI IRIS
evolver -- models evolution of surfaces driven by forces
hcad -- drawing hyperbolic polyhedra in 3d poincare disk (for X)
invriemann -- inverse riemann mapping by circle packing
riemannmap -- riemann mapping by circle packing
kali - 2D euclidean symmetry pattern editor for SGI IRIS
minneview -- general 3d viewing program for SGI IRIS
polycut -- covering spaces of 3d euclidian space from inside
crsolver -- conformal mapping, complex analytic functions (NeXT)
automata -- automatic groups programs
epsilon -- utility for squashing FP roundoff errors in data files
hyper -- projective <--> conformal models of hyperbolic space
omni_interp and
interpolate -- interpolating between formatted data files
kaleido -- constructing uniform polyhedra
qhull -- general dimension convex hull computations program
snappea -- hyperbolic structures computations
vcs -- 3d voronoi diagram program
viewwld -- viewing line drawings in 3d space (for Suns)
vor2d -- 2d voronoi and delaunay diagrams, with cheyenne graphics
kaos -- interactive dynamical systems package (Suns)
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
Name : gmp-1.3.tar.z
Description : GNU multiple precision library
Where : in pub/gnu on prep.ai.mit.edu
Version : 1.3, May 10 1993
Author : ?
Name : gmt
Where : kiawe.soest.hawaii.edu:/pub/gmt
Description : great scientific graphics
Author : ?
Systems : Unix
Comments : Fits the Unix philosophy. Postscript output supported.
Language : C
Name : Gnans
Where : in ftp.mathematik.uni-Bremen.de:/pub/gnans
Systems : Solaris 2.x, SunOS 4.1.x, SGI IRIX 5.x.
Language : C++
Version : 1.3, 26 August 1994
Description : Analyse deterministic and stochastic dynamic systems
Comments : A program (and language) for dynamical systems. Includes
simple scripting language. Graphical user interface. Copyleft.
There is a mailing list.
Name : gnufit10.tar.gz
Description : Gnuplot 3.2 with nonlinear regression features added
Systems : Most Unix, OS/2 2.x. Needs popen(3).
Where : pub/utils in coli.uni-sb.de
Version : 1.0
Comments : Levenberg-Marquadt nonlinear least squares
Date : 28 June 1993
Name : gnuplot3.5.tar.Z
Description : plotting package for functions and data
Systems : all systems, all graphics file formats, all output devices
Where : in pub/gnuplot on ftp.dartmouth.edu
Version : 3.5
Comments : Includes probability functions, 3d plotting with contours
and hidden line removal, parametric functions. Has
manual, online help, commandline editing and a newsgroup
comp.graphics.gnuplot
Can be used as a C library.
Date : 17 August 1993
Name : go.c.Z (7288 bytes)
Where : in pub/C-num{*filter*}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
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
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 : hepC++.html
Authors : Marcus Speh (?)
Description : Information on C++ applications in HEP
Where : in pub/www/projects on info.desy.de
Language : access through WWW
Date : June 21 1993
Name : hooke.c
Authors : Mark Johnson
Description : Hooke and Jeeves Algorithm
Where : netlib/opt/hooke.c
Language : C
Name : ieeetest.zoo (65783 bytes)
Where : in pub/C-num{*filter*}on usc.edu
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.
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 : jgraph.Z
Description : filter for producing {encapsulated,} postscript
using input in a script language. Presentation quality results.
Systems : Unix
Where : in pub on princeton.edu, also jgraph.shar in misc on netlib
Language : C
Version : 8.3
Comments : Very useful for post-processing the results of a computational
program. E.g. an awk program can turn numbers into jgraph
code, or a C program can generate jgraph directly.
The script language gives a very high degree of control over
the final appearance. There is a mailing list.
Date : Nov 30 1992
Name : kalman.tar.gz (22747 bytes)
Where : in pub/C-num{*filter*}on usc.edu
Description : A class library for Kalman filtering
Language : C++ (works with g++ 2.4.2 also)
Version : v1.0, 3 July 1993
Name : Karma
Where : graphics/graphics/packages/karma on wuarchive.wustl.edu
Description : DSP package
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.
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 ept.msc.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)
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
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
Version : 1.4, 18 January 1994
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 : lsqrft15.zip
Systems : OS/2 2.x, UNIX
Version : 1.5, 28 February 1994
Description : Non-linear least squares fitting program that opens
a pipe to gnuplot and plots data and attempted fit.
It's easy to define your own functions and recompile.
Can fit multidimensional data to functions of more
than one independent variable. You can choose whether
to vary parameters.
Language : ANSI C
Where : pub/os2/2_x/unix/lsqrft*zip on ftp.cdrom.com
Name : machar
Where : in misc on Netlib
Description : find out properties of floating point hardware
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.
--
------------------------------------------------------------------------------
Ajay Shah Work: 91-22-4300531
Centre for Monitoring Indian Economy, Bombay Fax: 91-22-4370558