Numerical Recipes: V2

The Numerical Recipes Example Books (in C and FORTRAN), published by Cambridge University Press, contain descriptions and listings of sample programs that demonstrate and exercise all of the Numerical Recipes routines.
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.

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 in the cother/fother archive. To find out what routines and/or data files are required by an Example program, read its program listing.

The files are located in: /usr/local/share/src/recipes

Here is an example of how to compile and run a demonstration program in c, in this case the demonstration of svdcmp.c.

  Using GNU C/C++ compiler:

  religous@dogma$ gcc xsvdcmp.c svdcmp pythag.c nrutil.c -o xsvdcmp -lm
                                  [invoke the compiler]

  religous@dogma$ xsvdcmp         [run the demonstration]
This compilation assumes that all of the files are in your current working directory. Note that nearly all of the recipes files include nr.h, nrutil.h and the object module nrutil.o!. You can force the compiler to search in /usr/local/share/src/recipes/cother by using the -I flag when compiling, e.g.: -I/usr/local/share/src/recipes/cother. The -lm flag sucks in the standard math library and is required.

gcc bla bla bla -I/usr/local/share/src/recipes/cother

Use this same procedure to compile the fortran routines (listed after the C source files) but use your favorite braindead fortran compiler (typically f77) instead!

Numerical Recipes in the c archive (all .c) (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)
COMPLEX utility routine provided for complex arithmetic
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)
ERFF    error function (6.2)
ERFFC   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)
NRUTIL  file containing utility routines for memory allocation, etc.
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)
REVERSE 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 cexamples archive
 xairy.c         xamebsa.c       xamoeba.c       xanneal.c       xarcode.c    
 xavevar.c       xbalanc.c       xbandec.c       xbanmul.c       xbcucof.c    
 xbcuint.c       xbeschb.c       xbessi.c        xbessi0.c       xbessi1.c    
 xbessik.c       xbessj.c        xbessj0.c       xbessj1.c       xbessjy.c    
 xbessk.c        xbessk0.c       xbessk1.c       xbessy.c        xbessy0.c    
 xbessy1.c       xbeta.c         xbetai.c        xbico.c         xbnldev.c    
 xbrent.c        xbroydn.c       xbsstep.c       xcaldat.c       xchder.c     
 xchebev.c       xchebft.c       xchebpc.c       xchint.c        xcholsl.c    
 xchsone.c       xchstwo.c       xcisi.c         xcntab1.c       xcntab2.c    
 xconvlv.c       xcorrel.c       xcosft1.c       xcosft2.c       xcovsrt.c    
 xcrank.c        xcyclic.c       xdawson.c       xdbrent.c       xddpoly.c    
 xdecchk.c       xdf1dim.c       xdfpmin.c       xdfridr.c       xdftint.c    
 xdlinmin.c      xeclass.c       xeclazz.c       xei.c           xeigsrt.c    
 xelle.c         xellf.c         xellpi.c        xelmhes.c       xerfcc.c     
 xerff.c         xerffc.c        xeulsum.c       xevlmem.c       xexpdev.c    
 xexpint.c       xf1dim.c        xfactln.c       xfactrl.c       xfasper.c    
 xfgauss.c       xfit.c          xfitexy.c       xfixrts.c       xfleg.c      
 xflmoon.c       xfour1.c        xfourfs.c       xfourn.c        xfpoly.c     
 xfred2.c        xfredin.c       xfrenel.c       xfrprmn.c       xftest.c     
 xgamdev.c       xgammln.c       xgammp.c        xgammq.c        xgasdev.c    
 xgaucof.c       xgauher.c       xgaujac.c       xgaulag.c       xgauleg.c    
 xgaussj.c       xgcf.c          xgolden.c       xgser.c         xhpsel.c     
 xhpsort.c       xhqr.c          xhuffman.c      xhunt.c         xhypgeo.c    
 xicrc.c         xigray.c        xindexx.c       xirbit1.c       xirbit2.c    
 xjacobi.c       xjulday.c       xkendl1.c       xkendl2.c       xks2d1s.c    
 xks2d2s.c       xksone.c        xkstwo.c        xlaguer.c       xlfit.c      
 xlinbcg.c       xlinmin.c       xlocate.c       xlubksb.c       xludcmp.c    
 xmachar.c       xmedfit.c       xmemcof.c       xmgfas.c        xmglin.c     
 xmidpnt.c       xmiser.c        xmmid.c         xmnbrak.c       xmnewt.c     
 xmoment.c       xmppi.c         xmprove.c       xmrqcof.c       xmrqmin.c    
 xnewt.c         xodeint.c       xorthog.c       xpade.c         xpccheb.c    
 xpcshft.c       xpearsn.c       xperiod.c       xpiksr2.c       xpiksrt.c    
 xplgndr.c       xpoidev.c       xpolcoe.c       xpolcof.c       xpoldiv.c    
 xpolin2.c       xpolint.c       xpowell.c       xpredic.c       xprobks.c    
 xpsdes.c        xpzextr.c       xqgaus.c        xqrdcmp.c       xqromb.c     
 xqromo.c        xqroot.c        xqrsolv.c       xqrupdt.c       xqsimp.c     
 xqtrap.c        xquad3d.c       xran.c          xran4.c         xrank.c      
 xratint.c       xratlsq.c       xrc.c           xrd.c           xrealft.c    
 xrf.c           xrj.c           xrk4.c          xrkdumb.c       xrkqs.c      
 xrlft3.c        xrofunc.c       xrtbis.c        xrtflsp.c       xrtnewt.c    
 xrtsafe.c       xrtsec.c        xrzextr.c       xsavgol.c       xscrsho.c    
 xselect.c       xselip.c        xshell.c        xsimplx.c       xsimpr.c     
 xsinft.c        xsncndn.c       xsobseq.c       xsor.c          xsort.c      
 xsort2.c        xsort3.c        xspctrm.c       xspear.c        xsphbes.c    
 xsphfpt.c       xsplie2.c       xsplin2.c       xspline.c       xsplint.c    
 xsprsax.c       xsprsin.c       xsprspm.c       xsprstm.c       xsprstp.c    
 xsprstx.c       xstifbs.c       xstiff.c        xstoerm.c       xsvbksb.c    
 xsvdcmp.c       xsvdfit.c       xsvdvar.c       xtoeplz.c       xtptest.c    
 xtqli.c         xtrapzd.c       xtred2.c        xtridag.c       xttest.c     
 xtutest.c       xtwofft.c       xvander.c       xvegas.c        xvoltra.c    
 xwt1.c          xwtn.c          xzbrac.c        xzbrak.c        xzbrent.c    
 xzrhqr.c        xzriddr.c       xzroots.c     
Files in the cother Archive
  Files in the cother archive consist of
    Numerical recipes utility files, which you will often need to compile
    and link to your programs:
      nrutil.c     
      complex.c    
    Numerical recipes header files, which you will often need to #include
    in your programs:
      nr.h         
      nrutil.h     
      complex.h    
    Data files used by some of the Example programs:
      dates1.dat   
      fncval.dat   
      matrx1.dat   
      matrx2.dat   
      matrx3.dat   
      spctrl.dat   
      table1.dat   
      table2.dat   
      tarray.dat   
      text.dat     
    File for fixing the Borland "Floating Point Formats Not Linked" bug:
      bccbug.c  (For further information on this, press Home, F7,
                and then PageDown three times.)

Numerical Recipes in the f 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 fexamples 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 fother 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".

     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.

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.