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:                [email protected]
  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