Stan  2.5.0
probability, sampling & optimization
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
expl_leapfrog.hpp
Go to the documentation of this file.
1 #ifndef STAN__MCMC__EXPL__LEAPFROG__BETA
2 #define STAN__MCMC__EXPL__LEAPFROG__BETA
3 
6 
7 namespace stan {
8 
9  namespace mcmc {
10 
11  template <typename H, typename P>
12  class expl_leapfrog: public base_leapfrog<H, P> {
13 
14  public:
15 
16  expl_leapfrog(std::ostream* o=0): base_leapfrog<H, P>(o) {};
17 
18  void begin_update_p(P& z, H& hamiltonian, double epsilon) {
19  z.p -= epsilon * hamiltonian.dphi_dq(z);
20  }
21 
22  void update_q(P& z, H& hamiltonian, double epsilon) {
23  Eigen::Map<Eigen::VectorXd> q(&(z.q[0]), z.q.size());
24  q += epsilon * hamiltonian.dtau_dp(z);
25  }
26 
27  void end_update_p(P& z, H& hamiltonian, double epsilon) {
28  z.p -= epsilon * hamiltonian.dphi_dq(z);
29  }
30 
31  };
32 
33  } // mcmc
34 
35 } // stan
36 
37 
38 #endif
void update_q(P &z, H &hamiltonian, double epsilon)
expl_leapfrog(std::ostream *o=0)
void begin_update_p(P &z, H &hamiltonian, double epsilon)
void end_update_p(P &z, H &hamiltonian, double epsilon)

     [ Stan Home Page ] © 2011–2014, Stan Development Team.