Mercurial > repos > vipints > rdiff
comparison rDiff/src/locfit/Source/lfev.h @ 0:0f80a5141704
version 0.3 uploaded
author | vipints |
---|---|
date | Thu, 14 Feb 2013 23:38:36 -0500 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:0f80a5141704 |
---|---|
1 /* | |
2 * Copyright 1996-2006 Catherine Loader. | |
3 */ | |
4 #ifndef I_LFEV_H | |
5 #define I_LFEV_H | |
6 | |
7 #include "locf.h" | |
8 #include "tube.h" | |
9 | |
10 /* uncomment the following line to allow plug-in modules. */ | |
11 /*#define ALLOW_MODULES*/ | |
12 | |
13 #define DALP 0 | |
14 #define DFXH 1 | |
15 | |
16 typedef struct { | |
17 int ev; | |
18 double *sv; | |
19 double cut; | |
20 double fl[2*MXDIM]; | |
21 int *iwk, *ce, *s, *lo, *hi; | |
22 int liw, nce, ncm, maxk; | |
23 int mg[MXDIM]; | |
24 void (*espec)(); | |
25 } evstruc; | |
26 #define ev(evs) ((evs)->ev) | |
27 #define cut(evs) ((evs)->cut) | |
28 #define mk(evs) ((evs)->maxk) | |
29 #define mg(evs) ((evs)->mg) | |
30 | |
31 typedef struct { | |
32 double *xev, *wk, *coef, *nlx, *t0, *lik, *h, *deg, *kap; | |
33 int lev, lwk; | |
34 int d, dcor, geth, hasd; | |
35 int nv, nvm; | |
36 } fitpt; | |
37 #define evp(fp) ((fp)->xev) | |
38 #define evpt(fp,i) (&(fp)->xev[(i)*(fp)->d]) | |
39 #define evptx(fp,i,k) ((fp)->xev[(i)*(fp)->d+(k)]) | |
40 #define llk(fp) ((fp)->kap[0]) | |
41 #define df0(fp) ((fp)->kap[1]) | |
42 #define df1(fp) ((fp)->kap[2]) | |
43 #define rv(fp) ((fp)->kap[3]) | |
44 #define rsc(fp) ((fp)->kap[5]) | |
45 #define dc(fp) ((fp)->dcor) | |
46 #define geth(fp) ((fp)->geth) | |
47 | |
48 typedef struct { | |
49 int (*procv)(), keepv, keepc, nopc, isset, np; | |
50 void (*alloc)(); | |
51 void (*pproc)(); | |
52 double *params; | |
53 } module; | |
54 #define PROC_VERTEX(des,lf,i) (lf)->mdl.procv((des),(lf),(i)) | |
55 #define MODPARAMS(lf) ((lf)->mdl.params) | |
56 #define MODPARAM(lf,i) ((lf)->mdl.params[i]) | |
57 #define MODNPARAMS(lf) ((lf)->mdl.np) | |
58 #define PROCV(lf) (lf)->mdl.procv | |
59 #define ALLOC(lf) (lf)->mdl.alloc | |
60 #define PPROC(lf) (lf)->mdl.pproc | |
61 #define KEEPC(lf) (lf)->mdl.keepc | |
62 #define KEEPV(lf) (lf)->mdl.keepv | |
63 #define NOPC(lf) (lf)->mdl.nopc | |
64 | |
65 typedef struct { | |
66 int lf_init_id; | |
67 lfdata lfd; | |
68 smpar sp; | |
69 evstruc evs; | |
70 fitpt fp; | |
71 deriv dv; | |
72 paramcomp pc; | |
73 module mdl; | |
74 } lfit; | |
75 #define LF_INIT_ID 34897239 | |
76 #define NOBS(lf) ((lf)->lfd.n) | |
77 #define NVAR(lf) ((lf)->lfd.d) | |
78 #define NPAR(lf) ((lf)->sp.p) | |
79 | |
80 /* | |
81 * VVEC(lf,i) is storage vector for the i'th item. | |
82 * VVAL(lf,v,i) is the storage point for the i'th item when fitting at vertex v. | |
83 * should have 0 <= i < keepv; keepv defined when initializing module. | |
84 */ | |
85 #define VVEC(lf,i) (&(lf)->fp.wk[(i)*(lf)->fp.nvm]) | |
86 #define VVAL(lf,v,i) ((lf)->fp.wk[(i)*(lf)->fp.nvm+(v)]) | |
87 #define VECR(lf) ((lf)->kap) | |
88 | |
89 /* | |
90 * mi[MGETH] codes | |
91 * scb(), pointwise codes are 71,...,75. | |
92 * add 10 for simultaneous codes. | |
93 */ | |
94 #define GSTD 0 | |
95 #define GHAT 1 | |
96 #define GKAP 2 | |
97 #define GRBD 3 | |
98 #define GAMF 4 | |
99 #define GAMP 5 | |
100 #define GLSC 6 | |
101 #define GSMP 7 | |
102 #define GMIX 8 | |
103 #define GLM1 71 | |
104 #define GLM2 72 | |
105 #define GLM3 73 | |
106 #define GLM4 74 | |
107 #define GLDN 75 | |
108 | |
109 /* bandwidth criteria */ | |
110 #define BGCV 1 | |
111 #define BCP 2 | |
112 #define BIND 3 | |
113 | |
114 /* | |
115 * Evaluation structures | |
116 * EFITP special for `interpolation' at fit points | |
117 */ | |
118 #define ENULL 0 | |
119 #define ETREE 1 | |
120 #define EPHULL 2 | |
121 #define EDATA 3 | |
122 #define EGRID 4 | |
123 #define EKDTR 5 | |
124 #define EKDCE 6 | |
125 #define ECROS 7 | |
126 #define EPRES 8 | |
127 #define EXBAR 9 | |
128 #define ENONE 10 | |
129 #define ESPHR 11 | |
130 #define EFITP 50 | |
131 #define ESPEC 100 | |
132 | |
133 /* | |
134 * For prediction functions, what to predict? | |
135 * PCOEF -- coefficients PT0 -- influence function | |
136 * PNLX -- ||l(x)|| PBAND -- bandwidth h(x) | |
137 * PDEGR -- local poly. degree PLIK -- max. local likelihood | |
138 * PRDF -- local res. d.f. PVARI -- ||l(x)||^2 | |
139 */ | |
140 #define PCOEF 1 | |
141 #define PT0 2 | |
142 #define PNLX 3 | |
143 #define PBAND 4 | |
144 #define PDEGR 5 | |
145 #define PLIK 6 | |
146 #define PRDF 7 | |
147 #define PVARI 8 | |
148 | |
149 /* | |
150 * Residual Types | |
151 */ | |
152 #define RDEV 1 | |
153 #define RPEAR 2 | |
154 #define RRAW 3 | |
155 #define RLDOT 4 | |
156 #define RDEV2 5 | |
157 #define RLDDT 6 | |
158 #define RFIT 7 | |
159 #define RMEAN 8 | |
160 | |
161 /* band.c */ | |
162 extern void band(), kdeselect(), kdecri(), bselect(); | |
163 | |
164 /* dens_int.c */ | |
165 extern double dens_integrate(); | |
166 extern void dens_renorm(), lforder(); | |
167 | |
168 /* ev_atree.c */ | |
169 extern void atree_start(), atree_grow(), atree_guessnv(); | |
170 extern double atree_int(); | |
171 | |
172 /* ev_interp.c */ | |
173 extern double dointpoint(), cubintd(); | |
174 extern double linear_interp(), cubic_interp(), rectcell_interp(); | |
175 extern int exvval(); | |
176 extern void exvvalpv(), hermite2(); | |
177 | |
178 /* ev_kdtre.c */ | |
179 extern void kdtre_start(), kdtre_guessnv(); | |
180 extern double kdtre_int(); | |
181 | |
182 /* ev_sphere.c */ | |
183 extern void sphere_start(), sphere_guessnv(); | |
184 extern double sphere_int(); | |
185 | |
186 /* ev_main.c */ | |
187 extern void trchck(), guessnv(), lfit_alloc(), evstruc_alloc(), evstruc_init(); | |
188 extern void dataf(), gridf(), crossf(), xbarf(), preset(); | |
189 extern int findpt(), newsplit(), lfit_reqd(), evstruc_reqi(); | |
190 extern int lfevstr(); | |
191 | |
192 /* ev_trian.c */ | |
193 extern void triang_start(), triang_grow(), triang_guessnv(); | |
194 extern double triang_int(); | |
195 | |
196 /* fitted.c */ | |
197 extern void fitted(); | |
198 extern double resid(); | |
199 extern int restyp(); | |
200 | |
201 /* frend.c */ | |
202 extern void ressumm(); | |
203 extern double rss(); | |
204 | |
205 /* lf_dercor.c */ | |
206 extern void dercor(); | |
207 | |
208 /* pcomp.c */ | |
209 extern double addparcomp(); | |
210 extern void compparcomp(), subparcomp(), subparcomp2(), pcchk(); | |
211 extern int pc_reqd(), noparcomp(); | |
212 | |
213 /* preplot.c */ | |
214 extern void preplot(), cpreplot(); | |
215 extern int setpppoints(), ppwhat(); | |
216 | |
217 /* procv.c */ | |
218 extern int procv_nov(), procv_var(); | |
219 | |
220 /* startlf.c */ | |
221 extern void set_flim(), set_scales(), nstartlf(), startlf(), lfit_init(); | |
222 extern void fitoptions(), clocfit(), endfit(), startmodule(); | |
223 extern int nofit(), initmodule(); | |
224 | |
225 extern void initsimple(), initstd(), inithatm(), initgam(), initallcf(); | |
226 extern void initlscv(), initrband(), initscb(), initkappa(), initvord(); | |
227 | |
228 /* modkappa.c */ | |
229 extern int constants(); | |
230 | |
231 /* modrband.c */ | |
232 extern void rband(); | |
233 | |
234 /* modstd.c */ | |
235 extern int procvstd(); | |
236 #endif /* define I_LFEV_H */ |