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