wolffd@0
|
1 /* CAUTION: This is the ANSI C (only) version of the Numerical Recipes
|
wolffd@0
|
2 utility file nr.h. Do not confuse this file with the same-named
|
wolffd@0
|
3 file nr.h that is supplied in the 'misc' subdirectory.
|
wolffd@0
|
4 *That* file is the one from the book, and contains both ANSI and
|
wolffd@0
|
5 traditional K&R versions, along with #ifdef macros to select the
|
wolffd@0
|
6 correct version. *This* file contains only ANSI C. */
|
wolffd@0
|
7
|
wolffd@0
|
8 #ifndef _NR_H_
|
wolffd@0
|
9 #define _NR_H_
|
wolffd@0
|
10
|
wolffd@0
|
11 #ifndef _FCOMPLEX_DECLARE_T_
|
wolffd@0
|
12 typedef struct FCOMPLEX {float r,i;} fcomplex;
|
wolffd@0
|
13 #define _FCOMPLEX_DECLARE_T_
|
wolffd@0
|
14 #endif /* _FCOMPLEX_DECLARE_T_ */
|
wolffd@0
|
15
|
wolffd@0
|
16 #ifndef _ARITHCODE_DECLARE_T_
|
wolffd@0
|
17 typedef struct {
|
wolffd@0
|
18 unsigned long *ilob,*iupb,*ncumfq,jdif,nc,minint,nch,ncum,nrad;
|
wolffd@0
|
19 } arithcode;
|
wolffd@0
|
20 #define _ARITHCODE_DECLARE_T_
|
wolffd@0
|
21 #endif /* _ARITHCODE_DECLARE_T_ */
|
wolffd@0
|
22
|
wolffd@0
|
23 #ifndef _HUFFCODE_DECLARE_T_
|
wolffd@0
|
24 typedef struct {
|
wolffd@0
|
25 unsigned long *icod,*ncod,*left,*right,nch,nodemax;
|
wolffd@0
|
26 } huffcode;
|
wolffd@0
|
27 #define _HUFFCODE_DECLARE_T_
|
wolffd@0
|
28 #endif /* _HUFFCODE_DECLARE_T_ */
|
wolffd@0
|
29
|
wolffd@0
|
30 #include <stdio.h>
|
wolffd@0
|
31
|
wolffd@0
|
32 void addint(double **uf, double **uc, double **res, int nf);
|
wolffd@0
|
33 void airy(float x, float *ai, float *bi, float *aip, float *bip);
|
wolffd@0
|
34 void amebsa(float **p, float y[], int ndim, float pb[], float *yb,
|
wolffd@0
|
35 float ftol, float (*funk)(float []), int *iter, float temptr);
|
wolffd@0
|
36 void amoeba(float **p, float y[], int ndim, float ftol,
|
wolffd@0
|
37 float (*funk)(float []), int *iter);
|
wolffd@0
|
38 float amotry(float **p, float y[], float psum[], int ndim,
|
wolffd@0
|
39 float (*funk)(float []), int ihi, float fac);
|
wolffd@0
|
40 float amotsa(float **p, float y[], float psum[], int ndim, float pb[],
|
wolffd@0
|
41 float *yb, float (*funk)(float []), int ihi, float *yhi, float fac);
|
wolffd@0
|
42 void anneal(float x[], float y[], int iorder[], int ncity);
|
wolffd@0
|
43 double anorm2(double **a, int n);
|
wolffd@0
|
44 void arcmak(unsigned long nfreq[], unsigned long nchh, unsigned long nradd,
|
wolffd@0
|
45 arithcode *acode);
|
wolffd@0
|
46 void arcode(unsigned long *ich, unsigned char **codep, unsigned long *lcode,
|
wolffd@0
|
47 unsigned long *lcd, int isign, arithcode *acode);
|
wolffd@0
|
48 void arcsum(unsigned long iin[], unsigned long iout[], unsigned long ja,
|
wolffd@0
|
49 int nwk, unsigned long nrad, unsigned long nc);
|
wolffd@0
|
50 void asolve(unsigned long n, double b[], double x[], int itrnsp);
|
wolffd@0
|
51 void atimes(unsigned long n, double x[], double r[], int itrnsp);
|
wolffd@0
|
52 void avevar(float data[], unsigned long n, float *ave, float *var);
|
wolffd@0
|
53 void balanc(float **a, int n);
|
wolffd@0
|
54 void banbks(float **a, unsigned long n, int m1, int m2, float **al,
|
wolffd@0
|
55 unsigned long indx[], float b[]);
|
wolffd@0
|
56 void bandec(float **a, unsigned long n, int m1, int m2, float **al,
|
wolffd@0
|
57 unsigned long indx[], float *d);
|
wolffd@0
|
58 void banmul(float **a, unsigned long n, int m1, int m2, float x[], float b[]);
|
wolffd@0
|
59 void bcucof(float y[], float y1[], float y2[], float y12[], float d1,
|
wolffd@0
|
60 float d2, float **c);
|
wolffd@0
|
61 void bcuint(float y[], float y1[], float y2[], float y12[],
|
wolffd@0
|
62 float x1l, float x1u, float x2l, float x2u, float x1,
|
wolffd@0
|
63 float x2, float *ansy, float *ansy1, float *ansy2);
|
wolffd@0
|
64 void beschb(double x, double *gam1, double *gam2, double *gampl,
|
wolffd@0
|
65 double *gammi);
|
wolffd@0
|
66 float bessi(int n, float x);
|
wolffd@0
|
67 float bessi0(float x);
|
wolffd@0
|
68 float bessi1(float x);
|
wolffd@0
|
69 void bessik(float x, float xnu, float *ri, float *rk, float *rip,
|
wolffd@0
|
70 float *rkp);
|
wolffd@0
|
71 float bessj(int n, float x);
|
wolffd@0
|
72 float bessj0(float x);
|
wolffd@0
|
73 float bessj1(float x);
|
wolffd@0
|
74 void bessjy(float x, float xnu, float *rj, float *ry, float *rjp,
|
wolffd@0
|
75 float *ryp);
|
wolffd@0
|
76 float bessk(int n, float x);
|
wolffd@0
|
77 float bessk0(float x);
|
wolffd@0
|
78 float bessk1(float x);
|
wolffd@0
|
79 float bessy(int n, float x);
|
wolffd@0
|
80 float bessy0(float x);
|
wolffd@0
|
81 float bessy1(float x);
|
wolffd@0
|
82 float beta(float z, float w);
|
wolffd@0
|
83 float betacf(float a, float b, float x);
|
wolffd@0
|
84 float betai(float a, float b, float x);
|
wolffd@0
|
85 float bico(int n, int k);
|
wolffd@0
|
86 void bksub(int ne, int nb, int jf, int k1, int k2, float ***c);
|
wolffd@0
|
87 float bnldev(float pp, int n, long *idum);
|
wolffd@0
|
88 float brent(float ax, float bx, float cx,
|
wolffd@0
|
89 float (*f)(float), float tol, float *xmin);
|
wolffd@0
|
90 float brent_arg(float ax, float bx, float cx,
|
wolffd@0
|
91 float (*f)(float, void*), float tol, float *xmin, void *arg);
|
wolffd@0
|
92 void broydn(float x[], int n, int *check,
|
wolffd@0
|
93 void (*vecfunc)(int, float [], float []));
|
wolffd@0
|
94 void bsstep(float y[], float dydx[], int nv, float *xx, float htry,
|
wolffd@0
|
95 float eps, float yscal[], float *hdid, float *hnext,
|
wolffd@0
|
96 void (*derivs)(float, float [], float []));
|
wolffd@0
|
97 void caldat(long julian, int *mm, int *id, int *iyyy);
|
wolffd@0
|
98 void chder(float a, float b, float c[], float cder[], int n);
|
wolffd@0
|
99 float chebev(float a, float b, float c[], int m, float x);
|
wolffd@0
|
100 void chebft(float a, float b, float c[], int n, float (*func)(float));
|
wolffd@0
|
101 void chebpc(float c[], float d[], int n);
|
wolffd@0
|
102 void chint(float a, float b, float c[], float cint[], int n);
|
wolffd@0
|
103 float chixy(float bang);
|
wolffd@0
|
104 void choldc(float **a, int n, float p[]);
|
wolffd@0
|
105 void cholsl(float **a, int n, float p[], float b[], float x[]);
|
wolffd@0
|
106 void chsone(float bins[], float ebins[], int nbins, int knstrn,
|
wolffd@0
|
107 float *df, float *chsq, float *prob);
|
wolffd@0
|
108 void chstwo(float bins1[], float bins2[], int nbins, int knstrn,
|
wolffd@0
|
109 float *df, float *chsq, float *prob);
|
wolffd@0
|
110 void cisi(float x, float *ci, float *si);
|
wolffd@0
|
111 void cntab1(int **nn, int ni, int nj, float *chisq,
|
wolffd@0
|
112 float *df, float *prob, float *cramrv, float *ccc);
|
wolffd@0
|
113 void cntab2(int **nn, int ni, int nj, float *h, float *hx, float *hy,
|
wolffd@0
|
114 float *hygx, float *hxgy, float *uygx, float *uxgy, float *uxy);
|
wolffd@0
|
115 void convlv(float data[], unsigned long n, float respns[], unsigned long m,
|
wolffd@0
|
116 int isign, float ans[]);
|
wolffd@0
|
117 void copy(double **aout, double **ain, int n);
|
wolffd@0
|
118 void correl(float data1[], float data2[], unsigned long n, float ans[]);
|
wolffd@0
|
119 void cosft(float y[], int n, int isign);
|
wolffd@0
|
120 void cosft1(float y[], int n);
|
wolffd@0
|
121 void cosft2(float y[], int n, int isign);
|
wolffd@0
|
122 void covsrt(float **covar, int ma, int ia[], int mfit);
|
wolffd@0
|
123 void crank(unsigned long n, float w[], float *s);
|
wolffd@0
|
124 void cyclic(float a[], float b[], float c[], float alpha, float beta,
|
wolffd@0
|
125 float r[], float x[], unsigned long n);
|
wolffd@0
|
126 void daub4(float a[], unsigned long n, int isign);
|
wolffd@0
|
127 float dawson(float x);
|
wolffd@0
|
128 float dbrent(float ax, float bx, float cx,
|
wolffd@0
|
129 float (*f)(float), float (*df)(float), float tol, float *xmin);
|
wolffd@0
|
130 void ddpoly(float c[], int nc, float x, float pd[], int nd);
|
wolffd@0
|
131 int decchk(char string[], int n, char *ch);
|
wolffd@0
|
132 void derivs(float x, float y[], float dydx[]);
|
wolffd@0
|
133 float df1dim(float x);
|
wolffd@0
|
134 void dfour1(double data[], unsigned long nn, int isign);
|
wolffd@0
|
135 void dfpmin(float p[], int n, float gtol, int *iter, float *fret,
|
wolffd@0
|
136 float (*func)(float []), void (*dfunc)(float [], float []));
|
wolffd@0
|
137 float dfridr(float (*func)(float), float x, float h, float *err);
|
wolffd@0
|
138 void dftcor(float w, float delta, float a, float b, float endpts[],
|
wolffd@0
|
139 float *corre, float *corim, float *corfac);
|
wolffd@0
|
140 void dftint(float (*func)(float), float a, float b, float w,
|
wolffd@0
|
141 float *cosint, float *sinint);
|
wolffd@0
|
142 void difeq(int k, int k1, int k2, int jsf, int is1, int isf,
|
wolffd@0
|
143 int indexv[], int ne, float **s, float **y);
|
wolffd@0
|
144 void dlinmin(float p[], float xi[], int n, float *fret,
|
wolffd@0
|
145 float (*func)(float []), void (*dfunc)(float [], float[]));
|
wolffd@0
|
146 double dpythag(double a, double b);
|
wolffd@0
|
147 void drealft(double data[], unsigned long n, int isign);
|
wolffd@0
|
148 void dsprsax(double sa[], unsigned long ija[], double x[], double b[],
|
wolffd@0
|
149 unsigned long n);
|
wolffd@0
|
150 void dsprstx(double sa[], unsigned long ija[], double x[], double b[],
|
wolffd@0
|
151 unsigned long n);
|
wolffd@0
|
152 void dsvbksb(double **u, double w[], double **v, int m, int n, double b[],
|
wolffd@0
|
153 double x[]);
|
wolffd@0
|
154 void dsvdcmp(double **a, int m, int n, double w[], double **v);
|
wolffd@0
|
155 void eclass(int nf[], int n, int lista[], int listb[], int m);
|
wolffd@0
|
156 void eclazz(int nf[], int n, int (*equiv)(int, int));
|
wolffd@0
|
157 float ei(float x);
|
wolffd@0
|
158 void eigsrt(float d[], float **v, int n);
|
wolffd@0
|
159 float elle(float phi, float ak);
|
wolffd@0
|
160 float ellf(float phi, float ak);
|
wolffd@0
|
161 float ellpi(float phi, float en, float ak);
|
wolffd@0
|
162 void elmhes(float **a, int n);
|
wolffd@0
|
163 float erfcc(float x);
|
wolffd@0
|
164 float erff(float x);
|
wolffd@0
|
165 float erffc(float x);
|
wolffd@0
|
166 void eulsum(float *sum, float term, int jterm, float wksp[]);
|
wolffd@0
|
167 float evlmem(float fdt, float d[], int m, float xms);
|
wolffd@0
|
168 float expdev(long *idum);
|
wolffd@0
|
169 float expint(int n, float x);
|
wolffd@0
|
170 float f1(float x);
|
wolffd@0
|
171 float f1dim(float x);
|
wolffd@0
|
172 float f1dim_arg(float x, void *arg);
|
wolffd@0
|
173 float f2(float y);
|
wolffd@0
|
174 float f3(float z);
|
wolffd@0
|
175 float factln(int n);
|
wolffd@0
|
176 float factrl(int n);
|
wolffd@0
|
177 void fasper(float x[], float y[], unsigned long n, float ofac, float hifac,
|
wolffd@0
|
178 float wk1[], float wk2[], unsigned long nwk, unsigned long *nout,
|
wolffd@0
|
179 unsigned long *jmax, float *prob);
|
wolffd@0
|
180 void fdjac(int n, float x[], float fvec[], float **df,
|
wolffd@0
|
181 void (*vecfunc)(int, float [], float []));
|
wolffd@0
|
182 void fgauss(float x, float a[], float *y, float dyda[], int na);
|
wolffd@0
|
183 void fill0(double **u, int n);
|
wolffd@0
|
184 void fit(float x[], float y[], int ndata, float sig[], int mwt,
|
wolffd@0
|
185 float *a, float *b, float *siga, float *sigb, float *chi2, float *q);
|
wolffd@0
|
186 void fitexy(float x[], float y[], int ndat, float sigx[], float sigy[],
|
wolffd@0
|
187 float *a, float *b, float *siga, float *sigb, float *chi2, float *q);
|
wolffd@0
|
188 void fixrts(float d[], int m);
|
wolffd@0
|
189 void fleg(float x, float pl[], int nl);
|
wolffd@0
|
190 void flmoon(int n, int nph, long *jd, float *frac);
|
wolffd@0
|
191 float fmin(float x[]);
|
wolffd@0
|
192 void four1(float data[], unsigned long nn, int isign);
|
wolffd@0
|
193 void fourew(FILE *file[5], int *na, int *nb, int *nc, int *nd);
|
wolffd@0
|
194 void fourfs(FILE *file[5], unsigned long nn[], int ndim, int isign);
|
wolffd@0
|
195 void fourn(float data[], unsigned long nn[], int ndim, int isign);
|
wolffd@0
|
196 void fpoly(float x, float p[], int np);
|
wolffd@0
|
197 void fred2(int n, float a, float b, float t[], float f[], float w[],
|
wolffd@0
|
198 float (*g)(float), float (*ak)(float, float));
|
wolffd@0
|
199 float fredin(float x, int n, float a, float b, float t[], float f[], float w[],
|
wolffd@0
|
200 float (*g)(float), float (*ak)(float, float));
|
wolffd@0
|
201 void frenel(float x, float *s, float *c);
|
wolffd@0
|
202 void frprmn(float p[], int n, float ftol, int *iter, float *fret,
|
wolffd@0
|
203 float (*func)(float []), void (*dfunc)(float [], float []));
|
wolffd@0
|
204 void frprmn_arg(float p[], int n, float ftol, int *iter, float *fret,
|
wolffd@0
|
205 float (*func)(float [], void*), void (*dfunc)(float [], float [], void*), void* arg);
|
wolffd@0
|
206 void ftest(float data1[], unsigned long n1, float data2[], unsigned long n2,
|
wolffd@0
|
207 float *f, float *prob);
|
wolffd@0
|
208 float gamdev(int ia, long *idum);
|
wolffd@0
|
209 float gammln(float xx);
|
wolffd@0
|
210 float gammp(float a, float x);
|
wolffd@0
|
211 float gammq(float a, float x);
|
wolffd@0
|
212 float gasdev(long *idum);
|
wolffd@0
|
213 void gaucof(int n, float a[], float b[], float amu0, float x[], float w[]);
|
wolffd@0
|
214 void gauher(float x[], float w[], int n);
|
wolffd@0
|
215 void gaujac(float x[], float w[], int n, float alf, float bet);
|
wolffd@0
|
216 void gaulag(float x[], float w[], int n, float alf);
|
wolffd@0
|
217 void gauleg(float x1, float x2, float x[], float w[], int n);
|
wolffd@0
|
218 void gaussj(float **a, int n, float **b, int m);
|
wolffd@0
|
219 void gcf(float *gammcf, float a, float x, float *gln);
|
wolffd@0
|
220 float golden(float ax, float bx, float cx, float (*f)(float), float tol,
|
wolffd@0
|
221 float *xmin);
|
wolffd@0
|
222 void gser(float *gamser, float a, float x, float *gln);
|
wolffd@0
|
223 void hpsel(unsigned long m, unsigned long n, float arr[], float heap[]);
|
wolffd@0
|
224 void hpsort(unsigned long n, float ra[]);
|
wolffd@0
|
225 void hqr(float **a, int n, float wr[], float wi[]);
|
wolffd@0
|
226 void hufapp(unsigned long index[], unsigned long nprob[], unsigned long n,
|
wolffd@0
|
227 unsigned long i);
|
wolffd@0
|
228 void hufdec(unsigned long *ich, unsigned char *code, unsigned long lcode,
|
wolffd@0
|
229 unsigned long *nb, huffcode *hcode);
|
wolffd@0
|
230 void hufenc(unsigned long ich, unsigned char **codep, unsigned long *lcode,
|
wolffd@0
|
231 unsigned long *nb, huffcode *hcode);
|
wolffd@0
|
232 void hufmak(unsigned long nfreq[], unsigned long nchin, unsigned long *ilong,
|
wolffd@0
|
233 unsigned long *nlong, huffcode *hcode);
|
wolffd@0
|
234 void hunt(float xx[], unsigned long n, float x, unsigned long *jlo);
|
wolffd@0
|
235 void hypdrv(float s, float yy[], float dyyds[]);
|
wolffd@0
|
236 fcomplex hypgeo(fcomplex a, fcomplex b, fcomplex c, fcomplex z);
|
wolffd@0
|
237 void hypser(fcomplex a, fcomplex b, fcomplex c, fcomplex z,
|
wolffd@0
|
238 fcomplex *series, fcomplex *deriv);
|
wolffd@0
|
239 unsigned short icrc(unsigned short crc, unsigned char *bufptr,
|
wolffd@0
|
240 unsigned long len, short jinit, int jrev);
|
wolffd@0
|
241 unsigned short icrc1(unsigned short crc, unsigned char onech);
|
wolffd@0
|
242 unsigned long igray(unsigned long n, int is);
|
wolffd@0
|
243 void iindexx(unsigned long n, long arr[], unsigned long indx[]);
|
wolffd@0
|
244 void indexx(unsigned long n, float arr[], unsigned long indx[]);
|
wolffd@0
|
245 void interp(double **uf, double **uc, int nf);
|
wolffd@0
|
246 int irbit1(unsigned long *iseed);
|
wolffd@0
|
247 int irbit2(unsigned long *iseed);
|
wolffd@0
|
248 void jacobi(float **a, int n, float d[], float **v, int *nrot);
|
wolffd@0
|
249 void jacobn(float x, float y[], float dfdx[], float **dfdy, int n);
|
wolffd@0
|
250 long julday(int mm, int id, int iyyy);
|
wolffd@0
|
251 void kendl1(float data1[], float data2[], unsigned long n, float *tau, float *z,
|
wolffd@0
|
252 float *prob);
|
wolffd@0
|
253 void kendl2(float **tab, int i, int j, float *tau, float *z, float *prob);
|
wolffd@0
|
254 void kermom(double w[], double y, int m);
|
wolffd@0
|
255 void ks2d1s(float x1[], float y1[], unsigned long n1,
|
wolffd@0
|
256 void (*quadvl)(float, float, float *, float *, float *, float *),
|
wolffd@0
|
257 float *d1, float *prob);
|
wolffd@0
|
258 void ks2d2s(float x1[], float y1[], unsigned long n1, float x2[], float y2[],
|
wolffd@0
|
259 unsigned long n2, float *d, float *prob);
|
wolffd@0
|
260 void ksone(float data[], unsigned long n, float (*func)(float), float *d,
|
wolffd@0
|
261 float *prob);
|
wolffd@0
|
262 void kstwo(float data1[], unsigned long n1, float data2[], unsigned long n2,
|
wolffd@0
|
263 float *d, float *prob);
|
wolffd@0
|
264 void laguer(fcomplex a[], int m, fcomplex *x, int *its);
|
wolffd@0
|
265 void lfit(float x[], float y[], float sig[], int ndat, float a[], int ia[],
|
wolffd@0
|
266 int ma, float **covar, float *chisq, void (*funcs)(float, float [], int));
|
wolffd@0
|
267 void linbcg(unsigned long n, double b[], double x[], int itol, double tol,
|
wolffd@0
|
268 int itmax, int *iter, double *err);
|
wolffd@0
|
269 void linmin(float p[], float xi[], int n, float *fret,
|
wolffd@0
|
270 float (*func)(float []));
|
wolffd@0
|
271 void linmin_arg(float p[], float xi[], int n, float *fret,
|
wolffd@0
|
272 float (*func)(float [], void*), void *arg);
|
wolffd@0
|
273 void lnsrch(int n, float xold[], float fold, float g[], float p[], float x[],
|
wolffd@0
|
274 float *f, float stpmax, int *check, float (*func)(float []));
|
wolffd@0
|
275 void load(float x1, float v[], float y[]);
|
wolffd@0
|
276 void load1(float x1, float v1[], float y[]);
|
wolffd@0
|
277 void load2(float x2, float v2[], float y[]);
|
wolffd@0
|
278 void locate(float xx[], unsigned long n, float x, unsigned long *j);
|
wolffd@0
|
279 void lop(double **out, double **u, int n);
|
wolffd@0
|
280 void lubksb(float **a, int n, int *indx, float b[]);
|
wolffd@0
|
281 void ludcmp(float **a, int n, int *indx, float *d);
|
wolffd@0
|
282 void machar(int *ibeta, int *it, int *irnd, int *ngrd,
|
wolffd@0
|
283 int *machep, int *negep, int *iexp, int *minexp, int *maxexp,
|
wolffd@0
|
284 float *eps, float *epsneg, float *xmin, float *xmax);
|
wolffd@0
|
285 void matadd(double **a, double **b, double **c, int n);
|
wolffd@0
|
286 void matsub(double **a, double **b, double **c, int n);
|
wolffd@0
|
287 void medfit(float x[], float y[], int ndata, float *a, float *b, float *abdev);
|
wolffd@0
|
288 void memcof(float data[], int n, int m, float *xms, float d[]);
|
wolffd@0
|
289 int metrop(float de, float t);
|
wolffd@0
|
290 void mgfas(double **u, int n, int maxcyc);
|
wolffd@0
|
291 void mglin(double **u, int n, int ncycle);
|
wolffd@0
|
292 float midexp(float (*funk)(float), float aa, float bb, int n);
|
wolffd@0
|
293 float midinf(float (*funk)(float), float aa, float bb, int n);
|
wolffd@0
|
294 float midpnt(float (*func)(float), float a, float b, int n);
|
wolffd@0
|
295 float midsql(float (*funk)(float), float aa, float bb, int n);
|
wolffd@0
|
296 float midsqu(float (*funk)(float), float aa, float bb, int n);
|
wolffd@0
|
297 void miser(float (*func)(float []), float regn[], int ndim, unsigned long npts,
|
wolffd@0
|
298 float dith, float *ave, float *var);
|
wolffd@0
|
299 void mmid(float y[], float dydx[], int nvar, float xs, float htot,
|
wolffd@0
|
300 int nstep, float yout[], void (*derivs)(float, float[], float[]));
|
wolffd@0
|
301 void mnbrak(float *ax, float *bx, float *cx, float *fa, float *fb,
|
wolffd@0
|
302 float *fc, float (*func)(float));
|
wolffd@0
|
303 void mnbrak_arg(float *ax, float *bx, float *cx, float *fa, float *fb,
|
wolffd@0
|
304 float *fc, float (*func)(float, void*), void *arg);
|
wolffd@0
|
305 void mnewt(int ntrial, float x[], int n, float tolx, float tolf);
|
wolffd@0
|
306 void moment(float data[], int n, float *ave, float *adev, float *sdev,
|
wolffd@0
|
307 float *var, float *skew, float *curt);
|
wolffd@0
|
308 void mp2dfr(unsigned char a[], unsigned char s[], int n, int *m);
|
wolffd@0
|
309 void mpadd(unsigned char w[], unsigned char u[], unsigned char v[], int n);
|
wolffd@0
|
310 void mpdiv(unsigned char q[], unsigned char r[], unsigned char u[],
|
wolffd@0
|
311 unsigned char v[], int n, int m);
|
wolffd@0
|
312 void mpinv(unsigned char u[], unsigned char v[], int n, int m);
|
wolffd@0
|
313 void mplsh(unsigned char u[], int n);
|
wolffd@0
|
314 void mpmov(unsigned char u[], unsigned char v[], int n);
|
wolffd@0
|
315 void mpmul(unsigned char w[], unsigned char u[], unsigned char v[], int n,
|
wolffd@0
|
316 int m);
|
wolffd@0
|
317 void mpneg(unsigned char u[], int n);
|
wolffd@0
|
318 void mppi(int n);
|
wolffd@0
|
319 void mprove(float **a, float **alud, int n, int indx[], float b[],
|
wolffd@0
|
320 float x[]);
|
wolffd@0
|
321 void mpsad(unsigned char w[], unsigned char u[], int n, int iv);
|
wolffd@0
|
322 void mpsdv(unsigned char w[], unsigned char u[], int n, int iv, int *ir);
|
wolffd@0
|
323 void mpsmu(unsigned char w[], unsigned char u[], int n, int iv);
|
wolffd@0
|
324 void mpsqrt(unsigned char w[], unsigned char u[], unsigned char v[], int n,
|
wolffd@0
|
325 int m);
|
wolffd@0
|
326 void mpsub(int *is, unsigned char w[], unsigned char u[], unsigned char v[],
|
wolffd@0
|
327 int n);
|
wolffd@0
|
328 void mrqcof(float x[], float y[], float sig[], int ndata, float a[],
|
wolffd@0
|
329 int ia[], int ma, float **alpha, float beta[], float *chisq,
|
wolffd@0
|
330 void (*funcs)(float, float [], float *, float [], int));
|
wolffd@0
|
331 void mrqmin(float x[], float y[], float sig[], int ndata, float a[],
|
wolffd@0
|
332 int ia[], int ma, float **covar, float **alpha, float *chisq,
|
wolffd@0
|
333 void (*funcs)(float, float [], float *, float [], int), float *alamda);
|
wolffd@0
|
334 void newt(float x[], int n, int *check,
|
wolffd@0
|
335 void (*vecfunc)(int, float [], float []));
|
wolffd@0
|
336 void odeint(float ystart[], int nvar, float x1, float x2,
|
wolffd@0
|
337 float eps, float h1, float hmin, int *nok, int *nbad,
|
wolffd@0
|
338 void (*derivs)(float, float [], float []),
|
wolffd@0
|
339 void (*rkqs)(float [], float [], int, float *, float, float,
|
wolffd@0
|
340 float [], float *, float *, void (*)(float, float [], float [])));
|
wolffd@0
|
341 void orthog(int n, float anu[], float alpha[], float beta[], float a[],
|
wolffd@0
|
342 float b[]);
|
wolffd@0
|
343 void pade(double cof[], int n, float *resid);
|
wolffd@0
|
344 void pccheb(float d[], float c[], int n);
|
wolffd@0
|
345 void pcshft(float a, float b, float d[], int n);
|
wolffd@0
|
346 void pearsn(float x[], float y[], unsigned long n, float *r, float *prob,
|
wolffd@0
|
347 float *z);
|
wolffd@0
|
348 void period(float x[], float y[], int n, float ofac, float hifac,
|
wolffd@0
|
349 float px[], float py[], int np, int *nout, int *jmax, float *prob);
|
wolffd@0
|
350 void piksr2(int n, float arr[], float brr[]);
|
wolffd@0
|
351 void piksrt(int n, float arr[]);
|
wolffd@0
|
352 void pinvs(int ie1, int ie2, int je1, int jsf, int jc1, int k,
|
wolffd@0
|
353 float ***c, float **s);
|
wolffd@0
|
354 float plgndr(int l, int m, float x);
|
wolffd@0
|
355 float poidev(float xm, long *idum);
|
wolffd@0
|
356 void polcoe(float x[], float y[], int n, float cof[]);
|
wolffd@0
|
357 void polcof(float xa[], float ya[], int n, float cof[]);
|
wolffd@0
|
358 void poldiv(float u[], int n, float v[], int nv, float q[], float r[]);
|
wolffd@0
|
359 void polin2(float x1a[], float x2a[], float **ya, int m, int n,
|
wolffd@0
|
360 float x1, float x2, float *y, float *dy);
|
wolffd@0
|
361 void polint(float xa[], float ya[], int n, float x, float *y, float *dy);
|
wolffd@0
|
362 void powell(float p[], float **xi, int n, float ftol, int *iter, float *fret,
|
wolffd@0
|
363 float (*func)(float []));
|
wolffd@0
|
364 void predic(float data[], int ndata, float d[], int m, float future[], int nfut);
|
wolffd@0
|
365 float probks(float alam);
|
wolffd@0
|
366 void psdes(unsigned long *lword, unsigned long *irword);
|
wolffd@0
|
367 void pwt(float a[], unsigned long n, int isign);
|
wolffd@0
|
368 void pwtset(int n);
|
wolffd@0
|
369 float pythag(float a, float b);
|
wolffd@0
|
370 void pzextr(int iest, float xest, float yest[], float yz[], float dy[],
|
wolffd@0
|
371 int nv);
|
wolffd@0
|
372 float qgaus(float (*func)(float), float a, float b);
|
wolffd@0
|
373 void qrdcmp(float **a, int n, float *c, float *d, int *sing);
|
wolffd@0
|
374 float qromb(float (*func)(float), float a, float b);
|
wolffd@0
|
375 float qromo(float (*func)(float), float a, float b,
|
wolffd@0
|
376 float (*choose)(float (*)(float), float, float, int));
|
wolffd@0
|
377 void qroot(float p[], int n, float *b, float *c, float eps);
|
wolffd@0
|
378 void qrsolv(float **a, int n, float c[], float d[], float b[]);
|
wolffd@0
|
379 void qrupdt(float **r, float **qt, int n, float u[], float v[]);
|
wolffd@0
|
380 float qsimp(float (*func)(float), float a, float b);
|
wolffd@0
|
381 float qtrap(float (*func)(float), float a, float b);
|
wolffd@0
|
382 float quad3d(float (*func)(float, float, float), float x1, float x2);
|
wolffd@0
|
383 void quadct(float x, float y, float xx[], float yy[], unsigned long nn,
|
wolffd@0
|
384 float *fa, float *fb, float *fc, float *fd);
|
wolffd@0
|
385 void quadmx(float **a, int n);
|
wolffd@0
|
386 void quadvl(float x, float y, float *fa, float *fb, float *fc, float *fd);
|
wolffd@0
|
387 float ran0(long *idum);
|
wolffd@0
|
388 float ran1(long *idum);
|
wolffd@0
|
389 float ran2(long *idum);
|
wolffd@0
|
390 float ran3(long *idum);
|
wolffd@0
|
391 float ran4(long *idum);
|
wolffd@0
|
392 void rank(unsigned long n, unsigned long indx[], unsigned long irank[]);
|
wolffd@0
|
393 void ranpt(float pt[], float regn[], int n);
|
wolffd@0
|
394 void ratint(float xa[], float ya[], int n, float x, float *y, float *dy);
|
wolffd@0
|
395 void ratlsq(double (*fn)(double), double a, double b, int mm, int kk,
|
wolffd@0
|
396 double cof[], double *dev);
|
wolffd@0
|
397 double ratval(double x, double cof[], int mm, int kk);
|
wolffd@0
|
398 float rc(float x, float y);
|
wolffd@0
|
399 float rd(float x, float y, float z);
|
wolffd@0
|
400 void realft(float data[], unsigned long n, int isign);
|
wolffd@0
|
401 void rebin(float rc, int nd, float r[], float xin[], float xi[]);
|
wolffd@0
|
402 void red(int iz1, int iz2, int jz1, int jz2, int jm1, int jm2, int jmf,
|
wolffd@0
|
403 int ic1, int jc1, int jcf, int kc, float ***c, float **s);
|
wolffd@0
|
404 void relax(double **u, double **rhs, int n);
|
wolffd@0
|
405 void relax2(double **u, double **rhs, int n);
|
wolffd@0
|
406 void resid(double **res, double **u, double **rhs, int n);
|
wolffd@0
|
407 float revcst(float x[], float y[], int iorder[], int ncity, int n[]);
|
wolffd@0
|
408 void reverse(int iorder[], int ncity, int n[]);
|
wolffd@0
|
409 float rf(float x, float y, float z);
|
wolffd@0
|
410 float rj(float x, float y, float z, float p);
|
wolffd@0
|
411 void rk4(float y[], float dydx[], int n, float x, float h, float yout[],
|
wolffd@0
|
412 void (*derivs)(float, float [], float []));
|
wolffd@0
|
413 void rkck(float y[], float dydx[], int n, float x, float h,
|
wolffd@0
|
414 float yout[], float yerr[], void (*derivs)(float, float [], float []));
|
wolffd@0
|
415 void rkdumb(float vstart[], int nvar, float x1, float x2, int nstep,
|
wolffd@0
|
416 void (*derivs)(float, float [], float []));
|
wolffd@0
|
417 void rkqs(float y[], float dydx[], int n, float *x,
|
wolffd@0
|
418 float htry, float eps, float yscal[], float *hdid, float *hnext,
|
wolffd@0
|
419 void (*derivs)(float, float [], float []));
|
wolffd@0
|
420 void rlft3(float ***data, float **speq, unsigned long nn1,
|
wolffd@0
|
421 unsigned long nn2, unsigned long nn3, int isign);
|
wolffd@0
|
422 float rofunc(float b);
|
wolffd@0
|
423 void rotate(float **r, float **qt, int n, int i, float a, float b);
|
wolffd@0
|
424 void rsolv(float **a, int n, float d[], float b[]);
|
wolffd@0
|
425 void rstrct(double **uc, double **uf, int nc);
|
wolffd@0
|
426 float rtbis(float (*func)(float), float x1, float x2, float xacc);
|
wolffd@0
|
427 float rtflsp(float (*func)(float), float x1, float x2, float xacc);
|
wolffd@0
|
428 float rtnewt(void (*funcd)(float, float *, float *), float x1, float x2,
|
wolffd@0
|
429 float xacc);
|
wolffd@0
|
430 float rtsafe(void (*funcd)(float, float *, float *), float x1, float x2,
|
wolffd@0
|
431 float xacc);
|
wolffd@0
|
432 float rtsec(float (*func)(float), float x1, float x2, float xacc);
|
wolffd@0
|
433 void rzextr(int iest, float xest, float yest[], float yz[], float dy[], int nv);
|
wolffd@0
|
434 void savgol(float c[], int np, int nl, int nr, int ld, int m);
|
wolffd@0
|
435 void score(float xf, float y[], float f[]);
|
wolffd@0
|
436 void scrsho(float (*fx)(float));
|
wolffd@0
|
437 float select(unsigned long k, unsigned long n, float arr[]);
|
wolffd@0
|
438 float selip(unsigned long k, unsigned long n, float arr[]);
|
wolffd@0
|
439 void shell(unsigned long n, float a[]);
|
wolffd@0
|
440 void shoot(int n, float v[], float f[]);
|
wolffd@0
|
441 void shootf(int n, float v[], float f[]);
|
wolffd@0
|
442 void simp1(float **a, int mm, int ll[], int nll, int iabf, int *kp,
|
wolffd@0
|
443 float *bmax);
|
wolffd@0
|
444 void simp2(float **a, int n, int l2[], int nl2, int *ip, int kp, float *q1);
|
wolffd@0
|
445 void simp3(float **a, int i1, int k1, int ip, int kp);
|
wolffd@0
|
446 void simplx(float **a, int m, int n, int m1, int m2, int m3, int *icase,
|
wolffd@0
|
447 int izrov[], int iposv[]);
|
wolffd@0
|
448 void simpr(float y[], float dydx[], float dfdx[], float **dfdy,
|
wolffd@0
|
449 int n, float xs, float htot, int nstep, float yout[],
|
wolffd@0
|
450 void (*derivs)(float, float [], float []));
|
wolffd@0
|
451 void sinft(float y[], int n);
|
wolffd@0
|
452 void slvsm2(double **u, double **rhs);
|
wolffd@0
|
453 void slvsml(double **u, double **rhs);
|
wolffd@0
|
454 void sncndn(float uu, float emmc, float *sn, float *cn, float *dn);
|
wolffd@0
|
455 double snrm(unsigned long n, double sx[], int itol);
|
wolffd@0
|
456 void sobseq(int *n, float x[]);
|
wolffd@0
|
457 void solvde(int itmax, float conv, float slowc, float scalv[],
|
wolffd@0
|
458 int indexv[], int ne, int nb, int m, float **y, float ***c, float **s);
|
wolffd@0
|
459 void sor(double **a, double **b, double **c, double **d, double **e,
|
wolffd@0
|
460 double **f, double **u, int jmax, double rjac);
|
wolffd@0
|
461 void sort(unsigned long n, float arr[]);
|
wolffd@0
|
462 void sort2(unsigned long n, float arr[], float brr[]);
|
wolffd@0
|
463 void sort3(unsigned long n, float ra[], float rb[], float rc[]);
|
wolffd@0
|
464 void spctrm(FILE *fp, float p[], int m, int k, int ovrlap);
|
wolffd@0
|
465 void spear(float data1[], float data2[], unsigned long n, float *d, float *zd,
|
wolffd@0
|
466 float *probd, float *rs, float *probrs);
|
wolffd@0
|
467 void sphbes(int n, float x, float *sj, float *sy, float *sjp, float *syp);
|
wolffd@0
|
468 void splie2(float x1a[], float x2a[], float **ya, int m, int n, float **y2a);
|
wolffd@0
|
469 void splin2(float x1a[], float x2a[], float **ya, float **y2a, int m, int n,
|
wolffd@0
|
470 float x1, float x2, float *y);
|
wolffd@0
|
471 void spline(float x[], float y[], int n, float yp1, float ypn, float y2[]);
|
wolffd@0
|
472 void splint(float xa[], float ya[], float y2a[], int n, float x, float *y);
|
wolffd@0
|
473 void spread(float y, float yy[], unsigned long n, float x, int m);
|
wolffd@0
|
474 void sprsax(float sa[], unsigned long ija[], float x[], float b[],
|
wolffd@0
|
475 unsigned long n);
|
wolffd@0
|
476 void sprsin(float **a, int n, float thresh, unsigned long nmax, float sa[],
|
wolffd@0
|
477 unsigned long ija[]);
|
wolffd@0
|
478 void sprspm(float sa[], unsigned long ija[], float sb[], unsigned long ijb[],
|
wolffd@0
|
479 float sc[], unsigned long ijc[]);
|
wolffd@0
|
480 void sprstm(float sa[], unsigned long ija[], float sb[], unsigned long ijb[],
|
wolffd@0
|
481 float thresh, unsigned long nmax, float sc[], unsigned long ijc[]);
|
wolffd@0
|
482 void sprstp(float sa[], unsigned long ija[], float sb[], unsigned long ijb[]);
|
wolffd@0
|
483 void sprstx(float sa[], unsigned long ija[], float x[], float b[],
|
wolffd@0
|
484 unsigned long n);
|
wolffd@0
|
485 void stifbs(float y[], float dydx[], int nv, float *xx,
|
wolffd@0
|
486 float htry, float eps, float yscal[], float *hdid, float *hnext,
|
wolffd@0
|
487 void (*derivs)(float, float [], float []));
|
wolffd@0
|
488 void stiff(float y[], float dydx[], int n, float *x,
|
wolffd@0
|
489 float htry, float eps, float yscal[], float *hdid, float *hnext,
|
wolffd@0
|
490 void (*derivs)(float, float [], float []));
|
wolffd@0
|
491 void stoerm(float y[], float d2y[], int nv, float xs,
|
wolffd@0
|
492 float htot, int nstep, float yout[],
|
wolffd@0
|
493 void (*derivs)(float, float [], float []));
|
wolffd@0
|
494 void svbksb(float **u, float w[], float **v, int m, int n, float b[],
|
wolffd@0
|
495 float x[]);
|
wolffd@0
|
496 void svdcmp(float **a, int m, int n, float w[], float **v);
|
wolffd@0
|
497 void svdfit(float x[], float y[], float sig[], int ndata, float a[],
|
wolffd@0
|
498 int ma, float **u, float **v, float w[], float *chisq,
|
wolffd@0
|
499 void (*funcs)(float, float [], int));
|
wolffd@0
|
500 void svdvar(float **v, int ma, float w[], float **cvm);
|
wolffd@0
|
501 void toeplz(float r[], float x[], float y[], int n);
|
wolffd@0
|
502 void tptest(float data1[], float data2[], unsigned long n, float *t, float *prob);
|
wolffd@0
|
503 void tqli(float d[], float e[], int n, float **z);
|
wolffd@0
|
504 float trapzd(float (*func)(float), float a, float b, int n);
|
wolffd@0
|
505 void tred2(float **a, int n, float d[], float e[]);
|
wolffd@0
|
506 void tridag(float a[], float b[], float c[], float r[], float u[],
|
wolffd@0
|
507 unsigned long n);
|
wolffd@0
|
508 float trncst(float x[], float y[], int iorder[], int ncity, int n[]);
|
wolffd@0
|
509 void trnspt(int iorder[], int ncity, int n[]);
|
wolffd@0
|
510 void ttest(float data1[], unsigned long n1, float data2[], unsigned long n2,
|
wolffd@0
|
511 float *t, float *prob);
|
wolffd@0
|
512 void tutest(float data1[], unsigned long n1, float data2[], unsigned long n2,
|
wolffd@0
|
513 float *t, float *prob);
|
wolffd@0
|
514 void twofft(float data1[], float data2[], float fft1[], float fft2[],
|
wolffd@0
|
515 unsigned long n);
|
wolffd@0
|
516 void vander(double x[], double w[], double q[], int n);
|
wolffd@0
|
517 void vegas(float regn[], int ndim, float (*fxn)(float [], float), int init,
|
wolffd@0
|
518 unsigned long ncall, int itmx, int nprn, float *tgral, float *sd,
|
wolffd@0
|
519 float *chi2a);
|
wolffd@0
|
520 void voltra(int n, int m, float t0, float h, float *t, float **f,
|
wolffd@0
|
521 float (*g)(int, float), float (*ak)(int, int, float, float));
|
wolffd@0
|
522 void wt1(float a[], unsigned long n, int isign,
|
wolffd@0
|
523 void (*wtstep)(float [], unsigned long, int));
|
wolffd@0
|
524 void wtn(float a[], unsigned long nn[], int ndim, int isign,
|
wolffd@0
|
525 void (*wtstep)(float [], unsigned long, int));
|
wolffd@0
|
526 void wwghts(float wghts[], int n, float h,
|
wolffd@0
|
527 void (*kermom)(double [], double ,int));
|
wolffd@0
|
528 int zbrac(float (*func)(float), float *x1, float *x2);
|
wolffd@0
|
529 void zbrak(float (*fx)(float), float x1, float x2, int n, float xb1[],
|
wolffd@0
|
530 float xb2[], int *nb);
|
wolffd@0
|
531 float zbrent(float (*func)(float), float x1, float x2, float tol);
|
wolffd@0
|
532 void zrhqr(float a[], int m, float rtr[], float rti[]);
|
wolffd@0
|
533 float zriddr(float (*func)(float), float x1, float x2, float xacc);
|
wolffd@0
|
534 void zroots(fcomplex a[], int m, fcomplex roots[], int polish);
|
wolffd@0
|
535
|
wolffd@0
|
536 #endif /* _NR_H_ */
|