3-3 FINDING USEFUL ROUTINES
****************************
Writing a good procedure may be a time consuming task, and require
a lot of expertise. It may require a study of the algorithms involved,
taking into consideration numerical and programming issues and then
programming and careful debugging.
Using procedures written by other people saves time and usually can
improve your code. However you have to excercize some caution, it may
make your programs non-redistributable, also some sources may contain
code that is of low-quality from the numerical analytic point of view.
Netlib
------
A very large collection of good routines and information by various
authors. A quick reference index can be found in appendix E.
From the Netlib FAQ:
The Netlib repository contains freely available software, documents,
and databases of interest to the numerical, scientific computing, and
other communities.
The repository is maintained by AT&T Bell Laboratories, the University
of Tennessee and Oak Ridge National Laboratory, and by colleagues
world-wide. The collection is replicated at several sites around the
world, automatically synchronized, to provide reliable and network
efficient service to the global community.
Netlib mirror site URL
------------------- ----------------------------------------------------
Tennessee, USA http://www.netlib.org/
New Jersey, USA http://netlib.bell-labs.com/netlib/master/readme.html
Bergen, Norway http://www.netlib.no/netlib/master/readme.html
Hensa, Kent, UK http://www.hensa.ac.uk/ftp/mirrors/netlib/master
ZIB, Germany ftp://ftp.zib.de/netlib/
NCHC, Taiwan ftp://ftp.nchc.gov.tw/netlib/
Japan http://phase.etl.go.jp/netlib/
Access method Directions
-------------------- ------------------------------------------------
World Wide Web (WWW) URL: http://www.netlib.org/
email for a contents summary and instructions
Send the message: send index
to: netlib@netlib.org
Anonymous ftp to: ftp.netlib.org
gopher Point your gopher browser to: gopher.netlib.org
xnetlib Not recommended
cd-rom Netlib (other than toms) is available on CD-ROM
NUMERICAL RECIPES
-----------------
A collection of routines distributed commercially in source code format.
Performs a wide range of numerical tasks, for example:
Linear Algebraic System / Interpolation /
Integration / Approximation / Special Functions /
Random Numbers / Sorting / Root Finding /
Minimization / Eigensystems /FFT and applications /
Statistics / Data Modeling / ODE's / ...
Numerical Recipes are harshly criticized by numerical analysts for the
quality of the code, algorithms and numerics, and for using algorithms
long ago superseded by better ones. A common opinion is that the routines
shouldn't be used for serious work, as they can give inaccurate or even
plain wrong results without any warning.
Numerical Analysis being a difficult subject to master, NR established
a wide clientele by offering a relatively cheap and very easy to use
alternative. Many users of mathematical software knows very little on
Numerical Analysis and can't judge its quality, or what lack of it means.
A book containing basic theory and description of the routines is :
NUMERICAL RECIPES in FORTRAN
The art of scientific computing
Second edition
William H. Press / Saul A. Teukolsky
William T. Vetterling / Brian P. Plannery
Cambridge University Press
ISBN 0-521-43064-X
The routines themselves are distributed in an archived form on a PC or
MAC diskette. An examples book is also available.
The first author made a gopher index of the somewhat old SLATEC library,
so it is not a surprise that his Runge-Kutta integrator seems similar
to the older routines by Shampine. Less care for important details like
the control of the step-size made his routine perform unreliably on a
simple non-stiff orbit calculation. Since there are free professional
integrators that offer so much more functionality, we just switched to
one of them.
Numerical Algorithms Group (NAG)
--------------------------------
A commercial routine library, you link it with your
compiled program.
Visual Numerics (formerly IMSL)
-------------------------------
A commercial routine library, you link it with your
compiled program.
MATLAB
------
Matlab is one of many interactive packages, some of them free
(see the Numerical Analysis FAQ).
Remember that such interactive packages may run up to 100 times
slower than compiled code (ref: Mathlab News and Notes), this
figure may be even higher when compared with good Fortran code.
NIST
----
Statlib
-------
NCAR
----
Return to contents page