This file contains the complete plain text version of the material
displayed by the NRHELP program.  Obviously, in this listing,
you should ignore instructions asking you to press function keys.
Instead, simply read, or print out, this file in a linear manner.

                                 Main Menu 
      Don't miss the 20% discount flier from Cambridge University Press!
      It is packaged with your new Microsoft FORTRAN compiler or upgrade.

       Press a function key (F1-F10) to jump to the following topics:

              F1 - How to INSTALL the Numerical Recipes archives
              F2 - License Information and WARRANTY DISCLAIMER
              F3 - How to use NRCOPY (accessing the files)
              F4 - How to order Numerical Recipes books
              F5 - How to use the Example programs
              F6 - Compiler hints, troubleshooting, and common questions
              F7 - List of the Numerical Recipes (REC archive)
              F8 - List of the Example programs (EXA archive)
              F9 - List of other supplied files (OTH archive)
             F10 - Converting Numerical Recipes to DOUBLE PRECISION

        You can also press these function keys from anywhere within
        NRHELP.  You can return to this menu by pressing Home.

        The contents of the Numerical Recipes Fortran Diskette are
        Copyright (C) 1986-1992 Numerical Recipes Software.

                         All About INSTALL 

     The ONLY way to access the programs on your Numerical Recipes
     diskette is to install them with the INSTALL program that is
     provided.  To use the INSTALL program, place the original diskette
     into an appropriate drive (e.g., A:) and type A:INSTALL followed
     by the <Enter> key.  Then, follow the directions as indicated.

     The Numerical Recipes routines consist of more than 600 individual
     files (including both the recipes and the sample driver routines).
     Fully unpacked, this large number of files requires excessive disk
     space, and degrades the performance of programs that scan the full
     directory tree.  Furthermore, few users ever want to use more than
     a small number of the routines at any one time.

     We therefore supply the routines in the form of a small number of
     compressed archive files, and a special dearchiving program called
     NRCOPY.  When properly installed, NRCOPY becomes a command that is
     available from any working directory.  On request, it creates a copy
     of any desired routine.  You can use, modify, or delete this copy:
     a fresh copy can always be obtained by the NRCOPY command.
                                                                 more...
     Here is an overview of the INSTALL process:  (If you have already
     completed the installation, you might wish to verify that you went
     through all these steps.)

     1.  You are asked to select a drive and subdirectory that are in
         your DOS path.  (Your current DOS path is displayed.)  You can
         choose an existing subdirectory or a new one.  The archive
         files must be somewhere in your path so that the NRCOPY command
         is able to find them.

     2.  You are asked to enter your name, or the name of the person or
         organization to whom the diskette is licensed.  This name is
         used to construct a short license validation file with a name
         like NR20KEY.AR.  This file must be kept in the same directory
         as the archive files, otherwise NRCOPY will not be able to work.

     3.  The following files are copied to the subdirectory that you
         chose: the archives NRF20REC.AR, NRF20EXA.AR, NRF20OTH.AR, and
         the executable commands NRCOPY.EXE and NRHELP.COM (this file).
         The validation file NR20KEY.AR is also put in place.

     4.  If (and only if) you requested that your AUTOEXEC.BAT file be
         modified to include your chosen subdirectory in your DOS path,
         this modification is made.

     When the INSTALL process is complete, and after you have rebooted
     your machine so that the PATH is reset, you will be able to use the
     commands NRCOPY and NRHELP from any working directory.  Press F3
     now to get instructions for using NRCOPY.  (For short instructions
     at any time, just type NRCOPY at a DOS prompt.)
                          All About NRCOPY 

     The NRCOPY command can be executed at any DOS prompt, from any working
     directory.  It locates any desired Numerical Recipes files in the
     archives, and makes useable copies in the directory of your choice.
     It can also be used to list the contents of an archive (names of
     the files) or to view on the screen, rather than copy, selected files.

     The complete syntax of the command is:

  NRCOPY  C|KRC|FOR  RECIPES|EXAMPLES|OTHER  [files]  [LIST|VIEW|TO path]

     Here, arguments with bars, like "a|b|c", signify that you must
     choose exactly one of a,b, or c, while square brackets like "[ ]"
     signify that an argument is optional.

     All arguments are case insensitive (you can type them in upper case,
     lower case or any combination).  The keywords C, KRC, FOR, RECIPES,
     EXAMPLES, and OTHER, can be abbreviated down to a single letter,
     C, K, F, R, E, and O, respectively.

     The action of the command is as follows:

     The C, K&R C, or FORTRAN archive (depending on the first argument)
     that contains RECIPES, EXAMPLES or OTHER files (depending on the
     second argument) is opened.  (Only FORTRAN is included with this
     diskette; if you also install the Numerical Recipes C diskette, the
     same NRCOPY command will manage both sets of archives.)

     The optional next argument(s) are scanned. If specific files are
     named, then processing of the opened archive is limited to these.
     (You need only enter the main part of the file name, not
     the extension like .FOR or .DAT.)  If there is no third argument,
     or if the third argument is *, then all files are processed.
     Wild cards, like "LU*" are also allowed in the third argument.
     Note that the file names are separated by spaces, not by commas!
     
     If there is no additional argument, then copies of the selected
     files are made to the current directory.  If the next argument
     is TO followed by a final argument that is a valid path, then
     copies are made in that path. (TO can be omitted if path contains
     a \ or : character.)  If the last argument is LIST, then only
     filenames are listed to the screen, and no copies are made.  If
     the last argument is VIEW, then the selected files are listed
     to the screen, and no copies are made.  (You will generally want
     to follow the VIEW argument by "| MORE" so that the file does not
     run off the screen.)

     NRCOPY appends a copyright notice at the end of each unpacked
     .FOR or .C file.  The notice is formatted so as to be a valid
     program comment in the appropriate language.  If you combine
     several routines in a single file, you may delete all but one of
     these lines.  (We request that you leave one in each file that
     contains copyrighted material.)  There is a string of printable
     characters at the end of the copyright notice that contains
     information about the routine version number and your license.
     Please include this string if you need to write us about a routine.

     Some examples will clarify use of the NRCOPY command:

         NRCOPY FORTRAN RECIPES TO C:\MYDIR
      (copy all FORTRAN Recipes files to directory MYDIR on disk C:)

         NRCOPY C EXAMP TO c:\MYDIR
      (copy all C examples files to directory mydir on disk C:)

         NRCOPY F R LUDCMP LUBKSB
      (copy LUDCMP.FOR and LUBKSB.FOR to the current directory)

         NRCOPY c rec ludcmp lubksb g:
      (create G:\LUDCMP.C and G:\LUBKSB.C on disk G:)

         NRCOPY C other * LIST
      (list to screen names of all files in C OTHER archive)

         NRCOPY FOR EX xlubksb VIEW | MORE
      (view on screen the routine XLUBKSB.FOR, pause each page)

     If you ever need a quick review of the NRCOPY command, just type
     NRCOPY (with no arguments) at any DOS prompt.

     NRCOPY is based on the AR compression archiver of Haruhiko Okumura,
     used by permission.

                          Ordering Information 
     The detailed reference manual for all the routines on this diskette
     is the book "Numerical Recipes in FORTRAN: The Art of Scientific
     Computing".  Here is how to order that book and related products.
     (If you order from the flier included with your Microsoft FORTRAN
     compiler, you'll get a 20% discount!)

     All Numerical Recipes books, and diskettes for IBM/PC-compatible and
     Apple Macintosh computers, are published exclusively by Cambridge
     University Press.  Their address and telephone order number (North
     American branch) is:

         Cambridge University Press, Order Department
         110 Midland Avenue
         Port Chester, NY 10573

         telephone: toll-free 800-872-7423 (in NY: 800-227-0247)
         from abroad: 914-937-9600

     Outside of North America, orders may be placed with:

         Cambridge University Press, Customer Services Department
         Edinburgh Building
         Shaftesbury Road
         Cambridge, CB2 2RU
         U.K.
         fax: (U.K. country code+) 223 315052
         telex: 851 817256 CUPCAM G
         
     The following books are available (prices subject to change).

     Numerical Recipes in FORTRAN, 2nd Edition (hardcover) $49.95
     Numerical Recipes FORTRAN Example Book, 2nd Ed. (paper) $29.95
     
     Numerical Recipes in C, 2nd Edition (hardcover) $49.95
     Numerical Recipes C Example Book, 2nd Ed. (paper) $29.95
     
     These First Edition books remain available:

     Numerical Recipes in Pascal, Revised Edition (hardcover) $49.95
     Numerical Recipes Example Book (Pascal), Revised Ed. (paper) $29.95

     Numerical Recipes Routines and Examples in BASIC (paper) $32.50

     Diskettes are available in FORTRAN, C, Pascal, and BASIC (Microsoft
     QuickBASIC), for IBM/PC-compatibles and Apple Macintosh.  Contact
     Cambridge University Press for pricing information.  A TrueBasic
     diskette is available from TrueBasic Inc., 12 Commerce Ave., West
     Lebanon, NH 03784.


                         Numerical Recipes Examples 

  The  Numerical Recipes Example Books (in FORTRAN and C),
  published by Cambridge University Press, contain descriptions and
  listings of sample programs that demonstrate and exercise all of the
  Numerical Recipes routines.  In previous editions, these demonstration
  programs were available, machine-readable, only as a separate diskette.
  Now, they are included, free, on this diskette.  You can try out these
  demonstration programs without having the Example Book itself.  However,
  to get the maximum benefit of these examples, you will want to read
  the Example Book's additional descriptions and see the sample output.

  You can get information on ordering the the Example Book by pressing F4
  TWICE.

  The Example programs all have names beginning with "X". They must be
  compiled with, or linked to, the routines that they demonstrate.  Some
  of the Example programs also use data files that are supplied on this
  diskette in the "Other" archive.  (Press F9 for a list of these
  files.  Press F8 for a list of all the Example programs.)  To find
  out what routines and/or data files are required by an Example program,
  read its program listing.

  Here is an example of how to unpack, compile (assuming Microsoft FORTRAN
  PowerStation) and run a demonstration program, in this case the one for
  SVDCMP:

  > NRCOPY F E XSVDCMP            [unpack the FORTRAN EXAMPLE file]
  > NRCOPY F R SVDCMP PYTHAG      [unpack the necessary Recipes]
  > NRCOPY F O MATRX3             [unpack the data file]
  > FL32 XSVDCMP.FOR SVDCMP.FOR PYTHAG.FOR   [invoke the compiler]
  > XSVDCMP                       [run the demonstration]

  The Example programs are all self-prompting.  Just follow their
  instructions.

                              Compiler Hints 

       32-bit FORTRAN compilers, e.g., Microsoft FORTRAN PowerStation
       --------------------------------------------------------------

  All of the Numerical Recipes routines have been validated under version
  1.0 of Microsoft FORTRAN-32, FORTRAN PowerStation.  All the routines
  compile correctly with the default compiler options, and also with
  the /Ox (full optimization) option.  Note that full optimization is
  not the default, so you may want to use this option when compiling
  prior to long "production runs".

  (For the routine machar.for, more meaningful answers are obtained by
  using the /Op compiler option.  See the "Portability" chapter of your
  Microsoft FORTRAN PowerStation User's Guide.)

       16-bit FORTRAN compilers, e.g., Microsoft FORTRAN V5.1
       --------------------------------------------------------

  16-bit applications have segmented, and limited, addressable memory,
  so 16-bit compilers must employ various techniques for accommodating
  large programs and/or large data spaces.  The most common sources
  of difficulty in using the Numerical Recipes programs have to do with
  stack or segment sizes, and with choice of memory models.  A second
  source of difficulty is integer length. We always assume 4-byte integers.

  All of the Numerical Recipes routines have been validated under version
  5.1 of the Microsoft FORTRAN compiler.  Almost all routines compile
  correctly with the default options.  In a few cases, however, you may
  need to use one or more of the following compiler switches:

     /Gt (move large data items out of the default segment)
     /AH (select huge memory model -- if you have large arrays)
     /Od (disable optimization: "cures" some rare compiler bugs)
     /4Yb (turn on debug: "cures" some other rare compiler bugs)

  Please consult your compiler documentation for additional information.

                    Troubleshooting and Common Questions 

 Q. I don't own the book "Numerical Recipes in FORTRAN: The Art of
    Scientific Computing", and I don't want to buy it, even at the 20%
    discount offered to Microsoft FORTRAN purchasers.  How am I supposed
    to use the routines on this disk?
 A. Surveys have shown that many users of Microsoft FORTRAN already do
    own the Numerical Recipes book.  This diskette is provided, free with
    Microsoft FORTRAN compilers, so that they can take advantage of the
    newest program versions from the book's Second Edition.  There is simply
    not room to include the book's detailed explanations on the diskette.
    The book is available in many public and school libraries; you can
    easily copy the page or two of explanation about any particular program
    that you want to use.  If you want to feel truly self-sufficient,
    you can instead figure out how to use the routines by looking at how
    they are used in the Example programs -- which ARE included in this
    diskette version.

 Q. I have tried it several times, but the INSTALL program just does not
    work on my machine.
 A. Write immediately to Numerical Recipes Software, P.O. Box 243,
    Cambridge, MA 02238 (USA) or fax to 617-863-1739.  Include your
    telephone or fax number and tell us when we can reach you.  We really
    want to know about this!

 Q. INSTALL seems to work, but I get a message about "can't find a valid
    license key and/or licensee name".
 A. Be sure that the directory that contains the archive files NR*.AR
    is in your DOS path.  Check that the file NR20KEY.AR is there.
    Examine this file with any text editor.  It should be one line long
    and consist of exactly 3 printable characters followed immediately
    by the licensee name.  If this is not the case, re-run the INSTALL
    program and be sure to enter a valid licensee name.  If it IS the
    case, then it is possible that your NR20KEY.AR file has been
    improperly altered.  Please write to us.

 Q. Using NRCOPY, I get a message about "can't find archive file in path".
 A. Either you did not run the INSTALL program, or else you have forgotten
    to modify your AUTOEXEC.BAT file to add the subdirectory with the
    Numerical Recipes archive files to your DOS path.

 Q. I have a nonstandard computer that is unable to display the output
    of the NRHELP command.  What do I do?
 A. A text version of NRHELP, NRHELP.TXT, is included on the diskette,
    though it is not automatically copied to your hard disk by INSTALL. 

 Q. There are some garbage characters in the copyright notice that is
    appended to unpacked files.
 A. Those are not garbage characters.  They contain information about
    the program version and your license.  Please include them if you need
    to write to us about a routine.

 Q. I am uncommonly vigilant against computer viruses, and I refuse to run
    your INSTALL or NRCOPY programs on my machine.
 A. You will need to obtain the C source code for Haruhiko Okumura's
    public domain "AR" archiver from a bulletin board.  Build its
    executable on your machine.  The Numerical Recipes archive files
    are in the standard AR format, and can be dearchived with that
    program.  (The AR format is different from other, similarly named,
    formats such as ARC or ARJ.  Incidentally, Haruhiko Okumura is the
    Japanese translator for the Numerical Recipes books published in Japan.)

 Q. I have both the FORTRAN and C diskettes installed, but NRHELP seems
    to relate to only one of them.
 A. One diskette's NRHELP.COM has overwritten the other.  Copy them from
    the original installation diskettes to a directory in your path, but
    give them different names, e.g., NRHELPC.COM and NRHELPF.COM.  Then,
    you can use the commands NRHELPC and NRHELPF to get language-specific
    help.

 Q. What happened to the old Numerical Recipes Example Diskettes?
 A. Press Home and see the topic "How to use the Example programs."

 Q. What happened to Numerical Recipes in Pascal? BASIC?
 A. The Second Edition of Numerical Recipes is available in C and FORTRAN.
    Due to lack of demand, we have not prepared a Second Edition version
    of the Pascal version.  However, the First Edition of Numerical Recipes
    in Pascal continues to be available.  Ditto, BASIC.

 Q. How do I contact Numerical Recipes Software?
 A. Press F2 and then F9 for our address and fax number.

              Numerical Recipes in the REC archive (all .FOR) 
              (main book section numbers are in parentheses)  

ADDINT  interpolate and add, used by {MGLIN} (19.6)
AIRY    Airy functions (6.7)
AMEBSA  simulated annealing in continuous spaces (10.9)
AMOEBA  minimize in N-dimensions by downhill simplex method (10.4)
AMOTRY  evaluate a trial point, used by {AMOEBA} (10.4)
AMOTSA  evaluate a trial point, used by {AMEBSA} (10.9)
ANNEAL  traveling salesman problem by simulated annealing (10.9)
ANORM2  utility used by {MGFAS} (19.6)
ARCMAK  construct an arithmetic code (20.5)
ARCODE  encode or decode a character using arithmetic coding (20.5)
ARCSUM  add integer to byte string, used by {ARCODE} (20.5)
ASOLVE  used by {LINBCG} for preconditioner (2.7)
ATIMES  used by {LINBCG} for sparse multiplication (2.7)
AVEVAR  calculate mean and variance of a data set (14.2)
BADLUK  Friday the 13th when the moon is full (1.1)
BALANC  balance a nonsymmetric matrix (11.5)
BANBKS  band diagonal systems, backsubstitution (2.4)
BANDEC  band diagonal systems, decomposition (2.4)
BANMUL  multiply vector by band diagonal matrix (2.4)
BCUCOF  construct two-dimensional bicubic (3.6)
BCUINT  two-dimensional bicubic interpolation (3.6)
BESCHB  Chebyshev expansion used by {BESSJY} (6.7)
BESSI   modified Bessel function I of integer order (6.6)
BESSI0  modified Bessel function I_0 (6.6)
BESSI1  modified Bessel function I_1 (6.6)
BESSIK  modified Bessel functions of fractional order (6.7)
BESSJ   Bessel function J of general integer order (6.5)
BESSJ0  Bessel function J_0 (6.5)
BESSJ1  Bessel function J_1 (6.5)
BESSJY  Bessel functions of fractional order (6.7)
BESSK   modified Bessel function K of integer order (6.6)
BESSK0  modified Bessel function K_0 (6.6)
BESSK1  modified Bessel function K_1 (6.6)
BESSY   Bessel function Y of general integer order (6.5)
BESSY0  Bessel function Y_0 (6.5)
BESSY1  Bessel function Y_1 (6.5)
BETA    beta function (6.1)
BETACF  continued fraction used by {BETAI} (6.4)
BETAI   incomplete beta function (6.4)
BICO    binomial coefficients function (6.1)
BKSUB   backsubstitution, used by {SOLVDE} (17.3)
BNLDEV  binomial distributed random deviates (7.3)
BRENT   find minimum of a function by Brent's method (10.2)
BROYDN  secant method for systems of equations (9.7)
BSSTEP  integrate ODEs, Bulirsch-Stoer step (16.4)
CALDAT  calendar date from Julian day number (1.1)
CHDER   derivative of a function already Chebyshev fitted (5.9)
CHEBEV  Chebyshev polynomial evaluation (5.8)
CHEBFT  fit a Chebyshev polynomial to a function (5.8)
CHEBPC  polynomial coefficients from a Chebyshev fit (5.10)
CHINT   integrate a function already Chebyshev fitted (5.9)
CHIXY   used by {FITEXY} to calculate a chi^2 (15.3)
CHOLDC  Cholesky decomposition (2.9)
CHOLSL  Cholesky backsubstitution (2.9)
CHSONE  chi-square test for difference between data and model (14.3)
CHSTWO  chi-square test for difference between two data sets (14.3)
CISI    cosine and sine integrals Ci and Si (6.9)
CNTAB1  contingency table analysis using chi-square (14.4)
CNTAB2  contingency table analysis using entropy measure (14.4)
CONVLV  convolution or deconvolution of data using FFT (13.1)
COPY    utility used by {MGLIN}, {MGFAS} (19.6)
CORREL  correlation or autocorrelation of data using FFT (13.2)
COSFT1  fast cosine transform with endpoints (12.3)
COSFT2  ``staggered'' fast cosine transform (12.3)
COVSRT  rearrange covariance matrix, used by {LFIT} (15.4)
CRANK   replaces array elements by their rank (14.6)
CYCLIC  solution of cyclic tridiagonal systems (2.7)
DAUB4   Daubechies 4-coefficient wavelet filter (13.10)
DAWSON  Dawson's integral (6.10)
DBRENT  find minimum of a function using derivative information (10.3)
DDPOLY  evaluate a polynomial and its derivatives (5.3)
DECCHK  decimal check digit calculation or verification (20.3)
DERIVS  sample derivatives routine for {STIFF} (16.6)
DF1DIM  alternative function used by {LINMIN} (10.6)
DFPMIN  minimize in N-dimensions by variable metric method (10.7)
DFRIDR  numerical derivative by Ridders' method (5.7)
DFTCOR  compute endpoint corrections for Fourier integrals (13.9)
DFTINT  high-accuracy Fourier integrals (13.9)
DIFEQ   spheroidal matrix coefficients, used by {SFROID} (17.4)
DPYTHAG, DREALFT, DSPRSAX, DSPRSTX, DSVBKSB, DSVDCMP 
        double precision versions of routines minus initial D
ECLASS  determine equivalence classes from list (8.6)
ECLAZZ  determine equivalence classes from procedure (8.6)
EI      exponential integral Ei (6.3)
EIGSRT  eigenvectors, sorts into order by eigenvalue (11.1)
ELLE    Legendre elliptic integral of the second kind (6.11)
ELLF    Legendre elliptic integral of the first kind (6.11)
ELLPI   Legendre elliptic integral of the third kind (6.11)
ELMHES  reduce a general matrix to Hessenberg form (11.5)
ERF     error function (6.2)
ERFC    complementary error function (6.2)
ERFCC   complementary error function, concise routine (6.2)
EULSUM  sum a series by Euler--van Wijngaarden algorithm (5.1)
EVLMEM  power spectral estimation from MEM coefficients (13.7)
EXPDEV  exponential random deviates (7.2)
EXPINT  exponential integral E_n (6.3)
F1DIM   function used by {LINMIN} (10.5)
FACTLN  logarithm of factorial function (6.1)
FACTRL  factorial function (6.1)
FASPER  power spectrum of unevenly sampled larger data sets (13.8)
FDJAC   finite-difference Jacobian, used by {NEWT} (9.7)
FGAUSS  fit a sum of Gaussians using {MRQMIN} (15.5)
FILL0   utility used by {MGLIN} (19.6)
FIT     least-squares fit data to a straight line (15.2)
FITEXY  fit data to a straight line, errors in both x and y (15.3)
FIXRTS  reflect roots of a polynomial into unit circle (13.6)
FLEG    fit a Legendre polynomial using {LFIT} or {SVDFIT} (15.4)
FLMOON  calculate phases of the moon by date (1.0)
FMIN    norm of a vector function, used by {NEWT} (9.7)
FOUR1   fast Fourier transform (FFT) in one dimension (12.2)
FOUREW  rewind and permute files, used by {FOURFS} (12.6)
FOURFS  FFT for huge data sets on external media (12.6)
FOURN   fast Fourier transform in multidimensions (12.4)
FPOLY   fit a polynomial using {LFIT} or {SVDFIT} (15.4)
FRED2   solve linear Fredholm equations of the second kind (18.1)
FREDEX  example of solving a singular Fredholm equation (18.3)
FREDIN  interpolate solutions obtained with {fred2} (18.1)
FRENEL  Fresnel integrals S(x) and C(x) (6.9)
FRPRMN  minimize in N-dimensions by conjugate gradient (10.6)
FTEST   F-test for difference of variances (14.2)
GAMDEV  gamma-law distribution random deviates (7.3)
GAMMLN  logarithm of gamma function (6.1)
GAMMP   incomplete gamma function (6.2)
GAMMQ   complement of incomplete gamma function (6.2)
GASDEV  normally distributed random deviates (7.2)
GAUCOF  quadrature weights from orthogonal polynomials (4.5)
GAUHER  Gauss-Hermite weights and abscissas (4.5)
GAUJAC  Gauss-Jacobi weights and abscissas (4.5)
GAULAG  Gauss-Laguerre weights and abscissas (4.5)
GAULEG  Gauss-Legendre weights and abscissas (4.5)
GAUSSJ  Gauss-Jordan matrix inversion and linear equation solution (2.1)
GCF     continued fraction used by {GAMMP} and {GAMMQ} (6.2)
GOLDEN  find minimum of a function by golden section search (10.1)
GSER    series used by {GAMMP} and {GAMMQ} (6.2)
HPSEL   find M largest values, without altering an array (8.5)
HPSORT  sort an array by heapsort method (8.3)
HQR     eigenvalues of a Hessenberg matrix (11.6)
HUFAPP  append bits to a Huffman code, used by {HUFMAK} (20.4)
HUFDEC  use Huffman code to decode and decompress a character (20.4)
HUFENC  use Huffman code to encode and compress a character (20.4)
HUFMAK  construct a Huffman code (20.4)
HUNT    search a table when calls are correlated (3.4)
HYPDRV  complex hypergeometric function, derivative of (6.12)
HYPGEO  complex hypergeometric function (6.12)
HYPSER  complex hypergeometric function, series evaluation (6.12)
ICRC    cyclic redundancy checksum (20.3)
ICRC1   cyclic redundancy checksum, used by {ICRC} (20.3)
IGRAY   Gray code and its inverse (20.2)
IINDEXX integer array version of {INDEXX} (8.4)
INDEXX  construct an index for an array (8.4)
INTERP  bilinear prolongation, used by {MGLIN}, {MGFAS} (19.6)
IRBIT1  random bit sequence (7.4)
IRBIT2  random bit sequence (7.4)
JACOBI  eigenvalues and eigenvectors of a symmetric matrix (11.1)
JACOBN  sample Jacobian routine for {STIFF} (16.6)
JULDAY  Julian Day number from calendar date (1.1)
KENDL1  correlation between two data sets, Kendall's tau (14.6)
KENDL2  contingency table analysis using Kendall's tau (14.6)
KERMOM  sample routine for moments of a singular kernel (18.3)
KS2D1S  K-S test in two dimensions, data vs. model (14.7)
KS2D2S  K-S test in two dimensions, data vs. data (14.7)
KSONE   Kolmogorov-Smirnov test of data against model (14.3)
KSTWO   Kolmogorov-Smirnov test between two data sets (14.3)
LAGUER  find a root of a polynomial by Laguerre's method (9.5)
LFIT    general linear least-squares fit by normal equations (15.4)
LINBCG  biconjugate gradient solution of sparse systems (2.7)
LINMIN  minimum of a function along a ray in N-dimensions (10.5)
LNSRCH  search along a line, used by {NEWT} (9.7)
LOCATE  search an ordered table by bisection (3.4)
LOP     applies nonlinear operator, used by {MGFAS} (19.6)
LUBKSB  linear equation solution, backsubstitution (2.3)
LUDCMP  linear equation solution, LU decomposition (2.3)
MACHAR  diagnose computer's floating arithmetic (20.1)
MALOC   memory allocation utility used by {MGLIN}, {MGFAS} (19.6)
MATADD  utility used by {MGFAS} (19.6)
MATSUB  utility used by {MGFAS} (19.6)
MEDFIT  fit data to a straight line robustly, least absolute deviation (15.7)
MEMCOF  evaluate maximum entropy (MEM) coefficients (13.6)
METROP  Metropolis algorithm, used by {ANNEAL} (10.9)
MGFAS   nonlinear elliptic PDE solved by multigrid method (19.6)
MGLIN   linear elliptic PDE solved by multigrid method (19.6)
MIDEXP  integrate a function that decreases exponentially (4.4)
MIDINF  integrate a function on a semi-infinite interval (4.4)
MIDPNT  extended midpoint rule (4.4)
MIDSQL  integrate a function with lower square-root singularity (4.4)
MIDSQU  integrate a function with upper square-root singularity (4.4)
MISER   recursive multidimensional Monte Carlo integration (7.8)
MMID    integrate ODEs by modified midpoint method (16.3)
MNBRAK  bracket the minimum of a function (10.1)
MNEWT   Newton's method for systems of equations (9.6)
MOMENT  calculate moments of a data set (14.1)
MP2DFR  multiple precision conversion to decimal base (20.6)
MPDIV   multiple precision divide and remainder (20.6)
MPINV   multiple precision reciprocal (20.6)
MPMUL   multiple precision multiply, using FFT methods (20.6)
MPOPS   multiple precision arithmetic, simpler operations (20.6)
MPPI    multiple precision example, compute many digits of pi (20.6)
MPROVE  linear equation solution, iterative improvement (2.5)
MPSQRT  multiple precision square root (20.6)
MRQCOF  used by {MRQMIN} to evaluate coefficients (15.5)
MRQMIN  nonlinear least-squares fit, Marquardt's method (15.5)
NEWT    globally convergent multi-dimensional Newton's method (9.7)
ODEINT  integrate ODEs with accuracy monitoring (16.2)
ORTHOG  construct nonclassical orthogonal polynomials (4.5)
PADE    Pade approximant from power series coefficients (5.12)
PCCHEB  inverse of {CHEBPC}; use to economize power series (5.11)
PCSHFT  polynomial coefficients of a shifted polynomial (5.10)
PEARSN  Pearson's correlation between two data sets (14.5)
PERIOD  power spectrum of unevenly sampled data (13.8)
PIKSR2  sort two arrays by straight insertion (8.1)
PIKSRT  sort an array by straight insertion (8.1)
PINVS   diagonalize a sub-block, used by {SOLVDE} (17.3)
PLGNDR  Legendre polynomials, associated (spherical harmonics) (6.8)
POIDEV  Poisson distributed random deviates (7.3)
POLCOE  polynomial coefficients from table of values (3.5)
POLCOF  polynomial coefficients from table of values (3.5)
POLDIV  divide one polynomial by another (5.3)
POLIN2  two-dimensional polynomial interpolation (3.6)
POLINT  polynomial interpolation (3.1)
POWELL  minimize in N-dimensions by  Powell's method (10.5)
PREDIC  linear prediction using MEM coefficients (13.6)
PROBKS  Kolmogorov-Smirnov probability function (14.3)
PSDES   pseudo-DES hashing of 64 bits (7.5)
PWT     partial wavelet transform (13.10)
PWTSET  initialize coefficients for {PWT} (13.10)
PYTHAG  calculate (a^2+b^2)^{1/2} without overflow (2.6)
PZEXTR  polynomial extrapolation, used by {BSSTEP} (16.4)
QGAUS   integrate a function by Gaussian quadratures (4.5)
QRDCMP  QR decomposition (2.10)
QROMB   integrate using Romberg adaptive method (4.3)
QROMO   integrate using open Romberg adaptive method (4.4)
QROOT   complex or double root of a polynomial, Bairstow (9.5)
QRSOLV  QR backsubstitution (2.10)
QRUPDT  update a QR decomposition (2.10)
QSIMP   integrate using Simpson's rule (4.2)
QTRAP   integrate using trapezoidal rule (4.2)
QUAD3D  integrate a function over a three-dimensional space (4.6)
QUADCT  count points by quadrants, used by {ks2d1s} (14.7)
QUADMX  sample routine for a quadrature matrix (18.3)
QUADVL  quadrant probabilities, used by {ks2d1s} (14.7)
RAN0    random deviate by Park and Miller minimal standard (7.1)
RAN1    random deviate, minimal standard plus shuffle (7.1)
RAN2    random deviate by L'Ecuyer long period plus shuffle (7.1)
RAN3    random deviate by Knuth subtractive method (7.1)
RAN4    random deviates from DES-like hashing (7.5)
RANK    construct a rank table for an array (8.4)
RANPT   get random point, used by {MISER} (7.8)
RATINT  rational function interpolation (3.2)
RATLSQ  rational fit by least-squares method (5.13)
RATVAL  evaluate a rational function (5.3)
RC      Carlson's degenerate elliptic integral (6.11)
RD      Carlson's elliptic integral of the second kind (6.11)
REALFT  fast Fourier transform of a single real function (12.3)
REBIN   sample rebinning used by {VEGAS} (7.8)
RED     reduce columns of a matrix, used by {SOLVDE} (17.3)
RELAX   Gauss-Seidel relaxation, used by {MGLIN} (19.6)
RELAX2  Gauss-Seidel relaxation, used by {MGFAS} (19.6)
RESID   calculate residual, used by {MGLIN} (19.6)
REVCST  cost of a reversal, used by {ANNEAL} (10.9)
REVERS  do a reversal, used by {ANNEAL} (10.9)
RF      Carlson's elliptic integral of the first kind (6.11)
RJ      Carlson's elliptic integral of the third kind (6.11)
RK4     integrate one step of ODEs, fourth-order Runge-Kutta (16.1)
RKCK    Cash-Karp-Runge-Kutta step used by {RKQS} (16.2)
RKDUMB  integrate ODEs by fourth-order Runge-Kutta (16.1)
RKQS    integrate one step of ODEs with accuracy monitoring (16.2)
RLFT3   FFT of real data in two or three dimensions (12.5)
ROFUNC  fit data robustly, used by {MEDFIT} (15.7)
ROTATE  Jacobi rotation used by {QRUPDT} (2.10)
RSOLV   right triangular backsubstitution (2.10)
RSTRCT  half-weighting restriction, used by {MGLIN}, {MGFAS} (19.6)
RTBIS   find root of a function by bisection (9.1)
RTFLSP  find root of a function by false-position (9.2)
RTNEWT  find root of a function by Newton-Raphson (9.4)
RTSAFE  find root of a function by Newton-Raphson and bisection (9.4)
RTSEC   find root of a function by secant method (9.2)
RZEXTR  rational function extrapolation, used by {BSSTEP} (16.4)
SAVGOL  Savitzky-Golay smoothing coefficients (14.8)
SCRSHO  graph a function to search for roots (9.0)
SELECT  find the Nth largest in an array (8.5)
SELIP   find the Nth largest, without altering an array (8.5)
SFROID  spheroidal functions by method of {SOLVDE} (17.4)
SHELL   sort an array by Shell's method (8.1)
SHOOT   solve two point boundary value problem by shooting (17.1)
SHOOTF  ditto, by shooting to a fitting point (17.2)
SIMP1   linear programming, used by {SIMPLX} (10.8)
SIMP2   linear programming, used by {SIMPLX} (10.8)
SIMP3   linear programming, used by {SIMPLX} (10.8)
SIMPLX  linear programming maximization of a linear function (10.8)
SIMPR   integrate stiff ODEs by semi-implicit midpoint rule (16.6)
SINFT   fast sine transform (12.3)
SLVSM2  solve on coarsest grid, used by {MGFAS} (19.6)
SLVSML  solve on coarsest grid, used by {MGLIN} (19.6)
SNCNDN  Jacobian elliptic functions (6.11)
SNRM    used by {LINBCG} for vector norm (2.7)
SOBSEQ  Sobol's quasi-random sequence (7.7)
SOLVDE  two point boundary value problem, solve by relaxation (17.3)
SOR     elliptic PDE solved by successive overrelaxation method (19.5)
SORT    sort an array by quicksort method (8.2)
SORT2   sort two arrays by quicksort method (8.2)
SORT3   sort, use an index to sort 3 or more arrays (8.4)
SPCTRM  power spectrum estimation using FFT (13.4)
SPEAR   Spearman's rank correlation between two data sets (14.6)
SPHBES  spherical Bessel functions j_n and y_n (6.7)
SPHFPT  spheroidal functions by method of {SHOOTF} (17.4)
SPHOOT  spheroidal functions by method of {SHOOT} (17.4)
SPLIE2  construct two-dimensional spline (3.6)
SPLIN2  two-dimensional spline interpolation (3.6)
SPLINE  construct a cubic spline (3.3)
SPLINT  cubic spline interpolation (3.3)
SPREAD  extirpolate value into array, used by {FASPER} (13.8)
SPRSAX  product of sparse matrix and vector (2.7)
SPRSIN  convert matrix to sparse format (2.7)
SPRSPM  pattern multiply two sparse matrices (2.7)
SPRSTM  threshold multiply two sparse matrices (2.7)
SPRSTP  transpose of sparse matix (2.7)
SPRSTX  product of transpose sparse matrix and vector (2.7)
STIFBS  integrate stiff ODEs, Bulirsch-Stoer step (16.6)
STIFF   integrate stiff ODEs by fourth-order Rosenbrock (16.6)
STOERM  integrate conservative second-order ODEs (16.5)
SVBKSB  singular value backsubstitution (2.6)
SVDCMP  singular value decomposition of a matrix (2.6)
SVDFIT  linear least-squares fit by singular value decomposition (15.4)
SVDVAR  variances from singular value decomposition (15.4)
TOEPLZ  solve Toeplitz systems (2.8)
TPTEST  Student's t-test for means, case of paired data (14.2)
TQLI    eigensolution of a symmetric tridiagonal matrix (11.3)
TRAPZD  trapezoidal rule (4.2)
TRED2   Householder reduction of a real, symmetric matrix (11.2)
TRIDAG  solution of tridiagonal systems (2.4)
TRNCST  cost of a transposition, used by {ANNEAL} (10.9)
TRNSPT  do a transposition, used by {ANNEAL} (10.9)
TTEST   Student's t-test for difference of means (14.2)
TUTEST  Student's t-test for means, case of unequal variances (14.2)
TWOFFT  fast Fourier transform of two real functions (12.3)
VANDER  solve Vandermonde systems (2.8)
VEGAS   adaptive multidimensional Monte Carlo integration (7.8)
VOLTRA  linear Volterra equations of the second kind (18.2)
WT1     one-dimensional discrete wavelet transform (13.10)
WTN     multidimensional discrete wavelet transform (13.10)
WWGHTS  quadrature weights for an arbitrarily singular kernel (18.3)
ZBRAC   outward search for brackets on roots (9.1)
ZBRAK   inward search for brackets on roots (9.1)
ZBRENT  find root of a function by Brent's method (9.3)
ZRHQR   roots of a polynomial by eigenvalue methods (9.5)
ZRIDDR  find root of a function by Ridders' method (9.2)
ZROOTS  roots of a polynomial by Laguerre's method with deflation (9.5)

                   Example programs (in the EXA archive) 

 XAIRY.FOR       XAMEBSA.FOR     XAMOEBA.FOR     XANNEAL.FOR     XARCODE.FOR   
 XAVEVAR.FOR     XBALANC.FOR     XBANDEC.FOR     XBANMUL.FOR     XBCUCOF.FOR   
 XBCUINT.FOR     XBESCHB.FOR     XBESSI.FOR      XBESSI0.FOR     XBESSI1.FOR   
 XBESSIK.FOR     XBESSJ.FOR      XBESSJ0.FOR     XBESSJ1.FOR     XBESSJY.FOR   
 XBESSK.FOR      XBESSK0.FOR     XBESSK1.FOR     XBESSY.FOR      XBESSY0.FOR   
 XBESSY1.FOR     XBETA.FOR       XBETAI.FOR      XBICO.FOR       XBNLDEV.FOR   
 XBRENT.FOR      XBROYDN.FOR     XBSSTEP.FOR     XCALDAT.FOR     XCHDER.FOR    
 XCHEBEV.FOR     XCHEBFT.FOR     XCHEBPC.FOR     XCHINT.FOR      XCHOLSL.FOR   
 XCHSONE.FOR     XCHSTWO.FOR     XCISI.FOR       XCNTAB1.FOR     XCNTAB2.FOR   
 XCONVLV.FOR     XCORREL.FOR     XCOSFT1.FOR     XCOSFT2.FOR     XCOVSRT.FOR   
 XCRANK.FOR      XCYCLIC.FOR     XDAWSON.FOR     XDBRENT.FOR     XDDPOLY.FOR   
 XDECCHK.FOR     XDF1DIM.FOR     XDFPMIN.FOR     XDFRIDR.FOR     XDFTINT.FOR   
 XECLASS.FOR     XECLAZZ.FOR     XEI.FOR         XEIGSRT.FOR     XELLE.FOR     
 XELLF.FOR       XELLPI.FOR      XELMHES.FOR     XERF.FOR        XERFC.FOR     
 XERFCC.FOR      XEULSUM.FOR     XEVLMEM.FOR     XEXPDEV.FOR     XEXPINT.FOR   
 XF1DIM.FOR      XFACTLN.FOR     XFACTRL.FOR     XFASPER.FOR     XFGAUSS.FOR   
 XFIT.FOR        XFITEXY.FOR     XFIXRTS.FOR     XFLEG.FOR       XFLMOON.FOR   
 XFOUR1.FOR      XFOURFS.FOR     XFOURN.FOR      XFPOLY.FOR      XFRED2.FOR    
 XFREDIN.FOR     XFRENEL.FOR     XFRPRMN.FOR     XFTEST.FOR      XGAMDEV.FOR   
 XGAMMLN.FOR     XGAMMP.FOR      XGAMMQ.FOR      XGASDEV.FOR     XGAUCOF.FOR   
 XGAUHER.FOR     XGAUJAC.FOR     XGAULAG.FOR     XGAULEG.FOR     XGAUSSJ.FOR   
 XGCF.FOR        XGOLDEN.FOR     XGSER.FOR       XHPSEL.FOR      XHPSORT.FOR   
 XHQR.FOR        XHUFFMAN.FOR    XHUNT.FOR       XHYPGEO.FOR     XICRC.FOR     
 XIGRAY.FOR      XINDEXX.FOR     XIRBIT1.FOR     XIRBIT2.FOR     XJACOBI.FOR   
 XJULDAY.FOR     XKENDL1.FOR     XKENDL2.FOR     XKS2D1S.FOR     XKS2D2S.FOR   
 XKSONE.FOR      XKSTWO.FOR      XLAGUER.FOR     XLFIT.FOR       XLINBCG.FOR   
 XLINMIN.FOR     XLOCATE.FOR     XLUBKSB.FOR     XLUDCMP.FOR     XMACHAR.FOR   
 XMEDFIT.FOR     XMEMCOF.FOR     XMGFAS.FOR      XMGLIN.FOR      XMIDPNT.FOR   
 XMISER.FOR      XMMID.FOR       XMNBRAK.FOR     XMNEWT.FOR      XMOMENT.FOR   
 XMPPI.FOR       XMPROVE.FOR     XMRQCOF.FOR     XMRQMIN.FOR     XNEWT.FOR     
 XODEINT.FOR     XORTHOG.FOR     XPADE.FOR       XPCCHEB.FOR     XPCSHFT.FOR   
 XPEARSN.FOR     XPERIOD.FOR     XPIKSR2.FOR     XPIKSRT.FOR     XPLGNDR.FOR   
 XPOIDEV.FOR     XPOLCOE.FOR     XPOLCOF.FOR     XPOLDIV.FOR     XPOLIN2.FOR   
 XPOLINT.FOR     XPOWELL.FOR     XPREDIC.FOR     XPROBKS.FOR     XPSDES.FOR    
 XPZEXTR.FOR     XQGAUS.FOR      XQRDCMP.FOR     XQROMB.FOR      XQROMO.FOR    
 XQROOT.FOR      XQRSOLV.FOR     XQRUPDT.FOR     XQSIMP.FOR      XQTRAP.FOR    
 XQUAD3D.FOR     XRAN.FOR        XRAN4.FOR       XRANK.FOR       XRATINT.FOR   
 XRATLSQ.FOR     XRC.FOR         XRD.FOR         XREALFT.FOR     XRF.FOR       
 XRJ.FOR         XRK4.FOR        XRKDUMB.FOR     XRKQS.FOR       XRLFT3.FOR    
 XROFUNC.FOR     XRTBIS.FOR      XRTFLSP.FOR     XRTNEWT.FOR     XRTSAFE.FOR   
 XRTSEC.FOR      XRZEXTR.FOR     XSAVGOL.FOR     XSCRSHO.FOR     XSELECT.FOR   
 XSELIP.FOR      XSHELL.FOR      XSIMPLX.FOR     XSIMPR.FOR      XSINFT.FOR    
 XSNCNDN.FOR     XSOBSEQ.FOR     XSOR.FOR        XSORT.FOR       XSORT2.FOR    
 XSORT3.FOR      XSPCTRM.FOR     XSPEAR.FOR      XSPHBES.FOR     XSPHFPT.FOR   
 XSPLIE2.FOR     XSPLIN2.FOR     XSPLINE.FOR     XSPLINT.FOR     XSPRSAX.FOR   
 XSPRSIN.FOR     XSPRSPM.FOR     XSPRSTM.FOR     XSPRSTP.FOR     XSPRSTX.FOR   
 XSTIFBS.FOR     XSTIFF.FOR      XSTOERM.FOR     XSVBKSB.FOR     XSVDCMP.FOR   
 XSVDFIT.FOR     XSVDVAR.FOR     XTOEPLZ.FOR     XTPTEST.FOR     XTQLI.FOR     
 XTRAPZD.FOR     XTRED2.FOR      XTRIDAG.FOR     XTTEST.FOR      XTUTEST.FOR   
 XTWOFFT.FOR     XVANDER.FOR     XVEGAS.FOR      XVOLTRA.FOR     XWT1.FOR      
 XWTN.FOR        XZBRAC.FOR      XZBRAK.FOR      XZBRENT.FOR     XZRHQR.FOR    
 XZRIDDR.FOR     XZROOTS.FOR     

                       Files in the "Other" Archive 

  Files in the "other" (OTH) archive consist of
    Data files used by some of the Example programs:
      DATES.DAT
      FNCVAL.DAT
      MATRX1.DAT
      MATRX2.DAT
      MATRX3.DAT
      SPCTRL.DAT
      TABLE.DAT
      TABLE2.DAT
      TARRAY.DAT
      TEXT.DAT
    Executable file for converting Numerical Recipes to DOUBLE PRECISION,
    and its accompanying data file (for information press F10):
      NR2DP.EXE
      NR2DP.DAT


                         About Double Precision 

     Many Numerical Recipes readers have requested that the Numerical
     Recipes routines be made available in DOUBLE PRECISION, in
     addition to the default REAL. Doing so is not as simple as one might
     think, because of the distinction between "roundoff error" and
     "truncation error".  (Please see the main book if you are not familiar
     with these concepts.) While mechanically converting all REALs to
     DOUBLE PRECISIONs reduces a routine's roundoff error, it does not
     reduce any truncation error that may be intrinsic to the algorithm.
     Sometimes, a routine contains "accuracy parameters" which can be
     adjusted to reduce the truncation error to the new, desired level.
     Occasionally, however, the truncation error cannot be so easily
     reduced; then, a whole new algorithm is needed.  Clearly such new
     algorithms are beyond the scope of a simple "conversion".

     If, despite the above cautions, you want to proceed with converting
     some routines to DOUBLE PRECISION, you can use an automated conversion
     tool that is included on the diskette.  To unpack it, execute the
     NRCOPY command

     NRCOPY F OTHER NR2DP*

     This will unpack two files, NR2DP.EXE and NR2DP.DAT.  You should copy
     these files to a directory in your DOS path, preferably the same
     directory as contains the other Numerical Recipes archives.  For a
     quick start with NR2DP, simply type NR2DP (with no arguments) at any
     DOS prompt.  Instructions will be displayed.  Here are further details:

     The syntax of the NR2DP command is
         NR2DP path\ file [file...]
     The action of the command is to perform a pro-forma conversion of
     Numerical Recipes FORTRAN files to DOUBLE PRECISION.  Note that this
     routine works only on Numerical Recipes routines (Recipes and
     Example programs), not on general FORTRAN programs, because it assumes
     certain typographical and stylistic conventions that the Numerical
     Recipes routines strictly follow.

     The first argument following NR2DP is a path string that is used
     literally as the start of the output file name.  It should end with
     the character "\".

     The second and following arguments are input file names.  They must
     correspond to files in the current (working) directory.  Output
     file names are the same as input file names, but with a prepended
     character "d".

     Example:
          NR2DP \nr\double\ lubksb.for
     creates an output file \nr\double\dlubksb.for.  The subdirectory
     \nr\double\ must already exist.  For output to the current directory,
     use .\ for path.

     The data file NR2DP.DAT must be present somewhere in your DOS path.

     Wildcards are not supported, but you can get the same effect via the
     DOS "for" command, e.g.,
         > mkdir tmp
         > for %f in (*.for) NR2DP tmp\ %f
     (Note the necessity of putting the output into a different directory.
     Otherwise the "for" command will loop endlessly!)

     You might wish to examine the file NR2DP.DAT with a text editor.
     That file begins with comment lines that list the automatic
     substitutions made by the NR2DP.EXE program.  The rest of the file
     is a list of known exceptions and special cases, organized by Numerical
     Recipes routine name.  These special cases adjust the routines'
     accuracy parameters, when it is possible to do so.  If you want
     to make different substitutions, or if you discover errors in the
     conversions, you can edit the NR2DP.DAT file yourself.  We would
     be grateful to hear from you regarding your corrections.

     NOTE: NR2DP is an UNSUPPORTED product, provided for your convenience.

                          License Information Menu

        Press a function key (F3-F9) to jump to the following topics:

        F3 - What does your license cover?
        F4 - DISCLAIMER OF WARRANTY
        F5 - Can you redistribute Numerical Recipes in your programs?
        F6 - Licenses for other types of computers
        F7 - Educational licenses for single-screen workstations
        F8 - Right-to-Copy licenses for courses
        F9 - How to contact Numerical Recipes Software
        Home - Return to main menu

        You can also use the PageUp and PageDown keys to scroll through
        the above information.








                      What does your license cover?

     As the owner of this free Numerical Recipes diskette in IBM/PC format,
     you are licensed to install the programs on this diskette onto a
     single IBM/PC-compatible computer.  You are not licensed to move
     the files to any other type of computer, nor to use them on more
     than a single IBM/PC-compatible computer for each diskette purchased.
     By installing or using the programs, you acknowledge acceptance of
     the following DISCLAIMER OF WARRANTY:

                           DISCLAIMER OF WARRANTY                      
          THE PROGRAMS ACCESSED  BY THIS ROUTINE  (AND ON THE ORIGINAL 
     DISKETTE)  ARE PROVIDED   "AS IS"   WITHOUT WARRANTY OF ANY KIND. 
     WE MAKE NO WARRANTIES, EXPRESS OR IMPLIED,  THAT THEY ARE FREE OF 
     ERROR,   OR  ARE  CONSISTENT  WITH  ANY  PARTICULAR  STANDARD  OF 
     MERCHANTABILITY, OR THAT THEY WILL MEET YOUR REQUIREMENTS FOR ANY 
     PARTICULAR APPLICATION.  THEY SHOULD NOT BE RELIED ON FOR SOLVING 
     A PROBLEM  WHOSE INCORRECT SOLUTION  COULD  RESULT IN INJURY TO A 
     PERSON OR LOSS OF PROPERTY.  IF YOU DO USE THEM IN SUCH A MANNER, 
     IT IS  AT YOUR OWN RISK.  THE AUTHORS AND PUBLISHER  DISCLAIM ALL 
     LIABILITY   FOR  DIRECT,   INDIRECT,   OR  CONSEQUENTIAL  DAMAGES 
     RESULTING FROM YOUR USE OF THE PROGRAMS.                          




          Can you redistribute Numerical Recipes in your programs?

     If you want to include Numerical Recipes routines in programs that
     are further distributed (either commercially or non-commercially)
     you can obtain permission to do so from Numerical Recipes Software.
     If the routines are bound into your program executable and are not
     separately visible to or useable by your users, there is generally
     no charge, provided that (i) advance permission is obtained, and
     (ii) a copyright notice like that on this diskette is embedded in
     your program executable.  Contact Numerical Recipes Software at
     P.O. Box 243, Cambridge, MA 02238 (USA) [fax 617-863-1739] for
     details.  In distributing a program containing Numerical Recipes
     routines, you acknowledge acceptance of the above DISCLAIMER OF
     WARRANTY, and of the fact that no business relationship is created
     between your program's users and Numerical Recipes Software, the
     authors of the Numerical Recipes books, or Cambridge University Press.

     If you want to distribute software that has Numerical Recipes in the
     form of source code or individually callable object modules, then you
     must contact Numerical Recipes Software for further information.  A
     fee (per Recipe) is charged, and we normally limit the total number
     of Recipes distributed to 20.

               Licenses for other types of computers

     License information for other types of computers (including UNIX
     workstations and servers, and multiple-user mainframes) is available
     from Numerical Recipes Software (press F9 for address).

     For educational and noncommercial users, we offer two ``streamlined''
     procedures:

              Educational License for Single-Screen Workstation

     If you are affiliated with an educational or not-for-profit
     research institution that is connected to the Internet, you may
     license the programs for use on a single workstation (one
     screen) as follows: Mail your name, address, and email address;
     your workstation's hostname, internet address, brand and model
     number; and a $50 one-time license fee (must accompany order)
     to Numerical Recipes Software, at the address below (press F9).
     Be sure to specify the language you want (FORTRAN or C). You will
     receive, by return mail or email, instructions for downloading the
     programs electronically.  Upon payment of the fee you may also, if
     you desire, upload the contents of this diskette (after unpacking
     the files with the NRCOPY program) to your workstation.

                   Right-to-Copy License for Courses

     Instructors at accredited educational institutions who have
     adopted Numerical Recipes for a course, and who already own a
     diskette, may license the programs for use in that course as 
     follows: Mail your name, title, and address; the course name,
     number, dates, and estimated enrollment; and advance payment of
     $5 per (estimated) student to Numerical Recipes Software, at the
     address below (F9).  You will receive by return mail a license
     authorizing you to make copies of your diskette for use by your
     students, and/or to transfer the programs to a machine
     accessible to your students (but only for the duration of the
     course).

              How to contact Numerical Recipes Software

     Our address is: Numerical Recipes Software
                     P.O. Box 243
                     Cambridge, MA 02238 (USA)

     Our fax number is: 617-863-1739.

     Sorry, we do not take telephone calls other than fax.

     Press Home to return to the Main menu.
     Press F2 to return to the License Information menu.
