IUBio GIL .. BIOSCI/Bionet News .. Biosequences .. Software .. FTP

Index of free C or C++ source code for numerical computation

Rob Harper Rob.Harper at CSC.FI
Tue Sep 15 01:42:22 EST 1992

Welcome to $Revision: 1.1 $ of the index of free source code for
numerical computation written in either of C or C++.  The most
recent version of this file may be found in netlib/c/free-c.

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.

        -Ajay Shah, Ajay_Shah at rand.org
        $Date: 1992/07/28 13:08:31 $

* 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     If it does not run on "almost any computer on earth", a
            list of systems is shown.
Language    If it's not ANSI C, then the language is shown.  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; please 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

Where: in sparse on Netlib
Description: library for LU factorisation for large sparse matrices 
Author: Ken Kundert, Alberto Sangiovanni-Vincentelli, sparse at ic.berkeley.edu

Name: XLispStat
Where: pub/xlispstat on umnstat.stat.umn.edu
Systems: Unix, Macintosh, MSW
Description: a statistical package
Author: Luke Tierney, luke%umnstat at umn-cs.cs.umn.edu
Comments: object-oriented, EDA, graphics, lisp

Name: ajay
Where: in general on Statlib
Description: cholesky decomposition and drawing from MVN
Author: Ajay Shah, ajayshah at usc.edu
Version: 23 Sept 1991

Name: brent rootfinding, aitken-lagrange interpolation, hooke-jeeve minimiser
Where: in c on Netlib
Author: Oleg Keselyov, oleg at nrcbsa.bio.nrc.ca
Comments: includes a vectors library.  Netlib:c++/brent has C++ version.
Version: May 1991

Name: cephes
Author: Stephen L. Moshier
Description: extremely good library of 100 special functions and probability densities
Where: in pub/C-numanal on usc.edu, should soon appear on Netlib too
Version: 2.0, April 1987

Name: dcg.shar
Where: in c on Netlib
Description: preconditioned conjugate gradient method
Author: Mark K. Seager, seager at lll-crg.llnl.gov

Name: dtoa.c
Where: in fp on Netlib
Description: correctly rounded decimal <--binary conversion

Name: fft.shar
Where: in c++ on Netlib
Description: radix 2 FFT

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 at 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: gaut
Where: in general on Statlib
Description: upper-tail probabilities on normal and t densities
Author: Ajay Shah, ajayshah at usc.edu
Version: 12 May 1991

Name: ga's
Where: pub/galist/source-code/ga-source on ftp.aic.nrl.navy.mil (
Description: many genetic algorithm optimisation libraries, all in C
Comments: they are GAucsd 1.4 (Nici Schraudolph, nici at cs.ucsd.edu), GENEsYS 1.0 (Thomas Baeck, baeck at home.informatik.uni-dortmund.de), Genesis 5.0 (John J. Grefenstette, gref at aic.nrl.navy.mil), Goldberg's SGA in C (with a nCube version) by Rob Smith, rob at galab2.mh.ua.edu

Name: gemmw
Description: a highly portable Level 3 BLAS implementation of Winograd's variant Strassen's matrix multiplication algorithm
Where: in misc on Netlib
Author: Craig C. Douglas, douglas-craig at CS.YALE.EDU
Version: 22 May 1992

Name: go.c.Z
Where: in 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: 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: lin_alg.shar
Where: in c++ on Netlib
Description: BLAS 1 and 2 in C++

Name: lpsolver
Where: volume02 of comp.sources.reviewed (Real Soon Now)
Description: very good mixed integer linear problem solver
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 at antares.mcs.anl.gov, and Tim Hopkins
Version: October 1985

Name: madpack
Where: in pdes/madpack/c
DescriptioN: multigrid/aggregation/diaggregation package for PDEs

Name: matrix.tar.Z
Where: in ftp-raimund/pub/src/Math on nestroy.wu-wien.ac.at (
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++
Where: some site in UCLA
Description: a recently released C++ matrix class

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 at thrain.anu.edu.au
Version: 1.0, Feb 1992

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: newmat
Where: volume26 of comp.sources.misc
Language: C++
Systems: Unix, MS-DOS (Turbo C++)
Description: a very thorough matrix class
Version: v4

Name: nlmdl
Where: in pub/arg/nlmdl at ccvr1.cc.ncsu.edu (
Language: C++
Systems: Unix, MS-DOS (Turbo C++)
Description: a library for estimation of nonlinear models
Author: A. Ronald Gallant, arg at 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 (
Language: various
Description: archive of programs in nonlinear dynamics, signal processing
Author: various, contact person is mbk at lyapunov.ucsd.edu (Matt Kennel)

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 at 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 at mcs.anl.gov
Version: July 28, 1992

Name: paranoia
Where: research.att.com in dist
Systems: Unix
Description: exercise the edges of your floating point implementation

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
Where: in C-numanal on usc.edu
Author: Pierre Asselin
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 (
Author: Ted Stefanik, ted at adelie.Adelie.COM
Version: 8 August 1989

Name: praxis
Where: in math on Simtel
Description: derivative-free maximisation
Version: July 1987

Name: presto
Where: ??
Description: C++ routines for (simulating?) parallel programming

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: ranpm
Where: in prog/libraries on nuri.inria.fr (
Where: also in volume5 of comp.sources.misc in "random"
Description: the Park-Miller "minimal standard" random-number generator
Author: Ajay Shah, ajayshah at 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 at odin.mda.uth.tmc.edu
Version: 16 Jan 1992

Name: rpart
Where: in general on Statlib
Description: Routines for recursive partitioning
Author: Terry Therneau, therneau at mayo.edu
Version: Feb 1991

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 at lll-crg.llnl.gov
Version: April 88

Name: smooth.tar.Z
Description: Unix tool for smoothing
Where: in ftp-raimund/pub/src/Math on nestroy.wu-wien.ac.at (
Author: Bill Davidsen (davisen at crd.ge.com)
Version: v1.9, 15 Aug 1989

Name: spline
Where: in misc on Netlib
Description: splines under tension, dressed as a Unix tool
Author: J. R. Van Zandt and A. K. Cline

Name: submit1
Where: in jcgs on Statlib
Description: damped convex minorant algorithm
Author: David Eberly, eberly at cs.unc.edu
Version: May 1992

Name: totinfo
Where: in volume7 of comp.sources.misc
Description: info statistic and chi-square for 2-D contingency tables
Date: August 1989

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: xgobi
Systems: Unix, needs X Windows
Description: a data analysis package emphasising graphical data exploration
Author: Debby Swayne, dfs at bellcore.com; Dianne Cook, dcook at fisher.rutgers.edu
Versions: 25 March 1992
Comments: EDA

Name: xvgr/xmgr (open look or motif versions)
Where: pub/grtool on ese3.ese.ogi.edu
Systems: Unix, with either open look or motif
Description: graphics for EDA
Author: Paul J. Turner, pturner at ese.ese.ogi.edu
Versions: 2.0?

* 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

A lot of useful fortran libraries can readily be turned

More information about the Bio-soft mailing list

Send comments to us at archive@iubioarchive.bio.net