11 double *x1,
double *x2,
12 double alpha1,
double alpha2,
double alpha3,
double alpha4,
13 double sigma1,
double sigma2,
double sigma3
15 double eps[2], xnew[2];
20 xnew[0] = alpha1*(*x1)+alpha3*(*x2)+sigma1*eps[0];
21 xnew[1] = alpha2*(*x1)+alpha4*(*x2)+sigma2*eps[0]+sigma3*eps[1];
31 double x1,
double x2,
double z1,
double z2,
32 double alpha1,
double alpha2,
double alpha3,
double alpha4,
33 double sigma1,
double sigma2,
double sigma3,
int give_log
38 eps[0] = z1-alpha1*x1-alpha3*x2;
39 eps[1] = z2-alpha2*x1-alpha4*x2;
43 eps[1] -= sigma2*eps[0];
46 val = dnorm(eps[0],0.0,1.0,1)+dnorm(eps[1],0.0,1.0,1)-log(sigma1)-log(sigma3);
47 return ((give_log) ? val : exp(val));
50#define ALPHA1 (p[parindex[0]])
51#define ALPHA2 (p[parindex[1]])
52#define ALPHA3 (p[parindex[2]])
53#define ALPHA4 (p[parindex[3]])
54#define SIGMA1 (p[parindex[4]])
55#define SIGMA2 (p[parindex[5]])
56#define SIGMA3 (p[parindex[6]])
57#define TAU (p[parindex[7]])
59#define X1 (stateindex[0])
60#define X2 (stateindex[1])
62#define Y1 (y[obsindex[0]])
63#define Y2 (y[obsindex[1]])
65#define V11 (f[vmatindex[0]])
66#define V21 (f[vmatindex[1]])
67#define V12 (f[vmatindex[2]])
68#define V22 (f[vmatindex[3]])
73 double *x,
const double *p,
74 const int *stateindex,
const int *parindex,
const int *covindex,
75 const double *covars,
double t,
double deltat
85 double *x,
double *z,
double t1,
double t2,
const double *p,
86 const int *stateindex,
const int *parindex,
const int *covindex,
90 err(
"ou2_pdf error: transitions must be consecutive");
97 double *f,
double *x,
double *p,
98 int *stateindex,
int *parindex,
int *covindex,
99 double *covars,
double t
108 double *lik,
double *y,
double *x,
double *p,
int give_log,
109 int *obsindex,
int *stateindex,
int *parindex,
int *covindex,
110 double *covar,
double t
112 double sd = fabs(
TAU);
114 f += (ISNA(
Y1)) ? 0.0 : dnorm(
Y1,x[
X1],sd,1);
115 f += (ISNA(
Y2)) ? 0.0 : dnorm(
Y2,x[
X2],sd,1);
116 *lik = (give_log) ? f : exp(f);
122 double *y,
double *x,
double *p,
123 int *obsindex,
int *stateindex,
int *parindex,
int *covindex,
124 double *covar,
double t
126 double sd = fabs(
TAU);
127 Y1 = rnorm(x[
X1],sd);
128 Y2 = rnorm(x[
X2],sd);
134 double *y,
double *x,
double *p,
135 int *obsindex,
int *stateindex,
int *parindex,
int *covindex,
136 double *covar,
double t
145 double *f,
double *x,
double *p,
146 int *vmatindex,
int *stateindex,
int *parindex,
int *covindex,
147 double *covar,
double t
149 double sd = fabs(
TAU);
void _ou2_step(double *x, const double *p, const int *stateindex, const int *parindex, const int *covindex, const double *covars, double t, double deltat)
static void sim_ou2(double *x1, double *x2, double alpha1, double alpha2, double alpha3, double alpha4, double sigma1, double sigma2, double sigma3)
void _ou2_vmeasure(double *f, double *x, double *p, int *vmatindex, int *stateindex, int *parindex, int *covindex, double *covar, double t)
void _ou2_emeasure(double *y, double *x, double *p, int *obsindex, int *stateindex, int *parindex, int *covindex, double *covar, double t)
void _ou2_dmeasure(double *lik, double *y, double *x, double *p, int give_log, int *obsindex, int *stateindex, int *parindex, int *covindex, double *covar, double t)
void _ou2_rmeasure(double *y, double *x, double *p, int *obsindex, int *stateindex, int *parindex, int *covindex, double *covar, double t)
static double dens_ou2(double x1, double x2, double z1, double z2, double alpha1, double alpha2, double alpha3, double alpha4, double sigma1, double sigma2, double sigma3, int give_log)
void _ou2_skel(double *f, double *x, double *p, int *stateindex, int *parindex, int *covindex, double *covars, double t)
void _ou2_pdf(double *f, double *x, double *z, double t1, double t2, const double *p, const int *stateindex, const int *parindex, const int *covindex, const double *covars)