Part 1 of 3: Free C,C++ for numerical computation 
Author Message
 Part 1 of 3: Free C,C++ for numerical computation

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
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       :
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
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
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
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

Version     : II

Name        : bignum
Where       : pub/bignum on ;
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 (
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

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
Date        : August 4 1992

Name        : C++SIM
Where       : on
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       :
Systems     : Unix
Language    : C

Version     : 1.0 (12 Sep 1994)
Description : A library for testing normality & exponentiality
Comments    : Draft docs at\
              grass/tutorials/ 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       : []
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
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        : (12263 bytes)
Where       : in pub/C-num{*filter*}on
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       : 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
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
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
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 (

Name        : fec
Authors     : B. Bagheri (email?)
Description : A collection of finite element libraries in C++
Where       : pub/Math on
Language    : GNU C++
Version     : 1.1
Date        :

Name        : FElt
Where       : pub/felt on
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
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
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
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
Description : C-based fitting and data manipulation program (works on
              top of gnuplot).  Gives you a C-like interpreted script
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
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

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 (
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
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       :
Version     : 3.3b
Language    : ANSI C

Name        : gmp-1.3.tar.z
Description : GNU multiple precision library
Where       : in pub/gnu on
Version     : 1.3, May 10 1993
Author      : ?

Name        : gmt
Where       :
Description : great scientific graphics
Author      : ?
Systems     : Unix
Comments    : Fits the Unix philosophy.  Postscript output supported.
Language    : C

Name        : Gnans
Where       : in
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
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
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
              Can be used as a C library.
Date        : 17 August 1993

Name        : go.c.Z (7288 bytes)
Where       : in pub/C-num{*filter*}on
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
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

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

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
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       : (The slightly outdated
              user manual is in pub/kaskade/AltesZeug/ - in

Name        : LASSPTools
Where       : /pub/LASSPTools at
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 (

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        :

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

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

Ajay Shah                                                  Work: 91-22-4300531
Centre for Monitoring Indian Economy, Bombay               Fax:  91-22-4370558

Sun, 20 Jul 1997 14:00:34 GMT  
 [ 1 post ] 

 Relevant Pages 

1. Part 2 of 3: Free C,C++ for numerical computation

2. Part 2 of 3: Free C,C++ for numerical computation

3. Part 2 of 3: Free C,C++ for numerical computation

4. Part 3 of 3: Free C,C++ for numerical computation

5. Part 1 of 3: Free C,C++ for numerical computation

6. Part 3 of 3: Free C,C++ for numerical computation

7. Part 2 of 3: Free C,C++ for numerical computation

8. Part 1 of 3: Free C,C++ for numerical computation

9. Part 3 of 3: Free C,C++ for numerical computation

10. Part 3 of 3: Free C,C++ for numerical computation

11. Part 2 of 3: Free C,C++ for numerical computation

12. Part 1 of 3: Free C,C++ for numerical computation


Powered by phpBB® Forum Software