nr.h
上传用户:szb0815
上传日期:2007-06-13
资源大小:338k
文件大小:26k
源码类别:

生物技术

开发平台:

C++ Builder

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