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 */ |
