OSDN Git Service

Merge branch 'master' of git://git.sourceforge.jp/gitroot/eos/base
[eos/hostdependX86LINUX64.git] / include / nr2.h
1 #ifndef NR2_H
2 #define NR2_H
3
4 /* constant begin */
5 static float maxarg1;
6 static float maxarg2;
7 /* constant end */
8
9 /* prototype begin */
10 #define FMAX(a,b) (maxarg1=(a),maxarg2=(b),(maxarg1)>(maxarg2)?(maxarg1):(maxarg2))
11 #define SIGN(a,b) ((b)>0.0?fabs(a):-fabs(a))
12
13 /* Utilities */
14 extern void nrerror(char error_txt[]);
15 extern float* vector(long nl, long nh);
16 extern void free_vector(float* v, long nl, long nh);
17 extern int* ivector(long nl, long nh);
18 extern void free_ivector(int* v, long nl, long nh);
19 extern void nrerror(char error_txt[]);
20 extern float** matrix(long nrl, long nrh, long ncl, long nch);
21 extern void free_matrix(float** m, long nrl, long nrh, long ncl, long nch);
22
23 /* 2.1.c */
24 extern void gaussj(float **a, int n, float **b, int m);
25
26 /* 2.3.c LU Decomposition and Its Applications */
27 extern void ludcmp(float** a, int n, int* indx, float* d);
28 extern void lubksb(float** a, int n, int* indx, float b[]);
29
30
31 /* 6.1 */
32 extern float gammln(float xx);
33
34 /* 6.2.c */
35 extern float gammp(float a, float x);
36 extern float gammq(float a, float x);
37 extern void gser(float* gamser, float a, float x, float* gln);
38 extern void gcf (float* gammcf, float a, float x, float* gln);
39 extern float erff(float x);
40 extern float erffc(float x);
41
42 /* 6.4 */
43 extern float betai(float a, float b, float x);
44 extern float betacf(float a, float b, float x);
45
46
47 /* 8.2.c Sorting */
48 extern void sort(unsigned long n, float arr[]);
49 /* 8.5.c Sorting */
50 /*
51 extern float select(unsigned long k, unsigned long n, float arr[]);
52 */
53 extern float nrselect(unsigned long k, unsigned long n, float arr[]);
54 /*
55         11.1.c
56 */
57 extern void jacobi(float** a, int n, float d[], float** v, int* nrot);
58 extern void eigsrt(float d[], float** v, int n);
59
60 /* 13.10.c Wavelet Transforms */
61 extern void wt1(float a[], unsigned long n, int isign, void (*wtstep)(float[], unsigned long, int));
62 extern void daub4(float a[], unsigned long n, int isign);
63 extern void pwtset(int n);
64 extern void pwt(float a[], unsigned long n, int isign);
65 extern void wtn(float a[], unsigned long nn[], int ndim, int isign, void (*wtstep)(float[], unsigned long, int));
66
67 /* 10.1.c */
68 extern void mnbrak(float* ax, float *bx, float* cx, float* fa, float* fb, float* fc, float (*func)(float));
69
70 /* 10.2.c */
71 extern float brent(float ax, float bx, float cx, float (*f)(float), float tol, float* xmin);
72
73 /* 10.5.c */
74 extern void linmin(float p[], float xi[], int n, float *fret, float (*func)(float[]));
75
76 /* 10.6.c ConjugateGradientMethods */
77 /*
78 void frprmn()   Polak-Ribiere 
79 void frprmn2()  Fletcher-Reeeves 
80 */
81 extern void frprmn(float p[], int n, float ftol, int *iter, float* fret, 
82        float (*func)(float[]), void (*dfunc)(float[], float []));
83 extern void frprmn2(float p[], int n, float ftol, int *iter, float* fret, 
84        float (*func)(float[]), void (*dfunc)(float[], float []));
85 /* 15.2.c */
86 extern void fit(float x[], float y[], int ndata, float sig[], int mwt, float* a, float* b, float* siga, float* sigb, float* chi2, float* q);
87
88 /* 15.5.c */
89 extern void mrqmin(float x[], float y[], float sig[], int n, float a[], int ia[], int ma, float** covar, float** alpha, float* chisq, void (*func)(float x, float p[], float* y, float dyda[], int na), float *alamda); 
90
91 /* 15.7.c */
92 extern void medfit(float x[], float y[], int ndata, float* a, float* b, float* abdev);
93 extern float rofunc(float b);
94
95 /* prototype end */
96
97 #endif /* NR2_H */