5 #include "auxiliary_pf.h" 9 template<
size_t nparts,
size_t dimx,
size_t dimy,
typename resampT>
13 using ssv = Eigen::Matrix<double, dimx, 1>;
14 using osv = Eigen::Matrix<double, dimy, 1>;
24 svol_apf(
const double &phi,
const double &beta,
const double &sigma);
27 double logMuEv (
const ssv &x1 );
28 ssv
propMu (
const ssv &xtm1 );
29 ssv
q1Samp (
const osv &y1);
30 ssv
fSamp (
const ssv &xtm1);
31 double logQ1Ev (
const ssv &x1,
const osv &y1);
32 double logGEv (
const osv &yt,
const ssv &xt);
37 template<
size_t nparts,
size_t dimx,
size_t dimy,
typename resampT>
40 , m_phi(phi), m_beta(beta), m_sigma(sigma)
45 template<
size_t nparts,
size_t dimx,
size_t dimy,
typename resampT>
48 return rveval::evalUnivNorm(x1(0),
50 m_sigma/std::sqrt(1.0 - m_phi*m_phi),
55 template<
size_t nparts,
size_t dimx,
size_t dimy,
typename resampT>
62 template<
size_t nparts,
size_t dimx,
size_t dimy,
typename resampT>
66 x1samp(0) = m_stdNormSampler.
sample() * m_sigma / std::sqrt(1.-m_phi*m_phi);
71 template<
size_t nparts,
size_t dimx,
size_t dimy,
typename resampT>
75 xtsamp(0) = m_phi * xtm1(0) + m_stdNormSampler.
sample() * m_sigma;
80 template<
size_t nparts,
size_t dimx,
size_t dimy,
typename resampT>
83 return rveval::evalUnivNorm(x1(0), 0.0, m_sigma/std::sqrt(1.0 - m_phi*m_phi),
true);
87 template<
size_t nparts,
size_t dimx,
size_t dimy,
typename resampT>
90 return rveval::evalUnivNorm(yt(0),
92 m_beta * std::exp(.5*xt(0)),
double logGEv(const osv &yt, const ssv &xt)
Evaluates the log of g.
Definition: svol_apf.h:88
A base-class for Auxiliary Particle Filtering. Filtering only, no smoothing.
Definition: auxiliary_pf.h:27
Definition: svol_apf.h:10
ssv fSamp(const ssv &xtm1)
Samples from f.
Definition: svol_apf.h:72
double logQ1Ev(const ssv &x1, const osv &y1)
Evaluates the log of q1.
Definition: svol_apf.h:81
all rv samplers must inherit from this.
double logMuEv(const ssv &x1)
Evaluates the log of mu.
Definition: svol_apf.h:46
A class that performs sampling from a univariate Normal distribution.
Definition: rv_samp.h:51
ssv propMu(const ssv &xtm1)
Evaluates the proposal distribution taking a Eigen::Matrix<double,dimx,1> from the previous time's st...
Definition: svol_apf.h:56
double sample()
Draws a random number.
ssv q1Samp(const osv &y1)
Samples from q1.
Definition: svol_apf.h:63