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

The files are located in:

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.

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

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

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.cFiles in the

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

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

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.FORFiles in the

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

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.