Mercurial > repos > vipints > rdiff
comparison rDiff/src/locfit/Source/lfstruc.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 * Structures, typedefs etc used in Locfit | |
| 3 */ | |
| 4 | |
| 5 typedef struct { | |
| 6 double *wk, *coef, *xbar, *f; | |
| 7 jacobian xtwx; | |
| 8 int lwk, haspc; | |
| 9 } paramcomp; | |
| 10 #define haspc(pc) ((pc)->haspc) | |
| 11 | |
| 12 typedef struct { | |
| 13 double *x[MXDIM]; | |
| 14 double *y; | |
| 15 double *w; | |
| 16 double *b; | |
| 17 double *c; | |
| 18 double sca[MXDIM]; | |
| 19 double xl[2*MXDIM]; | |
| 20 int n, d, ord; | |
| 21 int sty[MXDIM]; | |
| 22 varname yname, xname[MXDIM], wname, bname, cname; | |
| 23 } lfdata; | |
| 24 #define resp(lfd,i) (((lfd)->y==NULL) ? 0.0 : (lfd)->y[i]) | |
| 25 #define base(lfd,i) (((lfd)->b==NULL) ? 0.0 : (lfd)->b[i]) | |
| 26 #define prwt(lfd,i) (((lfd)->w==NULL) ? 1.0 : (lfd)->w[i]) | |
| 27 #define cens(lfd,i) (((lfd)->c==NULL) ? 0 : (int)(lfd)->c[i]) | |
| 28 #define datum(lfd,i,j) ((lfd)->x[i][j]) | |
| 29 #define dvari(lfd,i) ((lfd)->x[i]) | |
| 30 | |
| 31 typedef struct { | |
| 32 int deflink, canlink, quasi, robust; | |
| 33 int (*vallink)(), (*family)(), (*initial)(), (*like)(), (*pcheck)(); | |
| 34 } family; | |
| 35 #define isquasi(fam) ((fam)->quasi) | |
| 36 #define isrobust(fam) ((fam)->robust) | |
| 37 extern int inllmix; /* flag needed to ensure correct behavior in llmix. */ | |
| 38 | |
| 39 typedef struct { | |
| 40 double nn, fixh, adpen; | |
| 41 int ker, kt; | |
| 42 int deg, deg0, p; | |
| 43 int acri; | |
| 44 int fam, lin; | |
| 45 family fami; | |
| 46 int ubas; | |
| 47 double (*vb)(); | |
| 48 void (*vbasis)(); | |
| 49 } smpar; | |
| 50 #define nn(sp) ((sp)->nn) | |
| 51 #define fixh(sp) ((sp)->fixh) | |
| 52 #define pen(sp) ((sp)->adpen) | |
| 53 #define ker(sp) ((sp)->ker) | |
| 54 #define kt(sp) ((sp)->kt) | |
| 55 #define deg(sp) ((sp)->deg) | |
| 56 #define deg0(sp) ((sp)->deg0) | |
| 57 #define npar(sp) ((sp)->p) | |
| 58 #define acri(sp) ((sp)->acri) | |
| 59 #define ubas(sp) ((sp)->ubas) | |
| 60 #define fam(sp) ((sp)->fam) | |
| 61 #define fami(sp) (&(sp)->fami) | |
| 62 #define link(sp) ((sp)->lin) | |
| 63 | |
| 64 typedef struct { | |
| 65 int deriv[MXDEG+2]; | |
| 66 int nd; | |
| 67 } deriv; | |
| 68 | |
| 69 typedef struct { | |
| 70 int ev; | |
| 71 double *sv; | |
| 72 double cut; | |
| 73 double fl[2*MXDIM]; | |
| 74 Sint *iwk, *ce, *s, *lo, *hi; | |
| 75 int liw, nce, ncm, maxk; | |
| 76 int mg[MXDIM]; | |
| 77 void (*espec)(); | |
| 78 } evstruc; | |
| 79 #define ev(evs) ((evs)->ev) | |
| 80 #define cut(evs) ((evs)->cut) | |
| 81 #define mk(evs) ((evs)->maxk) | |
| 82 #define mg(evs) ((evs)->mg) | |
| 83 | |
| 84 typedef struct { | |
| 85 double *xev, *coef, *nlx, *t0, *lik, *h, *deg, *kap; | |
| 86 int lev, lwk; | |
| 87 int d, dcor, geth, hasd; | |
| 88 int nv, nvm; | |
| 89 } fitpt; | |
| 90 #define evp(fp) ((fp)->xev) | |
| 91 #define evpt(fp,i) (&(fp)->xev[(i)*(fp)->d]) | |
| 92 #define evptx(fp,i,k) ((fp)->xev[(i)*(fp)->d+(k)]) | |
| 93 #define llk(fp) ((fp)->kap[0]) | |
| 94 #define df0(fp) ((fp)->kap[1]) | |
| 95 #define df1(fp) ((fp)->kap[2]) | |
| 96 #define rv(fp) ((fp)->kap[3]) | |
| 97 #define rsc(fp) ((fp)->kap[5]) | |
| 98 #define dc(fp) ((fp)->dcor) | |
| 99 #define geth(fp) ((fp)->geth) | |
| 100 | |
| 101 typedef struct { | |
| 102 int (*procv)(), keepv, keepc, nopc, isset; | |
| 103 void (*alloc)(), (*pp)(); | |
| 104 } module; | |
| 105 | |
| 106 typedef struct { | |
| 107 int lf_init_id; | |
| 108 lfdata lfd; | |
| 109 smpar sp; | |
| 110 evstruc evs; | |
| 111 fitpt fp; | |
| 112 deriv dv; | |
| 113 paramcomp pc; | |
| 114 module mdl; | |
| 115 } lfit; | |
| 116 #define LF_INIT_ID 34897239 |
