OB.DAAC Logo
NASA Logo
Ocean Color Science Software

ocssw V2022
nr.h
Go to the documentation of this file.
1 #ifndef _NR_H_
2 #define _NR_H_
3 
4 #ifndef _FCOMPLEX_DECLARE_T_
5 
6 typedef struct FCOMPLEX {
7  float r, i;
8 } fcomplex;
9 #define _FCOMPLEX_DECLARE_T_
10 #endif /* _FCOMPLEX_DECLARE_T_ */
11 
12 #ifndef _ARITHCODE_DECLARE_T_
13 
14 typedef struct {
15  unsigned long *ilob, *iupb, *ncumfq, jdif, nc, minint, nch, ncum, nrad;
16 } arithcode;
17 #define _ARITHCODE_DECLARE_T_
18 #endif /* _ARITHCODE_DECLARE_T_ */
19 
20 #ifndef _HUFFCODE_DECLARE_T_
21 
22 typedef struct {
23  unsigned long *icod, *ncod, *left, *right, nch, nodemax;
24 } huffcode;
25 #define _HUFFCODE_DECLARE_T_
26 #endif /* _HUFFCODE_DECLARE_T_ */
27 
28 #include <stdio.h>
29 
30 void addint(double **uf, double **uc, double **res, int nf);
31 void airy(float x, float *ai, float *bi, float *aip, float *bip);
32 void amebsa(float **p, float y[], int ndim, float pb[], float *yb,
33  float ftol, float (*funk)(float []), int *iter, float temptr);
34 void amoeba(float **p, float y[], int ndim, float ftol,
35  float (*funk)(float []), int *iter);
36 float amotry(float **p, float y[], float psum[], int ndim,
37  float (*funk)(float []), int ihi, float fac);
38 float amotsa(float **p, float y[], float psum[], int ndim, float pb[],
39  float *yb, float (*funk)(float []), int ihi, float *yhi, float fac);
40 void anneal(float x[], float y[], int iorder[], int ncity);
41 double anorm2(double **a, int n);
42 void arcmak(unsigned long nfreq[], unsigned long nchh, unsigned long nradd,
43  arithcode *acode);
44 void arcode(unsigned long *ich, unsigned char **codep, unsigned long *lcode,
45  unsigned long *lcd, int isign, arithcode *acode);
46 void arcsum(unsigned long iin[], unsigned long iout[], unsigned long ja,
47  int nwk, unsigned long nrad, unsigned long nc);
48 void asolve(unsigned long n, double b[], double x[], int itrnsp);
49 void atimes(unsigned long n, double x[], double r[], int itrnsp);
50 void avevar(float data[], unsigned long n, float *ave, float *var);
51 void balanc(float **a, int n);
52 void banbks(float **a, unsigned long n, int m1, int m2, float **al,
53  unsigned long indx[], float b[]);
54 void bandec(float **a, unsigned long n, int m1, int m2, float **al,
55  unsigned long indx[], float *d);
56 void banmul(float **a, unsigned long n, int m1, int m2, float x[], float b[]);
57 void bcucof(float y[], float y1[], float y2[], float y12[], float d1,
58  float d2, float **c);
59 void bcuint(float y[], float y1[], float y2[], float y12[],
60  float x1l, float x1u, float x2l, float x2u, float x1,
61  float x2, float *ansy, float *ansy1, float *ansy2);
62 void beschb(double x, double *gam1, double *gam2, double *gampl,
63  double *gammi);
64 float bessi(int n, float x);
65 float bessi0(float x);
66 float bessi1(float x);
67 void bessik(float x, float xnu, float *ri, float *rk, float *rip,
68  float *rkp);
69 float bessj(int n, float x);
70 float bessj0(float x);
71 float bessj1(float x);
72 void bessjy(float x, float xnu, float *rj, float *ry, float *rjp,
73  float *ryp);
74 float bessk(int n, float x);
75 float bessk0(float x);
76 float bessk1(float x);
77 float bessy(int n, float x);
78 float bessy0(float x);
79 float bessy1(float x);
80 float beta(float z, float w);
81 float betacf(float a, float b, float x);
82 float betai(float a, float b, float x);
83 float bico(int n, int k);
84 void bksub(int ne, int nb, int jf, int k1, int k2, float ***c);
85 float bnldev(float pp, int n, long *idum);
86 float brent(float ax, float bx, float cx,
87  float (*f)(float), float tol, float *xmin);
88 void broydn(float x[], int n, int *check,
89  void (*vecfunc)(int, float [], float []));
90 void bsstep(float y[], float dydx[], int nv, float *xx, float htry,
91  float eps, float yscal[], float *hdid, float *hnext,
92  void (*derivs)(float, float [], float []));
93 void caldat(long julian, int *mm, int *id, int *iyyy);
94 void chder(float a, float b, float c[], float cder[], int n);
95 float chebev(float a, float b, float c[], int m, float x);
96 void chebft(float a, float b, float c[], int n, float (*func)(float));
97 void chebpc(float c[], float d[], int n);
98 void chint(float a, float b, float c[], float cint[], int n);
99 float chixy(float bang);
100 void choldc(float **a, int n, float p[]);
101 void cholsl(float **a, int n, float p[], float b[], float x[]);
102 void chsone(float bins[], float ebins[], int nbins, int knstrn,
103  float *df, float *chsq, float *prob);
104 void chstwo(float bins1[], float bins2[], int nbins, int knstrn,
105  float *df, float *chsq, float *prob);
106 void cisi(float x, float *ci, float *si);
107 void cntab1(int **nn, int ni, int nj, float *chisq,
108  float *df, float *prob, float *cramrv, float *ccc);
109 void cntab2(int **nn, int ni, int nj, float *h, float *hx, float *hy,
110  float *hygx, float *hxgy, float *uygx, float *uxgy, float *uxy);
111 void convlv(float data[], unsigned long n, float respns[], unsigned long m,
112  int isign, float ans[]);
113 void copy(double **aout, double **ain, int n);
114 void correl(float data1[], float data2[], unsigned long n, float ans[]);
115 void cosft(float y[], int n, int isign);
116 void cosft1(float y[], int n);
117 void cosft2(float y[], int n, int isign);
118 void covsrt(float **covar, int ma, int ia[], int mfit);
119 void crank(unsigned long n, float w[], float *s);
120 void cyclic(float a[], float b[], float c[], float alpha, float beta,
121  float r[], float x[], unsigned long n);
122 void daub4(float a[], unsigned long n, int isign);
123 float dawson(float x);
124 float dbrent(float ax, float bx, float cx,
125  float (*f)(float), float (*df)(float), float tol, float *xmin);
126 void ddpoly(float c[], int nc, float x, float pd[], int nd);
127 int decchk(char string[], int n, char *ch);
128 void derivs(float x, float y[], float dydx[]);
129 float df1dim(float x);
130 void dfour1(double data[], unsigned long nn, int isign);
131 void dfpmin(float p[], int n, float gtol, int *iter, float *fret,
132  float (*func)(float []), void (*dfunc)(float [], float []));
133 float dfridr(float (*func)(float), float x, float h, float *err);
134 void dftcor(float w, float delta, float a, float b, float endpts[],
135  float *corre, float *corim, float *corfac);
136 void dftint(float (*func)(float), float a, float b, float w,
137  float *cosint, float *sinint);
138 void difeq(int k, int k1, int k2, int jsf, int is1, int isf,
139  int indexv[], int ne, float **s, float **y);
140 void dlinmin(float p[], float xi[], int n, float *fret,
141  float (*func)(float []), void (*dfunc)(float [], float[]));
142 double dpythag(double a, double b);
143 void drealft(double data[], unsigned long n, int isign);
144 void dsprsax(double sa[], unsigned long ija[], double x[], double b[],
145  unsigned long n);
146 void dsprstx(double sa[], unsigned long ija[], double x[], double b[],
147  unsigned long n);
148 void dsvbksb(double **u, double w[], double **v, int m, int n, double b[],
149  double x[]);
150 void dsvdcmp(double **a, int m, int n, double w[], double **v);
151 void eclass(int nf[], int n, int lista[], int listb[], int m);
152 void eclazz(int nf[], int n, int (*equiv)(int, int));
153 float ei(float x);
154 void eigsrt(float d[], float **v, int n);
155 float elle(float phi, float ak);
156 float ellf(float phi, float ak);
157 float ellpi(float phi, float en, float ak);
158 void elmhes(float **a, int n);
159 float erfcc(float x);
160 float erff(float x);
161 float erffc(float x);
162 void eulsum(float *sum, float term, int jterm, float wksp[]);
163 float evlmem(float fdt, float d[], int m, float xms);
164 float expdev(long *idum);
165 float expint(int n, float x);
166 float f1(float x);
167 float f1dim(float x);
168 float f2(float y);
169 float f3(float z);
170 float factln(int n);
171 float factrl(int n);
172 void fasper(float x[], float y[], unsigned long n, float ofac, float hifac,
173  float wk1[], float wk2[], unsigned long nwk, unsigned long *nout,
174  unsigned long *jmax, float *prob);
175 void fdjac(int n, float x[], float fvec[], float **df,
176  void (*vecfunc)(int, float [], float []));
177 void fgauss(float x, float a[], float *y, float dyda[], int na);
178 void fill0(double **u, int n);
179 void fit(float x[], float y[], int ndata, float sig[], int mwt,
180  float *a, float *b, float *siga, float *sigb, float *chi2, float *q);
181 void fitexy(float x[], float y[], int ndat, float sigx[], float sigy[],
182  float *a, float *b, float *siga, float *sigb, float *chi2, float *q);
183 void fixrts(float d[], int m);
184 void fleg(float x, float pl[], int nl);
185 void flmoon(int n, int nph, long *jd, float *frac);
186 void four1(float data[], unsigned long nn, int isign);
187 void fourew(FILE *file[5], int *na, int *nb, int *nc, int *nd);
188 void fourfs(FILE *file[5], unsigned long nn[], int ndim, int isign);
189 void fourn(float data[], unsigned long nn[], int ndim, int isign);
190 void fpoly(float x, float p[], int np);
191 void fred2(int n, float a, float b, float t[], float f[], float w[],
192  float (*g)(float), float (*ak)(float, float));
193 float fredin(float x, int n, float a, float b, float t[], float f[], float w[],
194  float (*g)(float), float (*ak)(float, float));
195 void frenel(float x, float *s, float *c);
196 void frprmn(float p[], int n, float ftol, int *iter, float *fret,
197  float (*func)(float []), void (*dfunc)(float [], float []));
198 void ftest(float data1[], unsigned long n1, float data2[], unsigned long n2,
199  float *f, float *prob);
200 float gamdev(int ia, long *idum);
201 float gammln(float xx);
202 float gammp(float a, float x);
203 float gammq(float a, float x);
204 float gasdev(long *idum);
205 void gaucof(int n, float a[], float b[], float amu0, float x[], float w[]);
206 void gauher(float x[], float w[], int n);
207 void gaujac(float x[], float w[], int n, float alf, float bet);
208 void gaulag(float x[], float w[], int n, float alf);
209 void gauleg(float x1, float x2, float x[], float w[], int n);
210 void gaussj(float **a, int n, float **b, int m);
211 void gcf(float *gammcf, float a, float x, float *gln);
212 float golden(float ax, float bx, float cx, float (*f)(float), float tol,
213  float *xmin);
214 void gser(float *gamser, float a, float x, float *gln);
215 void hpsel(unsigned long m, unsigned long n, float arr[], float heap[]);
216 void hpsort(unsigned long n, float ra[]);
217 void hqr(float **a, int n, float wr[], float wi[]);
218 void hufapp(unsigned long index[], unsigned long nprob[], unsigned long n,
219  unsigned long i);
220 void hufdec(unsigned long *ich, unsigned char *code, unsigned long lcode,
221  unsigned long *nb, huffcode *hcode);
222 void hufenc(unsigned long ich, unsigned char **codep, unsigned long *lcode,
223  unsigned long *nb, huffcode *hcode);
224 void hufmak(unsigned long nfreq[], unsigned long nchin, unsigned long *ilong,
225  unsigned long *nlong, huffcode *hcode);
226 void hunt(float xx[], unsigned long n, float x, unsigned long *jlo);
227 void hypdrv(float s, float yy[], float dyyds[]);
228 fcomplex hypgeo(fcomplex a, fcomplex b, fcomplex c, fcomplex z);
229 void hypser(fcomplex a, fcomplex b, fcomplex c, fcomplex z,
230  fcomplex *series, fcomplex *deriv);
231 unsigned short icrc(unsigned short crc, unsigned char *bufptr,
232  unsigned long len, short jinit, int jrev);
233 unsigned short icrc1(unsigned short crc, unsigned char onech);
234 unsigned long igray(unsigned long n, int is);
235 void iindexx(unsigned long n, long arr[], unsigned long indx[]);
236 void indexx(unsigned long n, float arr[], unsigned long indx[]);
237 void interp(double **uf, double **uc, int nf);
238 int irbit1(unsigned long *iseed);
239 int irbit2(unsigned long *iseed);
240 void jacobi(float **a, int n, float d[], float **v, int *nrot);
241 void jacobn(float x, float y[], float dfdx[], float **dfdy, int n);
242 long julday(int mm, int id, int iyyy);
243 void kendl1(float data1[], float data2[], unsigned long n, float *tau, float *z,
244  float *prob);
245 void kendl2(float **tab, int i, int j, float *tau, float *z, float *prob);
246 void kermom(double w[], double y, int m);
247 void ks2d1s(float x1[], float y1[], unsigned long n1,
248  void (*quadvl)(float, float, float *, float *, float *, float *),
249  float *d1, float *prob);
250 void ks2d2s(float x1[], float y1[], unsigned long n1, float x2[], float y2[],
251  unsigned long n2, float *d, float *prob);
252 void ksone(float data[], unsigned long n, float (*func)(float), float *d,
253  float *prob);
254 void kstwo(float data1[], unsigned long n1, float data2[], unsigned long n2,
255  float *d, float *prob);
256 void laguer(fcomplex a[], int m, fcomplex *x, int *its);
257 void lfit(float x[], float y[], float sig[], int ndat, float a[], int ia[],
258  int ma, float **covar, float *chisq, void (*funcs)(float, float [], int));
259 void linbcg(unsigned long n, double b[], double x[], int itol, double tol,
260  int itmax, int *iter, double *err);
261 void linmin(float p[], float xi[], int n, float *fret,
262  float (*func)(float []));
263 void lnsrch(int n, float xold[], float fold, float g[], float p[], float x[],
264  float *f, float stpmax, int *check, float (*func)(float []));
265 void load(float x1, float v[], float y[]);
266 void load1(float x1, float v1[], float y[]);
267 void load2(float x2, float v2[], float y[]);
268 void locate(float xx[], unsigned long n, float x, unsigned long *j);
269 void lop(double **out, double **u, int n);
270 void lubksb(float **a, int n, int *indx, float b[]);
271 void ludcmp(float **a, int n, int *indx, float *d);
272 void machar(int *ibeta, int *it, int *irnd, int *ngrd,
273  int *machep, int *negep, int *iexp, int *minexp, int *maxexp,
274  float *eps, float *epsneg, float *xmin, float *xmax);
275 void matadd(double **a, double **b, double **c, int n);
276 void matsub(double **a, double **b, double **c, int n);
277 void medfit(float x[], float y[], int ndata, float *a, float *b, float *abdev);
278 void memcof(float data[], int n, int m, float *xms, float d[]);
279 int metrop(float de, float t);
280 void mgfas(double **u, int n, int maxcyc);
281 void mglin(double **u, int n, int ncycle);
282 float midexp(float (*funk)(float), float aa, float bb, int n);
283 float midinf(float (*funk)(float), float aa, float bb, int n);
284 float midpnt(float (*func)(float), float a, float b, int n);
285 float midsql(float (*funk)(float), float aa, float bb, int n);
286 float midsqu(float (*funk)(float), float aa, float bb, int n);
287 void miser(float (*func)(float []), float regn[], int ndim, unsigned long npts,
288  float dith, float *ave, float *var);
289 void mmid(float y[], float dydx[], int nvar, float xs, float htot,
290  int nstep, float yout[], void (*derivs)(float, float[], float[]));
291 void mnbrak(float *ax, float *bx, float *cx, float *fa, float *fb,
292  float *fc, float (*func)(float));
293 void mnewt(int ntrial, float x[], int n, float tolx, float tolf);
294 void moment(float data[], int n, float *ave, float *adev, float *sdev,
295  float *var, float *skew, float *curt);
296 void mp2dfr(unsigned char a[], unsigned char s[], int n, int *m);
297 void mpadd(unsigned char w[], unsigned char u[], unsigned char v[], int n);
298 void mpdiv(unsigned char q[], unsigned char r[], unsigned char u[],
299  unsigned char v[], int n, int m);
300 void mpinv(unsigned char u[], unsigned char v[], int n, int m);
301 void mplsh(unsigned char u[], int n);
302 void mpmov(unsigned char u[], unsigned char v[], int n);
303 void mpmul(unsigned char w[], unsigned char u[], unsigned char v[], int n,
304  int m);
305 void mpneg(unsigned char u[], int n);
306 void mppi(int n);
307 void mprove(float **a, float **alud, int n, int indx[], float b[],
308  float x[]);
309 void mpsad(unsigned char w[], unsigned char u[], int n, int iv);
310 void mpsdv(unsigned char w[], unsigned char u[], int n, int iv, int *ir);
311 void mpsmu(unsigned char w[], unsigned char u[], int n, int iv);
312 void mpsqrt(unsigned char w[], unsigned char u[], unsigned char v[], int n,
313  int m);
314 void mpsub(int *is, unsigned char w[], unsigned char u[], unsigned char v[],
315  int n);
316 void mrqcof(float x[], float y[], float sig[], int ndata, float a[],
317  int ia[], int ma, float **alpha, float beta[], float *chisq,
318  void (*funcs)(float, float [], float *, float [], int));
319 void mrqmin(float x[], float y[], float sig[], int ndata, float a[],
320  int ia[], int ma, float **covar, float **alpha, float *chisq,
321  void (*funcs)(float, float [], float *, float [], int), float *alamda);
322 void newt(float x[], int n, int *check,
323  void (*vecfunc)(int, float [], float []));
324 void odeint(float ystart[], int nvar, float x1, float x2,
325  float eps, float h1, float hmin, int *nok, int *nbad,
326  void (*derivs)(float, float [], float []),
327  void (*rkqs)(float [], float [], int, float *, float, float,
328  float [], float *, float *, void (*)(float, float [], float [])));
329 void orthog(int n, float anu[], float alpha[], float beta[], float a[],
330  float b[]);
331 void pade(double cof[], int n, float *resid);
332 void pccheb(float d[], float c[], int n);
333 void pcshft(float a, float b, float d[], int n);
334 void pearsn(float x[], float y[], unsigned long n, float *r, float *prob,
335  float *z);
336 void period(float x[], float y[], int n, float ofac, float hifac,
337  float px[], float py[], int np, int *nout, int *jmax, float *prob);
338 void piksr2(int n, float arr[], float brr[]);
339 void piksrt(int n, float arr[]);
340 void pinvs(int ie1, int ie2, int je1, int jsf, int jc1, int k,
341  float ***c, float **s);
342 float plgndr(int l, int m, float x);
343 float poidev(float xm, long *idum);
344 void polcoe(float x[], float y[], int n, float cof[]);
345 void polcof(float xa[], float ya[], int n, float cof[]);
346 void poldiv(float u[], int n, float v[], int nv, float q[], float r[]);
347 void polin2(float x1a[], float x2a[], float **ya, int m, int n,
348  float x1, float x2, float *y, float *dy);
349 void polint(float xa[], float ya[], int n, float x, float *y, float *dy);
350 void powell(float p[], float **xi, int n, float ftol, int *iter, float *fret,
351  float (*func)(float []));
352 void predic(float data[], int ndata, float d[], int m, float future[], int nfut);
353 float probks(float alam);
354 void psdes(unsigned long *lword, unsigned long *irword);
355 void pwt(float a[], unsigned long n, int isign);
356 void pwtset(int n);
357 float pythag(float a, float b);
358 void pzextr(int iest, float xest, float yest[], float yz[], float dy[],
359  int nv);
360 float qgaus(float (*func)(float), float a, float b);
361 void qrdcmp(float **a, int n, float *c, float *d, int *sing);
362 float qromb(float (*func)(float), float a, float b);
363 float qromo(float (*func)(float), float a, float b,
364  float (*choose)(float (*)(float), float, float, int));
365 void qroot(float p[], int n, float *b, float *c, float eps);
366 void qrsolv(float **a, int n, float c[], float d[], float b[]);
367 void qrupdt(float **r, float **qt, int n, float u[], float v[]);
368 float qsimp(float (*func)(float), float a, float b);
369 float qtrap(float (*func)(float), float a, float b);
370 float quad3d(float (*func)(float, float, float), float x1, float x2);
371 void quadct(float x, float y, float xx[], float yy[], unsigned long nn,
372  float *fa, float *fb, float *fc, float *fd);
373 void quadmx(float **a, int n);
374 void quadvl(float x, float y, float *fa, float *fb, float *fc, float *fd);
375 float ran0(long *idum);
376 float ran1(long *idum);
377 float ran2(long *idum);
378 float ran3(long *idum);
379 float ran4(long *idum);
380 void rank(unsigned long n, unsigned long indx[], unsigned long irank[]);
381 void ranpt(float pt[], float regn[], int n);
382 void ratint(float xa[], float ya[], int n, float x, float *y, float *dy);
383 void ratlsq(double (*fn)(double), double a, double b, int mm, int kk,
384  double cof[], double *dev);
385 double ratval(double x, double cof[], int mm, int kk);
386 float rc(float x, float y);
387 float rd(float x, float y, float z);
388 void realft(float data[], unsigned long n, int isign);
389 void rebin(float rc, int nd, float r[], float xin[], float xi[]);
390 void red(int iz1, int iz2, int jz1, int jz2, int jm1, int jm2, int jmf,
391  int ic1, int jc1, int jcf, int kc, float ***c, float **s);
392 void relax(double **u, double **rhs, int n);
393 void relax2(double **u, double **rhs, int n);
394 void resid(double **res, double **u, double **rhs, int n);
395 float revcst(float x[], float y[], int iorder[], int ncity, int n[]);
396 void reverse(int iorder[], int ncity, int n[]);
397 float rf(float x, float y, float z);
398 float rj(float x, float y, float z, float p);
399 void rk4(float y[], float dydx[], int n, float x, float h, float yout[],
400  void (*derivs)(float, float [], float []));
401 void rkck(float y[], float dydx[], int n, float x, float h,
402  float yout[], float yerr[], void (*derivs)(float, float [], float []));
403 void rkdumb(float vstart[], int nvar, float x1, float x2, int nstep,
404  void (*derivs)(float, float [], float []));
405 void rkqs(float y[], float dydx[], int n, float *x,
406  float htry, float eps, float yscal[], float *hdid, float *hnext,
407  void (*derivs)(float, float [], float []));
408 void rlft3(float ***data, float **speq, unsigned long nn1,
409  unsigned long nn2, unsigned long nn3, int isign);
410 float rofunc(float b);
411 void rotate(float **r, float **qt, int n, int i, float a, float b);
412 void rsolv(float **a, int n, float d[], float b[]);
413 void rstrct(double **uc, double **uf, int nc);
414 float rtbis(float (*func)(float), float x1, float x2, float xacc);
415 float rtflsp(float (*func)(float), float x1, float x2, float xacc);
416 float rtnewt(void (*funcd)(float, float *, float *), float x1, float x2,
417  float xacc);
418 float rtsafe(void (*funcd)(float, float *, float *), float x1, float x2,
419  float xacc);
420 float rtsec(float (*func)(float), float x1, float x2, float xacc);
421 void rzextr(int iest, float xest, float yest[], float yz[], float dy[], int nv);
422 void savgol(float c[], int np, int nl, int nr, int ld, int m);
423 void score(float xf, float y[], float f[]);
424 void scrsho(float (*fx)(float));
425 /*float select(unsigned long k, unsigned long n, float arr[]);*/
426 float selip(unsigned long k, unsigned long n, float arr[]);
427 void shell(unsigned long n, float a[]);
428 void shoot(int n, float v[], float f[]);
429 void shootf(int n, float v[], float f[]);
430 void simp1(float **a, int mm, int ll[], int nll, int iabf, int *kp,
431  float *bmax);
432 void simp2(float **a, int m, int n, int *ip, int kp);
433 void simp3(float **a, int i1, int k1, int ip, int kp);
434 void simplx(float **a, int m, int n, int m1, int m2, int m3, int *icase,
435  int izrov[], int iposv[]);
436 void simpr(float y[], float dydx[], float dfdx[], float **dfdy,
437  int n, float xs, float htot, int nstep, float yout[],
438  void (*derivs)(float, float [], float []));
439 void sinft(float y[], int n);
440 void slvsm2(double **u, double **rhs);
441 void slvsml(double **u, double **rhs);
442 void sncndn(float uu, float emmc, float *sn, float *cn, float *dn);
443 double snrm(unsigned long n, double sx[], int itol);
444 void sobseq(int *n, float x[]);
445 void solvde(int itmax, float conv, float slowc, float scalv[],
446  int indexv[], int ne, int nb, int m, float **y, float ***c, float **s);
447 void sor(double **a, double **b, double **c, double **d, double **e,
448  double **f, double **u, int jmax, double rjac);
449 void sort(unsigned long n, float arr[]);
450 void sort2(unsigned long n, float arr[], float brr[]);
451 void sort3(unsigned long n, float ra[], float rb[], float rc[]);
452 void spctrm(FILE *fp, float p[], int m, int k, int ovrlap);
453 void spear(float data1[], float data2[], unsigned long n, float *d, float *zd,
454  float *probd, float *rs, float *probrs);
455 void sphbes(int n, float x, float *sj, float *sy, float *sjp, float *syp);
456 void splie2(float x1a[], float x2a[], float **ya, int m, int n, float **y2a);
457 void splin2(float x1a[], float x2a[], float **ya, float **y2a, int m, int n,
458  float x1, float x2, float *y);
459 void spread(float y, float yy[], unsigned long n, float x, int m);
460 void sprsax(float sa[], unsigned long ija[], float x[], float b[],
461  unsigned long n);
462 void sprsin(float **a, int n, float thresh, unsigned long nmax, float sa[],
463  unsigned long ija[]);
464 void sprspm(float sa[], unsigned long ija[], float sb[], unsigned long ijb[],
465  float sc[], unsigned long ijc[]);
466 void sprstm(float sa[], unsigned long ija[], float sb[], unsigned long ijb[],
467  float thresh, unsigned long nmax, float sc[], unsigned long ijc[]);
468 void sprstp(float sa[], unsigned long ija[], float sb[], unsigned long ijb[]);
469 void sprstx(float sa[], unsigned long ija[], float x[], float b[],
470  unsigned long n);
471 void stifbs(float y[], float dydx[], int nv, float *xx,
472  float htry, float eps, float yscal[], float *hdid, float *hnext,
473  void (*derivs)(float, float [], float []));
474 void stiff(float y[], float dydx[], int n, float *x,
475  float htry, float eps, float yscal[], float *hdid, float *hnext,
476  void (*derivs)(float, float [], float []));
477 void stoerm(float y[], float d2y[], int nv, float xs,
478  float htot, int nstep, float yout[],
479  void (*derivs)(float, float [], float []));
480 void svbksb(float **u, float w[], float **v, int m, int n, float b[],
481  float x[]);
482 void svdcmp(float **a, int m, int n, float w[], float **v);
483 void svdfit(float x[], float y[], float sig[], int ndata, float a[],
484  int ma, float **u, float **v, float w[], float *chisq,
485  void (*funcs)(float, float [], int));
486 void svdvar(float **v, int ma, float w[], float **cvm);
487 void toeplz(float r[], float x[], float y[], int n);
488 void tptest(float data1[], float data2[], unsigned long n, float *t, float *prob);
489 void tqli(float d[], float e[], int n, float **z);
490 float trapzd(float (*func)(float), float a, float b, int n);
491 void tred2(float **a, int n, float d[], float e[]);
492 void tridag(float a[], float b[], float c[], float r[], float u[],
493  unsigned long n);
494 float trncst(float x[], float y[], int iorder[], int ncity, int n[]);
495 void trnspt(int iorder[], int ncity, int n[]);
496 void ttest(float data1[], unsigned long n1, float data2[], unsigned long n2,
497  float *t, float *prob);
498 void tutest(float data1[], unsigned long n1, float data2[], unsigned long n2,
499  float *t, float *prob);
500 void twofft(float data1[], float data2[], float fft1[], float fft2[],
501  unsigned long n);
502 void vander(double x[], double w[], double q[], int n);
503 void vegas(float regn[], int ndim, float (*fxn)(float [], float), int init,
504  unsigned long ncall, int itmx, int nprn, float *tgral, float *sd,
505  float *chi2a);
506 void voltra(int n, int m, float t0, float h, float *t, float **f,
507  float (*g)(int, float), float (*ak)(int, int, float, float));
508 void wt1(float a[], unsigned long n, int isign,
509  void (*wtstep)(float [], unsigned long, int));
510 void wtn(float a[], unsigned long nn[], int ndim, int isign,
511  void (*wtstep)(float [], unsigned long, int));
512 void wwghts(float wghts[], int n, float h,
513  void (*kermom)(double [], double, int));
514 int zbrac(float (*func)(float), float *x1, float *x2);
515 void zbrak(float (*fx)(float), float x1, float x2, int n, float xb1[],
516  float xb2[], int *nb);
517 float zbrent(float (*func)(float), float x1, float x2, float tol);
518 void zrhqr(float a[], int m, float rtr[], float rti[]);
519 float zriddr(float (*func)(float), float x1, float x2, float xacc);
520 void zroots(fcomplex a[], int m, fcomplex roots[], int polish);
521 
522 #endif /* _NR_H_ */
void sncndn(float uu, float emmc, float *sn, float *cn, float *dn)
void svdvar(float **v, int ma, float w[], float **cvm)
void qrupdt(float **r, float **qt, int n, float u[], float v[])
void quadmx(float **a, int n)
float gasdev(long *idum)
an array had not been initialized Several spelling and grammar corrections were which is read from the appropriate MCF the above metadata values were hard coded A problem calculating the average background DN for SWIR bands when the moon is in the space view port was corrected The new algorithm used to calculate the average background DN for all reflective bands when the moon is in the space view port is now the same as the algorithm employed by the thermal bands For non SWIR changes in the averages are typically less than Also for non SWIR the black body DNs remain a backup in case the SV DNs are not available For SWIR the changes in computed averages were larger because the old which used the black body suffered from contamination by the micron leak As a consequence of the if SV DNs are not available for the SWIR the EV pixels will not be the granule time is used to identify the appropriate tables within the set given for one LUT the first two or last two tables respectively will be used for the interpolation If there is only one LUT in the set of it will be treated as a constant LUT The manner in which Earth View data is checked for saturation was changed Previously the raw Earth View DNs and Space View DNs were checked against the lookup table values contained in the table dn_sat The change made is to check the raw Earth and Space View DNs to be sure they are less than the maximum saturation value and to check the Space View subtracted Earth View dns against a set of values contained in the new lookup table dn_sat_ev The metadata configuration and ASSOCIATEDINSTRUMENTSHORTNAME from the MOD02HKM product The same metatdata with extensions and were removed from the MOD021KM and MOD02OBC products ASSOCIATEDSENSORSHORTNAME was set to MODIS in all products These changes are reflected in new File Specification which users may consult for exact the pow functions were eliminated in Emissive_Cal and Emissive bands replaced by more efficient code Other calculations throughout the code were also made more efficient Aside from a few round off there was no difference to the product The CPU time decreased by about for a day case and for a night case A minor bug in calculating the uncertainty index for emissive bands was corrected The frame index(0-based) was previously being used the frame number(1-based) should have been used. There were only a few minor changes to the uncertainty index(maximum of 1 digit). 3. Some inefficient arrays(Sigma_RVS_norm_sq) were eliminated and some code lines in Preprocess_L1A_Data were moved into Process_OBCEng_Emiss. There were no changes to the product. Required RAM was reduced by 20 MB. Now
data_t q
Definition: decode_rs.h:74
void period(float x[], float y[], int n, float ofac, float hifac, float px[], float py[], int np, int *nout, int *jmax, float *prob)
float bessj0(float x)
void jacobi(float **a, int n, float d[], float **v, int *nrot)
int r
Definition: decode_rs.h:73
void dsvbksb(double **u, double w[], double **v, int m, int n, double b[], double x[])
float rf(float x, float y, float z)
data_t t[NROOTS+1]
Definition: decode_rs.h:77
float rtsec(float(*func)(float), float x1, float x2, float xacc)
void red(int iz1, int iz2, int jz1, int jz2, int jm1, int jm2, int jmf, int ic1, int jc1, int jcf, int kc, float ***c, float **s)
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 addint(double **uf, double **uc, double **res, int nf)
void fourn(float data[], unsigned long nn[], int ndim, int isign)
void hqr(float **a, int n, float wr[], float wi[])
void poldiv(float u[], int n, float v[], int nv, float q[], float r[])
void covsrt(float **covar, int ma, int ia[], int mfit)
void svbksb(float **u, float w[], float **v, int m, int n, float b[], float x[])
void mpmul(unsigned char w[], unsigned char u[], unsigned char v[], int n, int m)
float midsqu(float(*funk)(float), float aa, float bb, int n)
void dsprstx(double sa[], unsigned long ija[], double x[], double b[], unsigned long n)
float rtnewt(void(*funcd)(float, float *, float *), float x1, float x2, float xacc)
void rlft3(float ***data, float **speq, unsigned long nn1, unsigned long nn2, unsigned long nn3, int isign)
void rzextr(int iest, float xest, float yest[], float yz[], float dy[], int nv)
void banmul(float **a, unsigned long n, int m1, int m2, float x[], float b[])
void pzextr(int iest, float xest, float yest[], float yz[], float dy[], int nv)
float bessi1(float x)
void mgfas(double **u, int n, int maxcyc)
int j
Definition: decode_rs.h:73
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 scrsho(float(*fx)(float))
void ludcmp(float **a, int n, int *indx, float *d)
Definition: ludcmp.c:7
===========================================================================V4.1.3 12/18/2002============================================================================Changes which do not affect scientific output:1. The R *LUT was eliminated and the equivalent formulation for R *, i.e. 1/(m1 *e_sun_over_pi), was substituted for it in the only instance of its use, which is in the calculation of the RSB uncertainty index. This reduces the size of the Reflective LUT HDF file by approximately 1/4 to 1/3. The equivalent formulation of R *differed from the new by at most 0.056% in test granules and uncertainty differences of at most 1 count(out of a range of 0-15) were found in no more than 1 in 100, 000 pixels. 2. In Preprocess.c, a small error where the trailing dropped scan counter was incremented when the leading dropped scan counter should have been was fixed. This counter is internal only and is not yet used for any purpose. 3. NEW MYD02OBC Metadata Configuration Files. MCST wishes to have the OBC files archived even when the Orbit Number is recorded as "-1". Accordingly, ECS has delivered new MCF files for OBC output having all elements in the OrbitCalculatedSpatialDomain container set to "MANDATORY=FALSE". 4. pgs_in.version is now reset to "1" in Metadata.c before the call to look up the geolocation gringpoint information.============================================================================V4.1.1 CODE SPECIFIC TO MODIS/AQUA(FM1) 10/03/2002============================================================================Two changes were made to the code which do not affect scientific output:1. A bug which caused PGE02 to fail when scans were dropped between granules was fixed.(The length of the error message generated was shortened.) 2. Messages regarding an invalid MCST LUT Version or an invalid Write High Resolution Night Mode Output value in the PCF file were added.==============================================================================V4.1.0 CODE SPECIFIC TO MODIS/AQUA(FM1)(NEVER USED IN PRODUCTION) 07/30/2002==============================================================================Changes which impact scientific output of code:1. The LUT type of the RVS corrections was changed to piecewise linear. In addition the RVS LUTs were changed from listing the RVS corrections to listing the quadratic coefficients necessary to make the RVS corrections. The coefficients are now calculated by interpolating on the granule collection time and the RVS corrections are then generated using the interpolated coefficients. Previously used Emissive and Reflective RVS LUT tables were eliminated and new ones introduced. Several changes were made to the code which should not affect scientific output. They are:1. The ADC correction algorithm and related LUTs were stripped from the code.(The ADC correction has always been set to "0" so this has no scientific impact.) 2. Some small changes to the code, chiefly to casting of variables, were added to make it LINUX-compatible. Output of code run on LINUX machines displays differences of at most 1 scaled integer(SI) from output of code run on IRIX machines. The data type of the LUT "dn_sat_ev" was changed to float64 to avoid discrepancies seen between MOD_PR02 run on LINUX systems and IRIX systems where values were flagged under one operating system but not the other. 3. Checking for non-functioning detectors, sector rotation, incalculable values of the Emissive calibration factor "b1", and incalculable values of SV or BB averages was moved outside the loop over frames in Emissive_Cal.c since none of these quantities are frame-dependent. 4. The code was altered so that if up to five scans are dropped between the leading/middle or middle/trailing granules, the leading or trailing granule will still be used in emissive calibration to form a cross-granule average. QA bits 25 and 26 are set for a gap between the leading/middle and middle/trailing granules respectively. This may in rare instances lead to a change in emissive calibration coefficients for scans at the beginning or end of a granule. 5.(MODIS/AQUA ONLY) The name of the seed(error message) file was changed from "MODIS_36100.h" to "MODIS_36110.h". 6. Metadata.c was changed so that the source of the geolocation metadata is the input geolocation file rather than the L1A granule. 7. To reduce to overall size of the reflective LUT HDF files, fill values were eliminated from all LUTs previously dimensioned "BDSM"([NUM_REFLECTIVE_BANDS] *[MAX_DETECTORS_PER_BAND] *[MAX_SAMPLES_PER_BAND] *[NUM_MIRROR_SIDES]) in the LUT HDF files. Each table piece is stored in the HDF file with dimensions NUM_REFLECTIVE_INDICES, where NUM_REFLECTIVE_INDICES=[NUM_250M_BANDS *DETECTORS_PER_250M_BAND *SAMPLES_PER_250M_BAND *NUM_MIRROR_SIDES]+[NUM_500M_BANDS *DETECTORS_PER_500M_BAND *SAMPLES_PER_500M_BAND *NUM_MIRROR_SIDES]+[NUM_1000M_BANDS *DETECTORS_PER_1KM_BAND *SAMPLES_PER_1KM_BAND *NUM_MIRROR_SIDES] with SAMPLES_PER_250M_BAND=4, SAMPLES_PER_500M_BAND=2, and SAMPLES_PER_1KM_BAND=1. Values within each table piece appear in the order listed above. The overall dimensions of time dependent BDSM LUTs are now[NUM_TIMES] *[NUM_REFLECTIVE_INDICES], where NUM_TIMES is the number of time dependent table pieces. 8. Checking for non-functioning detectors, sector rotation, incalculable values of the Emissive calibration factor "b1", and incalculable values of SV or BB averages was moved outside the loop over frames in Emissive_Cal.c since none of these quantities are frame-dependent. 9. The code was altered so that if up to five scans are dropped between the leading/middle or middle/trailing granules, the leading or trailing granule will still be used in emissive calibration to form a cross-granule average. QA bits 25 and 26 are set for a gap between the leading/middle and middle/trailing granules respectively. This may in rare instances lead to a change in emissive calibration coefficients for scans at the beginning or end of a granule. 10. The array of b1s in Preprocess.c was being initialized to -1 outside the loop over bands, which meant that if b1 could not be computed, the value of b1 from the previous band for that scan/detector combination was used. The initialization was moved inside the band loop.============================================================================V3.1.0(Original Aqua-specific code version) 02/06/2002============================================================================AQUA-Specific changes made:1. A correction to a problem with blackbody warmup on bands 33, 35, and 36 was inserted. PC Bands 33, 35, and 36 on MODIS Aqua saturate on BB warmup before 310K, which means current code will not provide correct b1 calibration coefficients when the BB temperatures are above the saturation threshold. A LUT with default b1s and band-dependent temperature thresholds will be inserted in code. If the BB temperature is over the saturation threshold for the band, the default b1 from the table is used. 2. The number of possible wavelengths in the Emissive LUT RSR file was changed to 67 in order to accommodate the Aqua RSR tables. 3. Several changes to the upper and lower bound limits on LUT values were inserted. Changes to both Aqua and Terra Code:1. A check was put into Emissive_Cal.c to see whether the value of b1 being used to calibrate a pixel is negative. If so, the pixel is flagged with the newly created flag TEB_B1_NOT_CALCULATED, value 65526, and the number of pixels for which this occurs is counted in the QA_common table. 2. The array of b1s in Preprocess.c was being initialized to -1 outside the loop over bands, which meant that if b1 could not be computed, the value of b1 from the previous band for that scan/detector combination was used. The initialization was moved inside the band loop. 3. Minor code changes were made to eliminate compiler warnings when the code is compiled in 64-bit mode. 4. Temperature equations were upgraded to be MODIS/Aqua or MODIS/Terra specific and temperature conversion coefficients for Aqua were inserted.========================================================================================================================================================ALL CHANGES BELOW ARE TO COMMON TERRA/AQUA CODE USED BEFORE 02/06/2002========================================================================================================================================================v3.0.1 11/26/2001============================================================================Several small changes to the code were made, none of which changes the scientific output:1. The code was changed so that production of 250m and 500m resolution data when all scans of a granule are in night mode may be turned off/on through the PCF file. 2. A check on the times of the leading and trailing granules was inserted. If a leading or trailing granule does not immediately precede or follow(respectively) the middle granule, it is treated as a missing granule and a warning message is printed. 3. The code now reads the "MCST Version Number"(e.g. "3.0.1.0_Terra") from the PCF file and checks it against the MCST Version number contained in the LUT HDF files. This was done to allow the user to make sure the code is being run using the correct LUT files.(The designators "0_Terra", "1_Terra", etc.) refer to the LUT versions.) 4. A small bug in Preprocess.c was corrected code
Definition: HISTORY.txt:661
void chebft(float a, float b, float c[], int n, float(*func)(float))
void slvsml(double **u, double **rhs)
unsigned short icrc(unsigned short crc, unsigned char *bufptr, unsigned long len, short jinit, int jrev)
void qrdcmp(float **a, int n, float *c, float *d, int *sing)
void vander(double x[], double w[], double q[], int n)
void shell(unsigned long n, float a[])
float bessk0(float x)
void rkdumb(float vstart[], int nvar, float x1, float x2, int nstep, void(*derivs)(float, float[], float[]))
float f1dim(float x)
unsigned long igray(unsigned long n, int is)
void rebin(float rc, int nd, float r[], float xin[], float xi[])
void lubksb(float **a, int n, int *indx, float b[])
Definition: lubksb.c:2
void cholsl(float **a, int n, float p[], float b[], float x[])
void wwghts(float wghts[], int n, float h, void(*kermom)(double[], double, int))
int32_t nl
Definition: atrem_corl1.h:132
float midexp(float(*funk)(float), float aa, float bb, int n)
unsigned long nrad
Definition: nr.h:15
void sprstm(float sa[], unsigned long ija[], float sb[], unsigned long ijb[], float thresh, unsigned long nmax, float sc[], unsigned long ijc[])
void ks2d2s(float x1[], float y1[], unsigned long n1, float x2[], float y2[], unsigned long n2, float *d, float *prob)
void twofft(float data1[], float data2[], float fft1[], float fft2[], unsigned long n)
float chebev(float a, float b, float c[], int m, float x)
void chstwo(float bins1[], float bins2[], int nbins, int knstrn, float *df, float *chsq, float *prob)
float f1(float x)
void gser(float *gamser, float a, float x, float *gln)
Definition: gser.c:5
void sprstp(float sa[], unsigned long ija[], float sb[], unsigned long ijb[])
void correl(float data1[], float data2[], unsigned long n, float ans[])
void fgauss(float x, float a[], float *y, float dyda[], int na)
void gaulag(float x[], float w[], int n, float alf)
void pwt(float a[], unsigned long n, int isign)
void splin2(float x1a[], float x2a[], float **ya, float **y2a, int m, int n, float x1, float x2, float *y)
void medfit(float x[], float y[], int ndata, float *a, float *b, float *abdev)
void miser(float(*func)(float[]), float regn[], int ndim, unsigned long npts, float dith, float *ave, float *var)
int irbit1(unsigned long *iseed)
float dbrent(float ax, float bx, float cx, float(*f)(float), float(*df)(float), float tol, float *xmin)
void eigsrt(float d[], float **v, int n)
void sinft(float y[], int n)
void beschb(double x, double *gam1, double *gam2, double *gampl, double *gammi)
void solvde(int itmax, float conv, float slowc, float scalv[], int indexv[], int ne, int nb, int m, float **y, float ***c, float **s)
float erfcc(float x)
float pythag(float a, float b)
real, dimension(260) sb
void hufdec(unsigned long *ich, unsigned char *code, unsigned long lcode, unsigned long *nb, huffcode *hcode)
no change in intended resolving MODur00064 Corrected handling of bad ephemeris attitude resolving resolving GSFcd00179 Corrected handling of fill values for[Sensor|Solar][Zenith|Azimuth] resolving MODxl01751 Changed to validate LUT version against a value retrieved from the resolving MODxl02056 Changed to calculate Solar Diffuser angles without adjustment for estimated post launch changes in the MODIS orientation relative to incidentally resolving defects MODxl01766 Also resolves MODxl01947 Changed to ignore fill values in SCI_ABNORM and SCI_STATE rather than treating them as resolving MODxl01780 Changed to use spacecraft ancillary data to recognise when the mirror encoder data is being set by side A or side B and to change calculations accordingly This removes the need for seperate LUTs for Side A and Side B data it makes the new LUTs incompatible with older versions of the and vice versa Also resolves MODxl01685 A more robust GRing algorithm is being which will create a non default GRing anytime there s even a single geolocated pixel in a granule Removed obsolete messages from seed as required for compatibility with version of the SDP toolkit Corrected test output file names to end in out
Definition: HISTORY.txt:422
void polin2(float x1a[], float x2a[], float **ya, int m, int n, float x1, float x2, float *y, float *dy)
void ddpoly(float c[], int nc, float x, float pd[], int nd)
void eclazz(int nf[], int n, int(*equiv)(int, int))
float gammp(float a, float x)
void quadvl(float x, float y, float *fa, float *fb, float *fc, float *fd)
float rtflsp(float(*func)(float), float x1, float x2, float xacc)
void amebsa(float **p, float y[], int ndim, float pb[], float *yb, float ftol, float(*funk)(float[]), int *iter, float temptr)
void ratint(float xa[], float ya[], int n, float x, float *y, float *dy)
float ran2(long *idum)
void jacobn(float x, float y[], float dfdx[], float **dfdy, int n)
void asolve(unsigned long n, double b[], double x[], int itrnsp)
void sort3(unsigned long n, float ra[], float rb[], float rc[])
void hpsort(unsigned long n, float ra[])
void mpdiv(unsigned char q[], unsigned char r[], unsigned char u[], unsigned char v[], int n, int m)
float plgndr(int l, int m, float x)
void broydn(float x[], int n, int *check, void(*vecfunc)(int, float[], float[]))
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 fleg(float x, float pl[], int nl)
void quadct(float x, float y, float xx[], float yy[], unsigned long nn, float *fa, float *fb, float *fc, float *fd)
void ratlsq(double(*fn)(double), double a, double b, int mm, int kk, double cof[], double *dev)
void mmid(float y[], float dydx[], int nvar, float xs, float htot, int nstep, float yout[], void(*derivs)(float, float[], float[]))
float rtbis(float(*func)(float), float x1, float x2, float xacc)
float ellpi(float phi, float en, float ak)
float revcst(float x[], float y[], int iorder[], int ncity, int n[])
void sobseq(int *n, float x[])
float f3(float z)
void slvsm2(double **u, double **rhs)
float h[MODELMAX]
Definition: atrem_corl1.h:131
float ran0(long *idum)
void dsvdcmp(double **a, int m, int n, double w[], double **v)
float factrl(int n)
float erff(float x)
void crank(unsigned long n, float w[], float *s)
void mppi(int n)
void gaucof(int n, float a[], float b[], float amu0, float x[], float w[])
void kstwo(float data1[], unsigned long n1, float data2[], unsigned long n2, float *d, float *prob)
float qsimp(float(*func)(float), float a, float b)
void score(float xf, float y[], float f[])
void locate(float xx[], unsigned long n, float x, unsigned long *j)
float midinf(float(*funk)(float), float aa, float bb, int n)
void fourew(FILE *file[5], int *na, int *nb, int *nc, int *nd)
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 fit(float x[], float y[], int ndata, float sig[], int mwt, float *a, float *b, float *siga, float *sigb, float *chi2, float *q)
void load2(float x2, float v2[], float y[])
void drealft(double data[], unsigned long n, int isign)
float ran4(long *idum)
float trapzd(float(*func)(float), float a, float b, int n)
float golden(float ax, float bx, float cx, float(*f)(float), float tol, float *xmin)
void polcof(float xa[], float ya[], int n, float cof[])
void mglin(double **u, int n, int ncycle)
void hunt(float xx[], unsigned long n, float x, unsigned long *jlo)
fcomplex hypgeo(fcomplex a, fcomplex b, fcomplex c, fcomplex z)
this program makes no use of any feature of the SDP Toolkit that could generate such a then geolocation is calculated at that and then aggregated up to Resolved feature request Bug by adding three new int8 SDSs for each high resolution offsets between the high resolution geolocation and a bi linear interpolation extrapolation of the positions This can be used to reconstruct the high resolution geolocation Resolved Bug by delaying cumulation of gflags until after validation of derived products Resolved Bug by setting Latitude and Longitude to the correct fill resolving to support Near Real Time because they may be unnecessary if use of entrained ephemeris and attitude data is turned resolving bug report Corrected to filter out Aqua attitude records with missing status helping resolve bug MOD_PR03 will still correctly write scan and pixel data that does not depend upon the start thereby resolving MODur00108 Changed header guard macro names to avoid reserved name resolving MODur00104 Maneuver list file for Terra satellite was updated to include data from Jecue DuChateu Maneuver list files for both Terra and Aqua were updated to include two maneuvers from recent IOT weekly reports The limits for Z component of angular momentum was and to set the fourth GEO scan quality flag for a scan depending upon whether or not it occurred during one of them Added _FillValue attributes to many and changed the fill value for the sector start times from resolving MODur00072 Writes boundingcoordinate metadata to L1A archived metadata For PERCENT *ECS change to treat rather resolving GSFcd01518 Added a LogReport Changed to create the Average Temperatures vdata even if the number of scans is
Definition: HISTORY.txt:301
void sphbes(int n, float x, float *sj, float *sy, float *sjp, float *syp)
void shoot(int n, float v[], float f[])
void zrhqr(float a[], int m, float rtr[], float rti[])
void pccheb(float d[], float c[], int n)
float df1dim(float x)
void chebpc(float c[], float d[], int n)
float expint(int n, float x)
void predic(float data[], int ndata, float d[], int m, float future[], int nfut)
void tutest(float data1[], unsigned long n1, float data2[], unsigned long n2, float *t, float *prob)
float brent(float ax, float bx, float cx, float(*f)(float), float tol, float *xmin)
Definition: numerical.c:240
void derivs(float x, float y[], float dydx[])
float erffc(float x)
void rk4(float y[], float dydx[], int n, float x, float h, float yout[], void(*derivs)(float, float[], float[]))
void spctrm(FILE *fp, float p[], int m, int k, int ovrlap)
float ran1(long *idum)
void simplx(float **a, int m, int n, int m1, int m2, int m3, int *icase, int izrov[], int iposv[])
int decchk(char string[], int n, char *ch)
void avevar(float data[], unsigned long n, float *ave, float *var)
void psdes(unsigned long *lword, unsigned long *irword)
no change in intended resolving MODur00064 Corrected handling of bad ephemeris attitude resolving resolving GSFcd00179 Corrected handling of fill values for[Sensor|Solar][Zenith|Azimuth] resolving MODxl01751 Changed to validate LUT version against a value retrieved from the resolving MODxl02056 Changed to calculate Solar Diffuser angles without adjustment for estimated post launch changes in the MODIS orientation relative to incidentally resolving defects MODxl01766 Also resolves MODxl01947 Changed to ignore fill values in SCI_ABNORM and SCI_STATE rather than treating them as resolving MODxl01780 Changed to use spacecraft ancillary data to recognise when the mirror encoder data is being set by side A or side B and to change calculations accordingly This removes the need for seperate LUTs for Side A and Side B data it makes the new LUTs incompatible with older versions of the and vice versa Also resolves MODxl01685 A more robust GRing algorithm is being which will create a non default GRing anytime there s even a single geolocated pixel in a granule Removed obsolete messages from seed file
Definition: HISTORY.txt:413
void fpoly(float x, float p[], int np)
void mpsub(int *is, unsigned char w[], unsigned char u[], unsigned char v[], int n)
float bessk1(float x)
float betai(float a, float b, float x)
void chsone(float bins[], float ebins[], int nbins, int knstrn, float *df, float *chsq, float *prob)
void dlinmin(float p[], float xi[], int n, float *fret, float(*func)(float[]), void(*dfunc)(float[], float[]))
#define fac
float fredin(float x, int n, float a, float b, float t[], float f[], float w[], float(*g)(float), float(*ak)(float, float))
void wt1(float a[], unsigned long n, int isign, void(*wtstep)(float[], unsigned long, int))
float bessi(int n, float x)
void stifbs(float y[], float dydx[], int nv, float *xx, float htry, float eps, float yscal[], float *hdid, float *hnext, void(*derivs)(float, float[], float[]))
float f2(float y)
void qroot(float p[], int n, float *b, float *c, float eps)
void dftint(float(*func)(float), float a, float b, float w, float *cosint, float *sinint)
void linbcg(unsigned long n, double b[], double x[], int itol, double tol, int itmax, int *iter, double *err)
float zriddr(float(*func)(float), float x1, float x2, float xacc)
void mpsad(unsigned char w[], unsigned char u[], int n, int iv)
int init(int32_t ipr, int32_t jpr, char *efile, char *pfile)
Definition: proj_report.c:51
void savgol(float c[], int np, int nl, int nr, int ld, int m)
void atimes(unsigned long n, double x[], double r[], int itrnsp)
void hpsel(unsigned long m, unsigned long n, float arr[], float heap[])
void pade(double cof[], int n, float *resid)
float zbrent(float(*func)(float), float x1, float x2, float tol)
void mpsqrt(unsigned char w[], unsigned char u[], unsigned char v[], int n, int m)
float midsql(float(*funk)(float), float aa, float bb, int n)
void rstrct(double **uc, double **uf, int nc)
double precision function f(R1)
Definition: tmd.lp.f:1454
void lnsrch(int n, float xold[], float fold, float g[], float p[], float x[], float *f, float stpmax, int *check, float(*func)(float[]))
float betacf(float a, float b, float x)
void relax2(double **u, double **rhs, int n)
void mpinv(unsigned char u[], unsigned char v[], int n, int m)
void sprsax(float sa[], unsigned long ija[], float x[], float b[], unsigned long n)
Definition: sprsax.c:1
float r
Definition: nr.h:7
void stiff(float y[], float dydx[], int n, float *x, float htry, float eps, float yscal[], float *hdid, float *hnext, void(*derivs)(float, float[], float[]))
void lop(double **out, double **u, int n)
void fixrts(float d[], int m)
void svdfit(float x[], float y[], float sig[], int ndata, float a[], int ma, float **u, float **v, float w[], float *chisq, void(*funcs)(float, float[], int))
Definition: nr.h:22
void bandec(float **a, unsigned long n, int m1, int m2, float **al, unsigned long indx[], float *d)
void bcucof(float y[], float y1[], float y2[], float y12[], float d1, float d2, float **c)
void rkck(float y[], float dydx[], int n, float x, float h, float yout[], float yerr[], void(*derivs)(float, float[], float[]))
void sort(unsigned long n, float arr[])
float bessy(int n, float x)
void simp3(float **a, int i1, int k1, int ip, int kp)
void gcf(float *gammcf, float a, float x, float *gln)
Definition: gcf.c:6
void mpsmu(unsigned char w[], unsigned char u[], int n, int iv)
void eclass(int nf[], int n, int lista[], int listb[], int m)
float rofunc(float b)
void anneal(float x[], float y[], int iorder[], int ncity)
void sor(double **a, double **b, double **c, double **d, double **e, double **f, double **u, int jmax, double rjac)
void matadd(double **a, double **b, double **c, int n)
void arcode(unsigned long *ich, unsigned char **codep, unsigned long *lcode, unsigned long *lcd, int isign, arithcode *acode)
void memcof(float data[], int n, int m, float *xms, float d[])
void gauleg(float x1, float x2, float x[], float w[], int n)
float rd(float x, float y, float z)
void interp(double **uf, double **uc, int nf)
Definition: nr.h:14
void load(float x1, float v[], float y[])
void difeq(int k, int k1, int k2, int jsf, int is1, int isf, int indexv[], int ne, float **s, float **y)
Definition: nr.h:6
void daub4(float a[], unsigned long n, int isign)
void bksub(int ne, int nb, int jf, int k1, int k2, float ***c)
void fill0(double **u, int n)
void frenel(float x, float *s, float *c)
subroutine func(x, conec, n, bconecno, bn, units, u, inno, i, outno, o, Input, Targ, p, sqerr)
Definition: ffnet.f:287
float dawson(float x)
PGE01 indicating that PGE02 PGE01 V6 for and PGE01 V2 for MOD03 were used to produce the granule By convention adopted in all MODIS Terra PGE02 code versions are The fourth digit of the PGE02 version denotes the LUT version used to produce the granule The source of the metadata environment variable ProcessingCenter was changed from a QA LUT value to the Process Configuration A sign used in error in the second order term was changed to already in place for MODIS TERRA was implemented for MODIS AQUA A time dependent LUT was added which gives coefficients for a detector specific crosstalk correction based on the aggregated Band radiances The Band scaled integers are adjusted by the Band correction term
Definition: HISTORY.txt:439
int metrop(float de, float t)
void tqli(float d[], float e[], int n, float **z)
void gauher(float x[], float w[], int n)
float poidev(float xm, long *idum)
void load1(float x1, float v1[], float y[])
double ratval(double x, double cof[], int mm, int kk)
void mnewt(int ntrial, float x[], int n, float tolx, float tolf)
float pp[MODELMAX]
Definition: atrem_corl1.h:173
int irbit2(unsigned long *iseed)
void simp2(float **a, int m, int n, int *ip, int kp)
int zbrac(float(*func)(float), float *x1, float *x2)
float bessj(int n, float x)
void zbrak(float(*fx)(float), float x1, float x2, int n, float xb1[], float xb2[], int *nb)
void gaussj(float **a, int n, float **b, int m)
void four1(float data[], unsigned long nn, int isign)
void kendl2(float **tab, int i, int j, float *tau, float *z, float *prob)
void laguer(fcomplex a[], int m, fcomplex *x, int *its)
Definition: jd.py:1
void zroots(fcomplex a[], int m, fcomplex roots[], int polish)
float qtrap(float(*func)(float), float a, float b)
const double delta
float tol
float rc(float x, float y)
float gammq(float a, float x)
void qrsolv(float **a, int n, float c[], float d[], float b[])
void convlv(float data[], unsigned long n, float respns[], unsigned long m, int isign, float ans[])
void mpneg(unsigned char u[], int n)
void pcshft(float a, float b, float d[], int n)
float expdev(long *idum)
void rsolv(float **a, int n, float d[], float b[])
void fourfs(FILE *file[5], unsigned long nn[], int ndim, int isign)
void powell(float p[], float **xi, int n, float ftol, int *iter, float *fret, float(*func)(float[]))
float dfridr(float(*func)(float), float x, float h, float *err)
void realft(float data[], unsigned long n, int isign)
float ja
Definition: atrem_cor.h:114
void simp1(float **a, int mm, int ll[], int nll, int iabf, int *kp, float *bmax)
long julday(int mm, int id, int iyyy)
Definition: julian.c:37
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 tridag(float a[], float b[], float c[], float r[], float u[], unsigned long n)
void fred2(int n, float a, float b, float t[], float f[], float w[], float(*g)(float), float(*ak)(float, float))
void mplsh(unsigned char u[], int n)
unsigned short icrc1(unsigned short crc, unsigned char onech)
void reverse(int iorder[], int ncity, int n[])
void cosft2(float y[], int n, int isign)
void svdcmp(float **a, int m, int n, float w[], float **v)
void rkqs(float y[], float dydx[], int n, float *x, float htry, float eps, float yscal[], float *hdid, float *hnext, void(*derivs)(float, float[], float[]))
float ran3(long *idum)
void bessjy(float x, float xnu, float *rj, float *ry, float *rjp, float *ryp)
void arcsum(unsigned long iin[], unsigned long iout[], unsigned long ja, int nwk, unsigned long nrad, unsigned long nc)
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)
no change in intended resolving MODur00064 Corrected handling of bad ephemeris attitude data
Definition: HISTORY.txt:356
float bessk(int n, float x)
void eulsum(float *sum, float term, int jterm, float wksp[])
void ranpt(float pt[], float regn[], int n)
float amotry(float **p, float y[], float psum[], int ndim, float(*funk)(float[]), int ihi, float fac)
void mp2dfr(unsigned char a[], unsigned char s[], int n, int *m)
void piksrt(int n, float arr[])
float selip(unsigned long k, unsigned long n, float arr[])
void hufenc(unsigned long ich, unsigned char **codep, unsigned long *lcode, unsigned long *nb, huffcode *hcode)
void cosft(float y[], int n, int isign)
void iindexx(unsigned long n, long arr[], unsigned long indx[])
void ksone(float data[], unsigned long n, float(*func)(float), float *d, float *prob)
void mpmov(unsigned char u[], unsigned char v[], int n)
float qromb(float(*func)(float), float a, float b)
data_t b[NROOTS+1]
Definition: decode_rs.h:77
float evlmem(float fdt, float d[], int m, float xms)
float ei(float x)
float chixy(float bang)
void cosft1(float y[], int n)
float bico(int n, int k)
void sort2(unsigned long n, float arr[], float brr[])
void tred2(float **a, int n, float d[], float e[])
void mpsdv(unsigned char w[], unsigned char u[], int n, int iv, int *ir)
void pwtset(int n)
void hypdrv(float s, float yy[], float dyyds[])
void mpadd(unsigned char w[], unsigned char u[], unsigned char v[], int n)
void bessik(float x, float xnu, float *ri, float *rk, float *rip, float *rkp)
an array had not been initialized Several spelling and grammar corrections were which is read from the appropriate MCF the above metadata values were hard coded A problem calculating the average background DN for SWIR bands when the moon is in the space view port was corrected The new algorithm used to calculate the average background DN for all reflective bands when the moon is in the space view port is now the same as the algorithm employed by the thermal bands For non SWIR changes in the averages are typically less than Also for non SWIR the black body DNs remain a backup in case the SV DNs are not available For SWIR the changes in computed averages were larger because the old which used the black body suffered from contamination by the micron leak As a consequence of the if SV DNs are not available for the SWIR the EV pixels will not be the granule time is used to identify the appropriate tables within the set given for one LUT the first two or last two tables respectively will be used for the interpolation If there is only one LUT in the set of it will be treated as a constant LUT The manner in which Earth View data is checked for saturation was changed Previously the raw Earth View DNs and Space View DNs were checked against the lookup table values contained in the table dn_sat The change made is to check the raw Earth and Space View DNs to be sure they are less than the maximum saturation value and to check the Space View subtracted Earth View dns against a set of values contained in the new lookup table dn_sat_ev The metadata configuration and ASSOCIATEDINSTRUMENTSHORTNAME from the MOD02HKM product The same metatdata with extensions and were removed from the MOD021KM and MOD02OBC products ASSOCIATEDSENSORSHORTNAME was set to MODIS in all products These changes are reflected in new File Specification which users may consult for exact the pow functions were eliminated in Emissive_Cal and Emissive bands replaced by more efficient code Other calculations throughout the code were also made more efficient Aside from a few round off there was no difference to the product The CPU time decreased by about for a day case and for a night case A minor bug in calculating the uncertainty index for emissive bands was corrected The frame the required RAM for each execution is MB on the DEC ALPHA and MB on the SGI Octane v2
Definition: HISTORY.txt:728
void polcoe(float x[], float y[], int n, float cof[])
float gammln(float xx)
Definition: gammln.c:3
void choldc(float **a, int n, float p[])
void caldat(long julian, int *mm, int *id, int *iyyy)
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 linmin(float p[], float xi[], int n, float *fret, float(*func)(float[]))
void hufapp(unsigned long index[], unsigned long nprob[], unsigned long n, unsigned long i)
data_t u
Definition: decode_rs.h:74
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))
float bessy0(float x)
void vegas(float regn[], int ndim, float(*fxn)(float[], float), int init, unsigned long ncall, int itmx, int nprn, float *tgral, float *sd, float *chi2a)
void wtn(float a[], unsigned long nn[], int ndim, int isign, void(*wtstep)(float[], unsigned long, int))
float quad3d(float(*func)(float, float, float), float x1, float x2)
void dftcor(float w, float delta, float a, float b, float endpts[], float *corre, float *corim, float *corfac)
void frprmn(float p[], int n, float ftol, int *iter, float *fret, float(*func)(float[]), void(*dfunc)(float[], float[]))
float amotsa(float **p, float y[], float psum[], int ndim, float pb[], float *yb, float(*funk)(float[]), int ihi, float *yhi, float fac)
double dpythag(double a, double b)
void copy(double **aout, double **ain, int n)
float rtsafe(void(*funcd)(float, float *, float *), float x1, float x2, float xacc)
void ftest(float data1[], unsigned long n1, float data2[], unsigned long n2, float *f, float *prob)
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 chder(float a, float b, float c[], float cder[], int n)
float factln(int n)
void pearsn(float x[], float y[], unsigned long n, float *r, float *prob, float *z)
void voltra(int n, int m, float t0, float h, float *t, float **f, float(*g)(int, float), float(*ak)(int, int, float, float))
void kendl1(float data1[], float data2[], unsigned long n, float *tau, float *z, float *prob)
void balanc(float **a, int n)
void amoeba(float **p, float y[], int ndim, float ftol, float(*funk)(float[]), int *iter)
void flmoon(int n, int nph, long *jd, float *frac)
void trnspt(int iorder[], int ncity, int n[])
void kermom(double w[], double y, int m)
void simpr(float y[], float dydx[], float dfdx[], float **dfdy, int n, float xs, float htot, int nstep, float yout[], void(*derivs)(float, float[], float[]))
data_t s[NROOTS]
Definition: decode_rs.h:75
void newt(float x[], int n, int *check, void(*vecfunc)(int, float[], float[]))
void mnbrak(float *ax, float *bx, float *cx, float *fa, float *fb, float *fc, float(*func)(float))
Definition: numerical.c:176
float ellf(float phi, float ak)
void sprspm(float sa[], unsigned long ija[], float sb[], unsigned long ijb[], float sc[], unsigned long ijc[])
float elle(float phi, float ak)
float i
Definition: nr.h:7
float bessy1(float x)
void gaujac(float x[], float w[], int n, float alf, float bet)
void toeplz(float r[], float x[], float y[], int n)
float bnldev(float pp, int n, long *idum)
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))
unsigned long * right
Definition: nr.h:23
void ttest(float data1[], unsigned long n1, float data2[], unsigned long n2, float *t, float *prob)
void cyclic(float a[], float b[], float c[], float alpha, float beta, float r[], float x[], unsigned long n)
float probks(float alam)
void dfpmin(float p[], int n, float gtol, int *iter, float *fret, float(*func)(float[]), void(*dfunc)(float[], float[]))
void mprove(float **a, float **alud, int n, int indx[], float b[], float x[])
float beta(float z, float w)
float midpnt(float(*func)(float), float a, float b, int n)
void cntab1(int **nn, int ni, int nj, float *chisq, float *df, float *prob, float *cramrv, float *ccc)
no change in intended resolving MODur00064 Corrected handling of bad ephemeris attitude resolving resolving GSFcd00179 Corrected handling of fill values for[Sensor|Solar][Zenith|Azimuth] resolving MODxl01751 Changed to validate LUT version against a value retrieved from the resolving MODxl02056 Changed to calculate Solar Diffuser angles without adjustment for estimated post launch changes in the MODIS orientation relative to incidentally resolving defects MODxl01766 Also resolves MODxl01947 Changed to ignore fill values in SCI_ABNORM and SCI_STATE rather than treating them as resolving MODxl01780 Changed to use spacecraft ancillary data to recognise when the mirror encoder data is being set by side A or side B and to change calculations accordingly This removes the need for seperate LUTs for Side A and Side B data it makes the new LUTs incompatible with older versions of the and vice versa Also resolves MODxl01685 A more robust GRing algorithm is being which will create a non default GRing anytime there s even a single geolocated pixel in a granule Removed obsolete messages from seed as required for compatibility with version of the SDP toolkit Corrected test output file names to end in per delivery and then split off a new MYD_PR03 pcf file for Aqua Added AssociatedPlatformInstrumentSensor to the inventory metadata in MOD01 mcf and MOD03 mcf Created new versions named MYD01 mcf and MYD03 where AssociatedPlatformShortName is rather than Terra The program itself has been changed to read the Satellite Instrument validate it against the input L1A and LUT and to use it determine the correct files to retrieve the ephemeris and attitude data from Changed to produce a LocalGranuleID starting with MYD03 if run on Aqua data Added the Scan Type file attribute to the Geolocation copied from the L1A and attitude_angels to radians rather than degrees The accumulation of Cumulated gflags was moved from GEO_validate_earth_location c to GEO_locate_one_scan c
Definition: HISTORY.txt:464
void sprsin(float **a, int n, float thresh, unsigned long nmax, float sa[], unsigned long ija[])
Definition: sprsin.c:3
float bessi0(float x)
void spear(float data1[], float data2[], unsigned long n, float *d, float *zd, float *probd, float *rs, float *probrs)
integer function julian(DAY, MONTH, YEAR)
Definition: julian.f:2
void sprstx(float sa[], unsigned long ija[], float x[], float b[], unsigned long n)
void stoerm(float y[], float d2y[], int nv, float xs, float htot, int nstep, float yout[], void(*derivs)(float, float[], float[]))
void relax(double **u, double **rhs, int n)
void rank(unsigned long n, unsigned long indx[], unsigned long irank[])
float trncst(float x[], float y[], int iorder[], int ncity, int n[])
void spread(float y, float yy[], unsigned long n, float x, int m)
void hufmak(unsigned long nfreq[], unsigned long nchin, unsigned long *ilong, unsigned long *nlong, huffcode *hcode)
void chint(float a, float b, float c[], float cint[], int n)
void piksr2(int n, float arr[], float brr[])
float gamdev(int ia, long *idum)
float rj(float x, float y, float z, float p)
int i
Definition: decode_rs.h:71
float qromo(float(*func)(float), float a, float b, float(*choose)(float(*)(float), float, float, int))
void indexx(unsigned long n, float arr[], unsigned long indx[])
void hypser(fcomplex a, fcomplex b, fcomplex c, fcomplex z, fcomplex *series, fcomplex *deriv)
void dsprsax(double sa[], unsigned long ija[], double x[], double b[], unsigned long n)
void moment(float data[], int n, float *ave, float *adev, float *sdev, float *var, float *skew, float *curt)
PGE01 indicating that PGE02 PGE01 V6 for and PGE01 V2 for MOD03 were used to produce the granule By convention adopted in all MODIS Terra PGE02 code versions are The fourth digit of the PGE02 version denotes the LUT version used to produce the granule The source of the metadata environment variable ProcessingCenter was changed from a QA LUT value to the Process Configuration A sign used in error in the second order term was changed to a
Definition: HISTORY.txt:424
void shootf(int n, float v[], float f[])
float qgaus(float(*func)(float), float a, float b)
void dfour1(double data[], unsigned long nn, int isign)
void rotate(float **r, float **qt, int n, int i, float a, float b)
void fdjac(int n, float x[], float fvec[], float **df, void(*vecfunc)(int, float[], float[]))
double anorm2(double **a, int n)
void resid(double **res, double **u, double **rhs, int n)
void cisi(float x, float *ci, float *si)
int k
Definition: decode_rs.h:73
float bessj1(float x)
void elmhes(float **a, int n)
double snrm(unsigned long n, double sx[], int itol)
float p[MODELMAX]
Definition: atrem_corl1.h:131
void tptest(float data1[], float data2[], unsigned long n, float *t, float *prob)
void pinvs(int ie1, int ie2, int je1, int jsf, int jc1, int k, float ***c, float **s)
void splie2(float x1a[], float x2a[], float **ya, int m, int n, float **y2a)
int32_t nb
Definition: atrem_corl1.h:132
void banbks(float **a, unsigned long n, int m1, int m2, float **al, unsigned long indx[], float b[])
void orthog(int n, float anu[], float alpha[], float beta[], float a[], float b[])
void ks2d1s(float x1[], float y1[], unsigned long n1, void(*quadvl)(float, float, float *, float *, float *, float *), float *d1, float *prob)
void polint(float xa[], float ya[], int n, float x, float *y, float *dy)
void arcmak(unsigned long nfreq[], unsigned long nchh, unsigned long nradd, arithcode *acode)
void airy(float x, float *ai, float *bi, float *aip, float *bip)
void matsub(double **a, double **b, double **c, int n)