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