Mercurial > repos > vipints > rdiff
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rDiff/src/locfit/Source/lfev.h Thu Feb 14 23:38:36 2013 -0500 @@ -0,0 +1,236 @@ +/* + * Copyright 1996-2006 Catherine Loader. + */ +#ifndef I_LFEV_H +#define I_LFEV_H + +#include "locf.h" +#include "tube.h" + +/* uncomment the following line to allow plug-in modules. */ +/*#define ALLOW_MODULES*/ + +#define DALP 0 +#define DFXH 1 + +typedef struct { + int ev; + double *sv; + double cut; + double fl[2*MXDIM]; + int *iwk, *ce, *s, *lo, *hi; + int liw, nce, ncm, maxk; + int mg[MXDIM]; + void (*espec)(); +} evstruc; +#define ev(evs) ((evs)->ev) +#define cut(evs) ((evs)->cut) +#define mk(evs) ((evs)->maxk) +#define mg(evs) ((evs)->mg) + +typedef struct { + double *xev, *wk, *coef, *nlx, *t0, *lik, *h, *deg, *kap; + int lev, lwk; + int d, dcor, geth, hasd; + int nv, nvm; +} fitpt; +#define evp(fp) ((fp)->xev) +#define evpt(fp,i) (&(fp)->xev[(i)*(fp)->d]) +#define evptx(fp,i,k) ((fp)->xev[(i)*(fp)->d+(k)]) +#define llk(fp) ((fp)->kap[0]) +#define df0(fp) ((fp)->kap[1]) +#define df1(fp) ((fp)->kap[2]) +#define rv(fp) ((fp)->kap[3]) +#define rsc(fp) ((fp)->kap[5]) +#define dc(fp) ((fp)->dcor) +#define geth(fp) ((fp)->geth) + +typedef struct { + int (*procv)(), keepv, keepc, nopc, isset, np; + void (*alloc)(); + void (*pproc)(); + double *params; +} module; +#define PROC_VERTEX(des,lf,i) (lf)->mdl.procv((des),(lf),(i)) +#define MODPARAMS(lf) ((lf)->mdl.params) +#define MODPARAM(lf,i) ((lf)->mdl.params[i]) +#define MODNPARAMS(lf) ((lf)->mdl.np) +#define PROCV(lf) (lf)->mdl.procv +#define ALLOC(lf) (lf)->mdl.alloc +#define PPROC(lf) (lf)->mdl.pproc +#define KEEPC(lf) (lf)->mdl.keepc +#define KEEPV(lf) (lf)->mdl.keepv +#define NOPC(lf) (lf)->mdl.nopc + +typedef struct { + int lf_init_id; + lfdata lfd; + smpar sp; + evstruc evs; + fitpt fp; + deriv dv; + paramcomp pc; + module mdl; + } lfit; +#define LF_INIT_ID 34897239 +#define NOBS(lf) ((lf)->lfd.n) +#define NVAR(lf) ((lf)->lfd.d) +#define NPAR(lf) ((lf)->sp.p) + +/* + * VVEC(lf,i) is storage vector for the i'th item. + * VVAL(lf,v,i) is the storage point for the i'th item when fitting at vertex v. + * should have 0 <= i < keepv; keepv defined when initializing module. + */ +#define VVEC(lf,i) (&(lf)->fp.wk[(i)*(lf)->fp.nvm]) +#define VVAL(lf,v,i) ((lf)->fp.wk[(i)*(lf)->fp.nvm+(v)]) +#define VECR(lf) ((lf)->kap) + +/* + * mi[MGETH] codes + * scb(), pointwise codes are 71,...,75. + * add 10 for simultaneous codes. + */ +#define GSTD 0 +#define GHAT 1 +#define GKAP 2 +#define GRBD 3 +#define GAMF 4 +#define GAMP 5 +#define GLSC 6 +#define GSMP 7 +#define GMIX 8 +#define GLM1 71 +#define GLM2 72 +#define GLM3 73 +#define GLM4 74 +#define GLDN 75 + +/* bandwidth criteria */ +#define BGCV 1 +#define BCP 2 +#define BIND 3 + +/* + * Evaluation structures + * EFITP special for `interpolation' at fit points + */ +#define ENULL 0 +#define ETREE 1 +#define EPHULL 2 +#define EDATA 3 +#define EGRID 4 +#define EKDTR 5 +#define EKDCE 6 +#define ECROS 7 +#define EPRES 8 +#define EXBAR 9 +#define ENONE 10 +#define ESPHR 11 +#define EFITP 50 +#define ESPEC 100 + +/* + * For prediction functions, what to predict? + * PCOEF -- coefficients PT0 -- influence function + * PNLX -- ||l(x)|| PBAND -- bandwidth h(x) + * PDEGR -- local poly. degree PLIK -- max. local likelihood + * PRDF -- local res. d.f. PVARI -- ||l(x)||^2 + */ +#define PCOEF 1 +#define PT0 2 +#define PNLX 3 +#define PBAND 4 +#define PDEGR 5 +#define PLIK 6 +#define PRDF 7 +#define PVARI 8 + +/* + * Residual Types + */ +#define RDEV 1 +#define RPEAR 2 +#define RRAW 3 +#define RLDOT 4 +#define RDEV2 5 +#define RLDDT 6 +#define RFIT 7 +#define RMEAN 8 + +/* band.c */ +extern void band(), kdeselect(), kdecri(), bselect(); + +/* dens_int.c */ +extern double dens_integrate(); +extern void dens_renorm(), lforder(); + +/* ev_atree.c */ +extern void atree_start(), atree_grow(), atree_guessnv(); +extern double atree_int(); + +/* ev_interp.c */ +extern double dointpoint(), cubintd(); +extern double linear_interp(), cubic_interp(), rectcell_interp(); +extern int exvval(); +extern void exvvalpv(), hermite2(); + +/* ev_kdtre.c */ +extern void kdtre_start(), kdtre_guessnv(); +extern double kdtre_int(); + +/* ev_sphere.c */ +extern void sphere_start(), sphere_guessnv(); +extern double sphere_int(); + +/* ev_main.c */ +extern void trchck(), guessnv(), lfit_alloc(), evstruc_alloc(), evstruc_init(); +extern void dataf(), gridf(), crossf(), xbarf(), preset(); +extern int findpt(), newsplit(), lfit_reqd(), evstruc_reqi(); +extern int lfevstr(); + +/* ev_trian.c */ +extern void triang_start(), triang_grow(), triang_guessnv(); +extern double triang_int(); + +/* fitted.c */ +extern void fitted(); +extern double resid(); +extern int restyp(); + +/* frend.c */ +extern void ressumm(); +extern double rss(); + +/* lf_dercor.c */ +extern void dercor(); + +/* pcomp.c */ +extern double addparcomp(); +extern void compparcomp(), subparcomp(), subparcomp2(), pcchk(); +extern int pc_reqd(), noparcomp(); + +/* preplot.c */ +extern void preplot(), cpreplot(); +extern int setpppoints(), ppwhat(); + +/* procv.c */ +extern int procv_nov(), procv_var(); + +/* startlf.c */ +extern void set_flim(), set_scales(), nstartlf(), startlf(), lfit_init(); +extern void fitoptions(), clocfit(), endfit(), startmodule(); +extern int nofit(), initmodule(); + +extern void initsimple(), initstd(), inithatm(), initgam(), initallcf(); +extern void initlscv(), initrband(), initscb(), initkappa(), initvord(); + +/* modkappa.c */ +extern int constants(); + +/* modrband.c */ +extern void rband(); + +/* modstd.c */ +extern int procvstd(); +#endif /* define I_LFEV_H */