References readable files The references collected here are those of general usefulness,usually cited in more than one section of this book.More specialized sources,usually cited in a single section,are not repeated here. We first list a small number of books that form the nucleus of a recommended personal reference collection on numerical methods,numerical analysis,and closely related subjects.These are the books that we like to have within easy reach. 1-800-8 one) Abramowitz,M.,and Stegun,I.A.1964,Handbook of Mathematical Func- tions,Applied Mathematics Series,Volume 55(Washington:National Bureau of Standards;reprinted 1968 by Dover Publications,New York) 、Ba Press. C:THEA Acton.F.S.1970.Numerical Methods That Work.1990.corrected edition (Washington:Mathematical Association of America) 多 Ames,W.F.1977,Numerical Methods for Partial Differential Equations, Programs 2nd ed.(New York:Academic Press) Bratley,P.,Fox,B.L.,and Schrage,E.L.1983,A Guide to Simulation(New SCIENTIFIC York:Springer-Verlag) Dahlquist,G.,and Bjorck,A.1974,Numerical Methods (Englewood Cliffs.NJ:Prentice-Hall) COMPUTING Delves,L.M.,and Mohamed,J.L.1985,Computational Methods for Inte- 18-1892 gral Equations(Cambridge,U.K.:Cambridge University Press) Dennis,J.E.,and Schnabel,R.B.1983,Numerical Methods for Uncon- v@cambr Further strained Optimization and Nonlinear Equations (Englewood Cliffs, NJ:Prentice-Hall) ridge. 的 Numerical Gill,P.E.,Murray,W.,and Wright,M.H.1991,Numerical Linear Algebra and Optimization,vol.1(Redwood City,CA:Addison-Wesley) org(outside Golub,G.H.,and Van Loan,C.F.1989,Matrix Computations,2nd ed. (Baltimore:Johns Hopkins University Press) North Software. Oppenheim,A.V.,and Schafer,R.W.1989,Discrete-Time Signal Process- ing (Englewood Cliffs,NJ:Prentice-Hall) America). Ralston,A.,and Rabinowitz,P.1978,A First Course in Numerical Analysis, visit website machine. 2nd ed.(New York:McGraw-Hill) Sedgewick,R.1988,A/gorithms,2nd ed.(Reading,MA:Addison-Wesley) Stoer,J.,and Bulirsch,R.1980,Introduction to Numerical Analysis (New York:Springer-Verlag) Wilkinson,J.H.,and Reinsch,C.1971,Linear Algebra,vol.II of Handbook for Automatic Computation (New York:Springer-Verlag) 926
Permission is granted for internet users to make one paper copy for their own personal use. Further reproduction, or any copyin Copyright (C) 1988-1992 by Cambridge University Press. Programs Copyright (C) 1988-1992 by Numerical Recipes Software. Sample page from NUMERICAL RECIPES IN C: THE ART OF SCIENTIFIC COMPUTING (ISBN 0-521-43108-5) g of machinereadable files (including this one) to any server computer, is strictly prohibited. To order Numerical Recipes books or CDROMs, visit website http://www.nr.com or call 1-800-872-7423 (North America only), or send email to directcustserv@cambridge.org (outside North America). References The references collected here are those of general usefulness, usually cited in more than one section of this book. More specialized sources, usually cited in a single section, are not repeated here. We first list a small number of books that form the nucleus of a recommended personal reference collection on numerical methods, numerical analysis, and closely related subjects. These are the books that we like to have within easy reach. Abramowitz, M., and Stegun, I.A. 1964, Handbook of Mathematical Functions, Applied Mathematics Series, Volume 55 (Washington: National Bureau of Standards; reprinted 1968 by Dover Publications, New York) Acton, F.S. 1970, Numerical Methods That Work; 1990, corrected edition (Washington: Mathematical Association of America) Ames, W.F. 1977, Numerical Methods for Partial Differential Equations, 2nd ed. (New York: Academic Press) Bratley, P., Fox, B.L., and Schrage, E.L. 1983, A Guide to Simulation (New York: Springer-Verlag) Dahlquist, G., and Bjorck, A. 1974, Numerical Methods (Englewood Cliffs, NJ: Prentice-Hall) Delves, L.M., and Mohamed, J.L. 1985, Computational Methods for Integral Equations (Cambridge, U.K.: Cambridge University Press) Dennis, J.E., and Schnabel, R.B. 1983, Numerical Methods for Unconstrained Optimization and Nonlinear Equations (Englewood Cliffs, NJ: Prentice-Hall) Gill, P.E., Murray, W., and Wright, M.H. 1991, Numerical Linear Algebra and Optimization, vol. 1 (Redwood City, CA: Addison-Wesley) Golub, G.H., and Van Loan, C.F. 1989, Matrix Computations, 2nd ed. (Baltimore: Johns Hopkins University Press) Oppenheim, A.V., and Schafer, R.W. 1989, Discrete-Time Signal Processing (Englewood Cliffs, NJ: Prentice-Hall) Ralston, A., and Rabinowitz, P. 1978, A First Course in Numerical Analysis, 2nd ed. (New York: McGraw-Hill) Sedgewick, R. 1988, Algorithms, 2nd ed. (Reading, MA: Addison-Wesley) Stoer, J., and Bulirsch, R. 1980, Introduction to Numerical Analysis (New York: Springer-Verlag) Wilkinson, J.H., and Reinsch, C. 1971, Linear Algebra, vol. II of Handbook for Automatic Computation (New York: Springer-Verlag) 926
References 927 We next list the larger collection of books,which,in our view,should be included in any serious research library on computing,numerical methods,or analysis. Bevington,P.R.1969,Data Reduction and Error Analysis for the Physical Sciences (New York:McGraw-Hill) Bloomfield,P.1976,Fourier Analysis of Time Series-An Introduction (New York: Wiley) Bowers,R.L.,and Wilson,J.R.1991,Numerical Modeling in Applied Physics and Astrophysics (Boston:Jones Bartlett) Brent,R.P.1973,Algorithms for Minimization without Derivatives (Englewood Cliffs,NJ:Prentice-Hall) Brigham,E.O.1974,The Fast Fourier Transform (Englewood Cliffs,NJ:Prentice- Hall) Brownlee,K.A.1965,Statistical Theory and Methodology,2nd ed.(New York: Wiley) Bunch,J.R.,and Rose,D.J.(eds.)1976,Sparse Matrix Computations (New York: Academic Press) Canuto,C.,Hussaini,M.Y.,Quarteroni,A.,and Zang,T.A.1988,Spectral Methods in Fluid Dynamics (New York:Springer-Verlag) Carnahan,B.,Luther,H.A.,and Wilkes,J.O.1969,Applied Numerical Methods (New York:Wiley) Champeney,D.C.1973,Fourier Transforms and Their Physical Applications(New 、是 令 Press. York:Academic Press) Childers,D.G.(ed.)1978,Modern Spectrum Analysis(New York:IEEE Press) Cooper,L.,and Steinberg,D.1970,Introduction to Methods of Optimization (Philadelphia:Saunders) Dantzig,G.B.1963,Linear Programming and Extensions (Princeton,NJ:Princeton University Press) 髻 Devroye,L.1986,Non-Uniform Random Variate Generation (New York:Springer- Verlag) Dongarra,J.J.,et al.1979,LINPACK User's Guide(Philadelphia:S.I.A.M.) Downie,N.M.,and Heath,R.W.1965,Basic Statistical Methods,2nd ed.(New York:Harper Row) Duff,I.S.,and Stewart,G.W.(eds.)1979,Sparse Matrix Proceedings 1978 (Philadelphia:S.I.A.M.) 10.621 Elliott,D.F,and Rao,K.R.1982,Fast Transforms:Algorithms,Analyses,Appli- cations (New York:Academic Press) ridge.org Numerical Recipes 43106 Fike,C.T.1968,Computer Evaluation of Mathematical Functions (Englewood Cliffs,NJ:Prentice-Hall) Forsythe,G.E.,Malcolm,M.A.,and Moler,C.B.1977,Computer Methods for (outside Mathematical Computations (Englewood Cliffs,NJ:Prentice-Hall) North Software. Forsythe,G.E.,and Moler,C.B.1967,Computer Solution of Linear Algebraic Systems (Englewood Cliffs,NJ:Prentice-Hall) Gass,S.T.1969,Linear Programming,3rd ed.(New York:McGraw-Hill) Gear,C.W.1971,Numerical Initial Value Problems in Ordinary Differential Equa- tions (Englewood Cliffs,NJ:Prentice-Hall) Goodwin,E.T.(ed.)1961,Modern Computing Methods,2nd ed.(New York: Philosophical Library) Gottlieb,D.and Orszag,S.A.1977,Numerical Analysis of Spectral Methods: Theory and Applications (Philadelphia:S.1.A.M.) Hackbusch,W.1985,Multi-Grid Methods and Applications (New York:Springer- Verlag)
References 927 Permission is granted for internet users to make one paper copy for their own personal use. Further reproduction, or any copyin Copyright (C) 1988-1992 by Cambridge University Press. Programs Copyright (C) 1988-1992 by Numerical Recipes Software. Sample page from NUMERICAL RECIPES IN C: THE ART OF SCIENTIFIC COMPUTING (ISBN 0-521-43108-5) g of machinereadable files (including this one) to any server computer, is strictly prohibited. To order Numerical Recipes books or CDROMs, visit website http://www.nr.com or call 1-800-872-7423 (North America only), or send email to directcustserv@cambridge.org (outside North America). We next list the larger collection of books, which, in our view, should be included in any serious research library on computing, numerical methods, or analysis. Bevington, P.R. 1969, Data Reduction and Error Analysis for the Physical Sciences (New York: McGraw-Hill) Bloomfield, P. 1976, Fourier Analysis of Time Series – An Introduction (New York: Wiley) Bowers, R.L., and Wilson, J.R. 1991, Numerical Modeling in Applied Physics and Astrophysics (Boston: Jones & Bartlett) Brent, R.P. 1973, Algorithms for Minimization without Derivatives (Englewood Cliffs, NJ: Prentice-Hall) Brigham, E.O. 1974, The Fast Fourier Transform (Englewood Cliffs, NJ: PrenticeHall) Brownlee, K.A. 1965, Statistical Theory and Methodology, 2nd ed. (New York: Wiley) Bunch, J.R., and Rose, D.J. (eds.) 1976, Sparse Matrix Computations (New York: Academic Press) Canuto, C., Hussaini, M.Y., Quarteroni, A., and Zang, T.A. 1988, Spectral Methods in Fluid Dynamics (New York: Springer-Verlag) Carnahan, B., Luther, H.A., and Wilkes, J.O. 1969, Applied Numerical Methods (New York: Wiley) Champeney, D.C. 1973, Fourier Transforms and Their Physical Applications (New York: Academic Press) Childers, D.G. (ed.) 1978, Modern Spectrum Analysis (New York: IEEE Press) Cooper, L., and Steinberg, D. 1970, Introduction to Methods of Optimization (Philadelphia: Saunders) Dantzig, G.B. 1963, Linear Programming and Extensions (Princeton, NJ: Princeton University Press) Devroye, L. 1986, Non-Uniform Random Variate Generation (New York: SpringerVerlag) Dongarra, J.J., et al. 1979, LINPACK User’s Guide (Philadelphia: S.I.A.M.) Downie, N.M., and Heath, R.W. 1965, Basic Statistical Methods, 2nd ed. (New York: Harper & Row) Duff, I.S., and Stewart, G.W. (eds.) 1979, Sparse Matrix Proceedings 1978 (Philadelphia: S.I.A.M.) Elliott, D.F., and Rao, K.R. 1982, Fast Transforms: Algorithms, Analyses, Applications (New York: Academic Press) Fike, C.T. 1968, Computer Evaluation of Mathematical Functions (Englewood Cliffs, NJ: Prentice-Hall) Forsythe, G.E., Malcolm, M.A., and Moler, C.B. 1977, Computer Methods for Mathematical Computations (Englewood Cliffs, NJ: Prentice-Hall) Forsythe, G.E., and Moler, C.B. 1967, Computer Solution of Linear Algebraic Systems (Englewood Cliffs, NJ: Prentice-Hall) Gass, S.T. 1969, Linear Programming, 3rd ed. (New York: McGraw-Hill) Gear, C.W. 1971, Numerical Initial Value Problems in Ordinary Differential Equations (Englewood Cliffs, NJ: Prentice-Hall) Goodwin, E.T. (ed.) 1961, Modern Computing Methods, 2nd ed. (New York: Philosophical Library) Gottlieb, D. and Orszag, S.A. 1977, Numerical Analysis of Spectral Methods: Theory and Applications (Philadelphia: S.I.A.M.) Hackbusch, W. 1985, Multi-Grid Methods and Applications (New York: SpringerVerlag)
928 References Hamming,R.W.1962,Numerical Methods for Engineers and Scientists;reprinted 1986 (New York:Dover) Hart,J.F.,et al.1968,Computer Approximations (New York:Wiley) Hastings,C.1955,Approximations for Digital Computers (Princeton:Princeton University Press) Hildebrand,F.B.1974,Introduction to Numerical Analysis,2nd ed.;reprinted 1987 (New York:Dover) Hoel,P.G.1971,Introduction to Mathematical Statistics,4th ed.(New York:Wiley) Horn,R.A.,and Johnson,C.R.1985,Matrix Analysis(Cambridge:Cambridge University Press) Householder,A.S.1970,The Numerical Treatment of a Single Nonlinear Equation (New York:McGraw-Hill) Huber,P.J.1981,Robust Statistics (New York:Wiley) Isaacson,E.,and Keller,H.B.1966,Analysis of Numerical Methods (New York: Wiley) Jacobs,D.A.H.(ed.)1977,The State of the Art in Numerical Analysis (London: Academic Press) 上9 Johnson,L.W.,and Riess,R.D.1982,Numerical Analysis,2nd ed.(Reading,MA: Addison-Wesley) Kahaner,D.,Moler,C.,and Nash,S.1989,Numerical Methods and Soffware (Englewood Cliffs,NJ:Prentice Hall) Keller.H.B.1968.Numerical Methods for Two-Point Boundary-Value Problems 品。@d的州 Press. (Waltham,MA:Blaisdell) Knuth,D.E.1968,Fundamental Algorithms,vol.I of The Art of Computer Programming (Reading,MA:Addison-Wesley) Knuth,D.E.1981,Seminumerical Algorithms,2nd ed.,vol.2 of The Art of Computer Programming(Reading,MA:Addison-Wesley) OF SCIENTIFIC Knuth,D.E.1973,Sorting and Searching,vol.3 of The Art ofComputer Program- ming (Reading,MA:Addison-Wesley) Koonin,S.E.,and Meredith,D.C.1990,Computational Physics,Fortran Version (Redwood City,CA:Addison-Wesley) Kuenzi,H.P.,Tzschach,H.G.,and Zehnder,C.A.1971,Numerical Methods of Mathematical Optimization (New York:Academic Press) Lanczos,C.1956,Applied Analysis;reprinted 1988 (New York:Dover) Land,A.H.,and Powell,S.1973,Fortran Codes for Mathematical Programming 10621 (London:Wiley-Interscience) Lawson,C.L.,and Hanson,R.1974,Solving Least Squares Problems(Englewood Numerical Recipes 43106 Cliffs,NJ:Prentice-Hall) Lehmann,E.L.1975,Nonparametrics:Statistical Methods Based on Ranks (San Francisco:Holden-Day) (outside Luke,Y.L.1975,Mathematical Functions and Their Approximations (New York: Academic Press) North Magnus,W.,and Oberhettinger,F.1949,Formulas and Theorems for the Functions of Mathematical Physics (New York:Chelsea) Martin,B.R.1971,Statistics for Physicists (New York:Academic Press) Mathews,J.,and Walker,R.L.1970,Mathematical Methods of Physics,2nd ed. (Reading,MA:W.A.Benjamin/Addison-Wesley) von Mises,R.1964,Mathematical Theory of Probability and Statistics (New York: Academic Press) Murty,K.G.1976,Linear and Combinatorial Programming (New York:Wiley) Norusis,M.J.1982,SPSS Introductory Guide:Basic Statistics and Operations,and 1985,SPSS-X Advanced Statistics Guide (New York:McGraw-Hill)
928 References Permission is granted for internet users to make one paper copy for their own personal use. Further reproduction, or any copyin Copyright (C) 1988-1992 by Cambridge University Press. Programs Copyright (C) 1988-1992 by Numerical Recipes Software. Sample page from NUMERICAL RECIPES IN C: THE ART OF SCIENTIFIC COMPUTING (ISBN 0-521-43108-5) g of machinereadable files (including this one) to any server computer, is strictly prohibited. To order Numerical Recipes books or CDROMs, visit website http://www.nr.com or call 1-800-872-7423 (North America only), or send email to directcustserv@cambridge.org (outside North America). Hamming, R.W. 1962, Numerical Methods for Engineers and Scientists; reprinted 1986 (New York: Dover) Hart, J.F., et al. 1968, Computer Approximations (New York: Wiley) Hastings, C. 1955, Approximations for Digital Computers (Princeton: Princeton University Press) Hildebrand, F.B. 1974, Introduction to Numerical Analysis, 2nd ed.; reprinted 1987 (New York: Dover) Hoel, P.G. 1971, Introduction to Mathematical Statistics, 4th ed. (New York: Wiley) Horn, R.A., and Johnson, C.R. 1985, Matrix Analysis (Cambridge: Cambridge University Press) Householder, A.S. 1970, The Numerical Treatment of a Single Nonlinear Equation (New York: McGraw-Hill) Huber, P.J. 1981, Robust Statistics (New York: Wiley) Isaacson, E., and Keller, H.B. 1966, Analysis of Numerical Methods (New York: Wiley) Jacobs, D.A.H. (ed.) 1977, The State of the Art in Numerical Analysis (London: Academic Press) Johnson, L.W., and Riess, R.D. 1982, Numerical Analysis, 2nd ed. (Reading, MA: Addison-Wesley) Kahaner, D., Moler, C., and Nash, S. 1989, Numerical Methods and Software (Englewood Cliffs, NJ: Prentice Hall) Keller, H.B. 1968, Numerical Methods for Two-Point Boundary-Value Problems (Waltham, MA: Blaisdell) Knuth, D.E. 1968, Fundamental Algorithms, vol. 1 of The Art of Computer Programming (Reading, MA: Addison-Wesley) Knuth, D.E. 1981, Seminumerical Algorithms, 2nd ed., vol. 2 of The Art of Computer Programming (Reading, MA: Addison-Wesley) Knuth, D.E. 1973, Sorting and Searching, vol. 3 of The Art of Computer Programming (Reading, MA: Addison-Wesley) Koonin, S.E., and Meredith, D.C. 1990, Computational Physics, Fortran Version (Redwood City, CA: Addison-Wesley) Kuenzi, H.P., Tzschach, H.G., and Zehnder, C.A. 1971, Numerical Methods of Mathematical Optimization (New York: Academic Press) Lanczos, C. 1956, Applied Analysis; reprinted 1988 (New York: Dover) Land, A.H., and Powell, S. 1973, Fortran Codes for Mathematical Programming (London: Wiley-Interscience) Lawson, C.L., and Hanson, R. 1974, Solving Least Squares Problems (Englewood Cliffs, NJ: Prentice-Hall) Lehmann, E.L. 1975, Nonparametrics: Statistical Methods Based on Ranks (San Francisco: Holden-Day) Luke, Y.L. 1975, Mathematical Functions and Their Approximations (New York: Academic Press) Magnus, W., and Oberhettinger, F. 1949, Formulas and Theorems for the Functions of Mathematical Physics (New York: Chelsea) Martin, B.R. 1971, Statistics for Physicists (New York: Academic Press) Mathews, J., and Walker, R.L. 1970, Mathematical Methods of Physics, 2nd ed. (Reading, MA: W.A. Benjamin/Addison-Wesley) von Mises, R. 1964, Mathematical Theory of Probability and Statistics (New York: Academic Press) Murty, K.G. 1976, Linear and Combinatorial Programming (New York: Wiley) Norusis, M.J. 1982, SPSS Introductory Guide: Basic Statistics and Operations; and 1985, SPSS-X Advanced Statistics Guide (New York: McGraw-Hill)
References 929 Nussbaumer,H.J.1982,Fast Fourier Transform and Convolution Algorithms (New York:Springer-Verlag) Ortega,J.,and Rheinboldt,W.1970,Iterative Solution of Nonlinear Equations in Several Variables (New York:Academic Press) Ostrowski,A.M.1966,Solutions of Equations and Systems of Eguations,2nd ed. (New York:Academic Press) Polak,E.1971,Computational Methods in Optimization (New York:Academic Press) Rice.J.R.1983.Numerical Methods.Sofhvare.and Analysis (New York:McGraw- Hill) http://www.nr Permission is read able files Richtmyer,R.D.,and Morton,K.W.1967,Difference Methods for Initial Value Problems,2nd ed.(New York:Wiley-Interscience) 83 Roache,P.J.1976,Computational Fluid Dynamics (Albuquerque:Hermosa) granted for Robinson,E.A.,and Treitel,S.1980,Geophysical Signal Analysis (Englewood Cliffs.NJ:Prentice-Hall) (including this one) 19881992 Smith.B.T..et al.1976.Matrix Eigensystem Routines-EISPACK Guide.2nd ed.. 111-800872 vol.6 of Lecture Notes in Computer Science(New York:Springer-Verlag) Stuart,A.,and Ord,J.K.1987,Kendall's Advanced Theory of Statistics,5th ed (London:Griffin and Co.[previous eds.published as Kendall,M.,and Stuart. A.,The Advanced Theory of Statistics] to any server computer, -7423 (North America tusers to make one paper from NUMERICAL RECIPES IN C:THE Tewarson,R.P.1973,Sparse Matrices (New York:Academic Press) Westlake,J.R.1968,A Handbook of Numerical Matrix Inversion and Solution of Linear Equations (New York:Wiley) Wilkinson,J.H.1965,The Algebraic Eigenvalue Problem (New York:Oxford University Press) only),or Young,D.M.,and Gregory,R.T.1973,A Survey ofNumerical Mathematics,2 vols.; reprinted 1988 (New York:Dover) by Cambridge University Press.Programs Copyright(C) rsend email to directcustserv@cambridge.org (outside North America). personal use.Further reproduction,or 1988-1992 by Numerical Recipes ART OF SCIENTIFIC COMPUTING(ISBN 0-521-43108-5) Software
References 929 Permission is granted for internet users to make one paper copy for their own personal use. Further reproduction, or any copyin Copyright (C) 1988-1992 by Cambridge University Press. Programs Copyright (C) 1988-1992 by Numerical Recipes Software. Sample page from NUMERICAL RECIPES IN C: THE ART OF SCIENTIFIC COMPUTING (ISBN 0-521-43108-5) g of machinereadable files (including this one) to any server computer, is strictly prohibited. To order Numerical Recipes books or CDROMs, visit website http://www.nr.com or call 1-800-872-7423 (North America only), or send email to directcustserv@cambridge.org (outside North America). Nussbaumer, H.J. 1982, Fast Fourier Transform and Convolution Algorithms (New York: Springer-Verlag) Ortega, J., and Rheinboldt, W. 1970, Iterative Solution of Nonlinear Equations in Several Variables (New York: Academic Press) Ostrowski, A.M. 1966, Solutions of Equations and Systems of Equations, 2nd ed. (New York: Academic Press) Polak, E. 1971, Computational Methods in Optimization (New York: Academic Press) Rice, J.R. 1983, Numerical Methods, Software, and Analysis (New York: McGrawHill) Richtmyer, R.D., and Morton, K.W. 1967, Difference Methods for Initial Value Problems, 2nd ed. (New York: Wiley-Interscience) Roache, P.J. 1976, Computational Fluid Dynamics (Albuquerque: Hermosa) Robinson, E.A., and Treitel, S. 1980, Geophysical Signal Analysis (Englewood Cliffs, NJ: Prentice-Hall) Smith, B.T., et al. 1976, Matrix Eigensystem Routines — EISPACK Guide, 2nd ed., vol. 6 of Lecture Notes in Computer Science (New York: Springer-Verlag) Stuart, A., and Ord, J.K. 1987, Kendall’s Advanced Theory of Statistics, 5th ed. (London: Griffin and Co.) [previous eds. published as Kendall, M., and Stuart, A., The Advanced Theory of Statistics] Tewarson, R.P. 1973, Sparse Matrices (New York: Academic Press) Westlake, J.R. 1968, A Handbook of Numerical Matrix Inversion and Solution of Linear Equations (New York: Wiley) Wilkinson, J.H. 1965, The Algebraic Eigenvalue Problem (New York: Oxford University Press) Young, D.M., and Gregory, R.T. 1973, A Survey of Numerical Mathematics, 2 vols.; reprinted 1988 (New York: Dover)
Appendix A: Table of Prototype Declarations http://www.nr.com or call We here list ANSI prototype declarations for all the routines in Numerical Recipes in C.If,as is preferred,you are using a compiler that implements the ANSI 1-800-872- standard,then you should #include this listing(or the relevant lines thereof)in Cambridge each separately compiled source file that contains or references any routine from this NUMERICAL RECIPES IN book.That will alert your compiler to the fact that our routines do not generally server expect argument conversions,and also allow your compiler to point out possible errors in your invocation of our routines. compu Press C:THEA On the diskette,this Appendix is in the file nr.h.An important point about the file on the diskette is that it contains both ANSI C and "traditional"or"K&R" ART OF style declarations.The ANSI forms are invoked if any of the following macros are 马 defined:__STDC__,ANSI,or NRANSI.(The purpose of the last one is to give you an invocation that does not conflict with other possible uses of the first two names. SCIENTIFIC If you do have an ANSI compiler it is essential that you invoke it with one or more of these macros defined.The typical means for doing so is to include a switch like "-DANSI"on the compiler command line. If you have a“traditional'”or“K&R”C compiler..then the above discussion COMPUTING does not apply to you:you do not need the ANSI header file listed here.If you have the diskette nr.h file,you will probably find it helpful to #include nr.h r Numerical Further 1988-189200 anyway,without setting any of the macros__STDC__,ANSI,or NRANSI.That will at least alert your compiler to the returned value types of our routines.You should of course be sure to use the K&R versions of our programs,as included (along with the primary ANSI versions)on the Numerical Recipes C Diskette.Your compiler will do the "usual argument conversions"whether you like it or not,but it will also undo them upon entering routines whose arguments have been declared differently (outside Recipes from the usual conversions. North Software. Here is a listing of the file nr.h: America) #ifndef_NR_H visit website #define_NR_H machine #ifndef_FCOMPLEX_DECLARE_T_ typedef struct FCOMPLEX {float r,i;}fcomplex; #define FCOMPLEX DECLARE T #endif /*_FCOMPLEX_DECLARE_T_*/ #ifndef_ARITHCODE_DECLARE_T_ typedef struct 930
Permission is granted for internet users to make one paper copy for their own personal use. Further reproduction, or any copyin Copyright (C) 1988-1992 by Cambridge University Press. Programs Copyright (C) 1988-1992 by Numerical Recipes Software. Sample page from NUMERICAL RECIPES IN C: THE ART OF SCIENTIFIC COMPUTING (ISBN 0-521-43108-5) g of machinereadable files (including this one) to any server computer, is strictly prohibited. To order Numerical Recipes books or CDROMs, visit website http://www.nr.com or call 1-800-872-7423 (North America only), or send email to directcustserv@cambridge.org (outside North America). Appendix A: Table of Prototype Declarations We here list ANSI prototype declarations for all the routines in Numerical Recipes in C. If, as is preferred, you are using a compiler that implements the ANSI standard, then you should #include this listing (or the relevant lines thereof) in each separately compiled source file that contains or references any routine from this book. That will alert your compiler to the fact that our routines do not generally expect argument conversions, and also allow your compiler to point out possible errors in your invocation of our routines. On the diskette, this Appendix is in the file nr.h. An important point about the file on the diskette is that it contains both ANSI C and “traditional” or “K&R” style declarations. The ANSI forms are invoked if any of the following macros are defined: __STDC__, ANSI, or NRANSI. (The purpose of the last one is to give you an invocation that does not conflict with other possible uses of the first two names.) If you do have an ANSI compiler it is essential that you invoke it with one or more of these macros defined. The typical means for doing so is to include a switch like “-DANSI” on the compiler command line. If you have a “traditional” or “K&R” C compiler, then the above discussion does not apply to you: you do not need the ANSI header file listed here. If you have the diskette nr.h file, you will probably find it helpful to #include nr.h anyway, without setting any of the macros __STDC__, ANSI, or NRANSI. That will at least alert your compiler to the returned value types of our routines. You should of course be sure to use the K&R versions of our programs, as included (along with the primary ANSI versions) on the Numerical Recipes C Diskette. Your compiler will do the “usual argument conversions” whether you like it or not, but it will also undo them upon entering routines whose arguments have been declared differently from the usual conversions. Here is a listing of the file nr.h: #ifndef _NR_H_ #define _NR_H_ #ifndef _FCOMPLEX_DECLARE_T_ typedef struct FCOMPLEX {float r,i;} fcomplex; #define _FCOMPLEX_DECLARE_T_ #endif /* _FCOMPLEX_DECLARE_T_ */ #ifndef _ARITHCODE_DECLARE_T_ typedef struct { 930
Table of Prototype Declarations (nr.h) 931 unsigned long *ilob,*iupb,*ncumfq,jdif,nc,minint,nch,ncum,nrad; arithcode; #define_ARITHCODE_DECLARE_T_ #endif /*ARITHCODE_DECLARE_T_/ #ifndef_HUFFCODE_DECLARE_T_ typedef struct unsigned long *icod,*ncod,*left,*right,nch,nodemax; huffcode; #define_HUFFCODE_DECLARE_T_ #endif /*_HUFFCODE_DECLARE_T_*/ http://www.n read able files Permission is #include #if defined(STDC)II defined(ANSI)I defined(NRANSI)/ANSI/ 83g void addint(double *uf,double **uc,double **res,int nf); void airy(float x,float *ai,float *bi,float *aip,float *bip); (including this one) void amebsa(float **p,float y],int ndim,float pb[], float *yb, float ftol,float (*funk)(float [])int *iter,float temptr); 11-800-872 void amoeba(float **p,float y[],int ndim,float ftol, float (*funk)(float [])int *iter); 7423 to any server computer, tusers to make one paper 1988-1992 by Cambridge University Press.Programs from NUMERICAL RECIPES IN float amotry(float **p,float y[],float psum[],int ndim, float (*funk)(float [])int ihi,float fac); float amotsa(float **p,float y[],float psum[],int ndim,float pb[], float *yb,float (*funk)(float [])int ihi,float *yhi,float fac); void anneal(float x[],float y[],int iorder[],int ncity); (North America THE double anorm2(double **a,int n); ART void arcmak(unsigned long nfreg[], unsigned long nchh,unsigned long nradd, arithcode *acode); only). void arcode(unsigned long *ich,unsigned char **codep,unsigned long *lcode, unsigned long *lcd,int isign,arithcode tacode); void arcsum(unsigned long iin[],unsigned long iout[],unsigned long ja, int nwk,unsigned long nrad,unsigned long nc); void asolve(unsigned long n,double b[],double x[],int itrnsp); void atimes(unsigned long n,double x],double r[],int itrnsp); to dir void avevar(float data[],unsigned long n,float *ave,float *var); void balanc(float *a,int n); void banbks(float **a, unsigned long n,int m1,int m2,float **al, unsigned long indx,float b[]); ectcustser void bandec(float *a,unsigned long n,int mi,int m2,float *al, OF SCIENTIFIC COMPUTING(ISBN 0-521 unsigned long indx☐,float*d); void banmul(float **a,unsigned long n,int mi,int m2,float x[],float b[]); void bcucof(f1oaty[],f1oaty1[☐,f1oaty2[☐,f1oaty120,f1oatd1, float d2,float **c); void bcuint(float y[],float yi[],float y2[],float y12[], 1988-1992 by Numerical Recipes -431085 float xil,float xiu,float x21,float x2u,float x1, float x2,float *ansy,float *ansy1,float *ansy2); void beschb(double x,double *gam1,double *gam2,double *gampl, double *gammi); float bessi(int n,float x); float bessio(float x); float bessi1(float x); (outside North America) Software. ying of void bessik(float x,float xnu,float *ri,float *rk,float *rip, float *rkp); float bessj(int n,float x); float bessjo(float x); float bessi1(float x); void bessjy(float x,float xnu,float *rj,float *ry,float *rjp, float *ryp); float bessk(int n,float x); float bessko(float x); float bessk1(float x); float bessy(int n,float x);
Table of Prototype Declarations (nr.h) 931 Permission is granted for internet users to make one paper copy for their own personal use. Further reproduction, or any copyin Copyright (C) 1988-1992 by Cambridge University Press. Programs Copyright (C) 1988-1992 by Numerical Recipes Software. Sample page from NUMERICAL RECIPES IN C: THE ART OF SCIENTIFIC COMPUTING (ISBN 0-521-43108-5) g of machinereadable files (including this one) to any server computer, is strictly prohibited. To order Numerical Recipes books or CDROMs, visit website http://www.nr.com or call 1-800-872-7423 (North America only), or send email to directcustserv@cambridge.org (outside North America). unsigned long *ilob,*iupb,*ncumfq,jdif,nc,minint,nch,ncum,nrad; } arithcode; #define _ARITHCODE_DECLARE_T_ #endif /* _ARITHCODE_DECLARE_T_ */ #ifndef _HUFFCODE_DECLARE_T_ typedef struct { unsigned long *icod,*ncod,*left,*right,nch,nodemax; } huffcode; #define _HUFFCODE_DECLARE_T_ #endif /* _HUFFCODE_DECLARE_T_ */ #include #if defined(__STDC__) || defined(ANSI) || defined(NRANSI) /* ANSI */ void addint(double **uf, double **uc, double **res, int nf); void airy(float x, float *ai, float *bi, float *aip, float *bip); void amebsa(float **p, float y[], int ndim, float pb[], float *yb, float ftol, float (*funk)(float []), int *iter, float temptr); void amoeba(float **p, float y[], int ndim, float ftol, float (*funk)(float []), int *iter); float amotry(float **p, float y[], float psum[], int ndim, float (*funk)(float []), int ihi, float fac); float amotsa(float **p, float y[], float psum[], int ndim, float pb[], float *yb, float (*funk)(float []), int ihi, float *yhi, float fac); void anneal(float x[], float y[], int iorder[], int ncity); double anorm2(double **a, int n); void arcmak(unsigned long nfreq[], unsigned long nchh, unsigned long nradd, arithcode *acode); void arcode(unsigned long *ich, unsigned char **codep, unsigned long *lcode, unsigned long *lcd, int isign, arithcode *acode); void arcsum(unsigned long iin[], unsigned long iout[], unsigned long ja, int nwk, unsigned long nrad, unsigned long nc); void asolve(unsigned long n, double b[], double x[], int itrnsp); void atimes(unsigned long n, double x[], double r[], int itrnsp); void avevar(float data[], unsigned long n, float *ave, float *var); void balanc(float **a, int n); void banbks(float **a, unsigned long n, int m1, int m2, float **al, unsigned long indx[], float b[]); void bandec(float **a, unsigned long n, int m1, int m2, float **al, unsigned long indx[], float *d); void banmul(float **a, unsigned long n, int m1, int m2, float x[], float b[]); void bcucof(float y[], float y1[], float y2[], float y12[], float d1, float d2, float **c); void bcuint(float y[], float y1[], float y2[], float y12[], float x1l, float x1u, float x2l, float x2u, float x1, float x2, float *ansy, float *ansy1, float *ansy2); void beschb(double x, double *gam1, double *gam2, double *gampl, double *gammi); float bessi(int n, float x); float bessi0(float x); float bessi1(float x); void bessik(float x, float xnu, float *ri, float *rk, float *rip, float *rkp); float bessj(int n, float x); float bessj0(float x); float bessj1(float x); void bessjy(float x, float xnu, float *rj, float *ry, float *rjp, float *ryp); float bessk(int n, float x); float bessk0(float x); float bessk1(float x); float bessy(int n, float x);
932 Appendix A float bessyo(float x); float bessy1(float x); float beta(float z,float w); float betacf(float a,float b,float x); float betai(float a,float b,float x); float bico(int n,int k); void bksub(int ne,int nb,int jf,int ki,int k2,float ***c); float bnldev(float pp,int n,long *idum); float brent(float ax,float bx,float cx, float (*f)(float),float tol,float *xmin); void broydn(float x[],int n,int *check, void(*vecfunc)(int,f1oat0,f1oat[☐)); http://www.nr read able files 后Per void bsstep(float y[],float dydx[],int nv,float *xx,float htry, float eps,float yscal[],float *hdid,float *hnext, void (*derivs)(float,float []float [])) 83g void caldat(long julian,int *mm,int *id,int *iyyy); void chder(float a,float b,float c[],float cder[],int n); float chebev(float a,float b,float c[],int m,float x); (including this one) void chebft(float a,float b,float c,int n,float (+func)(float)); void chebpc(float c[],float d[],int n); 11-800-872 void chint(float a,float b,float c],float cint,int n); float chixy(float bang); 7423 from NUMERICAL RECIPES IN void choldc(float *a,int n,float p); void cholsl(float **a,int n,float p[],float b[],float x[]); void chsone(float bins[],float ebins],int nbins,int knstrn, float *df,float *chsq,float *prob); void chstwo(float binsi],float bins2[],int nbins,int knstrn, (North America 州Me:Is to tusers to make one paper 1988-1992 by Cambridge University Press.Programs THE float *df,float *chsq,float *prob); ART void cisi(float x,float *ci,float *si); void cntabi(int **nn,int ni,int nj,float *chisq only). float *df,float *prob,float *cramrv,float *ccc); void cntab2(int **nn,int ni,int nj,float *h,float *hx,float why, float *hygx,float *hxgy,float *uygx,float tuxgy,float *uxy); void convlv(float data[],unsigned long n,float respns[],unsigned long m, st st int isign,float ans[]); void copy(double **aout,double **ain,int n); to dir Copyright (C) void correl(float datal,float data2],unsigned long n,float ans[]); void cosft(f1oaty[☐,intn,int isign); void cosfti(float y[],int n); OF SCIENTIFIC COMPUTING(ISBN void cosft2(f1oaty[☐,intn,int1sigr); void covsrt(float **covar,int ma,int ia[],int mfit); void crank(unsigned long n,floatw],float *s); void cyclic(float a[],float b[],float c[],float alpha,float beta 12-.621 float r[],float x,unsigned long n); void daub4(float a[],unsigned long n,int isign); float dawson(float x); To order Numerical Recipes books or personal use.Further reproduction, 1988-1992 by Numerical Recipes 43108 float dbrent(float ax,float bx,float cx float (*f)(float),float (*df)(float),float tol,float *xmin); void ddpoly(float c[],int nc,float x,float pd[],int nd); int decchk(char string[],int n,char *ch); void derivs(float x,float y[],float dydx[]); Software. float dfidim(float x); void dfour1(double data],unsigned long nn,int isign); (outside North America) ying of void dfpmin(float p[],int n,float gtol,int *iter,float *fret, float(*func)(f1oat[门),void(*dfunc)(f1oat☐,float[J)); float dfridr(float (*func)(float),float x,float h,float err); void dftcor(float w,float delta,float a,float b,float endpts[], float *corre,float *corim,float *corfac); void dftint(float (*func)(float),float a,float b,float w, float *cosint,float *sinint); void difeq(int k,int k1,int k2,int jsf,int is1,int isf, int indexv[],int ne,float **s,float **y); void dlinmin(float p,float xi[],int n,float *fret, float (*func)(float [])void (*dfunc)(float []float[]));
932 Appendix A Permission is granted for internet users to make one paper copy for their own personal use. Further reproduction, or any copyin Copyright (C) 1988-1992 by Cambridge University Press. Programs Copyright (C) 1988-1992 by Numerical Recipes Software. Sample page from NUMERICAL RECIPES IN C: THE ART OF SCIENTIFIC COMPUTING (ISBN 0-521-43108-5) g of machinereadable files (including this one) to any server computer, is strictly prohibited. To order Numerical Recipes books or CDROMs, visit website http://www.nr.com or call 1-800-872-7423 (North America only), or send email to directcustserv@cambridge.org (outside North America). float bessy0(float x); float bessy1(float x); float beta(float z, float w); float betacf(float a, float b, float x); float betai(float a, float b, float x); float bico(int n, int k); void bksub(int ne, int nb, int jf, int k1, int k2, float ***c); float bnldev(float pp, int n, long *idum); float brent(float ax, float bx, float cx, float (*f)(float), float tol, float *xmin); void broydn(float x[], int n, int *check, void (*vecfunc)(int, float [], float [])); void bsstep(float y[], float dydx[], int nv, float *xx, float htry, float eps, float yscal[], float *hdid, float *hnext, void (*derivs)(float, float [], float [])); void caldat(long julian, int *mm, int *id, int *iyyy); void chder(float a, float b, float c[], float cder[], int n); float chebev(float a, float b, float c[], int m, float x); void chebft(float a, float b, float c[], int n, float (*func)(float)); void chebpc(float c[], float d[], int n); void chint(float a, float b, float c[], float cint[], int n); float chixy(float bang); void choldc(float **a, int n, float p[]); void cholsl(float **a, int n, float p[], float b[], float x[]); void chsone(float bins[], float ebins[], int nbins, int knstrn, float *df, float *chsq, float *prob); void chstwo(float bins1[], float bins2[], int nbins, int knstrn, float *df, float *chsq, float *prob); void cisi(float x, float *ci, float *si); void cntab1(int **nn, int ni, int nj, float *chisq, float *df, float *prob, float *cramrv, float *ccc); void cntab2(int **nn, int ni, int nj, float *h, float *hx, float *hy, float *hygx, float *hxgy, float *uygx, float *uxgy, float *uxy); void convlv(float data[], unsigned long n, float respns[], unsigned long m, int isign, float ans[]); void copy(double **aout, double **ain, int n); void correl(float data1[], float data2[], unsigned long n, float ans[]); void cosft(float y[], int n, int isign); void cosft1(float y[], int n); void cosft2(float y[], int n, int isign); void covsrt(float **covar, int ma, int ia[], int mfit); void crank(unsigned long n, float w[], float *s); void cyclic(float a[], float b[], float c[], float alpha, float beta, float r[], float x[], unsigned long n); void daub4(float a[], unsigned long n, int isign); float dawson(float x); float dbrent(float ax, float bx, float cx, float (*f)(float), float (*df)(float), float tol, float *xmin); void ddpoly(float c[], int nc, float x, float pd[], int nd); int decchk(char string[], int n, char *ch); void derivs(float x, float y[], float dydx[]); float df1dim(float x); void dfour1(double data[], unsigned long nn, int isign); void dfpmin(float p[], int n, float gtol, int *iter, float *fret, float (*func)(float []), void (*dfunc)(float [], float [])); float dfridr(float (*func)(float), float x, float h, float *err); void dftcor(float w, float delta, float a, float b, float endpts[], float *corre, float *corim, float *corfac); void dftint(float (*func)(float), float a, float b, float w, float *cosint, float *sinint); void difeq(int k, int k1, int k2, int jsf, int is1, int isf, int indexv[], int ne, float **s, float **y); void dlinmin(float p[], float xi[], int n, float *fret, float (*func)(float []), void (*dfunc)(float [], float[]));
Table of Prototype Declarations (nr.h) 933 double dpythag(double a,double b); void drealft(double data],unsigned long n,int isign); void dsprsax(double sa[],unsigned long ija[],double x[],double b[], unsigned long n); void dsprstx(double sa[],unsigned long ija[],double x[],double b[] nsig知ed long n); void dsvbksb(double **u,double w[],double **v,int m,int n,double b[], double x[]); void dsvdcmp(double **a,int m,int n,double w[],double **v); void eclass(int nf[],int n,int lista[],int listb[],int m); void eclazz(int nf[],int n,int (*equiv)(int,int)); float ei(float x); http://www.nr read able files Permission is void eigsrt(float d[],float **v,int n); float elle(float phi,float ak); float ellf(float phi,float ak); 839 float ellpi(float phi,float en,float ak); granted fori void elmhes(float 来来a.1ntn)t float erfcc(float x); (including this one) float erff(float x); 11-800-872 internet float erffc(float x); void eulsum(float *sum, float term,int jterm,float wksp[]); float evlmem(float fdt,float d[],int m,float xms); to any server computer,is tusers to make one paper 1988-1992 by Cambridge University Press.Programs from NUMERICAL RECIPES IN float expdev(long *idum); float expint(int n,float x); float f1(float x); float fidim(float x); float f2(float y); (North America THE float f3(float z); ART float factln(int n); float factrl(int n); s. void fasper(float x[],float y[],unsigned long n,float ofac,float hifac, float wk1[],float wk2[],unsigned long nwk,unsigned long *nout, unsigned long *jmax,float *prob); void fdjac(int n,float x[],float fvec[],float **df st st void(*vecfunc)(int,f1oat☐,f1oat[U)); void fgauss(float x,float a[],float *y,float dyda,int na); to dir Copyright (C) void fillo(double *u.int n): void fit(float x,float y[],int ndata,float sig[],int mwt, float *a,float *b,float *siga,float *sigb,float *chi2,float *q) rectcustser umencal fecpes o00 1988-1992 by Numerical Recipes OF SCIENTIFIC COMPUTING(ISBN void fitexy(float x[],float y,int ndat,float sigx[],float sigy[, float *a,float *b,float *siga,float *sigb,float *chi2,float q); void fixrts(f1oatd☐,intm); void f1eg(f1oatx,f1 oat pl[☐,int nl); 10-621 void flmoon(int n,int nph,long *jd,float *frac); f1 oat fmin(f1oatx[□); void four1(float data[],unsigned long nn,int isign); -43108 void fourew(FILE *file[5],int *na,int *nb,int *nc,int *nd); void fourfs(FILE *file[5],unsigned long nn[],int ndim,int isign); void fourn(float data[],unsigned long nn[],int ndim,int isign); void fpoly(float x,float p[],int np); void fred2(int n,float a,float b,float t[],float f[],floatw (outside North Software. float (g)(float),float (*ak)(float,float)); float fredin(float x,int n,float a,float b,float t[],float f[],floatw], float (g)(float),float (*ak)(float,float)); void frenel(float x,float *s,float *c); void frprmn(float p[],int n,float ftol,int *iter,float *fret, float (*func)(float [])void (*dfunc)(float []float [])) void ftest(float datal[],unsigned long n1,float data2[],unsigned long n2, float *f,float *prob); float gamdev(int ia,long *idum); float gammln(float xx); float gammp(float a,float x); float gammq(float a,float x); float gasdev(long *idum);
Table of Prototype Declarations (nr.h) 933 Permission is granted for internet users to make one paper copy for their own personal use. Further reproduction, or any copyin Copyright (C) 1988-1992 by Cambridge University Press. Programs Copyright (C) 1988-1992 by Numerical Recipes Software. Sample page from NUMERICAL RECIPES IN C: THE ART OF SCIENTIFIC COMPUTING (ISBN 0-521-43108-5) g of machinereadable files (including this one) to any server computer, is strictly prohibited. To order Numerical Recipes books or CDROMs, visit website http://www.nr.com or call 1-800-872-7423 (North America only), or send email to directcustserv@cambridge.org (outside North America). double dpythag(double a, double b); void drealft(double data[], unsigned long n, int isign); void dsprsax(double sa[], unsigned long ija[], double x[], double b[], unsigned long n); void dsprstx(double sa[], unsigned long ija[], double x[], double b[], unsigned long n); void dsvbksb(double **u, double w[], double **v, int m, int n, double b[], double x[]); void dsvdcmp(double **a, int m, int n, double w[], double **v); void eclass(int nf[], int n, int lista[], int listb[], int m); void eclazz(int nf[], int n, int (*equiv)(int, int)); float ei(float x); void eigsrt(float d[], float **v, int n); float elle(float phi, float ak); float ellf(float phi, float ak); float ellpi(float phi, float en, float ak); void elmhes(float **a, int n); float erfcc(float x); float erff(float x); float erffc(float x); void eulsum(float *sum, float term, int jterm, float wksp[]); float evlmem(float fdt, float d[], int m, float xms); float expdev(long *idum); float expint(int n, float x); float f1(float x); float f1dim(float x); float f2(float y); float f3(float z); float factln(int n); float factrl(int n); void fasper(float x[], float y[], unsigned long n, float ofac, float hifac, float wk1[], float wk2[], unsigned long nwk, unsigned long *nout, unsigned long *jmax, float *prob); void fdjac(int n, float x[], float fvec[], float **df, void (*vecfunc)(int, float [], float [])); void fgauss(float x, float a[], float *y, float dyda[], int na); void fill0(double **u, int n); void fit(float x[], float y[], int ndata, float sig[], int mwt, float *a, float *b, float *siga, float *sigb, float *chi2, float *q); void fitexy(float x[], float y[], int ndat, float sigx[], float sigy[], float *a, float *b, float *siga, float *sigb, float *chi2, float *q); void fixrts(float d[], int m); void fleg(float x, float pl[], int nl); void flmoon(int n, int nph, long *jd, float *frac); float fmin(float x[]); void four1(float data[], unsigned long nn, int isign); void fourew(FILE *file[5], int *na, int *nb, int *nc, int *nd); void fourfs(FILE *file[5], unsigned long nn[], int ndim, int isign); void fourn(float data[], unsigned long nn[], int ndim, int isign); void fpoly(float x, float p[], int np); void fred2(int n, float a, float b, float t[], float f[], float w[], float (*g)(float), float (*ak)(float, float)); float fredin(float x, int n, float a, float b, float t[], float f[], float w[], float (*g)(float), float (*ak)(float, float)); void frenel(float x, float *s, float *c); void frprmn(float p[], int n, float ftol, int *iter, float *fret, float (*func)(float []), void (*dfunc)(float [], float [])); void ftest(float data1[], unsigned long n1, float data2[], unsigned long n2, float *f, float *prob); float gamdev(int ia, long *idum); float gammln(float xx); float gammp(float a, float x); float gammq(float a, float x); float gasdev(long *idum);
934 Appendix A void gaucof(int n,float a[],float b[],float amuo,float x[],float w[]); void gauher(float x[],float w[],int n); void gaujac(float x[],float w[],int n,float alf,float bet); void gaulag(float x[],float w[],int n,float alf); void gauleg(float x1,float x2,float x[],float w[],int n); void gaussj(float *a,int n,float **b,int m); void gcf(float *gammcf,float a,float x,float *gln); float golden(float ax,float bx,float cx,float (*f)(float),float tol, float *xmin); void gser(float *gamser,float a,float x,float *gln); void hpsel(unsigned long m,unsigned long n,float arr[],float heap); void hpsort(unsigned long n,f1 oat ra☐); 常 void hgr(f1oat**a,intn,f1 oat wr☐,f1 oat wi☐); void hufapp(unsigned long index[],unsigned long nprob],unsigned long n, unsigned long i); void hufdec(unsigned long *ich,unsigned char *code,unsigned long lcode, 鱼 18881892 unsigned long *nb,huffcode *hcode); void hufenc(unsigned long ich,unsigned char **codep,unsigned long *lcode, 11800 nsig ed long *nb,huffcode *hcode) void hufmak(unsigned long nfreg[],unsigned long nchin,unsigned long *ilong, 3 unsigned long *nlong,huffcode *hcode); from NUMERICAL RECIPES I void hunt(float xx[],unsigned long n,float x,unsigned long *jlo); void hypdrv(f1oats,f1 oat yy☐,f1 oat dyyds▣); fcomplex hypgeo(fcomplex a,fcomplex b,fcomplex c,fcomplex z); (Nor to make void hypser(fcomplex a,fcomplex b,fcomplex c,fcomplex z, fcomplex *series,fcomplex *deriv); America server computer, one paper Cambridge University Press. THE unsigned short icrc(unsigned short crc,unsigned char *bufptr, unsigned long len,short jinit,int jrev); ART unsigned short icrcl(unsigned short crc, unsigned char onech); unsigned long igray(unsigned long n,int is); void iindexx(unsigned long n,long arr[],unsigned long indx[]); 9 void indexx(unsigned long n,float arr[],unsigned long indx[]); strictly prohibited. for their Programs void interp(double **uf,double **uc,int nf); int irbitl(unsigned long *iseed); int irbit2(unsigned long *iseed); void jacobi(float **a,int n,float d],float **v,int *nrot); to dir void jacobn(float x,float y[],float dfdx[],float **dfdy,int n); long julday(int mm,int id,int iyyy); void kendl1(float datal,float data2[],unsigned long n,float *tau,float *z, 18881920 OF SCIENTIFIC COMPUTING(ISBN float *prob); void kendl2(float **tab,int i,int j,float *tau,float *z,float *prob); void kermom(double w☐,double y,intm); void ks2dis(float xi,float y1[],unsigned long ni, void (*quadvl)(float,float,float *float *float *float *) float *d1,float *prob); void ks2d2s(f1oatx10,f1oaty1[],nsigned1ongn1,f1oatx2☐,f1oaty2[☐, idge.org unsigned long n2,float *d,float *prob); Numerical Recipes -43106 void ksone(float data[],unsigned long n,float (*func)(float),float *d, float *prob); (outside void kstwo(float datal[],unsigned long n1,float data2[],unsigned long n2, float *d,float *prob); North Software. void laguer(fcomplex a],int m,fcomplex *x,int *its); void lfit(float x[],float y[],float sig[],int ndat,float a],int ia], int ma,float **covar,float *chisq,void (*funcs)(float,float []int)); void linbcg(unsigned long n,double b[],double x[],int itol,double tol, int itmax,int *iter,double err); void linmin(float p[],float xi[],int n,float *fret, f1oat(*func)(f1oat[☐)); void Insrch(int n,float xold[],float fold,float g],float p[],float x[], float *f,float stpmax,int *check,float (*func)(float [])) void load(f1oatx1,f1oatv[☐,f1oaty0); void1oad1(f1oatx1,f1oatv1▣,f1oaty[]); void load2(float x2,float v2,float y[]); void locate(float xx[],unsigned long n,float x,unsigned long *j);
934 Appendix A Permission is granted for internet users to make one paper copy for their own personal use. Further reproduction, or any copyin Copyright (C) 1988-1992 by Cambridge University Press. Programs Copyright (C) 1988-1992 by Numerical Recipes Software. Sample page from NUMERICAL RECIPES IN C: THE ART OF SCIENTIFIC COMPUTING (ISBN 0-521-43108-5) g of machinereadable files (including this one) to any server computer, is strictly prohibited. To order Numerical Recipes books or CDROMs, visit website http://www.nr.com or call 1-800-872-7423 (North America only), or send email to directcustserv@cambridge.org (outside North America). void gaucof(int n, float a[], float b[], float amu0, float x[], float w[]); void gauher(float x[], float w[], int n); void gaujac(float x[], float w[], int n, float alf, float bet); void gaulag(float x[], float w[], int n, float alf); void gauleg(float x1, float x2, float x[], float w[], int n); void gaussj(float **a, int n, float **b, int m); void gcf(float *gammcf, float a, float x, float *gln); float golden(float ax, float bx, float cx, float (*f)(float), float tol, float *xmin); void gser(float *gamser, float a, float x, float *gln); void hpsel(unsigned long m, unsigned long n, float arr[], float heap[]); void hpsort(unsigned long n, float ra[]); void hqr(float **a, int n, float wr[], float wi[]); void hufapp(unsigned long index[], unsigned long nprob[], unsigned long n, unsigned long i); void hufdec(unsigned long *ich, unsigned char *code, unsigned long lcode, unsigned long *nb, huffcode *hcode); void hufenc(unsigned long ich, unsigned char **codep, unsigned long *lcode, unsigned long *nb, huffcode *hcode); void hufmak(unsigned long nfreq[], unsigned long nchin, unsigned long *ilong, unsigned long *nlong, huffcode *hcode); void hunt(float xx[], unsigned long n, float x, unsigned long *jlo); void hypdrv(float s, float yy[], float dyyds[]); fcomplex hypgeo(fcomplex a, fcomplex b, fcomplex c, fcomplex z); void hypser(fcomplex a, fcomplex b, fcomplex c, fcomplex z, fcomplex *series, fcomplex *deriv); unsigned short icrc(unsigned short crc, unsigned char *bufptr, unsigned long len, short jinit, int jrev); unsigned short icrc1(unsigned short crc, unsigned char onech); unsigned long igray(unsigned long n, int is); void iindexx(unsigned long n, long arr[], unsigned long indx[]); void indexx(unsigned long n, float arr[], unsigned long indx[]); void interp(double **uf, double **uc, int nf); int irbit1(unsigned long *iseed); int irbit2(unsigned long *iseed); void jacobi(float **a, int n, float d[], float **v, int *nrot); void jacobn(float x, float y[], float dfdx[], float **dfdy, int n); long julday(int mm, int id, int iyyy); void kendl1(float data1[], float data2[], unsigned long n, float *tau, float *z, float *prob); void kendl2(float **tab, int i, int j, float *tau, float *z, float *prob); void kermom(double w[], double y, int m); void ks2d1s(float x1[], float y1[], unsigned long n1, void (*quadvl)(float, float, float *, float *, float *, float *), float *d1, float *prob); void ks2d2s(float x1[], float y1[], unsigned long n1, float x2[], float y2[], unsigned long n2, float *d, float *prob); void ksone(float data[], unsigned long n, float (*func)(float), float *d, float *prob); void kstwo(float data1[], unsigned long n1, float data2[], unsigned long n2, float *d, float *prob); void laguer(fcomplex a[], int m, fcomplex *x, int *its); void lfit(float x[], float y[], float sig[], int ndat, float a[], int ia[], int ma, float **covar, float *chisq, void (*funcs)(float, float [], int)); void linbcg(unsigned long n, double b[], double x[], int itol, double tol, int itmax, int *iter, double *err); void linmin(float p[], float xi[], int n, float *fret, float (*func)(float [])); void lnsrch(int n, float xold[], float fold, float g[], float p[], float x[], float *f, float stpmax, int *check, float (*func)(float [])); void load(float x1, float v[], float y[]); void load1(float x1, float v1[], float y[]); void load2(float x2, float v2[], float y[]); void locate(float xx[], unsigned long n, float x, unsigned long *j);
Table of Prototype Declarations (nr.h) 935 void lop(double **out,double **u,int n); void lubksb(float *a,int n,int *indx,float b[]); void ludcmp(float **a,int n,int *indx,float *d); void machar(int *ibeta,int it,int *irnd,int *ngrd, int *machep,int *negep,int *iexp,int *minexp,int *maxexp float *eps,float *epsneg,float *xmin,float *xmax); void matadd(double *a,double **b,double **c,int n); void matsub(double +a,double **b,double **c,int n); void medfit(float x[],float y],int ndata,float *a,float *b,float *abdev); void memcof(float data[],int n,int m,float *xms,float d[]); int metrop(float de,float t); void mgfas(double **u,int n,int maxcyc); void mglin(double **u,int n,int ncycle); float midexp(float (*funk)(float),float aa,float bb,int n); float midinf(float (*funk)(float) float aa,float bb,int n); float midpnt(float (*func)(float),float a,float b,int n); granted for 18881892 float midsql(float (*funk)(float),float aa,float bb,int n); float midsqu(float (*funk)(float) float aa,float bb,int n); 1800 void miser(float (*func)(float [])float regn],int ndim,unsigned long npts, float dith,float ave,float *var); void mmid(float y[],float dydx[],int nvar,float xs,float htot, Cambridge from NUMERICAL RECIPES I int nstep,float yout []void (*derivs)(float,float []float[])); void mnbrak(float *ax,float *bx,float *cx,float *fa,float *fb, float *fc,float (*func)(float)); void mnewt(int ntrial,float x[],int n,float tolx,float tolf); (Nor void moment(float data[],int n,float ave,float *adev,float *sdev America server computer, e University Press. THE float *var,float *skew,float *curt); void mp2dfr(unsigned char a[],unsigned char s[],int n,int *m); one paper ART void mpadd(unsigned char w[],unsigned char u[],unsigned char v[],int n); void mpdiv(unsigned char g],unsigned char r[],unsigned char u[], unsigned char v[],int n,int m); Programs void mpinv(unsigned char u[],unsigned char v[],int n,int m); void mplsh(unsigned char un,int n); void mpmov(unsigned char u[],unsigned char v[],int n); void mpmul(unsigned char w[],unsigned char u[],unsigned char v[],int n, int m); to dir void mpneg(unsigned char un],int n); void mppi(int n); void mprove(float **a,float **alud,int n,int indx[],float b[] SCIENTIFIC COMPUTING(ISBN float x[); 188819920 void mpsad(unsigned char w[],unsigned char u[],int n,int iv); void mpsdv(unsigned char w[],unsigned char u[],int n,int iv,int *ir); void mpsmu(unsigned char w[], unsigned char u[],int n,int iv); 10-621 void mpsqrt(unsigned char w[],unsigned char u[],unsigned char v[],int n, int m); void mpsub(int*is,unsigned char w[],unsigned char u[☐,unsigned char v☐, Numerical Recipes -43106 int n); void mrqcof(float x[],float y[],float sig[],int ndata,float a, int ia[□,int ma,f1oat**alpha,f1 oat beta☐,f1oat*chisq, (outside void (*funcs)(float,float [float *float []int)); void mrqmin(float x[],float y[],float sig[],int ndata,float a[] Software. int ia[],int ma,float **covar,float *alpha,float *chisq, void (*funcs)(float,float []float *float []int),float *alamda); void newt(float x[],int n,int *check, void (*vecfunc)(int,float ]float [])) void odeint(float ystart[],int nvar,float x1,float x2, float eps,float hi,float hmin,int *nok,int *nbad, void (*derivs)(float,float []float []) void (*rkgs)(float []float []int,float *float,float, float [float *float *void (*)(float,float []float []))) void orthog(int n,float anu[,float alpha[],float beta[],float a] f1oatb[▣); void pade(double cof☐,intn,float*resid); void pccheb(float d[],float c[],int n);
Table of Prototype Declarations (nr.h) 935 Permission is granted for internet users to make one paper copy for their own personal use. Further reproduction, or any copyin Copyright (C) 1988-1992 by Cambridge University Press. Programs Copyright (C) 1988-1992 by Numerical Recipes Software. Sample page from NUMERICAL RECIPES IN C: THE ART OF SCIENTIFIC COMPUTING (ISBN 0-521-43108-5) g of machinereadable files (including this one) to any server computer, is strictly prohibited. To order Numerical Recipes books or CDROMs, visit website http://www.nr.com or call 1-800-872-7423 (North America only), or send email to directcustserv@cambridge.org (outside North America). void lop(double **out, double **u, int n); void lubksb(float **a, int n, int *indx, float b[]); void ludcmp(float **a, int n, int *indx, float *d); void machar(int *ibeta, int *it, int *irnd, int *ngrd, int *machep, int *negep, int *iexp, int *minexp, int *maxexp, float *eps, float *epsneg, float *xmin, float *xmax); void matadd(double **a, double **b, double **c, int n); void matsub(double **a, double **b, double **c, int n); void medfit(float x[], float y[], int ndata, float *a, float *b, float *abdev); void memcof(float data[], int n, int m, float *xms, float d[]); int metrop(float de, float t); void mgfas(double **u, int n, int maxcyc); void mglin(double **u, int n, int ncycle); float midexp(float (*funk)(float), float aa, float bb, int n); float midinf(float (*funk)(float), float aa, float bb, int n); float midpnt(float (*func)(float), float a, float b, int n); float midsql(float (*funk)(float), float aa, float bb, int n); float midsqu(float (*funk)(float), float aa, float bb, int n); void miser(float (*func)(float []), float regn[], int ndim, unsigned long npts, float dith, float *ave, float *var); void mmid(float y[], float dydx[], int nvar, float xs, float htot, int nstep, float yout[], void (*derivs)(float, float[], float[])); void mnbrak(float *ax, float *bx, float *cx, float *fa, float *fb, float *fc, float (*func)(float)); void mnewt(int ntrial, float x[], int n, float tolx, float tolf); void moment(float data[], int n, float *ave, float *adev, float *sdev, float *var, float *skew, float *curt); void mp2dfr(unsigned char a[], unsigned char s[], int n, int *m); void mpadd(unsigned char w[], unsigned char u[], unsigned char v[], int n); void mpdiv(unsigned char q[], unsigned char r[], unsigned char u[], unsigned char v[], int n, int m); void mpinv(unsigned char u[], unsigned char v[], int n, int m); void mplsh(unsigned char u[], int n); void mpmov(unsigned char u[], unsigned char v[], int n); void mpmul(unsigned char w[], unsigned char u[], unsigned char v[], int n, int m); void mpneg(unsigned char u[], int n); void mppi(int n); void mprove(float **a, float **alud, int n, int indx[], float b[], float x[]); void mpsad(unsigned char w[], unsigned char u[], int n, int iv); void mpsdv(unsigned char w[], unsigned char u[], int n, int iv, int *ir); void mpsmu(unsigned char w[], unsigned char u[], int n, int iv); void mpsqrt(unsigned char w[], unsigned char u[], unsigned char v[], int n, int m); void mpsub(int *is, unsigned char w[], unsigned char u[], unsigned char v[], int n); void mrqcof(float x[], float y[], float sig[], int ndata, float a[], int ia[], int ma, float **alpha, float beta[], float *chisq, void (*funcs)(float, float [], float *, float [], int)); void mrqmin(float x[], float y[], float sig[], int ndata, float a[], int ia[], int ma, float **covar, float **alpha, float *chisq, void (*funcs)(float, float [], float *, float [], int), float *alamda); void newt(float x[], int n, int *check, void (*vecfunc)(int, float [], float [])); void odeint(float ystart[], int nvar, float x1, float x2, float eps, float h1, float hmin, int *nok, int *nbad, void (*derivs)(float, float [], float []), void (*rkqs)(float [], float [], int, float *, float, float, float [], float *, float *, void (*)(float, float [], float []))); void orthog(int n, float anu[], float alpha[], float beta[], float a[], float b[]); void pade(double cof[], int n, float *resid); void pccheb(float d[], float c[], int n);