6#define Beta (__p[__parindex[0]])
7#define gamma (__p[__parindex[1]])
8#define psi (__p[__parindex[2]])
9#define chi (__p[__parindex[3]])
10#define omega (__p[__parindex[4]])
11#define S0 (__p[__parindex[5]])
12#define I0 (__p[__parindex[6]])
13#define R0 (__p[__parindex[7]])
14#define POP (__p[__parindex[8]])
15#define S (__x[__stateindex[0]])
16#define I (__x[__stateindex[1]])
17#define R (__x[__stateindex[2]])
18#define ll (__x[__stateindex[3]])
19#define ellI (__x[__stateindex[4]])
20#define node (__x[__stateindex[5]])
23 event_rates(__x,__p,t, \
24 __stateindex,__parindex,__covindex, \
25 __covars,rate,&penalty) \
32 const int *__stateindex,
33 const int *__parindex,
34 const int *__covindex,
35 const double *__covars,
39 double event_rate = 0;
48 event_rate += (*rate = alpha*(1-disc)); rate++;
49 *penalty += alpha*disc;
53 event_rate += (*rate = alpha); rate++;
60 event_rate += (*rate = alpha); rate++;
64 assert(R_FINITE(event_rate));
74 const int *__stateindex,
75 const int *__parindex,
76 const int *__covindex,
77 const double *__covars
95 const int *__stateindex,
96 const int *__parindex,
97 const int *__covindex,
98 const double *__covars,
102 double tstep = 0.0, tmax = t + dt;
106 int parent = (int) nearbyint(
node);
111 assert(parent<=nnode);
117 switch (nodetype[parent]) {
126 if (sat[parent] == 1) {
128 }
else if (sat[parent] == 0) {
148 assert(sat[parent]==2);
152 ll -= log(
I*(
I-1)/2);
165 tstep = exp_rand()/event_rate;
167 while (t + tstep < tmax) {
169 assert(event>=0 && event<
nrate);
187 tstep = exp_rand()/event_rate;
195# define lik (__lik[0])
205 const int *__obsindex,
206 const int *__stateindex,
207 const int *__parindex,
208 const int *__covindex,
209 const double *__covars,
213 lik = (give_log) ?
ll : exp(
ll);
get_userdata_int_t * get_userdata_int
static int rcateg(double erate, double *rate, int nrate)
void sirs_dmeas(double *__lik, const double *__y, const double *__x, const double *__p, int give_log, const int *__obsindex, const int *__stateindex, const int *__parindex, const int *__covindex, const double *__covars, double t)
Measurement model likelihood (dmeasure).
static double event_rates(double *__x, const double *__p, double t, const int *__stateindex, const int *__parindex, const int *__covindex, const double *__covars, double *rate, double *penalty)
void sirs_rinit(double *__x, const double *__p, double t, const int *__stateindex, const int *__parindex, const int *__covindex, const double *__covars)
Latent-state initializer (rinit).
void sirs_gill(double *__x, const double *__p, const int *__stateindex, const int *__parindex, const int *__covindex, const double *__covars, double t, double dt)