Index [numerical.recipes]numerical.recipes/nr3index.pdfBicubic interpolation 136Œ138 Bicubic spline...

41
Index Abstract Base Class (ABC) 24, 33, 34, 87, 114, 703, 874 Accelerated convergence of series 177, 211–218 Accuracy 8–12 achievable in minimization 493, 497, 503 achievable in root finding 448 contrasted with fidelity 1037, 1046 CPU different from memory 230 vs. stability 907, 931, 932, 1035, 1050 Adams-Bashford-Moulton method 943 Adams’ stopping criterion 467 Adaptive integration 901, 910–921, 928, 930, 935, 946, 995 Monte Carlo 410–418 PI stepsize control 915 predictive stepsize control 939 see also Adaptive quadrature Adaptive quadrature 155, 167, 194–196 and singularities 195 termination criterion 194 Addition multiple precision 1186 theorem, elliptic integrals 310 ADI (alternating direction implicit) method 1052, 1053, 1065, 1066, 1185 Adjoint operator 1071 Advanced topics (explanation) 6 Advective equation 1032 Affine scaling 543 Agglomerative clustering 873–882 AGM (arithmetic geometric mean) 1185 Airy function 254, 283, 289, 291 routine for 290 Aitken’s delta squared process 212, 214 interpolation algorithm 118 Algorithms, less-numerical 1160–1193 Aliasing 606, 685 see also Fourier transform Alignment of strings by DP 559–562 All-poles or all-zeros models 681, 682 see also Maximum entropy method (MEM); Periodogram Alternating-direction implicit method (ADI) 1052, 1053, 1065, 1066, 1185 Alternating series 211, 216 Alternative extended Simpson’s rule 160 AMD (approximate minimum degree) 544, 548 Amoeba 503 see also Simplex, method of Nelder and Mead Amplification factor 1033, 1035, 1038, 1045, 1046 Amplitude error 1036 Analog-to-digital converter 1018, 1166 Analyticity 246 Analyze/factorize/operate package 76, 1030 Anderson-Darling statistic 739 Andrew’s sine 821 Angle between vectors 1120, 1121 coordinates on n-sphere 1128 exterior, of polygons 1122 Annealing, method of simulated 487, 488, 549–555 assessment 554, 555 for continuous variables 550, 552–554 schedule 551, 552 thermodynamic analogy 550 traveling salesman problem 551, 552 ANSI-16 1171 ANSI/ISO C++ standard 5 Antonov-Saleev variant of Sobol’ sequence 404–406, 408, 409 Apple Mac OS X 5 Approximate inverse of matrix 63 Approximation of functions 110 by Chebyshev polynomials 234, 625 by rational functions 247–251 by wavelets 711, 712, 989 Pad´ e approximant 212, 245–247 see also Fitting Area polygon 1126 sphere in n-dimensions 1128 triangle 1111 Arithmetic arbitrary precision 1160, 1185–1193 floating point 1163 IEEE standard 1164, 1165 rounding 1164, 1165 64 bit 341 Arithmetic coding 755, 1160, 1181–1185 1195

Transcript of Index [numerical.recipes]numerical.recipes/nr3index.pdfBicubic interpolation 136Œ138 Bicubic spline...

Page 1: Index [numerical.recipes]numerical.recipes/nr3index.pdfBicubic interpolation 136Œ138 Bicubic spline 135 Big-endian 9 Biharmonic equation 153 Bilinear interpolation 133, 134 Binary

Index

Abstract Base Class (ABC) 24, 33, 34, 87, 114,703, 874

Accelerated convergence of series 177, 211–218Accuracy 8–12

achievable in minimization 493, 497, 503achievable in root finding 448contrasted with fidelity 1037, 1046CPU different from memory 230vs. stability 907, 931, 932, 1035, 1050

Adams-Bashford-Moulton method 943Adams’ stopping criterion 467Adaptive integration 901, 910–921, 928, 930,

935, 946, 995Monte Carlo 410–418PI stepsize control 915predictive stepsize control 939see also Adaptive quadrature

Adaptive quadrature 155, 167, 194–196and singularities 195termination criterion 194

Additionmultiple precision 1186theorem, elliptic integrals 310

ADI (alternating direction implicit) method 1052,1053, 1065, 1066, 1185

Adjoint operator 1071Advanced topics (explanation) 6Advective equation 1032Affine scaling 543Agglomerative clustering 873–882AGM (arithmetic geometric mean) 1185Airy function 254, 283, 289, 291

routine for 290Aitken’s

delta squared process 212, 214interpolation algorithm 118

Algorithms, less-numerical 1160–1193Aliasing 606, 685

see also Fourier transformAlignment of strings by DP 559–562All-poles or all-zeros models 681, 682

see also Maximum entropy method (MEM);Periodogram

Alternating-direction implicit method (ADI)1052, 1053, 1065, 1066, 1185

Alternating series 211, 216

Alternative extended Simpson’s rule 160AMD (approximate minimum degree) 544, 548Amoeba 503

see also Simplex, method of Nelder and MeadAmplification factor 1033, 1035, 1038, 1045,

1046Amplitude error 1036Analog-to-digital converter 1018, 1166Analyticity 246Analyze/factorize/operate package 76, 1030Anderson-Darling statistic 739Andrew’s sine 821Angle

between vectors 1120, 1121coordinates on n-sphere 1128exterior, of polygons 1122

Annealing, method of simulated 487, 488,549–555assessment 554, 555for continuous variables 550, 552–554schedule 551, 552thermodynamic analogy 550traveling salesman problem 551, 552

ANSI-16 1171ANSI/ISO C++ standard 5Antonov-Saleev variant of Sobol’ sequence

404–406, 408, 409Apple Mac OS X 5Approximate inverse of matrix 63Approximation of functions 110

by Chebyshev polynomials 234, 625by rational functions 247–251by wavelets 711, 712, 989Pade approximant 212, 245–247see also Fitting

Areapolygon 1126sphere in n-dimensions 1128triangle 1111

Arithmeticarbitrary precision 1160, 1185–1193floating point 1163IEEE standard 1164, 1165rounding 1164, 116564 bit 341

Arithmetic coding 755, 1160, 1181–1185

1195

Page 2: Index [numerical.recipes]numerical.recipes/nr3index.pdfBicubic interpolation 136Œ138 Bicubic spline 135 Big-endian 9 Biharmonic equation 153 Bilinear interpolation 133, 134 Binary

1196 Index

Arithmetic-geometric mean (AGM) method 1185Array

assign function 27centered subarray of 115classes for 24–29resize function 27size function 27three-dimensional 36unit-offset 36zero-offset 36

Artificial viscosity 1037, 1042Ascending transformation, elliptic integrals 310ASCII character set 1168, 1175, 1181assign 27Associated Legendre polynomials 971

recurrence relation for 294relation to Legendre polynomials 293

Association, measures of 721, 741, 758–761Asymptotic series 210, 216

exponential integral 216, 269Attenuation factors 698Autocorrelation

in linear prediction 673–675use of FFT 648, 649Wiener-Khinchin theorem 602, 682

Autoregressive model (AR) see Maximum entropymethod (MEM)

Average deviation of distribution 723Averaging kernel, in Backus-Gilbert method

1014

B-spline 148Backsubstitution 47, 49, 53, 56, 103

complex equations 55direct for computing A

�1� B 53

in band-diagonal matrix 60relaxation solution of boundary value

problems 966Backtracking 522

in quasi-Newton methods 478–483Backus-Gilbert method 1014–1016Backward deflation 464, 465Bader-Deuflhard method 940Bahl-Cocke-Jelinek-Raviv algorithm

forward-backward algorithm 867Bairstow’s method 466, 471Balancing 592, 594Band-diagonal matrix 56, 58–61

backsubstitution 60LU decomposition 59multiply by vector 58storage 58

Band-pass filter 667, 670wavelets 701

Bandwidth limited function 605Bank accounts, checksum for 1174Bar codes, checksum for 1174Barrier method 541Bartels-Golub update 535Bartlett window 657

Barycentric coordinates 1114, 1116Barycentric rational interpolation 113, 127, 128Base class 23Base of representation 8, 1164Basin of convergence 461, 463Basis functions in general linear least squares 788Baum-Welch re-estimation

hidden Markov model 865–867relation to expectation-maximization 866

Bayes’ theorem 774, 777, 825Bayesian

approach to inverse problems 1005, 1022contrasted with frequentist 774estimation of parameters by MCMC 774,

824–835lack of goodness-of-fit methods 779, 1010normalizing constant 779odds ratio 757, 779parameter estimation 777, 778prior 757, 775, 777, 1005views on straight line fitting 787vs. historic maximum entropy method 1022

Bayesian algorithmshidden Markov model 868Viterbi decoding 868

Bayesian networks 840, 841node parents 841nodes 840posterior probabilities 841prior probabilities 841

Bayesian re-estimationhidden Markov model 864–866

Belief networks 840forward-backward algorithm 867

Bellman-Dijkstra-Viterbi algorithm 556, 850,853

Berlekamp-Massey decoding algorithm 852Bernoulli number 164Bessel functions 274–292

asymptotic form 274, 279, 284complex 254continued fraction 283, 284, 287, 288fractional order 274, 283–292Miller’s algorithm 221, 278modified 279–283modified, fractional order 287–289modified, normalization formula 282, 288modified, routines for 280normalization formula 221recurrence relation 219, 274, 275, 278, 281,

283–285reflection formulas 286reflection formulas, modified functions 289routines for 276, 286routines for modified functions 289series for 210, 274series for K� 288series for Y� 284, 285spherical 283, 291, 292turning point 283

Page 3: Index [numerical.recipes]numerical.recipes/nr3index.pdfBicubic interpolation 136Œ138 Bicubic spline 135 Big-endian 9 Biharmonic equation 153 Bilinear interpolation 133, 134 Binary

Index 1197

Wronskian 283, 284, 287Best-fit parameters 773, 781, 785, 822–824

see also FittingBeta function 256, 258, 259

incomplete see Incomplete beta functionBeta probability distribution 333, 334

deviates 371gamma as limiting case 333

Betting 755–758, 760, 761fair bet 755, 756, 758, 760, 761proportional 758, 760

Bezier curve 148BFGS algorithm see

Broyden-Fletcher-Goldfarb-Shanno algorithmBias

of exponent 8removal in linear prediction 145, 678, 679

Biconjugacy 88Biconjugate gradient method

elliptic partial differential equations 1030for sparse system 88, 716preconditioning 89, 1030

Bicubic interpolation 136–138Bicubic spline 135Big-endian 9Biharmonic equation 153Bilinear interpolation 133, 134Binary block code 851Binomial coefficients 256, 258

recurrences for 258Binomial probability function 258, 338, 339

deviates from 374–377moments of 735Poisson as limiting case 338

Binormal distribution 746, 813Biorthogonality 88Bisection 115, 460

compared to minimum bracketing 492root finding 445, 447–449, 454, 492, 584

Bispectrum 604Bit 8, 754–756, 760, 761

phantom 9pop count 16reversal in fast Fourier transform (FFT) 610,

638Bit-parallel random comparison 374Bit-twiddling hacks 16Bitwise logical functions 1170

test if integer a power of 2 16, 611trick for next power of 2 16, 361

Black-Scholes formula 329BLAST (software) 562BLAT (software) 562Block-by-block method 994Bluetooth 1168Bode’s rule 158Boltzmann probability distribution 550Boltzmann’s constant 550Bolyai-Gerwien theorem 1127Bookie, information theory view of 758

Bool 25Bootstrap method 809, 810Bordering method for Toeplitz matrix 96Borwein and Borwein method for � 1185Boundary 196, 528, 955Boundary conditions

for differential equations 900for spheroidal harmonics 972, 973in multigrid method 1072initial value problems 900partial differential equations 620, 1025,

1053–1058two-point boundary value problems 900,

955–984Boundary value problems 1026

see also Differential equations; Elliptic partialdifferential equations; Two-point boundaryvalue problems

Bounds checking 35in vector by at 35

Box 1099–1101test if point inside 1100tree of, as data structure 1101

Box-Muller algorithm for normal deviate 364Bracketing

of function minimum 445, 490–496, 503of roots 443, 445–447, 454, 455, 464, 465,

470, 492Branch cut, for hypergeometric function 252–254Break iteration 15Brenner’s FFT implementation 611, 628Brent’s method

minimization 489, 496–499, 785minimization, using derivative 489, 499, 500root finding 443, 449, 453–456, 459, 786

Broyden-Fletcher-Goldfarb-Shanno algorithm490, 521–525

Broyden’s method 474, 483–486singular Jacobian 486

Bubble sort 420Bugs, how to report 5Bulirsch-Stoer

algorithm for rational function interpolation125

for second order equations 929method 252, 318, 900, 901, 909, 921–929,

942method, dense output 927method, implementation 927method, stepsize control 924–926, 929

Burg’s LP algorithm 677Burn-in 826, 833–835Butterfly 360, 361, 610Byte 8

C (programming language) 1__FILE__ and __LINE__ macros 30idioms 16syntax 12–17

C++

Page 4: Index [numerical.recipes]numerical.recipes/nr3index.pdfBicubic interpolation 136Œ138 Bicubic spline 135 Big-endian 9 Biharmonic equation 153 Bilinear interpolation 133, 134 Binary

1198 Index

ANSI/ISO standard 5C family syntax 12–17const statement 31, 32contiguous storage for vector 27control structures 14, 15error class 30inline directive 29NR not a textbook on 2operator associativity 12operator precedence 12overloading 28scope, temporary 20, 21standard library 10, 24templates 17, 22, 26, 33, 34, 419, 421throw 30try and catch 30types 25types used in NR 4user-defined conversions 31valarray class 25vector class 24virtual function 33why used in NR 1

C# (programming language) 1, 12Calendar algorithms 2, 3, 6, 7Calibration 778Cardinal functions 1089–1091Cards, sorting a hand of 420, 422Carlson’s elliptic integrals 310–316Carpe diem 830catch 30Cauchy principal value integrals 178Cauchy probability distribution 322, 323

deviates from 367see also Lorentzian probability distribution

Cauchy problem for partial differential equations1024

Cavender-Felsenstein model 873Cayley’s representation of exp.�iHt/ 1049CCITT (Comite Consultatif International

Telegraphique et Telephonique) 1171, 1180CCITT-16 1171CDF see Cumulative Distribution FunctionCenter of mass 399, 400, 1113, 1127Central limit theorem 777Central tendency, measures of 721Centroid see Center of massChange of variable

in integration 170–172, 995in Monte Carlo integration 401in probability distribution 362

Char 25Character-based clustering methods 869Characteristic polynomial

digital filter 670eigensystems 563, 583, 665linear prediction 676matrix with a specified 469of recurrence relation 221of tridiagonal system 665

Characteristics of partial differential equations1024–1026

Chebyshev acceleration in successiveover-relaxation (SOR) 1064

Chebyshev approximation 95, 156, 232–239Clenshaw-Curtis quadrature 241Clenshaw’s recurrence formula 236coefficients for 234contrasted with Pade approximation 245derivative of approximated function 232, 240,

241economization of series 243–245even function 237fast cosine transform and 625for error function 264gamma functions 285integral of approximated function 240, 241odd function 237polynomial fits derived from 241, 243, 248rational function 247–251Remes exchange algorithm for filter 669

Chebyshev polynomials 183, 187, 233–239basis functions for spectral methods 1085continuous orthonormality 233discrete orthonormality 233explicit formulas for 233formula for xk in terms of 233

Check digit (decimal) 1173Checksum 1160, 1168–1175

cyclic redundancy (CRC) 1168–1173Chemical reaction networks 946–954Chi-by-eye 774Chi-square fitting see Fitting; Least-squares fittingChi-square probability function 330, 331, 732,

778, 779, 1003as boundary of confidence region 812deviates from 371

Chi-square test 731–734and confidence limit estimation 812chi-by-eye 774chi-square-gamma test 735degrees of freedom 732, 733for binned data 731–734for contingency table 742–745for inverse problems 1003for straight line fitting 781for straight line fitting, errors in both

coordinates 785for two binned data sets 732goodness-of-fit 780how much ��2 is significant 816least-squares fitting 778–780and likelihood ratio test 735modified Neyman 735nonlinear models 799small numbers of counts 734, 735for two binned data sets 735unequal size samples 733

Chirp signal 672Cholesky decomposition 100–102, 525, 568

Page 5: Index [numerical.recipes]numerical.recipes/nr3index.pdfBicubic interpolation 136Œ138 Bicubic spline 135 Big-endian 9 Biharmonic equation 153 Bilinear interpolation 133, 134 Binary

Index 1199

and covariance structure 378, 379decorrelating random variables 379multivariate Gaussian distribution 847, 848operation count 100pivoting 101solution of normal equations 543, 790, 791sparse decomposition 544, 548

Circleinscribed or circumscribed 1112largest empty 1147random point on 1131

Circulant 700Circumscribed circle (circumcircle) 1112CLAPACK 567Class 17–24

abstract base (ABC) 24, 33, 34, 87, 114, 703,874

base class 23derived 23error class 30inheritance 23, 24is-a relationship 23matrix 24–29partial abstraction via 24prerequisite relationship 23public vs. private 17pure virtual 34suffix _I, _O, _IO 26, 32templated 22, 33, 34vector 24–29see also Object

Class library 2Classification 840–898

kernel methods 889, 892support vector machine 883–898

Clenshaw-Curtis quadrature 156, 241, 624, 625Clenshaw’s recurrence formula 219, 222, 223

for Chebyshev polynomials 236stability 223

Clock, program timing routine 355Clocking errors 1172CLP (linear programming package) 536Clustering

agglomerative 873–882hierarchical 868–882k-means 848–850neighbor-joining (NJ) 873, 878–882

cn function 316Coarse-grid correction 1068Coarse-to-fine operator 1068Codes

binary block codes 851codeword 851correcting bit errors 855error-correcting 851–855Golay code 852Hamming code 852Hamming distance 851, 1168hard-decision decoding 853linear codes 851

minimal trellis 853perfect code 852Reed-Solomon 852, 855soft-decision decoding 853syndrome decoding 852trellis 853, 856turbo codes 855Viterbi decoding 854

Codingarithmetic 755, 1181–1185checksums 1168–1175compression 754, 756decoding a Huffman-encoded message 1178Huffman 713, 1175–1180run-length 1180variable length code 1176Ziv-Lempel 1176see also Arithmetic coding; Huffman coding

Coefficientsbinomial 258for Gaussian quadrature 179, 180for Gaussian quadrature, nonclassical weight

function 189–191, 995for quadrature formulas 157–162, 995

Column operations on matrix 43, 45Column totals 743, 759Combinatorial minimization see AnnealingComite Consultatif International Telegraphique et

Telephonique (CCITT) 1171, 1180Communications protocol 1168Comparison function for rejection method 366Compiler

check on via constructors 36tested 5

Complementary error function see Error functionComplete elliptic integral see Elliptic integralsComplex arithmetic 225, 226

access vector as if complex 613, 620avoidance of in path integration 253Complex type 25cubic equations 228, 229linear equations 55quadratic equations 227

Complex error function 302Complex plane

fractal structure for Newton’s rule 462path integration for function evaluation

251–254, 318poles in 124, 210, 252, 256, 670, 682, 922

Complex systems of linear equations 55Compression of data 713, 715, 1160, 1175–1185Computational geometry

floating point arithmetic in 1098Computer graphics 1097Computer vision 1097Concordant pair for Kendall’s tau 751Condition number 69, 89, 791, 793Conditional entropy 758–761Confidence level 810, 811, 814–816Confidence limits

Page 6: Index [numerical.recipes]numerical.recipes/nr3index.pdfBicubic interpolation 136Œ138 Bicubic spline 135 Big-endian 9 Biharmonic equation 153 Bilinear interpolation 133, 134 Binary

1200 Index

and chi-square 811bootstrap method 809, 810by Monte Carlo simulation 807–810confidence region, confidence interval 810,

811from singular value decomposition (SVD)

816, 817on estimated model parameters 807–817

Confluent hypergeometric function 254, 287Conjugate directions 509, 511, 512, 516Conjugate gradient method

and wavelets 716biconjugate 88compared to variable metric method 521elliptic partial differential equations 1030for minimization 489, 515–520, 1011, 1020for sparse system 87–92, 716minimum residual method 89preconditioner 89, 90

Conservative differential equations 928, 930const

correctness 26, 31, 32protects container, not contents 31, 32to protect data 32

Constellation in Viterbi decoding 855Constrained linear inversion method 1006Constrained linear optimization see Linear

programmingConstrained optimization 487Constraints

deterministic 1011–1013linear 526, 530

Constructor 18, 27Container, STL 421Contingency coefficient C 743, 744Contingency table 741–745, 753, 758, 759

statistics based on chi-square 742–745statistics based on entropy 758–761

Continue statement 15Continued fraction 206–209

and recurrence relation 222Bessel functions 283, 284, 288convergence criterion 208equivalence transformation 208evaluation 206–209evaluation along with normalization condition

288even and odd parts 208, 260, 267, 298, 301exponential integral 267Fresnel integral 298incomplete beta function 270incomplete gamma function 260Lentz’s method 207, 260modified Lentz’s method 208Pincherle’s theorem 222ratio of Bessel functions 287rational function approximation 207, 260recurrence for evaluating 207, 208sine and cosine integrals 301Steed’s method 207

tangent function 206typography for 206

Continuous variable (statistics) 741Control structures and scope 21Convergence

accelerated, for series 177, 211–218basin of 461, 463criteria for 448, 493, 503, 598, 599, 802, 969eigenvalues accelerated by shifting 585exponential 174–178, 180, 238, 239,

1083–1096golden ratio 449, 500hyperlinear (series) 211linear 448, 495linear (series) 211logarithmic (series) 211Markov model 858of algorithm for � 1185of golden section search 494, 495of Levenberg-Marquardt method 802of QL method 584, 585of Ridders’ method 452quadratic 64, 452, 459, 511, 512, 522, 1185rate 448, 454, 457, 459recurrence relation 222series vs. continued fraction 206spectral radius and 1061, 1066

Conversions, user-defined 31Convex hull 1097, 1132, 1146Convex sets, use in inverse problems 1011–1013Convolution

and polynomial interpolation 129denoted by asterisk 602finite impulse response (FIR) 642, 643multiple precision arithmetic 1188multiplication as 1188necessity for optimal filtering 645of functions 602, 616, 617, 631of large data sets 646, 647overlap-add method 647overlap-save method 646relation to wavelet transform 700, 701theorem 602, 641, 656theorem, discrete 642, 643treatment of end effects 643use of FFT 641–647wraparound problem 643

Cooley-Tukey FFT algorithm 616Cornwell-Evans algorithm 1021Corporate promotion ladder 427Corrected distance transformation 873Corrected two-pass algorithm 724Correction, in multigrid method 1067Correlation coefficient (linear) 745–748Correlation function 602, 617

and Fourier transforms 602, 617autocorrelation 602, 649, 673–675theorem 602, 648three-point 604treatment of end effects 648

Page 7: Index [numerical.recipes]numerical.recipes/nr3index.pdfBicubic interpolation 136Œ138 Bicubic spline 135 Big-endian 9 Biharmonic equation 153 Bilinear interpolation 133, 134 Binary

Index 1201

using FFT 648, 649Wiener-Khinchin theorem 602, 682

Correlation, statistical 721, 741among parameters in a fit 782, 793Kendall’s tau 749, 751–754linear correlation coefficient 745–748, 783linear related to least-squares fitting 745, 783nonparametric or rank statistical 748–754Spearman rank-order coefficient 749–751sum squared difference of ranks 749uncertainty coefficient 761

Coset leader 852Cosine function, recurrence 219Cosine integral 297, 300–302

continued fraction 301routine for 301series 301

Cosine transform see Fast Fourier transform(FFT); Fourier transform

Coulomb wave function 254, 283Counts, small numbers of 734, 735Courant condition 1034, 1036, 1038–1040, 1042

multidimensional 1051Courant-Friedrichs-Lewy stability criterion see

Courant conditionCovariance

a priori 824from singular value decomposition (SVD)

817in general linear least squares 790, 791, 794in nonlinear models 802in straight line fitting 782matrix, and normal equations 790matrix, Cholesky decomposition 101matrix, is inverse of Hessian matrix 802matrix, of errors 1003, 1015matrix, when it is meaningful 812, 813relation to chi-square 812–816

CR method see Cyclic reduction (CR)Cramer’s V 743, 744Crank-Nicolson method 1045, 1049, 1051, 1052Cray, Seymour 1163CRC (cyclic redundancy check) 1168–1173CRC-12 1171Critical (Nyquist) sampling 605, 607, 653Cross ˝ (denotes matrix outer product) 78Crosstabulation analysis 742

see also Contingency tableCrout’s algorithm 49, 59Cubic equations 227–229, 461Cubic spline interpolation 120–124

see also SplineCumulative Distribution Function (cdf) 435Curse of dimensionality 556, 891Curvature matrix see Hessian matrixCurve interpolation 147Cycle, in multigrid method 1069Cyclic Jacobi method 573Cyclic reduction (CR) 224, 1054, 1057, 1058Cyclic redundancy check (CRC) 1168–1173

Cyclic tridiagonal systems 79, 80

D.C. (direct current) 602Danielson-Lanczos lemma 609, 610, 638Data

continuous vs. binned 731entropy 754–761, 1176essay on 720fitting 773–838fraudulent 780glitches in 777iid (independent and identically distributed)

809linearly separable 884missing data points 150–154modeling 773–838smoothing 721, 766–772statistical tests 720–772unevenly or irregularly sampled 139–154,

685, 690, 771use of CRCs in manipulating 1169windowing 655–667see also Statistical tests

Data compression 713, 715, 1160arithmetic coding 1181–1185cosine transform 625Huffman coding 713, 1175–1181linear predictive coding (LPC) 679–681lossless 1175

Data Encryption Standard (DES) 358–361Data type 8DAUB4 700, 702, 706, 707, 711, 715DAUB6 702DAUB20 706Daubechies wavelet coefficients 700–702, 704,

706–708, 715Davidon-Fletcher-Powell algorithm 490, 521,

522Dawson’s integral 302, 304, 717

approximation for 303routine for 303

DE rule 174implementation 175infinite range 176

DecodingBerlekamp-Massey algorithm for

Reed-Solomon code 852directed graph 556, 850hard-decision 853hard-decision vs. soft-decision 855maximum likelihood 854Reed-Solomon codes 855soft-decision decoding 853syndrome decoding 852Turbo codes 855Viterbi algorithm 854Viterbi, compared to hidden Markov model

867, 868Decomposition see Cholesky decomposition; LU

decomposition; QR decomposition; Singularvalue decomposition (SVD)

Page 8: Index [numerical.recipes]numerical.recipes/nr3index.pdfBicubic interpolation 136Œ138 Bicubic spline 135 Big-endian 9 Biharmonic equation 153 Bilinear interpolation 133, 134 Binary

1202 Index

Deconvolution 645–647, 650see also Convolution; Fast Fourier transform

(FFT); Fourier transformDecorrelating random variables 379Defect, in multigrid method 1067Deferred approach to the limit see Richardson’s

deferred approach to the limitDeflation

of matrix 585of polynomials 464–466, 471

Degeneracykernel 992linear algebraic equations 73, 793minimization principle 1002

Degrees of freedom 732, 733, 778, 779, 813–815Delaunay triangulation 1097, 1131–1149

applications of 1141–1149incremental constructions 1134interpolation using 1141largest minimum angle property 1134minimum spanning tree 1147not minimum weight 1134

Delone, B.N. see Delaunay TriangulationDense output, for differential equations 904, 915,

927Dependencies, program 4Dependency graph or matrix 949Derivatives

approximation by sinc expansion 178computation via Chebyshev approximation

232, 240, 241computation via Savitzky-Golay filters 232,

769matrix of first partial see Jacobian determinantmatrix of second partial see Hessian matrixnumerical computation 229–232, 480, 769,

936, 960, 978of polynomial 202use in optimization 499–502

Derived class 23DES see Data Encryption StandardDescending transformation, elliptic integrals 310Descent direction 478, 484, 522Descriptive statistics 720–772

see also Statistical testsDesign matrix 768, 788, 1002Design of experiments 410Detailed balance equation 825–827Determinant 39, 54, 55Devex 535Deviates, random see Random deviatesDFP algorithm see Davidon-Fletcher-Powell

algorithmDiagonal dominance 57, 802, 987, 1060Diagonal rational function 125Diehard test, for random numbers 345Difference equations, finite see Finite difference

equations (FDEs)Difference operator 212Differential equations 899–954

accuracy vs. stability 907, 931Adams-Bashforth-Moulton schemes 943adaptive stepsize control 901, 910–921,

924–926, 929, 939, 941, 943, 944, 946algebraically difficult sets 970backward Euler’s method 932Bader-Deuflhard method for stiff 940boundary conditions 900, 955, 962, 977Bulirsch-Stoer method 252, 318, 900, 901,

909, 921–928, 942Bulirsch-Stoer method for conservative

equations 928, 930comparison of methods 900, 901, 942, 946,

957conservative 928, 930dense output 904, 915, 927discreteness effects 946–954eigenvalue problem 958, 973, 977–981embedded Runge-Kutta method 911, 936equivalence of multistep and multivalue

methods 945Euler’s method 900, 907, 931forward Euler’s method 931free boundary problem 958, 983global vs. local error 914high-order implicit methods 934implicit differencing 932, 933, 944initial value problems 900integrating to an unknown point 916internal boundary conditions 983, 984internal singular points 983, 984interpolation on right-hand sides 115Kaps-Rentrop method for stiff 934local extrapolation 911modified midpoint method 922, 923multistep methods 900, 942–946multivalue methods 942–946Nordsieck method 944order of method 907, 922path integration for function evaluation

251–254, 318predictor-corrector methods 900, 909, 934,

942–946r.h.s. independent of x 932, 934reduction to first-order sets 899, 956relaxation method 957, 964–970relaxation method, example of 971, 973–977Rosenbrock methods for stiff 934–940Runge-Kutta method 900, 907–921, 934, 942,

1096Runge-Kutta method, high-order 907–910,

912scaling stepsize to required accuracy 913, 914second order 928, 930semi-implicit differencing 934semi-implicit Euler method 934, 940semi-implicit extrapolation method 934, 935,

940, 941semi-implicit midpoint rule 940shooting method 956, 959–961

Page 9: Index [numerical.recipes]numerical.recipes/nr3index.pdfBicubic interpolation 136Œ138 Bicubic spline 135 Big-endian 9 Biharmonic equation 153 Bilinear interpolation 133, 134 Binary

Index 1203

shooting method, example 971, 977–981similarity to Volterra integral equations 993singular points 921, 962, 983, 984solving with sinc expansions 178step doubling 910stepsize control 901, 910–920, 924, 929, 938,

941, 944, 946stepsize, danger of too small 920stiff 901, 931–941stiff methods compared 941stochastic simulation 946–954Stoermer’s rule 928see also Partial differential equations;

Two-point boundary value problemsDifferentiation matrix 1091

routine for 1092Diffusion equation 1024, 1043–1049, 1059

Crank-Nicolson method 1045, 1049, 1051,1052

forward time centered space (FTCS) 1044,1046, 1059

implicit differencing 1045multidimensional 1051, 1052

Digamma function 267Digital filtering see FilterDihedral angle 1116Dihedral group D5 1174Dimensionality, curse of 556, 891Dimensions (units) 801Diminishing increment sort 422Dingbats, Zapf 1162Dirac delta function 700, 987Direct method see PeriodogramDirect methods for linear algebraic equations 40Direct product see Outer product of matricesDirected graph

Markov model 856stages and states 556, 850transition matrix 856transition probability 856trellis 856Viterbi decoding 850

Direction numbers, Sobol’s sequence 404Direction of largest decrease 512Direction set methods for minimization 489,

509–514Dirichlet boundary conditions 1026, 1045, 1055,

1061, 1063Discordant pair for Kendall’s tau 751Discrete convolution theorem 642, 643Discrete Fourier transform (DFT) 605–608

approximation to continuous transform 607,608

see also Fast Fourier transform (FFT)Discrete optimization 536, 549Discrete prolate spheroidal sequence (dpss)

662–667Discretization error 173Discriminant 227, 572Dispersion 1036

DISPO see Savitzky-Golay filtersDissipation, numerical 1035Distance matrix 869Distributions, statistical see Statistical distributionsDivergent series 210, 211, 216Divide-and-conquer method 589Division

complex 226integer vs. floating 8multiple precision 1190of polynomials 204, 464, 471

dn function 316DNA sequence 559–562, 869, 884Do-while iteration 15Dogleg step methods 486Domain of integration 196Dominant solution of recurrence relation 220Dormand-Prince parameters 912, 920Dot �

denotes matrix multiplication 37denotes row or column sums 759

Doub 25Double exponential error distribution 820Double root 443Doubling rate 756Downhill simplex method see Simplex, method of

Nelder and MeadDP see Dynamic programmingdpss (discrete prolate spheroidal sequence)

662–667Dual problem 538, 886Dual viewpoint, in multigrid method 1077Duality gap 538Duplication theorem, elliptic integrals 311DWT (discrete wavelet transform) see Wavelet

transformDynamic programming 555–562

Bellman-Dijkstra-Viterbi algorithm 556, 850directed graph 556, 850

e-folding rate 756Eardley’s equivalence class method 440Economization of power series 243–245Eigensystems 563–599

and integral equations 987, 992balancing matrix 592, 594bounds on eigenvalues 64calculation of few eigenvectors or eigenvalues

568, 598canned routines 567characteristic polynomial 563, 583completeness 564, 565defective 564, 591, 598, 599deflation 585degenerate eigenvalues 563, 565divide-and-conquer method 589eigenvalues 563elimination method 567, 594factorization method 567fast Givens reduction 578

Page 10: Index [numerical.recipes]numerical.recipes/nr3index.pdfBicubic interpolation 136Œ138 Bicubic spline 135 Big-endian 9 Biharmonic equation 153 Bilinear interpolation 133, 134 Binary

1204 Index

generalized eigenproblem 568, 569Givens reduction 578–583Givens transformation 587Hermitian matrix 590Hessenberg matrix 567, 585, 590–595, 598Householder transformation 567, 578–584,

587, 590, 594ill-conditioned eigenvalues 591, 592implicit shifts 586–589invariance under similarity transform 566inverse iteration 568, 584, 589, 597–599Jacobi transformation 567, 570–576, 578,

590, 599left eigenvalues 565list of tasks 568Markov model transition matrix 858, 859MRRR algorithm 589, 599multiple eigenvalues 599nonlinear 568, 569nonsymmetric matrix 590–595operation count of balancing 592operation count of Givens reduction 578operation count of Householder reduction

582operation count of inverse iteration 598, 599operation count of Jacobi method 573, 574operation count of QL method 585, 588operation count of QR method for Hessenberg

matrices 596operation count of reduction to Hessenberg

form 594orthogonality 564polynomial roots and 469QL method 584–586, 590QR method 67, 567, 571, 584–586QR method for Hessenberg matrices 596real symmetric matrix 188, 576, 577, 582,

992reduction to Hessenberg form 594, 595relation to singular value decomposition

(SVD) 569, 570right eigenvalues 565shifting eigenvalues 563, 585, 596special matrices 568termination criterion 598, 599tridiagonal matrix 567, 576, 577, 583–589,

598Eigenvalue and eigenvector, defined 563Eigenvalue problem for differential equations

958, 973, 977–981Eigenvalues and polynomial root finding 469EISPACK 567Electromagnetic potential 631Elimination see Gaussian eliminationEllipse in confidence limit estimation 811, 814,

815Elliptic integrals 309–316, 1185

addition theorem 310Carlson’s forms and algorithms 310–316Cauchy principal value 311

duplication theorem 311Legendre 309, 314, 315routines for 311–315symmetric form 309, 310Weierstrass 310

Elliptic partial differential equations 1024alternating-direction implicit method (ADI)

1065, 1066, 1185analyze/factorize/operate package 1030biconjugate gradient method 1030boundary conditions 1026comparison of rapid methods 1058conjugate gradient method 1030cyclic reduction 1054, 1057, 1058Fourier analysis and cyclic reduction (FACR)

1053–1058Gauss-Seidel method 1060, 1061, 1068, 1078Jacobi’s method 1060, 1061, 1068matrix methods 1028, 1030multigrid method 1030, 1066–1083rapid (Fourier) method 1029, 1054–1057relaxation method 1028, 1059–1066spectral methods 1096successive over-relaxation (SOR) 1061–1066,

1070EM algorithm see Expectation-maximization

algorithmEmbedded networks 1168Embedded Runge-Kutta method 911, 936Encryption 358Entropy 754–761, 1006, 1176

chain rule 759conditional 758–761of data 1017relative 756

EOM (end of message) 1178, 1181epsilon (�) algorithm 212Equality constraints 526, 528Equations

cubic 227–229, 461differential see Differential equationsnormal (fitting) 768, 789–793, 1007quadratic 10, 227–229see also Differential equations; Partial

differential equations; Root findingEquilibrium, physical 825Equivalence classes 419, 439–441Equivalence transformation 208Ergodic

Markov model 858Ergodic property 825Error 8–12

checksums for preventing 1172clocking 1172discretization 173double exponential distribution 820in multigrid method 1067interpolation 113local truncation 1077, 1078Lorentzian distribution 820

Page 11: Index [numerical.recipes]numerical.recipes/nr3index.pdfBicubic interpolation 136Œ138 Bicubic spline 135 Big-endian 9 Biharmonic equation 153 Bilinear interpolation 133, 134 Binary

Index 1205

nonnormal 779, 812, 818–824relative truncation 1077roundoff 10, 11, 229, 1163, 1164series, advantage of an even 165, 923systematic vs. statistical 778trimming 173truncation 11, 173, 229, 500, 910, 911, 1163varieties of, in PDEs 1036–1038see also Roundoff error

Error-correcting codes 851–855Berlekamp-Massey decoding algorithm 852binary block code 851codeword 851correcting bit errors 855coset leader 852Golay code 852Hamming code 852Hamming distance 851, 1168hard-decision decoding 853linear codes 851minimal trellis 853parity-check matrix 851perfect code 852Reed-Solomon 852, 855soft-decision decoding 853syndrome 852syndrome decoding 852trellis 853, 856turbo codes 855Viterbi decoding 854, 855

Error ellipse, how to draw 817, 847Error function 259, 264–266, 718

approximation via sampling theorem 718,719

Chebyshev approximation 264complex 302Fisher’s z-transformation 747inverse 264relation to Dawson’s integral 302relation to Fresnel integrals 298relation to incomplete gamma function 264routine for 264significance of correlation 746sum squared difference of ranks 750

Error handling in programs 2, 30, 31, 35Estimation of parameters see Fitting; Maximum

likelihood estimateEstimation of power spectrum 681–684Euclid 1098Euler equation (fluid flow) 1037Euler-Maclaurin summation formula 164, 167Euler’s constant 267, 269, 300Euler’s method for differential equations 900,

907, 931Euler’s transformation 211, 212Evaluation of functions see FunctionEven and odd parts, of continued fraction 208,

260, 267Even parity 1168Exception handling in programs 2, 30, 31, 35

Expectation-maximization algorithm 842–844expectation step (E-step) 843for hidden Markov model 866maximization step (M-step) 843relation to Baum-Welch re-estimation 866

Explicit differencing 1032Exponent in floating point format 8, 1164Exponential convergence 174–178, 180, 238,

239, 1083–1096Exponential integral 266–269

asymptotic expansion 269continued fraction 267recurrence relation 219related to incomplete gamma function 267relation to cosine integral 301routine for Ei.x/ 269routine for En.x/ 268series 267

Exponential probability distribution 326, 327,686deviate from 362relation to Poisson process 369, 829

Extended midpoint rule 157, 161, 167Extended precision, use in iterative improvement

62Extended Simpson’s rule 160, 994, 997

three-eighths rule 995Extended trapezoidal rule 157, 159, 162, 167,

993roundoff error 165

Extirpolation (so-called) 690, 691Extrapolation 110–154

Bulirsch-Stoer method 922, 924by linear prediction 673–681differential equations 900local 911maximum entropy method as type of 683polynomial 922, 924, 943rational function 922relation to interpolation 110Romberg integration 166see also Interpolation

Extremization see Minimization

F -distribution probability function 332, 333deviates 371

F-test for differences of variances 728, 730FACR see Fourier analysis and cyclic reduction

(FACR)Facsimile standard 1180Factorial

evaluation of 210relation to gamma function 256representability 257routine for 257routine for log 258

False position 449, 452, 454Family tree 440FAS (full approximation storage algorithm)

1076–1083

Page 12: Index [numerical.recipes]numerical.recipes/nr3index.pdfBicubic interpolation 136Œ138 Bicubic spline 135 Big-endian 9 Biharmonic equation 153 Bilinear interpolation 133, 134 Binary

1206 Index

Fast Fourier transform (FFT) 608–616, 640, 1160alternative algorithms 615, 616applications 640–719approximation to continuous transform 608bare routine for 611bit reversal 610, 638butterfly 360, 361, 610Clenshaw-Curtis quadrature 241convolution 616, 631, 641–647, 1189convolution of large data sets 646, 647Cooley-Tukey algorithm 616correlation 648, 649cosine transform 241, 624–627, 1056cosine transform, second form 625, 1057Danielson-Lanczos lemma 609, 610, 638data sets not a power of 2 616data smoothing 766, 767data windowing 655–667decimation-in-frequency algorithm 616decimation-in-time algorithm 615decomposition into blocks 614differentiation matrix using 1092discrete autocorrelation 649discrete convolution theorem 642, 643discrete correlation theorem 648double frequency 690endpoint corrections 694external storage 637, 638figures of merit for data windows 658filtering 667–672FIR filter 668, 669for quadrature 156for spherical harmonic transforms 296four-step framework 615Fourier integrals 692–699Fourier integrals,infinite range 699history 609IIR filter 668–672image processing 1010, 1012integrals using 156inverse of sine transform 623large data sets 637, 638leakage 655, 656Lomb periodogram and 689memory-local algorithm 638multidimensional 627–630multiple precision arithmetic 1185multiple precision multiplication 1189number-theoretic transforms 616of real data in 2D and 3D 631–637of real functions 617–627, 631–637of single real function 618–620of two real functions simultaneously 617, 618operation count 609, 610optimal (Wiener) filtering 649–652, 673, 674order of storage in 611parallel 614partial differential equations 1029,

1054–1057periodicity of 608

periodogram 653–656, 681, 683power spectrum estimation 652–667related algorithms 615, 616Sande-Tukey algorithm 616sine transform 620–623, 1055Singleton’s algorithm 637, 638six-step framework 615spectral methods 1086treatment of end effects in convolution 643treatment of end effects in correlation 648Tukey’s trick for frequency doubling 690two real functions simultaneously 617use in smoothing data 766, 767virtual memory machine 638Winograd algorithms 616zoom transforms 615see also Discrete Fourier transform (DFT);

Fourier transform; Spectral densityFast Legendre transform 295, 297Fast multipole methods 140, 1150FASTA (software) 562Faure sequence 404Fax (facsimile) Group 3 standard 1180Feasible vector 526, 538

basis vector 528Fermi-Dirac integral 178FFT see Fast Fourier transform (FFT)Field, in data record 428Figure-of-merit function 773__FILE__ (ANSI C macro) 30Fill-in, sparse linear equations 59, 76, 535, 544Filon’s method 698Filter 667–672

acausal 668bilinear transformation method 670, 672by fast Fourier transform (FFT) 637, 649,

667–672causal 668, 767, 770characteristic polynomial 670data smoothing 766digital 667–672DISPO 767finite impulse response (FIR) 642, 643, 668,

669homogeneous modes of 670infinite impulse response (IIR) 668–672, 681Kalman 824linear 668–672low-pass for smoothing 766nonrecursive 668optimal (Wiener) 645, 649–652, 673, 674,

767quadrature mirror 701, 708realizable 668, 670, 671recursive 668–672, 681Remes exchange algorithm 669Savitzky-Golay 232, 766–772stability of 670, 671time domain 667–672

Fine-to-coarse operator 1068

Page 13: Index [numerical.recipes]numerical.recipes/nr3index.pdfBicubic interpolation 136Œ138 Bicubic spline 135 Big-endian 9 Biharmonic equation 153 Bilinear interpolation 133, 134 Binary

Index 1207

Finite difference equations (FDEs) 964, 970, 981accuracy of 1085alternating-direction implicit method (ADI)

1052, 1053, 1065, 1066art, not science 1035Cayley’s form for unitary operator 1049Courant condition 1034, 1036, 1038, 1042Courant condition (multidimensional) 1051Crank-Nicolson method 1045, 1049, 1051,

1052eigenmodes of 1033, 1034explicit vs. implicit schemes 1033forward Euler 1032forward time centered space (FTCS) 1032,

1044, 1049, 1059implicit scheme 1045in relaxation methods 964Lax method 1034–1036, 1042Lax method (multidimensional) 1050, 1051mesh drifting instability 1040numerical derivatives 229partial differential equations 1027relation to spectral methods 1093staggered leapfrog method 1038, 1039two-step Lax-Wendroff method 1040upwind differencing 1037, 1042see also Partial differential equations

Finite element methods 132, 1030Finite impulse response (FIR) 642, 643FIR (finite impulse response) filter 668, 669First-class objects 397Fisher discriminant algorithm 892Fisher’s z-transformation 746Fitting 773–838

basis functions 788by Chebyshev approximation 234by rational Chebyshev approximation

247–251chi-square 778–780confidence levels from singular value

decomposition (SVD) 816, 817confidence levels related to chi-square values

812–816confidence limits on fitted parameters

807–817covariance matrix not always meaningful

774, 812degeneracy of parameters 797exponential, an 797freezing parameters in 791, 824Gaussians, a sum of 805general linear least squares 788–798how much ��2 is significant 816K–S test, caution regarding 740Kalman filter 824kriging 836–838least squares 776–780Legendre polynomials 797Levenberg-Marquardt method 801–806, 1022linear regression 780–785

Markov chain Monte Carlo 824–835maximum likelihood estimation 777, 818Monte Carlo simulation 740, 779, 807–810multidimensional 798, 836–838nonlinear models 799–806nonlinear models, advanced methods 806nonlinear problems that are linear 797nonnormal errors 781, 812, 818–824of sharp spectral features 682polynomial 94, 129, 241, 243, 768, 788, 797robust methods 818–824standard (probable) errors on fitted parameters

781, 782, 786, 787, 790, 794, 795,807–817

straight line 780–785, 822–824straight line, errors in both coordinates

785–787see also Error; Least-squares fitting; Maximum

likelihood estimate; Robust estimationFive-point difference star 1071Fixed point format 8Fletcher-Powell algorithm see

Davidon-Fletcher-Powell algorithmFletcher-Reeves algorithm 489, 515–519Floating point format 8–11, 1163–1165

care in numerical derivatives 229, 230in computational geometry 1098enabling exceptions 35, 575history 1163IEEE 9, 10, 34, 1164little- vs. big-endian 9NaN 34, 35

Flux-conservative initial value problems1031–1043

FMG (full multigrid method) 1067, 1072–1076for iteration 14Formats of numbers 8–11, 1163–1165Fortran 1

INTENT attribute 26Forward-backward algorithm

as a sum-product algorithm 867Bahl-Cocke-Jelinek-Raviv algorithm 867belief propagation 867compared to Viterbi decoding 867hidden Markov model 861, 862, 864–867renormalization 862

Forward deflation 464, 465Forward difference operator 212Forward Euler differencing 1032Forward Time Centered Space see FTCSFour-step framework, for FFT 615Fourier analysis and cyclic reduction (FACR)

1054, 1058Fourier and spectral applications 600, 640–719Fourier integrals

attenuation factors 698endpoint corrections 694tail integration by parts 699use of fast Fourier transform (FFT) 692–699

Page 14: Index [numerical.recipes]numerical.recipes/nr3index.pdfBicubic interpolation 136Œ138 Bicubic spline 135 Big-endian 9 Biharmonic equation 153 Bilinear interpolation 133, 134 Binary

1208 Index

Fourier series as basis functions for spectralmethods 1085

Fourier transform 110, 600–640aliasing 606, 685approximation of Dawson’s integral 303autocorrelation 602basis functions compared 621contrasted with wavelet transform 699, 700,

711convolution 602, 616, 617, 631, 641–647,

1189correlation 602, 617, 648, 649cosine transform 241, 624–627, 1056cosine transform, second form 625, 1057critical sampling 605, 653, 655decomposition into blocks 614definition 600discrete Fourier transform (DFT) 233, 236,

605–608Gaussian function 717, 718image processing 1010, 1012infinite range 699inverse of discrete Fourier transform 608method for partial differential equations

1054–1057missing data 685missing data, fast algorithm 689–692Nyquist frequency 605, 607, 632, 653, 655,

685optimal (Wiener) filtering 649–652, 673, 674Parseval’s theorem 602, 603, 608, 654power spectral density (PSD) 602, 603power spectrum estimation by FFT 652–667power spectrum estimation by maximum

entropy method 681–684properties of 601sampling rate 605sampling theorem 605, 653, 655, 717–719scalings of 601significance of a peak in 686sine transform 620–623, 1055symmetries of 601uneven sampling, fast algorithm 689–692unevenly sampled data 685–692wavelets and 707, 708Wiener-Khinchin theorem 602, 674, 682see also Fast Fourier transform (FFT); Spectral

densityFractal region 462Fractional step methods 1052Fredholm alternative 987Fredholm equations 986

eigenvalue problems 987, 992error estimate in solution 991first kind 986Fredholm alternative 987homogeneous vs. inhomogeneous 987homogeneous, second kind 991ill-conditioned 987infinite range 995

inverse problems 987, 1001–1006kernel 986nonlinear 988Nystrom method 989–992, 995product Nystrom method 995second kind 987–992subtraction of singularity 996symmetric kernel 992with singularities 995–1000with singularities, worked example 999, 1000see also Inverse problems

Frequency domain 600Frequency spectrum see Fast Fourier transform

(FFT)Frequentist, contrasted with Bayesian 774Fresnel integrals 297–300

asymptotic form 298continued fraction 298routine for 299series 298

Friday the 13th 7FSAL (first-same-as-last) 913FTCS (forward time centered space) 1032, 1044,

1049stability of 1033, 1044, 1060

Full approximation storage (FAS) algorithm1076–1083

Full conditional distribution 827Full moon 7Full multigrid method (FMG) 1067, 1072–1076Full Newton methods, nonlinear least squares

806Full pivoting 43Full weighting 1071Function

Airy 254, 283, 289, 291approximation 110, 233–239associated Legendre polynomial 293, 971autocorrelation of 602bandwidth limited 605Bessel 219, 254, 274–292beta 258, 259branch cuts of 252–254chi-square probability 1003complex 251confluent hypergeometric 254, 287convolution of 602, 617correlation of 602, 617Coulomb wave 254, 283cumulative distribution (cdf) 320–339Dawson’s integral 302, 304, 717digamma 267elliptic integrals 309–316, 1185error 264–266, 298, 302, 718, 746, 750error function 259evaluation 201–254evaluation by path integration 251–254, 318exponential integral 219, 266–269, 301factorial 256, 257Fermi-Dirac integral 178

Page 15: Index [numerical.recipes]numerical.recipes/nr3index.pdfBicubic interpolation 136Œ138 Bicubic spline 135 Big-endian 9 Biharmonic equation 153 Bilinear interpolation 133, 134 Binary

Index 1209

Fresnel integral 297–300functor 21–23, 444, 459, 905gamma 256, 257hypergeometric 252, 318–320incomplete beta 270–273incomplete gamma 259–263, 732, 779inverse cumulative distribution 320–339inverse hyperbolic 227, 310inverse incomplete gamma 263inverse of x log.x/ 307–309, 335inverse trigonometric 310Jacobian elliptic 309, 316, 317Kolmogorov-Smirnov probability 737, 763Legendre polynomial 219, 293, 797log factorial 258logarithm 310minimization 487–562modified Bessel 279–283modified Bessel, fractional order 287–289object 21path integration to evaluate 251–254pathological 111, 445probability 320–339representations of 600routine for plotting a 444sine and cosine integrals 297, 300–302sn, dn, cn 316, 317spherical Bessel 283spherical harmonics 292–297spheroidal harmonic 971–981statistical 320–339templated 17, 22, 26utility 17virtual 33Weber 254

Function object see FunctorFunctional iteration, for implicit equations 943Functor 21–23, 202, 204, 237, 240, 444, 459,

660, 905, 936, 940FWHM (full width at half maximum) 659

g++ 5Gambling 755–758, 760, 761Gamma function 256, 257

and area of sphere 1129complex 257incomplete see Incomplete gamma function

Gamma probability distribution 331, 332as limiting case of beta 333deviates from 369relation to Poisson process 829sum rule for deviates 370

Gauss-Chebyshev integration 180, 183, 187, 625Gauss-Hermite integration 183, 995

abscissas and weights 185normalization 185

Gauss-Jacobi integration 183abscissas and weights 186

Gauss-Jordan elimination 41–46, 75operation count 47, 54

solution of normal equations 790storage requirements 44

Gauss-Kronrod quadrature 192, 195Gauss-Laguerre integration 183, 995Gauss-Legendre integration 183, 193

see also Gaussian integrationGauss-Lobatto quadrature 191, 192, 195, 241,

624, 1089Gauss-Markov estimation 144Gauss-Radau quadrature 191Gauss-Seidel method (relaxation) 1060–1062,

1068nonlinear 1078

Gauss transformation 310Gaussian

Hardy’s theorem on Fourier transforms 717multivariate 378, 379, 842, 843, 847, 848,

1006, 1129, 1130see also Gaussian (normal) distribution

Gaussian (normal) distribution 341, 776, 778,1004central limit theorem 777Cholesky decomposition of 847, 848deviates from 364, 365, 368, 686kurtosis of 723, 724multivariate 813, 842semi-invariants of 725sum of 12 uniform 377tails compared to Poisson 778two-dimensional (binormal) 746variance of skewness of 723see also Normal (Gaussian) distribution

Gaussian elimination 46–48, 65, 71fill-in 59, 76, 535in reduction to Hessenberg form 594integral equations 993operation count 47relaxation solution of boundary value

problems 966, 984Gaussian integration 159, 179–193, 238, 296,

995, 997, 1086–1089and orthogonal polynomials 181, 1087calculation of abscissas and weights 182–188discrete orthogonality relation 1087error estimate in solution 991exponential convergence of 180, 1089extensions of 191–193, 1089for integral equations 988, 990from known recurrence relation 188, 189Golub-Welsch algorithm for weights and

abscissas 188for incomplete beta function 271for incomplete gamma function 260, 262nonclassical weight function 189–191, 995preassigned nodes 191weight function log x 190, 191weight functions 179–181, 995

Gaussian mixture model 842–848Gaussian process regression 144, 836–838Gear’s method (stiff ODEs) 934, 941

Page 16: Index [numerical.recipes]numerical.recipes/nr3index.pdfBicubic interpolation 136Œ138 Bicubic spline 135 Big-endian 9 Biharmonic equation 153 Bilinear interpolation 133, 134 Binary

1210 Index

Geiger counter 340Gene sequencing

alignment algorithms 559–562hidden Markov model 866

Generalized eigenvalue problems 568, 569Generalized minimum residual method

(GMRES) 89Genetic algorithms 840Geometric series 211, 214Geophysics, use of Backus-Gilbert method 1016Gerchberg-Saxton algorithm 1012Ghostscript 1161Gibbs sampler 827, 828

recommended for discrete distributions 828Gilbert and Sullivan 920Gillespie method 947Givens reduction 578–583, 587

fast 578operation count 578

Glassman, A.J. 229Global optimization 487, 488, 549–555, 774

continuous variables 552–554difficulty of 803

Globally convergentminimization 521–525root finding 474, 477–486, 959, 960, 963

GLPK (linear programming package) 536GMRES (generalized minimum residual method)

89GNU C++ compiler 5GNU Scientific Library 3Gnuplot 1162Godunov’s method 1043Golden mean (golden ratio) 11, 449, 494, 500Golden section search 443, 489, 496Goldman-Tucker theorem 539Golub-Welsch algorithm, for Gaussian quadrature

188Goodness-of-fit 773, 779, 782, 783, 787, 813

no good Bayesian methods 779, 1010Gram-Schmidt

orthogonalization 105, 564, 565, 589, 598SVD as alternative to 74

Graphics, function plotting 444, 1160–1163Gravitational potential 631Gray code 405, 1160, 1166–1168Greenbaum, A. 90Gregorian calendar 6Grid square 132Gridding 150–154Group, dihedral 1174Guard digits 1164

Half weighting 1071Halley’s method 263, 264, 271, 335, 463Halton’s quasi-random sequence 404Hamming code 852Hamming distance 873

error-correcting codes 851, 1168Hamming window 658

Hamming’s motto 443Hann window 657Hard-decision

decoding 853error correction 855

Harmonic analysis see Fourier transformHarwell-Boeing format 83Hash

collision strategy 387, 390examples 396function 352, 387–389key 387memory 392–397multimap memory 394–397table 386–392of whole array 358–361

Heap (data structure) 426, 434, 952, 1178Heapsort 420, 426–428, 434Helmholtz equation 1057Hermite interpolation 916Hermite polynomials 183, 185Hermitian matrix 564, 590Hertz (unit of frequency) 600Hessenberg matrix 105, 567, 585, 590–595, 598

QR algorithm 596see also Matrix

Hessian matrix 483, 510, 517, 521, 522,799–801, 1011, 1020, 1021is inverse of covariance matrix 802second derivatives in 800, 801

Hidden Markov model 856–868backward estimate 861Baum-Welch re-estimation 865–867Bayesian nature of 868Bayesian posterior probability 860, 861, 864Bayesian re-estimation 864–866compared to Viterbi algorithm 867, 868convergence of Baum-Welch re-estimation

866expectation-maximization algorithm 866forward-backward algorithm 861, 862,

864–867forward estimate 860gene sequencing 866hidden state 859know intermediate states 864missing data 864observations 859re-estimation of symbol probability matrix

865re-estimation of transition probabilities 865renormalization 862speech recognition 866symbols 859trellis decoding 864variations 864

Hierarchical clustering 868–882Hierarchically band-diagonal matrix 716High-order not same as high-accuracy 112, 156,

238, 489, 500, 908, 911, 943

Page 17: Index [numerical.recipes]numerical.recipes/nr3index.pdfBicubic interpolation 136Œ138 Bicubic spline 135 Big-endian 9 Biharmonic equation 153 Bilinear interpolation 133, 134 Binary

Index 1211

High-pass filter 667Higher-order statistics 604Hilbert matrix 94Hilbert’s Third Problem 1127Histogram, variable-size bins 438Historic maximum entropy method 1022Hobson’s choice 704Homogeneous linear equations 69Hook step methods 486HOPDM (software) 548Hotelling’s method for matrix inverse 64, 716Householder transformation 67, 567, 578–584,

586, 587, 590, 594in QR decomposition 103operation count 582

Huffman coding 680, 713, 1160, 1175–1181Hull, convex 1097, 1132, 1146Hyperbolic functions, explicit formulas for inverse

227Hyperbolic partial differential equations 1024

advective equation 1032flux-conservative initial value problems

1031–1043Hypergeometric function 252, 318–320

routine for 318, 319Hypothesis, null 720

_I 26, 32, 36IBM

bad random number generator 344checksum 1174radix base for floating point arithmetic 592

ICF (intrinsic correlation function) model 1022Identity (unit) matrix 39Idioms 16IEEE floating point format 9, 10, 34, 257if structure 14

warning about nesting 14IIR (infinite impulse response) filter 668–672,

681Ill-conditioned integral equations 987Image processing 631, 1010

as an inverse problem 1010cosine transform 625fast Fourier transform (FFT) 631, 637, 1010from modulus of Fourier transform 1012maximum entropy method (MEM)

1016–1022QO tree and 1150wavelet transform 713, 715

Implicitfunction theorem 442pivoting 44shifts in QL method 586–589

Implicit differencing 1033for diffusion equation 1045for stiff equations 932, 933, 944

Importance sampling, in Monte Carlo 411, 412,414, 835, 836

Improper integrals 167–172

Impulse response function 641–643, 649, 668IMSL 3, 40, 76, 466, 470, 568IMT (Iri, Moriguti, Takasawa) rule 173In-place selection 439Include files 3, 4Incomplete beta function 270–273

for F-test 730for Student’s t 729routine for 273

Incomplete gamma function 259–263deviates from 369for chi-square 732, 779inverse 263

Increment of linear congruential generator 343Incremental quantile estimation 435

changes with time 438Indentation of blocks 14Index table 419, 426, 428–431Inequality constraints 526, 528, 538Inference 840–898Information

mutual 758–761side 760, 761theory 754–761

Inheritance 23, 24examples of in NR 23

Initial value problems 900, 1024, 1026see also Differential equations;

Injection operator 1068inline directive 29Inscribed circle (incircle) 1112Instability see StabilityInstantiation 18, 19Int, __int32, __int64 25Integer programming 536Integral equations 986–1023

adaptive stepsize control 995block-by-block method 994correspondence with linear algebraic equations

986degenerate kernel 992eigenvalue problems 987, 992error estimate in solution 991Fredholm 986, 989–992Fredholm alternative 987homogeneous, second kind 991ill-conditioned 987infinite range 995inverse problems 987, 1001–1006kernel 986nonlinear 988, 994Nystrom method 989–992, 995product Nystrom method 995solving with sinc expansions 178subtraction of singularity 996symmetric kernel 992unstable quadrature 994Volterra 988, 992–995wavelets 989with singularities 995–1000

Page 18: Index [numerical.recipes]numerical.recipes/nr3index.pdfBicubic interpolation 136Œ138 Bicubic spline 135 Big-endian 9 Biharmonic equation 153 Bilinear interpolation 133, 134 Binary

1212 Index

with singularities, worked example 999, 1000see also Inverse problems

Integral operator, wavelet approximation of 715,989

Integration of functions 155–200Chebyshev approximation 240, 241cosine integrals 300Fourier integrals 692–699Fourier integrals, infinite range 699Fresnel integrals 297Gauss-Hermite 185Gauss-Jacobi 186Gauss-Laguerre 184Gauss-Legendre 183infinite ranges 176–178integrals that are elliptic integrals 309path integration 251–254sine integrals 300see also Quadrature

Integro-differential equations 989INTENT attribute (Fortran) 26Interior-point method 85, 536–549

see also Linear ProgrammingIntermediate value theorem 445Interpolation 110–154

Aitken’s algorithm 118avoid in Fourier analysis 685barycentric rational 113, 127, 128bicubic 136–138biharmonic 153bilinear 133, 134caution on high-order 112, 113coefficients of polynomial 111, 129–131,

241, 243, 690curve 139, 147error estimates for 111for computing Fourier integrals 694for differential equation output 916functions with poles 124grid, on a 132–135Hermite 916inverse multiquadric 142inverse quadratic 454, 496irregular grid 139–149, 1097, 1141, 1142kriging 144–147Laplace/Poisson 150–154minimum curvature 153multidimensional 113, 132–135, 139–154multigrid method, in 1070–1072multiquadric 141Neville’s algorithm 118, 231, 924normalized radial basis functions 140Nystrom 990open vs. closed curve 148operation count for 111operator 1068order of 112ordinary differential equations and 113oscillations of polynomial 112, 129, 489, 500parabolic, for minimum finding 496–499

polynomial 110, 118–120, 231, 924pseudospectral method and 1087radial basis functions 139–144rational Chebyshev approximation 247–251rational function 110, 113, 124–128, 245,

275, 922reverse (extirpolation) 690, 691scattered data 139–154Shepard’s method 140spline 111, 120–124, 135trigonometric 110see also Fitting

Intersectionline and sphere 1121line and triangle 1121line segments 1118lines 1117QO tree used to find 1150

Intersections 1097Interval variable (statistics) 741Intrinsic correlation function (ICF) model 1022Inverse function of x log.x/ 307–309, 335Inverse hyperbolic function 227, 310Inverse iteration see Eigensystems

stable equilibrium of Markov model 859Inverse multiquadric 142Inverse problems 987, 1001–1006

and integral equations 987Backus-Gilbert method 1014–1016Bayesian approach 1005, 1022central idea 1005constrained linear inversion method 1006data inversion 1014deterministic constraints 1011–1013Gerchberg-Saxton algorithm 1012in geophysics 1016incomplete Fourier coefficients 1018, 1020linear regularization 1006–1013maximum entropy method (MEM)

1016–1022MEM demystified 1019, 1020optimally localized average 1014–1016Phillips-Twomey method 1006principal solution 1004regularization 1002–1006regularizing operator 1004stabilizing functional 1004Tikhonov-Miller regularization 1007trade-off curve 1002, 1016two-dimensional regularization 1010, 1011use of conjugate gradient minimization 1011,

1020use of convex sets 1011–1013use of Fourier transform 1010, 1012Van Cittert’s method 1011

Inverse quadratic interpolation 454, 496Inverse response kernel, in Backus-Gilbert method

1014Inverse trigonometric function 310_IO 26, 32, 36

Page 19: Index [numerical.recipes]numerical.recipes/nr3index.pdfBicubic interpolation 136Œ138 Bicubic spline 135 Big-endian 9 Biharmonic equation 153 Bilinear interpolation 133, 134 Binary

Index 1213

IQ (incremental quantile) agent 435Irreducibility of Markov model 858Irreducible polynomials modulo 2 382Irregular grid, interpolation on 139–149, 1141,

1142Is-a relationship 23ISBN (International Standard Book Number)

checksum 1173Iterated integrals 196, 197Iteration 14

for linear algebraic equations 40functional 943in root finding 443required for two-point boundary value

problems 955–957to improve solution of linear algebraic

equations 61–65, 245Iteration matrix 1060

Jacobi matrix, for Gaussian quadrature 188Jacobi transformation (or rotation) 105, 567,

570–576, 578, 590, 599decorrelating random variables 380

Jacobi’s method (relaxation) 1060, 1061, 1068Jacobian determinant 364, 981Jacobian elliptic functions 309, 316, 317Jacobian matrix 475, 477, 480, 483, 540, 935,

936singular in Newton’s rule 486

Java 1, 12Jenkins-Traub method 470Jordan curve theorem 1124JPEG-2000 standard 712Julian Day 3, 6Jump transposition errors 1174

K-means clustering 848–850K-S test see Kolmogorov-Smirnov testKalman filter 824Kaps-Rentrop method 934KD tree 1101–1110

construction of 1102–1106number of boxes in 1102

Kelly’s formula 758Kendall’s tau 749, 751–754Kernel 986

averaging, in Backus-Gilbert method 1014degenerate 992finite rank 992inverse response 1014separable 992singular 995symmetric 992

Kernel methods of classification 840, 889, 892Keys used in sorting 428KKT (Karush-Kuhn-Tucker) conditions 539,

542, 886, 889Kolmogorov-Smirnov probability distribution

334–336Kolmogorov-Smirnov test 731, 736–738, 819

two-dimensional 762–766variants 738, 762

Kriging 139fitting by 836–838fitting not same as interpolation 838interpolation by 144–147is Gaussian process regression 837linear prediction and 674, 679nugget effect 838

Kuiper’s statistic 739Kullback-Leibler distance 756–758

symmetrized 757Kurtosis 723, 725

L-estimate 818Lag 602, 648, 669Lagged Fibonacci generator 354Lagrange multiplier 758, 760, 1001Lagrange’s formula for polynomial interpolation

94, 118, 690, 691, 694, 1089, 1092Laguerre polynomials 183Laguerre’s method 444, 466–469

convergence 466Lanczos lemma 609, 610Lanczos method for gamma function 256Landen transformation 310LAPACK 40, 567Laplace’s equation 292, 1024

see also Poisson equationLaplace/Poisson interpolation 150–154Las Vegas 744Latin square or hypercube 409, 410Latitude/longitude in n-dimensions 1128Laurent series 681, 682Lax method 1034–1036, 1042, 1050, 1051

multidimensional 1050, 1051Lax-Wendroff method 1040LCG see Linear congruential random number

generatorldexp 207, 279, 283LDL 544, 548Ldoub 25Leakage in power spectrum estimation 655, 656,

658, 662–665Leakage width 658, 659Leapfrog method 1038, 1039Least-squares filters see Savitzky-Golay filtersLeast-squares fitting 776–798

degeneracies in 794, 795, 797Fourier components 686freezing parameters in 791, 824general linear case 788–798how much ��2 is significant 816Levenberg-Marquardt method 801–806, 1022Lomb periodogram 686maximum likelihood estimator 777method for smoothing data 768multidimensional 798nonlinear 486, 799–806, 1022nonlinear, advanced methods 806

Page 20: Index [numerical.recipes]numerical.recipes/nr3index.pdfBicubic interpolation 136Œ138 Bicubic spline 135 Big-endian 9 Biharmonic equation 153 Bilinear interpolation 133, 134 Binary

1214 Index

normal equations 768, 789–793, 1007normal equations often singular 793, 797optimal (Wiener) filtering 650QR method in 105, 791rational Chebyshev approximation 249relation to linear correlation 745, 783Savitzky-Golay filter as 768singular value decomposition (SVD) 39,

65–75, 249, 793skewed by outliers 778spectral analysis 686standard (probable) errors on fitted parameters

794weighted 777see also Fitting

Left eigenvalues or eigenvectors 564, 565Legendre elliptic integral see Elliptic integralsLegendre polynomials 183, 293

basis functions for spectral methods 1086fitting data to 797recurrence relation 219see also Associated Legendre polynomials;

Spherical harmonicsLehmer-Schur algorithm 470Lemarie’s wavelet 708Lentz’s method for continued fraction 207, 260Lepage, P. 414Leptokurtic distribution 723Levenberg-Marquardt algorithm 486, 801–806,

1022advanced implementation 806

Levin transformation 214Levinson’s method 96Liapunov stability 933Likelihood ratio 735, 757Limbo 457Limit cycle

Laguerre’s method 466Markov model 858

Line 1097, 1117–1121closest approach of two 1121closest approach to point 1121distance of point to 1118equation satisfied by 1117in 3 dimensions 1121intersection of two 1117intersection with sphere 1121intersection with triangle 1121left-of relations 1118segments 1118–1120skew 1121

__LINE__ (ANSI C macro) 30Line minimization see Minimization, along a rayLine search see Minimization, along a rayLinear algebraic equations 37–109

and integral equations 986, 990band-diagonal 58–61biconjugate gradient method 88Cholesky decomposition 100–102, 378, 379,

525, 543, 568, 791

complex 55computing A

�1� B 53

conjugate gradient method 87–92, 716cyclic tridiagonal 79, 80direct methods 40, 76Gauss-Jordan elimination 41–46Gaussian elimination 46, 48Hilbert matrix 94Hotelling’s method 64, 716iterative improvement 61–65, 245, 548iterative methods 40, 87–92large sets of 38, 39least-squares solution 65, 70, 73, 249, 793LU decomposition 48–55, 245, 483, 484,

486, 534, 936, 990, 1008nonsingular 38, 39overdetermined 39, 249, 793, 1004parallel solution 57partitioned 81QR decomposition 102–106, 483, 484, 486,

791row vs. column elimination 45, 46Schultz’s method 64, 716Sherman-Morrison formula 76–79, 94, 534singular 38, 69, 73, 249, 793singular value decomposition (SVD) 65–75,

249, 793, 1003sparse 39, 58, 75–92, 534, 544, 548, 937,

1011summary of tasks 39, 40Toeplitz 93, 96–99, 245Vandermonde 93–96, 130wavelet solution 715, 716, 989Woodbury formula 80, 81, 94see also Eigensystems

Linear codes 851Linear congruential random number generator

341, 343, 348Linear constraints 526, 530Linear convergence 448, 495Linear correlation (statistics) 745–748Linear dependency

constructing orthonormal basis 74, 105in linear algebraic equations 38of directions in N -dimensional space 511

Linear equations see Differential equations;Integral equations; Linear algebraic equations

Linear feedback shift register (LFSR) 346,380–386state vector 380update rule 380

Linear inversion method, constrained 1006Linear optimization 526Linear prediction 673–681

characteristic polynomial 676coefficients 673–681compared with regularization 1008contrasted to polynomial extrapolation 675,

677is Gaussian process regression 837

Page 21: Index [numerical.recipes]numerical.recipes/nr3index.pdfBicubic interpolation 136Œ138 Bicubic spline 135 Big-endian 9 Biharmonic equation 153 Bilinear interpolation 133, 134 Binary

Index 1215

kriging and 144multidimensional 836–838related to optimal filtering 673, 674removal of bias in 145, 678, 679stability 676

Linear predictive coding (LPC) 679–681Linear programming 488, 526–549

affine scaling 543artificial variables 530, 531augmented equations 543, 548auxiliary objective function 530barrier method 541basic variables 529, 531boundary 528bounded variables 535, 546centering parameter 541central path 540complementarity condition 539complementary slackness theorem 539constraints 526, 530cycling 534degenerate basis 533Devex 535dual algorithm 535dual feasible basis vector 538dual interior-point method 542dual problem 538, 539duality gap 538duality measure 541efficiency 537, 541ellipsoid method 537equality constraints 526, 528feasible basis vector 528, 529, 532feasible vector 526, 538free variables 538fundamental theorem 528Goldman-Tucker theorem 539inequality constraints 526, 528, 538infeasible method 537interior-point method 85, 488, 536–549KKT conditions 539, 542logical variables 530, 538long-step method 541minimum ratio test 532multiple pricing 535nonbasic variables 529, 531normal equations 85, 543, 548objective function 526, 528, 530optimal feasible vector 526, 528, 532path-following method 541phases one and two 530predictor-corrector method 547primal algorithm 535primal-dual interior-point method 542primal-dual solution 539primal interior-point method 542primal problem 538reduced cost 531scaling of variables 535, 546short-step method 541

simplex method 488, 502, 526–536, 548simplex vs. interior-point 548slack variables 529, 531, 535, 538, 547sparse linear algebra 534, 544, 548stalling 534standard form 529, 530, 538steepest edge pricing 535strict complementarity 539strong duality theorem 539structural variables 530surplus variables 529unbounded objective function 532, 538vertex of simplex 528, 531weak duality theorem 538worked example 530–533zero variables 530

Linear regression 780–787see also Fitting

Linear regularization 1006–1013Linearly separable data 884LINPACK 40, 567Little-endian 9, 34Llong 25Local extrapolation 911, 914Local extremum 487, 551Localization of roots see BracketingLog-sum-exp formula 844Logarithmic function 310

barrier function 541inverse of x log.x/ 307–309, 335

Logistic probability distribution 324–326deviates from 363

Lognormal probability distribution 328, 329, 827Lomb periodogram method of spectral analysis

685–687fast algorithm 689–692

long long int 25Loops 14Lorentzian distribution 322Lorentzian probability distribution 820Low-pass filter 667, 766LP coefficients see Linear predictionLPC (linear predictive coding) 679–681lp solve 535, 536LU decomposition 48–55, 62, 65, 71, 75, 108,

475, 534, 790, 936band-diagonal matrix 59Bartels-Golub update 535complex equations 55Crout’s algorithm 49, 59fill-in, minimizing 535for A

�1� B 53

for integral equations 990for inverse iteration of eigenvectors 598for inverse problems 1008for matrix inverse 54for nonlinear sets of equations 475, 486for Pade approximant 245for Toeplitz matrix 98operation count 49, 54

Page 22: Index [numerical.recipes]numerical.recipes/nr3index.pdfBicubic interpolation 136Œ138 Bicubic spline 135 Big-endian 9 Biharmonic equation 153 Bilinear interpolation 133, 134 Binary

1216 Index

pivoting 50, 535repeated backsubstitution 54, 60solution of linear algebraic equations 54solution of normal equations 790stable equilibrium of Markov model 859threshold partial pivoting 535

Lucifer (encryption algorithm) 358Lucy’s Y 2 and Z2 statistic 735LUSOL 535

M-estimates 818how to compute 821, 822local 819–821see also Maximum likelihood estimate

Machine accuracy 10, 1163Machine learning 840

supervised 883support vector machine 883–898unsupervised 842, 868

Macintosh, see Apple MacintoshMaehly’s procedure 465, 472Magic

in MEM image restoration 1019, 1020in Pade approximation 246, 247

Mantissa in floating point format 8–10, 1164Mantissa in floating-point format 1189Maple (software) 3Marginals 743, 759, 825Markov chain 825Markov chain Monte Carlo 551, 774, 824–836

acceptance probability 827, 832best stepsize 832burn-in 826, 833–835candidate point 827compared to Monte Carlo integration 825convergence diagnostics 835converges to sample, not population, values

834correlated directions 831correlation time 834detailed balance equation 825, 827ergodic average 834ergodic behavior 825fitting model parameters 825full conditional distributions 827Gibbs sampler 827, 828and inverse problems 1006lognormal steps 827Metropolis-Hastings algorithm 826, 827normalizing constant 825, 828, 835, 836parallel computing 835parameter uncertainties 833proposal distribution 826–828, 835proposal generator 830rapid mixing 826, 831variable dimension models 835

Markov model 856–868aperiodic 858as ensemble 857convergence 858

corrected phylogenetic distance for 873diagnosing 858, 859directed graph 856equilibrium distribution 857ergodic 858evolution in time 857hidden 856–868inverse iteration 859irreducible 858limit cycle 858LU decomposition 859multiple equilibria 859population vector 857transition matrix 856transition probability 856unstable equilibria 858, 859

Markowitz criterion 535Marquardt method (least-squares fitting)

801–806, 1022Mass, center of 399, 400MasterCard checksum 1174MatDoub, MatInt, etc. 26Mathematica (software) 1, 3Mathematical Center (Amsterdam) 454Matlab 1, 3Matrix 37, 38

approximation of 74, 75, 715band-diagonal 56, 58–61, 76band triangular 76banded 40, 568bidiagonal 67block diagonal 76, 964, 966block triangular 76block tridiagonal 76bordered 76characteristic polynomial 563, 583Cholesky decomposition 100–102, 378, 379,

525, 543, 568, 791class for 24–29column augmented 42, 43complex 55condition number 69, 89curvature 800cyclic banded 76cyclic tridiagonal 79, 80defective 564, 591, 598, 599of derivatives see Hessian matrix; Jacobian

determinantdesign (fitting) 768, 788determinant of 39, 54, 55diagonalization 566distance 869elementary row and column operations 42, 43finite differencing of partial differential

equations 1027Hermitian 564, 568, 590Hermitian conjugate 564Hessenberg 105, 567, 585, 590–596, 598Hessian see Hessian matrixhierarchically band-diagonal 716

Page 23: Index [numerical.recipes]numerical.recipes/nr3index.pdfBicubic interpolation 136Œ138 Bicubic spline 135 Big-endian 9 Biharmonic equation 153 Bilinear interpolation 133, 134 Binary

Index 1217

Hilbert 94identity 39ill-conditioned 69, 71, 130, 131indexed storage of 82–87integral equations and 986, 990inverse 39, 41, 47, 54, 76, 78, 81, 82,

106–108, 565inverse by Hotelling’s method 64, 716inverse by Schultz’s method 64, 716inverse multiplied by a matrix 53inverse, approximate 63iteration for inverse 63–65, 716Jacobi rotation 573Jacobi transformation 567, 570–576, 578Jacobian 935, 936logical multiplication 949lower triangular 48, 100, 988Moore-Penrose inverse 70multiplication denoted by dot 37multiplication, optimizing order of 558, 559norm 64normal 564, 565nullity 67, 68nullspace 39, 67–70, 72, 563, 1002orthogonal 103, 564, 579, 703, 1130orthogonal transformation 566, 578, 584orthonormal basis 74, 105outer product denoted by ˝ 78, 523partitioning for determinant 82partitioning for inverse 81, 82positive-definite 40, 100, 543, 791pseudoinverse 70, 73QR decomposition 102–106, 483, 484, 486,

791range 67, 68rank 67rank-nullity theorem 68residual 63responsibility 842rotation 1097, 1130, 1131row and column indices 38row vs. column operations 45, 46self-adjoint 564, 565similarity transform 566, 567, 570, 592, 594singular 69, 71, 73, 563singular value decomposition 39, 65–75,

1003sparse 39, 75–92, 534, 544, 548, 715, 937,

964, 966, 1011special forms 40splitting in relaxation method 1060spread 1015storage schemes in C++ 38suffix _I, _O, _IO 26, 32, 36symmetric 40, 100, 563, 565, 568, 571,

576–583, 992Toeplitz 93, 96–99, 245transpose of sparse 85triangular 567

tridiagonal 40, 56–61, 75, 76, 78, 122, 188,576–589, 598, 1045, 1057, 1058, 1066

tridiagonal with fringes 1028unitary 564updating 105, 106, 484upper Hessenberg 594upper triangular 48, 103Vandermonde 93–96, 130see also Eigensystems; NRmatrix

Matrix equations see Linear algebraic equationsMatterhorn 723MAX utility function 17Maximization see MinimizationMaximum entropy method (MEM) 681–684,

1006algorithms for image restoration 1020Bayesian 1022Cornwell-Evans algorithm 1021demystified 1019, 1020for inverse problems 1016–1022historic vs. Bayesian 1022image restoration 1016–1022intrinsic correlation function (ICF) model

1022operation count 683see also Linear prediction

Maximum likelihoodcompared with probability 854trellis decoding 854

Maximum likelihood estimate (M-estimates) 812,818chi-square test 812defined 777how to compute 821, 822mean absolute deviation 820, 822relation to least squares 777

Maxwell’s equations 1032MCMC see Markov chain Monte CarloMean absolute deviation of distribution 723, 820

related to median 822Mean value theorem 151Mean(s)

of distribution 722, 723, 725statistical differences between two 726–730

Measurement errors 773Median 419

by selection 822calculating 432changes with time 438incremental estimation 435as L-estimate 818of distribution 722, 725, 726role in robust straight line fitting 822

Median-of-three, in Quicksort 423MEM see Maximum entropy method (MEM)Memory, using scope to manage 20Merit function 773

for inverse problems 1004for straight line fitting 781, 822

Page 24: Index [numerical.recipes]numerical.recipes/nr3index.pdfBicubic interpolation 136Œ138 Bicubic spline 135 Big-endian 9 Biharmonic equation 153 Bilinear interpolation 133, 134 Binary

1218 Index

for straight line fitting, errors in bothcoordinates 785

in general linear least squares 788nonlinear models 799

Mesh-drift instability 1040Mesh generation 1150Mesokurtic distribution 723Message 754Method of lines 1095Method of regularization 1006Metropolis algorithm 550, 552, 825Metropolis-Hastings algorithm 551, 826, 827

Gibbs sampler as special case 827Microsoft

integer types 26NaN handling poor 35Visual C++ 5Windows 5

Midpoint method see Modified midpoint method;Semi-implicit midpoint rule

Mikado, or the Town of Titipu 920Miller’s algorithm 221, 278Min-sum algorithm

dynamic programming 556Viterbi decoding 867

MIN utility function 17Minimal solution of recurrence relation 220, 221Minimal trellis 853Minimax

polynomial 235, 248rational function 248, 249

Minimization 487–562along a ray 88, 478, 489, 507–509, 511, 512,

519–521, 524, 540annealing, method of simulated 487, 488,

549–555bracketing of minimum 490–496, 503Brent’s method 489, 496–500, 785Broyden-Fletcher-Goldfarb-Shanno algorithm

490, 521–525by searching smaller subspaces 1021chi-square 778–780, 799choice of methods 488–490combinatorial 549conjugate gradient method 489, 515–520,

1011, 1020convergence rate 495, 511Davidon-Fletcher-Powell algorithm 490, 521,

522degenerate 1002direction set methods 489, 509–514downhill simplex method 489, 502–507, 552,

821finding best-fit parameters 773Fletcher-Reeves algorithm 489, 515–519functional 1001, 1002global 487, 552–554, 774globally convergent multidimensional

521–525golden section search 492–496

in nonlinear model fitting 799KKT conditions 539, 542line methods 507–509linear 526multidimensional 502–525of path length 555–562Polak-Ribiere algorithm 489, 517Powell’s method 489, 502, 509–514quasi-Newton methods 477, 489, 521–525root finding and 476, 477scaling of variables 523steepest descent method 516, 1011termination criterion 493, 503use for sparse linear systems 87, 89use in finding double roots 443using derivatives 489, 499–502variable metric methods 489, 521–525see also Linear programming

Minimum curvature method 153Minimum residual method, for sparse system 89Minimum spanning tree 1147MINPACK 806Missing data 150–154, 685

in hidden Markov model 864Mississippi River 552, 555Mixture model, Gaussian 842–848Mixture weight 843Mode of distribution 722, 725, 726Model-trust region 486, 806Modeling of data see FittingModes, homogeneous, of recursive filters 670Modified Bessel functions see Bessel functionsModified Lentz’s method, for continued fractions

208Modified midpoint method 922, 923Modified moments 190Modulation, trellis coded 855Modulus of linear congruential generator 343Moments

and quadrature formulas 996filter that preserves 768modified problem of 190of distribution 721–726problem of 94semi-invariants 725

Monic polynomial 181Monotonicity constraint, in upwind differencing

1042Monte Carlo 197, 341, 397–418

adaptive 410–418and Kolmogorov-Smirnov statistic 740, 762,

764bootstrap method 809, 810comparison of sampling methods 412–414importance sampling 411, 412, 414, 835, 836integration 156, 197, 397–403, 410–418integration compared to MCMC 825integration, recursive 416integration, using Sobol’ sequence 408, 409integration, VEGAS algorithm 414–416

Page 25: Index [numerical.recipes]numerical.recipes/nr3index.pdfBicubic interpolation 136Œ138 Bicubic spline 135 Big-endian 9 Biharmonic equation 153 Bilinear interpolation 133, 134 Binary

Index 1219

Markov chain 774, 824–836partial differential equations 1030quasi-random sequences in 403–410quick and dirty 809, 810recursive 410–418significance of Lomb periodogram 686, 687simulation of data 779, 807–810, 812stratified sampling 412–414, 416

Moore-Penrose inverse 70Mother functions 700Mother Nature 807, 809Moving average (MA) model 681Moving window averaging 767MRRR algorithm (Multiple Relatively Robust

Representations) 589, 599Muller’s method 466, 473Multidimensional

confidence levels of fitting 810, 812, 814, 816data, use of binning 741fitting 798, 836–838Fourier transform 627–630Fourier transform, real data 631–637initial value problems 1049–1053integrals 156, 196–199, 398, 410interpolation 132–135, 139–154Kolmogorov-Smirnov test 762–766minimization 502–525Monte Carlo integration 397–403, 410normal (Gaussian) distribution 813partial differential equations 1049–1053,

1083, 1095root finding 442–486, 956, 959, 960, 963, 964search using quasi-random sequence 404secant method 474, 483wavelet transform 712, 713

Multigrid method 1030, 1066–1083avoid SOR 1070boundary conditions 1072choice of operators 1071coarse-grid correction 1068coarse-to-fine operator 1068cycle 1069dual viewpoint 1077fine-to-coarse operator 1068full approximation storage (FAS) algorithm

1076–1083full multigrid method (FMG) 1067,

1072–1076full weighting 1071Gauss-Seidel relaxation 1069half weighting 1071importance of adjoint operator 1071injection operator 1068interpolation operator 1068line relaxation 1070local truncation error 1077, 1078Newton’s rule 1077, 1079nonlinear equations 1077nonlinear Gauss-Seidel relaxation 1078odd-even ordering 1070, 1073

operation count 1067prolongation operator 1068recursive nature 1069relative truncation error 1077relaxation as smoothing operator 1069restriction operator 1068speeding up FMG algorithm 1076stopping criterion 1078straight injection 1071symbol of operator 1070, 1071use of Richardson extrapolation 1072V-cycle 1069W-cycle 1069zebra relaxation 1070

Multiple precision arithmetic 1185–1193Multiple roots 443, 464Multiplication

complex 225multiple precision 1188

Multiplicative linear congruential generator(MLCG) 341, 344, 348, 349

Multiplier of linear congruential generator 343Multiply-with-carry (MWC) 347Multipole methods, fast 140, 1150Multiquadric 141Multistep and multivalue methods (ODEs) 900,

942–946see also Differential Equations;

Predictor-corrector methodsMultitaper methods 662–665Multivariate normal

deviates 378, 379distribution 813, 847, 848

Murphy’s Law 509Mutual information 758–761

NAG 3, 40, 76, 568Namespace, why no NR 36NaN (not-a-number) 34, 35

how to set and test 34isnan 35quiet vs. signalling 35

Nat 755, 756, 760, 761Natural cubic spline 122Navier-Stokes equation 1035Nearest neighbor 1097, 1101–1110, 1146

all points within specified radius 1109Delaunay edges connect 1146

Needle, eye of (minimization) 503Needleman-Wunsch algorithm 559Negation, multiple precision 1186Negentropy 1017–1019Neighbor-joining (NJ) method 873, 878–882Nelder-Mead minimization method 489, 502–507Nested iteration 1072Netlib 3Networks 1168Neumann boundary conditions 1026, 1045, 1056,

1057, 1063Neural networks 840, 883

Page 26: Index [numerical.recipes]numerical.recipes/nr3index.pdfBicubic interpolation 136Œ138 Bicubic spline 135 Big-endian 9 Biharmonic equation 153 Bilinear interpolation 133, 134 Binary

1220 Index

Neutrino 762Neville’s algorithm 118, 125, 166, 231Newton-Cotes formulas 158, 179

open 158, 159Newton-Raphson method see Newton’s ruleNewton’s rule 182, 229, 443, 444, 456–462, 464,

466, 470, 584caution on use of numerical derivatives 459extended by Halley 463first published by Raphson 456for interior-point method 539for matrix inverse 64, 716for reciprocal of number 1190for square root of number 1191fractal domain of convergence 462globally convergent multidimensional 474,

477–486, 959, 960, 963in multidimensions 472–476, 959, 960, 963,

964in nonlinear multigrid 1077, 1079nonlinear Volterra equations 994safe 460scaling of variables 484singular Jacobian 486solving stiff ODEs 943, 944with backtracking 478–483

Next reaction method 952Niederreiter sequence 404NIST-STS, for random number tests 345NL2SOL 806Noise

bursty 1168effect on maximum entropy method 683equivalent bandwidth 658fitting data that contains 770, 773model, for optimal filtering 651

Nominal variable (statistics) 741Non-interfering directions see Conjugate

directionsNonexpansive projection operator 1012Nonlinear eigenvalue problems 568, 569Nonlinear equations

finding roots of 442–486in MEM inverse problems 1018integral equations 988, 994multigrid method for elliptic PDEs 1077

Nonlinear instability 1037Nonlinear programming 536Nonnegativity constraints 526, 527

barrier function 541Nonparametric statistics 748–754Nonpolynomial complete (NP-complete) 551Nordsieck method 944Norm, of matrix 64Normal (Gaussian) distribution 320, 321, 341,

776, 778, 805, 1004central limit theorem 777deviates from 364, 365, 368, 377, 686kurtosis of 723, 724

multivariate 378, 379, 813, 842, 843, 847,848, 1006, 1129, 1130

semi-invariants of 725sum of 12 uniform 377tails compared to Poisson 778two-dimensional (binormal) 746variance of skewness of 723see also Gaussian (normal) distribution

Normal equations (fitting) 40, 768, 789–793,1002, 1007often are singular 793

Normal equations (interior-point method) 85, 543Normalization

normalizing constant 825, 828, 835, 836of Bessel functions 221of floating-point representation 9of functions 181, 973of modified Bessel functions 282

Normalized Radial Basis Functions 140Not a Number see NaNNotch filter 667, 671NP-complete problem 551NR::, why missing in 3rd ed. 36nr3.h file 3, 4, 17, 28–30, 34–36NRmatrix 26, 28, 29

bounds checking 35instrumenting 36methods in 27

NRvector 26, 28, 29bounds checking 35instrumenting 36methods in 27

Nugget effect 838different from measurement error 838

Null hypothesis 720Nullity 67, 68Nullspace 39, 67–70, 72, 563, 1002Number-theoretic transforms 616numeric_limits 10, 34Numerical derivatives 178, 229–232, 769Numerical integration see QuadratureNumerical Recipes

bugs in 5compilers tested 5cookbook, not menu 3dependencies 4electronic versions 5how to use routines in 3is not a program library 2, 18is not a programming text 2machines tested 5obtaining source code 3types 25webnotes 4

Nyquist frequency 605, 607, 632, 653, 655,685–687, 693

Nystrom method 989–992, 995product version 995

_O 26, 32, 36

Page 27: Index [numerical.recipes]numerical.recipes/nr3index.pdfBicubic interpolation 136Œ138 Bicubic spline 135 Big-endian 9 Biharmonic equation 153 Bilinear interpolation 133, 134 Binary

Index 1221

Object 17–24avoid copying large 36constructor 18, 27definition 18destruction 20, 21functor 21–23grouping related functions 18hides internal structure 17inheritance 23, 24instantiation 18, 19multiple instances of 20returning multiple values via 19saving internal state 20simple uses of 18–20standardizing an interface 19struct vs. class 17see also Class

Object-oriented programming (OOP) 17–21, 23Objective function 526, 528, 530Oblateness parameter 971Octave (software) 3Octree see QO treeOdd-even ordering

in Gauss-Seidel relaxation 1070, 1073in successive over-relaxation (SOR) 1064

Odd parity 1168Odds ratio 757ODE see Differential equationsOne-sided power spectral density 602OOP see Object-oriented programmingOperation count

balancing 592Baum-Welch re-estimation of hidden Markov

model 865Bessel function evaluation 278bisection method 448Cholesky decomposition 100coefficients of interpolating polynomial 130complex multiplication 108cubic spline interpolation 122evaluating polynomial 203fast Fourier transform (FFT) 609, 610Gauss-Jordan elimination 47, 54Gaussian elimination 47Givens reduction 578Householder reduction 582interpolation 111inverse iteration 598, 599iterative improvement 63Jacobi transformation 573, 574Kendall’s tau 752LU decomposition 49, 54Markov model diagnosis 858matrix inversion 108matrix multiplication 107maximum entropy method 683multidimensional minimization 515multigrid method 1067multiplication 1188, 1190polynomial evaluation 108, 203

QL method 585, 588QR decomposition 103, 105QR method for Hessenberg matrices 596reduction to Hessenberg form 594selection by partitioning 433sorting 420, 422, 423Toeplitz matrix 93Vandermonde matrix 93

Operatorprecedence, in C++ 12splitting 1028, 1052, 1053, 1065

Optimal (Wiener) filtering 645, 649–652, 673,674, 767compared with regularization 1008

Optimal feasible vector 526, 528Optimally Localized Average (OLA) 1014–1016Optimization see MinimizationOptions, financial 329Ordinal variable (statistics) 741Ordinary differential equations see Differential

equationsOrthogonal see Orthonormal functions;

Orthonormal polynomialsOrthogonal transformation 566, 578, 584, 699Orthonormal basis, constructing 74, 105Orthonormal functions 181, 292Orthonormal polynomials

and Gaussian quadrature 181, 1087Chebyshev 183, 187, 233construct for arbitrary weight 189–191Gaussian weights from recurrence 188, 189Hermite 183in Gauss-Hermite integration 185Jacobi 183Laguerre 183Legendre 183weight function log x 190, 191

Orthonormality 66, 68, 70, 181, 579Out-of-band signaling 1178Outer product of matrices (denoted by ˝) 78,

523Outgoing wave boundary conditions 1026Outlier 723, 778, 779, 781, 818, 821

see also Robust estimationOvercorrection 1061, 1062Overflow 1164

in complex arithmetic 225, 226Overlap-add and overlap-save methods 646, 647Overrelaxation parameter 1062

choice of 1062–1064

p-value test 720Packet-switched networks 1168Pade approximant 125, 212, 245–247Parabolic interpolation 496, 497Parabolic partial differential equations 1024,

1043Parallel axis theorem 413Parallel programming

cyclic reduction 224

Page 28: Index [numerical.recipes]numerical.recipes/nr3index.pdfBicubic interpolation 136Œ138 Bicubic spline 135 Big-endian 9 Biharmonic equation 153 Bilinear interpolation 133, 134 Binary

1222 Index

FFT 614polynomial evaluation 205recurrence relations 223, 224recursive doubling 223tridiagonal systems 57

Parameters in fitting function 776–780, 807–817Parentheses, annoying 12Parity bit 1168Parity-check matrix 851Parseval’s theorem 602, 603, 654

discrete form 608Parsimony, maximum 882Partial abstraction 24Partial differential equations 1024–1096

advective equation 1032alternating-direction implicit method (ADI)

1052, 1053, 1065, 1066amplification factor 1033, 1038analyze/factorize/operate package 1030artificial viscosity 1037, 1042biconjugate gradient method 1030boundary conditions 1025boundary value problems 1025–1030,

1053–1058Cauchy problem 1024Cayley’s form 1049characteristics 1024–1026Chebyshev acceleration 1064classification of 1024–1030comparison of rapid methods 1058conjugate gradient method 1030Courant condition 1034, 1036, 1038–1040,

1042Courant condition (multidimensional) 1051Crank-Nicolson method 1045, 1047, 1049,

1051, 1052cyclic reduction (CR) method 1054, 1057,

1058diffusion equation 1024, 1043–1049, 1051,

1052, 1059Dirichlet boundary conditions 1026, 1045,

1055, 1061, 1063elliptic, defined 1024error, varieties of 1036–1038explicit vs. implicit differencing 1033FACR method 1058finite difference method 1027finite element methods 1030flux-conservative initial value problems

1031–1043forward Euler differencing 1032forward time centered space (FTCS) 1032,

1044, 1049, 1059Fourier analysis and cyclic reduction (FACR)

1053–1058Gauss-Seidel method (relaxation) 1060,

1061, 1068, 1078Godunov’s method 1043Helmholtz equation 1057high-order methods, caution on 1050

hyperbolic 1024, 1031implicit differencing 1045inhomogeneous boundary conditions 1055initial value problems 1024, 1026initial value problems, recommendations on

1042Jacobi’s method (relaxation) 1060, 1061,

1068Laplace’s equation 1024Lax method 1034–1036, 1042, 1050, 1051Lax method (multidimensional) 1050, 1051matrix methods 1028, 1030mesh drift instability 1040Monte Carlo methods 1030multidimensional initial value problems

1049–1053multigrid method 1029, 1066–1083Neumann boundary conditions 1026, 1045,

1056, 1057, 1063nonlinear diffusion equation 1047nonlinear instability 1037numerical dissipation or viscosity 1035operator splitting 1028, 1052, 1053, 1065outgoing wave boundary conditions 1026parabolic 1024, 1043periodic boundary conditions 1055, 1063piecewise parabolic method (PPM) 1043Poisson equation 1024, 1057rapid (Fourier) methods 620, 1029, 1054relaxation methods 1028, 1059–1066Schrodinger equation 1048, 1049second-order accuracy 1038–1042, 1045shock 1037, 1042, 1043sparse matrices from 76spectral methods 239, 1030, 1083–1096spectral radius 1061, 1066stability vs. accuracy 1035stability vs. efficiency 1027staggered grids 625, 1057staggered leapfrog method 1038, 1039successive over-relaxation (SOR) 1061–1066,

1070time splitting 1052, 1053, 1065two-step Lax-Wendroff method 1040upwind differencing 1037, 1042variational methods 1030varieties of error 1036–1038von Neumann stability analysis 1033, 1034,

1036, 1039, 1045, 1046wave equation 1024, 1031see also Elliptic partial differential equations;

Finite difference equations (FDEs)Partial pivoting 43, 45, 535Partition-exchange 423, 433Partitioned matrix, inverse of 81, 82Party tricks 106, 203Parzen window 657Pascal (language) 1Path integration, for function evaluation

251–254, 318

Page 29: Index [numerical.recipes]numerical.recipes/nr3index.pdfBicubic interpolation 136Œ138 Bicubic spline 135 Big-endian 9 Biharmonic equation 153 Bilinear interpolation 133, 134 Binary

Index 1223

Path length, minimization of 555–562PAUP (software) 874PBCG (preconditioned biconjugate gradient

method) 89, 1030PC methods see Predictor-corrector methodsPCx (software) 548PDEs see Partial differential equationsPDF (probability density function) see Statistical

distributionsPearson’s r 745PECE method 944Penalty function 541Pentagon, symmetries of 1174Percentile 320, 419, 435Perfect code 852Period of linear congruential generator 343Periodic boundary conditions 1055, 1063Periodogram 653–657, 681, 683

Lomb’s normalized 685–687, 689variance of 655, 656

Perron’s theorems 221Perturbation methods for matrix inversion 76–79Peter Principle 427Phantom bit 9Phase error 1036Phase-locked loop 824Phi statistic 744Phillips-Twomey method 1006PHYLIP (software) 874Phylogenetic tree see Tree, phylogenetic� , computation of 1185PI stepsize control 915Piecewise parabolic method (PPM) 1043Pigeonhole principle 387Pincherle’s theorem 222Pivot element 43, 46, 47, 967Pivoting 41, 43–45, 60, 76, 78, 101

and QR decomposition 103, 105for tridiagonal systems 57full 43implicit 44, 51in LU decomposition 50in reduction to Hessenberg form 594in relaxation method 967Markowitz criterion 535partial 43, 45, 46, 50, 535threshold partial 535

Pixel 631, 714, 715, 1010, 1017Planck’s constant 1048Plane rotation see Givens reduction; Jacobi

transformation (or rotation)Plane, defined by triangle 1115Platykurtic distribution 723Plotting of functions 444, 1160–1163POCS (projection onto convex sets) 1012Point 1099–1101

closest approach of line to 1121distance between two 1099distance to line 1118projection into plane 1115

random in triangle 1114random on sphere 1129, 1130test if inside box 1100test if inside polygon 1124

Poisson equation 631, 1024, 1057Poisson probability function 336–338, 390

as limiting case of binomial 338deviates from 372–374, 686moments of 725, 734semi-invariants of 725tails compared to Gaussian 778

Poisson process 362, 369, 829, 830Polak-Ribiere algorithm 489, 517Poles see Complex plane, poles inPolishing of roots 459, 465, 471Polygon 1097, 1122–1127

area 1126Bolyai-Gerwien theorem 1127CCW vs. CW 1122centroid of 1127constructable by compass/straightedge 1127convex vs. concave 1122Jordan curve theorem 1124pentagon, symmetries of 1174removal of hidden 1150routine for classifying 1125simple vs. complex 1122, 1125sum of exterior angles 1122test if point inside 1124winding number 1122–1124

Polynomial interpolation 110, 118–120Aitken’s algorithm 118coefficients for 129–131in Bulirsch-Stoer method 924in predictor-corrector method 943Lagrange’s formula 94, 118, 1089, 1092multidimensional 132–135Neville’s algorithm 118, 125, 166, 231, 924pathology in determining coefficients for 130Runge phenomenon 1090smoothing filters 768see also Interpolation

Polynomials 201–205algebraic manipulations 203approximation from Chebyshev coefficients

241, 243characteristic 469characteristic, for digital filters 670, 676characteristic, for eigenvalues of matrix 563,

583Chebyshev 187deflation 464–466, 471derivatives of 202division 95, 204, 464, 471evaluation of 201, 202evaluation of derivatives 202extrapolation in Bulirsch-Stoer method 922,

924extrapolation in Romberg integration 166fitting 94, 129, 241, 243, 768, 788, 797

Page 30: Index [numerical.recipes]numerical.recipes/nr3index.pdfBicubic interpolation 136Œ138 Bicubic spline 135 Big-endian 9 Biharmonic equation 153 Bilinear interpolation 133, 134 Binary

1224 Index

generator for CRC 1170ill-conditioned 463irreducible modulo 2 382matrix method for roots 469minimax 235, 248modulo 2 381, 1169monic 181multiplication 203, 204operation count for 203order, distinct from degree 1170orthonormal 181, 1087parallel evaluation 205primitive modulo 2 382–386, 406roots of 227–229, 463–473shifting of 243stopping criterion in root finding 467

Population count of bits 16Population vector 857Portable random number generator see Random

number generatorPositive-definite matrix, testing for 101Positivity constraints 526, 527Postal Service (U.S.), barcode 1174PostScript 1161Powell’s method 489, 502, 509–514Power (in a signal) 602Power of 2

next higher 16, 361test if integer is a 16, 611

Power series 201–205, 209–218, 246economization of 243, 244Pade approximant of 245–247

Power spectral density see Fourier transform;Spectral density

Power spectrum 655Bartlett window 657data windowing 655–660estimation by FFT 652–667figures of merit for data windows 658Hamming window 658Hann window 657leakage 655, 656, 658, 662–665mean squared amplitude 653multitaper methods 662–667normalization conventions 652, 653overlapping data segments 660–662Parzen window 657periodogram 653–657power spectral density 652PSD 652Slepian tapers 662–667square window 656sum squared amplitude 653time-integral squared amplitude 653variance reduction in spectral estimation 656,

662Welch window 658

Power spectrum estimation see Fourier transform;Spectral density

PPM (piecewise parabolic method) 1043

Precedence of operators, in C++ 12Precision

floating point 1164multiple 1185–1193

Preconditioned biconjugate gradient method(PBCG) 89

Preconditioning, in conjugate gradient methods1030

Predictive stepsize control 939Predictor-corrector methods 900, 909, 934,

942–946Adams-Bashforth-Moulton schemes 943adaptive order methods 946compared to other methods 942, 946fallacy of multiple correction 943functional iteration vs. Newton’s rule 944multivalue compared with multistep 945, 946Nordsieck method 944starting and stopping 944stepsize control 943, 944, 946with fixed number of iterations 944

Prerequisite relationship 23Primitive polynomials modulo 2 382–386, 406,

1170Principal component analysis (PCA) 892Principal directions 509, 512Principal solution, of inverse problem 1004Principal value integrals 178Prior probability 757, 775, 841, 1005

smoothness 1006Prize, $1000 offer revoked 342Probability see Random number generator;

Statistical tests; Statistical distributionsProcess loss 658Product Nystrom method 995Products, reaction 947Program(s)

as black boxes 67, 255, 443, 507dependencies 4NR not a program library 2typography of 14validation 5

Programming, NR not a textbook on 2Projection onto convex sets (POCS) 1011–1013

generalizations 1013Projection operator, nonexpansive 1012Prolongation operator 1068Proportional betting 758, 760Proposal distribution 826–828, 835Protocol, for communications 1168PSD (power spectral density) see Fourier

transform; Spectral density; Power spectrumPseudo-random numbers 340–386Pseudoinverse 70Pseudospectral method see Spectral methodsPuns, particularly bad 35, 202, 946, 958, 1098Pure virtual class 34Pyramidal algorithm 702, 703Pythagorean theorem 1111Pythagoreans 494

Page 31: Index [numerical.recipes]numerical.recipes/nr3index.pdfBicubic interpolation 136Œ138 Bicubic spline 135 Big-endian 9 Biharmonic equation 153 Bilinear interpolation 133, 134 Binary

Index 1225

QO tree 1149–1158applications of 1156–1158intersecting objects 1150use of hash in implementing 1151

QR decomposition 102–106, 483, 484, 486and least squares 791backsubstitution 103operation count 103pivoting 103updating 105, 106, 483use for orthonormal basis 74, 105use for random rotation 1130see also Eigensystems

Quadraticconvergence 64, 310, 452, 459, 511, 512,

522, 1185equations 10, 227–229, 494, 572interpolation 454, 466programming 536, 884–886

Quadrature 155–200adaptive 155, 167, 194–196, 241, 995alternative extended Simpson’s rule 160and computer science 1160arbitrary weight function 189–191, 995Bode’s rule 158Cauchy principal values 178change of variable in 170–172, 995Chebyshev fitting 156, 240, 241classical formulas for 156–162Clenshaw-Curtis 156, 241, 624, 625closed formulas 157–160cubic splines 156DE rule 174error estimate in solution 991extended formula of order 1=N 3 160extended midpoint rule 161, 167extended rules 159–162, 166, 993, 995, 997extended Simpson’s rule 160extended trapezoidal rule 159, 162for improper integrals 167–172, 995–1000for integral equations 988, 993Fourier integrals 692–699Fourier integrals, infinite range 699functors and 22Gauss-Chebyshev 183, 187, 625Gauss-Hermite 183, 995Gauss-Jacobi 183Gauss-Kronrod 192, 195Gauss-Laguerre 183, 995Gauss-Legendre 183, 193, 990, 996Gauss-Lobatto 191, 192, 195, 241, 624Gauss-Radau 191Gaussian integration 159, 179–193, 238, 296,

988, 990, 995, 1086–1089Gaussian integration, nonclassical weight

function 189–191, 995IMT rule 173infinite ranges 176–178Monte Carlo 156, 197, 397–403, 410multidimensional 156, 196–199

Newton-Cotes formulas 158, 179Newton-Cotes open formulas 158, 159open formulas 157–162, 167oscillatory function 217related to differential equations 155related to predictor-corrector methods 943Romberg integration 156, 166, 169, 231, 923,

994semi-open formulas 160–162Simpson’s rule 158, 165, 169, 698, 990, 994,

997Simpson’s three-eighths rule 158, 995, 997singularity removal 170, 171, 173, 995singularity removal, worked example 999,

1000TANH rule 173trapezoidal rule 158, 160, 162, 166, 173, 175,

178, 695, 698, 989, 993using FFTs 156variable transformation 172–178weight function log x 190, 191see also Integration of functions

Quadrature mirror filter 701, 708Quadtree see QO treeQuantile

changes with time 438estimation 435values 320, 419

Quantum mechanics, Uncertainty Principle 717Quartet puzzling 882Quartile value 419Quasi-Newton methods for minimization 489,

521–525Quasi-random sequence 403–410, 418, 1160,

1168for Monte Carlo integration 408, 413, 418Halton’s 404Sobol’s 404–406see also Random number generator

Quicksort 420, 422–426, 429, 433Quotient-difference algorithm 206

R (programming language) 3R-estimates 818Racetrack betting 757, 760Radial Basis Functions 139–144

Gaussian 142inverse multiquadric 142multiquadric 141thin-plate spline 142Wendland 142

Radioactive decay 362Radix base for floating point arithmetic 592, 1164Radix base for floating-point arithmetic 1186,

1192Radix conversion 1181, 1185, 1192Ramanujan’s identity for � 1193Random

angle variables 364bits 380–386

Page 32: Index [numerical.recipes]numerical.recipes/nr3index.pdfBicubic interpolation 136Œ138 Bicubic spline 135 Big-endian 9 Biharmonic equation 153 Bilinear interpolation 133, 134 Binary

1226 Index

byte 352point in triangle 1114point on circle 1131point on sphere 1129, 1130rotation matrix 1130, 1131variables, decorrelating 379walk 10walk, multiplicative 329

Random deviates 340–386angles 364beta distribution 371binomial 374–377Cauchy distribution 367chi-square distribution 371exponential 362F -distribution 371faster 377gamma distribution 369Gaussian 341, 364, 365, 368, 377, 686, 1004integer range 343logistic 363multivariate Gaussian 378, 379normal 341, 364, 365, 368, 377, 686Poisson 372–374, 686quasi-random sequences 403–410, 1160,

1168Rayleigh 365squeeze 368Student’s-t distribution 371sum of 12 uniform 377trig functions 364uniform 341–357

Random number generator32-bit limited 355–357Box-Muller algorithm 364combined generators 342, 345–352Data Encryption Standard 358–361Diehard test 345floating point 354for everyday use 351for hash function 387for integer-valued probability distribution 372hash function 352highest quality 342, 351inheritance 23lagged Fibonnaci 354linear congruential generator 341, 343, 348linear feedback shift register (LSFR) 346,

380–386MLCG 341, 344, 348, 349multiply with carry method (MWC) 347NIST-STS test 345nonrandomness of low-order bits 344planes, numbers lie on 344primitive polynomials modulo 2 382pseudo-DES 358quasi-random sequences 403–410, 1160,

1168Quicksort use of 423random bits 380–386

random byte 352ratio-of-uniforms method 367–371recommended methods 345–352rejection method 365–368simulated annealing method 551, 552spectral test 344subtractive method 354successor relation 350, 352system-supplied 342timings 355transformation method 362–365trick for trigonometric functions 364, 367uniform 341–357xorshift method 345

Random numbers see Monte Carlo; Randomdeviates

RANDU, infamous routine 344Range 67, 68, 70Rank (matrix) 67

kernel of finite 992Rank (sorting) 419, 428–431Rank (statistics) 748–754, 818

Kendall’s tau 751–754Spearman correlation coefficient 749–751sum squared differences of 749

Rank-nullity theorem 68Raphson, Joseph 456Rate equations 947, 948Ratio-of-uniforms method for random number

generator 367–371Ratio variable (statistics) 741Rational Chebyshev approximation 247–251Rational function 110, 201–205, 245, 248, 670

approximation for Bessel functions 275approximation for continued fraction 207,

260as power spectrum estimate 681Chebyshev approximation 247–251diagonal 125evaluation of 204, 205extrapolation in Bulirsch-Stoer method 922interpolation and extrapolation using 110,

124–128, 245, 247–251, 922minimax 248, 249response of recursive filter 670

Rayleigh deviates 365RBF see Radial Basis FunctionsReactions, chemical or nuclear 946–954

reaction products 947Realizable (causal) 668, 670, 671Rearranging see SortingReciprocal, multiple precision 1190Record, in data file 428Recurrence relation 219–223

and continued fraction 222associated Legendre polynomials 294Bessel function 219, 274, 275, 278, 283–285binomial coefficients 258Bulirsch-Stoer 125

Page 33: Index [numerical.recipes]numerical.recipes/nr3index.pdfBicubic interpolation 136Œ138 Bicubic spline 135 Big-endian 9 Biharmonic equation 153 Bilinear interpolation 133, 134 Binary

Index 1227

characteristic polynomial of tridiagonal matrix583, 665

Clenshaw’s recurrence formula 222, 223continued fraction evaluation 207, 208convergence 222cosine function 219, 610dominant solution 220exponential integrals 219gamma function 256Golden Mean 11hidden Markov model 861Legendre polynomials 219minimal vs. dominant solution 220modified Bessel function 281Neville’s 118, 231orthonormal polynomials 181parallel evaluation 223, 224Perron’s theorems 221Pincherle’s theorem 222polynomial interpolation 118, 119, 231random number generator 343rational function interpolation 125sequence of trig functions 219sine function 219, 610spherical harmonics 294stability of 12, 220, 222, 223, 275, 278, 282,

294trig functions 687weight of Gaussian quadrature 183

Recursivedoubling (parallel method) 223Monte Carlo integration 410–418multigrid method 1069stratified sampling 416–418

Red-black see Odd-even orderingReduction of variance in Monte Carlo integration

402, 410Reed-Solomon code 852, 855

Berlekamp-Massey algorithm 852syndrome decoding 852

References (explanation) 6Reflection formula for gamma function 256Regula falsi (false position) 449Regularity condition 983Regularization

compared with optimal filtering 1008constrained linear inversion method 1006linear 1006–1013nonlinear 1018objective criterion 1009of inverse problems 1002–1006Phillips-Twomey method 1006support vector machines 893Tikhonov-Miller 1007trade-off curve 1005two-dimensional 1010, 1011zeroth order 1002–1006see also Inverse problems

Regularizing operator 1004

Rejection method for random number generator365–368

Relative entropy 756Relaxation method

automated allocation of mesh points 981–983computation of spheroidal harmonics 971,

973–977elliptic partial differential equations 1028,

1059–1066example 971, 973–977for algebraically difficult sets 970for differential equations 957, 964–970Gauss-Seidel method 1060, 1061, 1068, 1078internal boundary conditions 983, 984internal singular points 983, 984Jacobi’s method 1060, 1061, 1068successive over-relaxation (SOR) 1061–1066,

1070see also Multigrid method

Remes algorithmsexchange algorithm 669for minimax rational function 249

Residual 63, 70, 88in multigrid method 1067

resize 27Resolution function, in Backus-Gilbert method

1014Response function 641–643, 649Responsibility matrix 842Restriction operator 1068Reward, $1000 offer revoked 342Richardson’s deferred approach to the limit 166,

169, 231, 900, 911, 921, 922, 994, 1072see also Bulirsch-Stoer method

Richtmyer artificial viscosity 1042Ridders’ method

for numerical derivatives 231root finding 443, 449, 452–454

Riemann shock problem 1043Riemann zeta function 211Right eigenvalues or eigenvectors 564, 565Rights management 5Rise/fall time 659Robust estimation 723, 778, 818–824

Andrew’s sine 821average deviation 723double exponential errors 820Kalman filtering 824Lorentzian errors 820mean absolute deviation 723nonparametric correlation 748–754Tukey’s biweight 821use of a priori covariances 824see also Statistical tests

Romberg integration 156, 166, 169, 231, 923,994

Root finding 181, 182, 442–486advanced implementations of Newton’s rule

486Bairstow’s method 466, 471

Page 34: Index [numerical.recipes]numerical.recipes/nr3index.pdfBicubic interpolation 136Œ138 Bicubic spline 135 Big-endian 9 Biharmonic equation 153 Bilinear interpolation 133, 134 Binary

1228 Index

bisection 445, 447–449, 454, 460, 492, 584,822

bracketing of roots 443, 445–447, 454, 455,464, 465, 470

Brent’s method 443, 449, 453–456, 459, 786Broyden’s method 474, 483–486compared with multidimensional minimization

476, 477complex analytic functions 466convergence criteria 448, 475deflation of polynomials 464, 471double root 443eigenvalue methods 469, 470false position 449, 452, 454Halley’s method 263, 264, 271, 335, 463in complex plane 254in one dimension 442in relaxation method 964in shooting method 956, 959Jenkins-Traub method 470Laguerre’s method 444, 466–469Lehmer-Schur algorithm 470Maehly’s procedure 465, 472matrix method 469, 470Muller’s method 466, 473multidimensional 442, 459multiple roots 443Newton’s rule 182, 229, 443, 444, 456–462,

464, 466, 470–477, 539, 584, 944, 959,964, 994, 1077, 1079, 1190, 1191

pathological cases 445, 457, 464, 474polynomials 444, 463–473, 563Ridders’ method 443, 449, 452–454root polishing 459, 465, 470–473safe Newton’s rule 460secant method 449, 454, 466, 500singular Jacobian in Newton’s rule 486stopping criterion for polynomials 467use of minimum finding 443using derivatives 456without derivatives 456zero suppression 473see also Roots

Root polishing 459, 465, 470–473Roots

Chebyshev polynomials 233cubic equations 228multiple 443, 466nonlinear equations 442–486polynomials 444, 464, 563quadratic equations 227reflection in unit circle 676square, multiple precision 1191see also Root finding

Rosenbrock method 934–940compared with semi-implicit extrapolation

941stepsize control 938

Rotation matrix 1097, 1130, 1131Roundoff error 10, 11, 1163, 1164

bracketing a minimum 500conjugate gradient method 1030eigensystems 572, 573, 582, 584, 586, 591,

594extended trapezoidal rule 165general linear least squares 791, 795graceful 1165hardware aspects 1164Householder reduction 581, 582IEEE standard 1165least-squares fitting 783, 791Levenberg-Marquardt method 802linear algebraic equations 38, 41, 43, 61, 72,

95linear predictive coding (LPC) 680magnification of 10, 11, 61maximum entropy method (MEM) 683multidimensional minimization 521, 525multiple roots 464numerical derivatives 229recurrence relations 220reduction to Hessenberg form 594series 207, 210straight line fitting 783variance 724

Rowdegeneracy 38operations on matrix 42, 45totals 743, 759

RSS algorithm 416, 417RST properties (reflexive, symmetric, transitive)

440Run-length encoding 1180Runge-Kutta method 900, 901, 907–910, 935,

942, 1096dense output 915Dormand-Prince parameters 912, 920embedded 911, 936FSAL (first-same-as-last) 913high-order 907–910, 912, 920implementation 916–920number of function evaluations 912stepsize control 910–920

Runge phenomenon 1090Rybicki, G.B. 96, 130, 183, 303, 634, 689, 717

Samplinga distribution 825importance 411, 412, 414Latin square or hypercube 409, 410Markov chain Monte Carlo 825recursive stratified 416–418stratified 412–414uneven or irregular 685, 771

Sampling theorem 178, 239, 605, 653for numerical approximation 717–719

Sande-Tukey FFT algorithm 616Savitzky-Golay filters

for data smoothing 766–772for numerical derivatives 232, 769

Page 35: Index [numerical.recipes]numerical.recipes/nr3index.pdfBicubic interpolation 136Œ138 Bicubic spline 135 Big-endian 9 Biharmonic equation 153 Bilinear interpolation 133, 134 Binary

Index 1229

ScaLAPACK 40Scallop loss 658Schrodinger equation 1048, 1049Schrage’s algorithm 344Schultz’s method for matrix inverse 64, 716Scilab (software) 3Scope, temporary 20, 21Searching

an ordered table 114–118selection 431–439with correlated values 115

Secant method 443, 449, 454, 466, 500Broyden’s method 483–486multidimensional (Broyden’s) 474, 483–486

Second Euler-Maclaurin summation formula 167Second order differential equations 928, 930Seed of random number generator 343Selection 419, 431–439

by partition-exchange 433find m largest elements 434for median 822heap algorithm 434in place 432, 439incremental quantile estimation 435largest or smallest 434operation count 433, 439single-pass 432use to find median 726

Semi-implicit Euler method 934, 940Semi-implicit extrapolation method 934, 935,

940, 941compared with Rosenbrock method 941stepsize control 941

Semi-implicit midpoint rule 940Semi-invariants of a distribution 725Sentinel, in Quicksort 424, 433Separable kernel 992Separation of variables 292Sequence, alignment of by DP 559–562Sequential quantile estimation 435

changes with time 438Series 209–218

accelerating convergence of 177, 211–218alternating 211, 216asymptotic 210, 216Bessel function K� 288Bessel function Y� 284, 285Bessel functions 210, 274divergent 210, 211, 216economization 243–245� algorithm 212Euler’s transformation 211, 212exponential integral 267, 269Fresnel integral 298geometric 211, 214hypergeometric 252, 318hyperlinear convergence 211incomplete beta function 270incomplete gamma function 259Laurent 681, 682

Levin transformation 214linear convergence 211logarithmic convergence 211relation to continued fractions 206Riemann zeta function 211roundoff error in 207sine and cosine integrals 301sine function 210Taylor 456, 510, 900, 911, 965, 969transformation of 211, 212van Wijngaarden’s algorithm 217

Set bits, counting 16Shaft encoder 1166Shell algorithm (Shell’s sort) 420–423Shepard interpolation 140Sherman-Morrison formula 76–79, 94, 483, 534Shifting of eigenvalues 563, 585, 596Shock wave 1037, 1042, 1043Shooting method

computation of spheroidal harmonics 979example 971, 977–981for differential equations 956, 959–961, 971,

977–981for difficult cases 962interior fitting point 962

Side information 760, 761Sidelobe level 658Sign bit in floating point format 8SIGN utility function 17Signal, bandwidth limited 605Significance (statistical) 727

of 2-d K-S test 763, 764one- vs. two-sided 747peak in Lomb periodogram 686, 687two-tailed 730

Similarity transform 566, 567, 570, 592, 594Simplex

defined 502method in linear programming 489, 502,

526–536, 548method of Nelder and Mead 489, 502–507,

552, 821use in simulated annealing 552

Simplex method see Linear ProgrammingSimpson’s rule 156, 158, 160, 165, 169, 698,

990, 994Simpson’s three-eighths rule 158, 995, 997Simulated annealing see Annealing, method of

simulatedSimulation see Monte CarloSinc expansion 178Sine function

evaluated from tan.�=2/ 219recurrence 219series 210

Sine integral 297, 300–302continued fraction 301routine for 301series 301see also Cosine integral

Page 36: Index [numerical.recipes]numerical.recipes/nr3index.pdfBicubic interpolation 136Œ138 Bicubic spline 135 Big-endian 9 Biharmonic equation 153 Bilinear interpolation 133, 134 Binary

1230 Index

Sine transform see Fast Fourier transform (FFT);Fourier transform

Singleton’s algorithm for FFT 637, 638Singular value decomposition (SVD) 39, 65–75

and least squares 65, 70, 73, 249, 791, 793and rational Chebyshev approximation 249approximation of matrices 74, 75basis for nullspace and range 68confidence levels from 816, 817covariance matrix 817fewer equations than unknowns 73for inverse problems 1003in minimization 512more equations than unknowns 73, 74of square matrix 69–73relation to eigendecomposition 569, 570use for ill-conditioned matrices 71, 73, 563use for orthonormal basis 74, 105

Singularitiesin integral equations 995–1000in integral equations, worked example 999,

1000in integrands 167, 173, 195, 995of hypergeometric function 252, 253, 318removal in numerical integration 170, 171,

173, 995Singularity, subtraction of the 996Six-step framework, for FFT 615size 27Skewness of distribution 723, 725Slack variables 529, 538, 888Slepian functions 662–667SMBus 1168Smith-Waterman algorithm 562Smoothing

data 129, 766–772in multigrid methods 1069operator in integral equations 987

Smoothness prior 1006sn function 316Sobol’s quasi-random sequence 404–406Soft-decision decoding 851–855

error correction 855minimal trellis 853trellis 853, 856Viterbi algorithm 854

Software engineering 2Sorting 419–441

bubble sort cautioned against 420compared to selection 431eigenvectors 575Heapsort 420, 426–428, 434index table 419, 426, 428–431operation count 420, 422, 423Quicksort 420, 422–426, 429, 433rank table 419, 431ranking 428–431Shell’s method 420–423straight insertion 420, 423, 575

Source code, obtaining NR 3

Sparse linear equations 39, 75–92, 534, 544, 548,937band-diagonal 58Bartels-Golub update 535biconjugate gradient method 88, 716fill-in, minimizing 59, 76, 535, 544in inverse problems 1011indexed storage 82–87minimum residual method 89named patterns 76, 1028partial differential equations 1028relaxation method for boundary value

problems 964wavelet transform 700, 716see also Matrix

Spearman rank-order coefficient 749–751, 819Special functions see FunctionSpectral analysis see Fourier transform;

PeriodogramSpectral density

one-sided PSD 602periodogram 681, 683power spectral density (PSD) 602, 603, 652power spectral density per unit time 603power spectrum estimation by MEM 681–684two-sided PSD 603see also Power spectrum

Spectral lines, how to smooth 767Spectral methods 239, 1030, 1083–1096

analytic example 1084and discontinuities 1083and Gaussian quadrature 1087–1089as finite difference methods 1093cardinal functions 1089–1091choice of basis functions 1085collocation method 1086contrasted with finite differencing 1083, 1085differentiation matrix 1091efficiency of 1083exponential convergence of 1085Galerkin method 1086grid point representation 1090interpolation of solution 1093method of lines 1095multidimensional equations 1095nonlinear equations 1094pseudospectral 1088tau method 1086variable coefficient equations 1094worked example 1094, 1095

Spectral radius 1061, 1066Spectral test for random number generator 344Spectrum see Fourier transformSpeech recognition by hidden Markov model 866Sphere 1097, 1128–1130

2- vs. 3-sphere 1128angular coordinates 1128find all points within a 1109intersection with line 1121random point on 1129, 1130

Page 37: Index [numerical.recipes]numerical.recipes/nr3index.pdfBicubic interpolation 136Œ138 Bicubic spline 135 Big-endian 9 Biharmonic equation 153 Bilinear interpolation 133, 134 Binary

Index 1231

surface area in n-dimensions 1128volume in n-dimensions 1129

Spherical Bessel functions 283routine for 291

Spherical coordinates 1128Spherical harmonics 292–297

basis functions for spectral methods 1085fast transform 295, 297orthogonality 292routine for 294stable recurrence for 294table of 293see also Associated Legendre polynomials

Spheroidal harmonics 971–981boundary conditions 972, 973normalization 973routines for 975–977

Spline 111cubic 120–124gives tridiagonal system 122interpolating 148natural 122operation count 122two-dimensional (bicubic) 135

Spread matrix 1015Square root

complex 226multiple precision 1191

Square window 656Squeeze, for computing random deviates 368Stability 8–12

and stiff differential equations 932Courant condition 1034, 1036, 1038, 1042,

1051diffusion equation 1045, 1046in quadrature solution of Volterra equation

994mesh drift in PDEs 1040nonlinear 1037of Clenshaw’s recurrence 223of Gauss-Jordan elimination 41, 43of implicit differencing 932, 1046of Markov model 858, 859of polynomial deflation 464, 465of recurrence relations 220, 222, 223, 275,

278, 282, 294partial differential equations 1026, 1033von Neumann analysis for PDEs 1033, 1034,

1036, 1039, 1045, 1046see also Accuracy

Stabilized Kolmogorov-Smirnov test 739Stabilizing functional 1004Stage, trellis 857Staggered leapfrog method 1038, 1039Standard (probable) errors 727, 781, 783, 786,

787, 790, 794, 807–817Standard deviation

of a distribution 722, 723of Fisher’s z 747of linear correlation coefficient 746

of sum squared difference of ranks 750Standard Template Library (STL) containers 421State change vector 947Statistical distributions 320–339

beta 333, 334binomial 338, 339Cauchy 322, 323chi-square 330, 331density, change of variables in 362exponential 326, 327F -distribution 332, 333full conditional 827gamma 331, 332Kolmogorov-Smirnov 334–336logistic 324–326lognormal 328, 329Lorentzian 322normal 320, 321Poisson 336–338Student’s 323, 324Weibull 327, 328

Statistical error 778Statistical tests 720–772

Anderson-Darling 739average deviation 723bootstrap method 809, 810chi-square 731–734, 742–745contingency coefficient C 743, 744contingency tables 741–745, 753, 758correlation 721Cramer’s V 743, 744difference of distributions 730–740difference of means 727difference of variances 728, 730entropy measures of association 758–761F-test 728, 730Fisher’s z-transformation 746general paradigm 720Kendall’s tau 749, 751–754Kolmogorov-Smirnov 731, 736–738, 762,

819Kuiper’s statistic 739kurtosis 723, 725L-estimates 818linear correlation coefficient 745–748Lucy’s Y 2 and Z2 735M-estimates 818mean 721–723, 725, 726mean absolute deviation 723measures of association 721, 741, 759measures of central tendency 721–726median 722, 725, 726, 818mode 722, 725, 726moments 721–726nonparametric correlation 748–754p-value test 720Pearson’s r 745periodic signals 686, 687phi statistic 744R-estimates 818

Page 38: Index [numerical.recipes]numerical.recipes/nr3index.pdfBicubic interpolation 136Œ138 Bicubic spline 135 Big-endian 9 Biharmonic equation 153 Bilinear interpolation 133, 134 Binary

1232 Index

rank correlation 748–754robust 723, 749, 818–824semi-invariants 725shift vs. spread 739significance 727significance, one- vs. two-sided 730, 747skewness 723, 725small numbers of counts 734, 735Spearman rank-order coefficient 749–751,

819standard deviation 722, 723strength vs. significance 727, 741Student’s t 727–730, 746Student’s t, for correlation 746Student’s t, paired samples 729Student’s t, Spearman rank-order coefficient

749Student’s t, unequal variances 728sum squared difference of ranks 749tail test 720Tukey’s trimean 818two-dimensional 762–766variance 721, 722, 724, 725, 729Wilcoxon 818see also Error; Robust estimation

Statistics, higher-order 604Steed’s method

Bessel functions 283, 287continued fractions 207

Steepest descent method 516in inverse problems 1011

Stepdoubling 162, 174, 177, 910tripling 168, 169

Stieltjes, procedure of 189Stiff equations 901, 931–941

Kaps-Rentrop method 934methods compared 941predictor-corrector method 934Rosenbrock method 934–940scaling of variables 935semi-implicit Euler method 940semi-implicit extrapolation method 934, 935semi-implicit midpoint rule 940

Stiff functions 111, 500Stirling’s approximation 256, 1017STL see Standard Template LibraryStochastic simulation 946–954

when not to use 953Stock market prices 329Stoermer’s rule 928Stopping criterion

multigrid method 1078polynomial root finding 467

Storageband-diagonal matrix 58sparse matrices 82–87

Straight injection 1071Straight insertion 420, 423, 575Straight-line fitting 780–785

errors in both coordinates 785–787robust estimation 822–824

Strassen’s fast matrix algorithms 107Stratified sampling, Monte Carlo 412–414, 416Strings, aligning by DP 559–562struct see Class; ObjectStudent-t deviates 371Student’s probability distribution 323, 324

Cauchy as special case 323normal as limiting case 323

Student’s t-testfor correlation 746for difference of means 727–730for difference of means (paired samples) 729for difference of means (unequal variances)

728for difference of ranks 750Spearman rank-order coefficient 749

Sturmian sequence 583Sub-random sequences see Quasi-random

sequenceSubtraction, multiple precision 1186Subtractive method for random number generator

354Successive over-relaxation (SOR) 1061–1066

bad in multigrid method 1070Chebyshev acceleration 1064choice of overrelaxation parameter

1062–1064Successor relation, random generators 350Sum-product algorithm 867Sum squared difference of ranks 749Sums see SeriesSupernova 1987A 762Support vector machine 883–898

dual formulation 886–889kernel examples 891kernel trick 889–892linearly separable data 884Mangasarian-Musicant variant 893–898margin 884regularization parameter 888, 893SVMlight package 893

SVD see Singular value decomposition (SVD)SVM see Support vector machineSWAP utility function 17Symbol, of operator 1070, 1071Syndrome decoding

coset leader 852error-correcting codes 852Golay code 852Hamming code 852perfect code 852Reed-Solomon code 852

Synthetic division 95, 202, 243, 464, 471Systematic errors 778

Tableau (interpolation) 118, 125Tail test 720Tangent function, continued fraction 206

Page 39: Index [numerical.recipes]numerical.recipes/nr3index.pdfBicubic interpolation 136Œ138 Bicubic spline 135 Big-endian 9 Biharmonic equation 153 Bilinear interpolation 133, 134 Binary

Index 1233

TANH rule 173infinite range 176

Taylor series 229, 456, 510, 900, 911, 944, 965,969

Templates (C++) 17, 22, 26, 419, 421Thermodynamics, and simulated annealing 550Thin-plate spline 142Three-dimensional array 36Threshold partial pivoting 535throw statement 30Tides 677Tikhonov-Miller regularization 1007Time domain 600Time reuse 952Time splitting 1052, 1053, 1065Timing, C routine for 355TNT parsimony software 882Toeplitz matrix 93, 96–99, 245

LU decomposition 98new, fast algorithms 99nonsymmetric 96–98

Tongue twisters 431Torus 400, 401, 408Trade-off curve 1002, 1016Transformation

Gauss 310Landen 310method for random number generator

362–365Transforms, number theoretic 616Transition matrix

directed graph 856eigenvalues and eigenvectors 858, 859Markov model 856

Transition probabilitydirected graph 856Markov model 856

Transport error 1037Transpose of sparse matrix 85Trapezoidal rule 158, 160, 162, 166, 173, 175,

178, 695, 698, 989, 993Traveling salesman problem 549, 551, 552Tree

data structure 1097KD see KD treeminimum spanning 1097, 1147of boxes as data structure 1101quadtree/octree see QO tree

Tree, phylogenetic 868–882additive 871agglomerative clustering 874–882branch length 870corrected distance transformation 873maximum likelihood 882maximum parsimony 882rooted vs. unrooted 871search over topologies 882software packages 874ultrametric 871UPGMA 877

WPGMA 877Trellis 853, 856

directed graph 856maximum likelihood 854stage 857

Trellis coded modulation 855Triangle 1097, 1111–1116

angle between two 1116area of 1111centroid or barycenter 1113circumscribed circle (circumcircle) 1112in 3 dimensions 1114inscribed circle (incircle) 1112intersection with line 1121plane defined by 1115random point in 1114

Triangulationand interpolation 132applications of 1141–1149definition 1131Delaunay 1097, 1131–1149hashing and 1136incremental construction 1134interpolation using 1141largest minimum angle property 1134minimum weight 1134number of lines and triangles in 1132

Tridiagonal matrix 56–61, 188, 567, 598cyclic 79, 80eigenvalues 576, 577, 583–589, 665from cubic spline 122from operator splitting 1066in alternating-direction implicit method (ADI)

1066in cyclic reduction 1057, 1058parallel solution 57reduction of symmetric matrix to 576–583with fringes 1028see also Matrix

Trigonometricfunctions, tan.�=2/ as minimal 219functions, recurrence relation 219, 687interpolation 110solution of cubic equation 228

Trimming error 173Truncation error 11, 173, 500, 910, 911, 1163

exponentially decreasing 238in multigrid method 1077in numerical derivatives 229

try 30Tukey’s biweight 821Tukey’s trimean 818Turbo codes 855Twenty questions 755, 758, 761Twin errors 1174Two-dimensional see MultidimensionalTwo-dimensional K–S test 762–766Two-pass algorithm for variance 724Two-point boundary value problems 900,

955–984

Page 40: Index [numerical.recipes]numerical.recipes/nr3index.pdfBicubic interpolation 136Œ138 Bicubic spline 135 Big-endian 9 Biharmonic equation 153 Bilinear interpolation 133, 134 Binary

1234 Index

automated allocation of mesh points 981–983boundary conditions 955, 962, 977difficult cases 962eigenvalue problem for differential equations

958, 973, 977–981free boundary problem 958, 983grid (mesh) points 957, 964, 981–983internal boundary conditions 983, 984internal singular points 983, 984linear requires no iteration 961multiple shooting 964problems reducible to standard form 958regularity condition 983relaxation method 957, 964–970relaxation method, example of 973–977shooting method 956, 959–961, 971, 977–981shooting method, example of 977–981shooting to a fitting point 962singular endpoints 962, 972, 978see also Elliptic partial differential equations

Two-sided exponential error distribution 820Two-sided power spectral density 603Two-step Lax-Wendroff method 1040Types used in NR 4, 25, 26

Uchar 25Uint 25Ullong 25Ultrametric tree 871Uncertainty coefficient 761Uncertainty principle 717Underflow, in IEEE arithmetic 9, 1165Underrelaxation 1062Uniform deviates see Random deviates, uniformUnit-offset array 36Unitary (function) 1048, 1049Unitary (matrix) see MatrixUniversal Product Code (UPC) 1174Unnormalized value 9Unsupervised learning 842, 868UPC checksum 1174UPGMA 877Upper Hessenberg matrix see Hessenberg matrixUpwind differencing 1037, 1042U.S. Postal Service barcode 1174Utility functions 17

V-cycle 1069valarray class 25Validation of Numerical Recipes procedures 5Valley, long or narrow 503, 509, 512, 516, 550,

552Van Cittert’s method 1011Van Wijngaarden-Dekker-Brent method see

Brent’s methodVandermonde matrix 93–96, 130Variable length code 1176Variable metric method 489, 521–525

compared to conjugate gradient method 521Variable step-size integration 155, 167, 901, 924,

928–930, 938, 941, 943, 944, 946

Variance(s)of distribution 721, 722, 725, 728–730pooled 727reduction of (in Monte Carlo) 402, 410statistical differences between two 726–730two-pass algorithm for computing 724see also Covariance

Variational methods, partial differential equations1030

Variogram 145, 837various models for 837

VecDoub, VecInt, etc. 26Vector

angle between two 1120, 1121C++ vector class 24class for 24–29contiguous storage for 27of matrices 36suffix _I, _O, _IO 26, 32, 36see also Array; NRvector

VEGAS algorithm for Monte Carlo 414–416Verhoeff’s algorithm for checksums 1174Viete’s formulas for cubic roots 228Viscosity

artificial 1037, 1042numerical 1035, 1042

Viterbi decoding 850–855as a min-sum algorithm 867Bayesian nature of 868compared to forward-backward algorithm

867compared to hidden Markov model 867, 868constellation 855directed graph 850state defined 850training 867transition 850with arbitrary transition probability 867with parameter re-estimation 867

Volterra equations 988adaptive stepsize control 995analogy with ODEs 993block-by-block method 994first kind 988, 993nonlinear 988, 994second kind 988, 992–995unstable quadrature 994

von Neumann-Richtmyer artificial viscosity 1042von Neumann stability analysis for PDEs 1033,

1034, 1036, 1039, 1045, 1046Voronoi diagram 1097, 1142–1146

and Delaunay triangulation 1143avoiding obstacles 1147

Vowellish (coding example) 1176, 1181

W-cycle 1069Wave equation 292, 1024, 1031Wavelet transform 699–716

and Fourier domain 707, 708appearance of wavelets 706, 707

Page 41: Index [numerical.recipes]numerical.recipes/nr3index.pdfBicubic interpolation 136Œ138 Bicubic spline 135 Big-endian 9 Biharmonic equation 153 Bilinear interpolation 133, 134 Binary

Index 1235

approximation condition of order p 701coefficient values 703, 704contrasted with Fourier transform 699, 700,

711Daubechies wavelet filter coefficients 700,

702, 704, 706–708, 715detail information 701, 702discrete wavelet transform (DWT) 702–706DWT (discrete wavelet transform) 702–706eliminating wraparound 703, 709fast solution of linear equations 715, 716filters 707, 708for integral equations 989image processing 713, 715inheritance 23inverse 703JPEG-2000 712Lemarie’s wavelet 708mother-function coefficient 703mother functions 700multidimensional 712, 713nonsmoothness of wavelets 707of linear operator 715on the interval 709pyramidal algorithm 702, 703quadrature mirror filter 701smooth information 701, 702truncation 711, 712wavelet filter coefficient 700, 703wavelets 700, 706, 707

Wavelets see Wavelet transformWeber function 254Webnotes, Numerical Recipes 4Weibull probability distribution 327, 328Weighted Kolmogorov-Smirnov test 739Weighted least-squares fitting see Least-squares

fittingWeighting, full vs. half in multigrid 1071Weights for Gaussian quadrature 179, 180, 995

nonclassical weight function 189–191, 995Welch window 658while iteration 14Wiener filtering 645, 649–652, 673, 674, 767

compared to regularization 1008Wiener-Khinchin theorem 602, 674, 682Wilcoxon test 818Winding number 1122–1124Window function 660

Bartlett 657flat-topped 658, 659Hamming 658Hann 657Parzen 657Slepian 662square 656Welch 658

Winograd Fourier transform algorithms 616Woodbury formula 80, 81, 94Wordlength 8, 12WPGMA 877

Wraparoundobject for accessing vector 613order for storing spectrum 611, 628, 632problem in convolution 643

Wronskian, of Bessel functions 283, 284, 287

X-ray diffraction pattern, processing of 1012Xorshift random number generator 345

Yale Sparse Matrix Package 76

Z-transform 670, 681Z-transformation, Fisher’s 746Zapf Dingbats 1162Zealots 1020Zebra relaxation 1070Zero contours 474Zero-offset array 36Zeroth-order regularization 1002–1006Zip code, barcode for 1174Ziv-Lempel compression 1176ZooAnimal (OOP example) 23Zoom transforms 615