Stan  2.10.0
probability, sampling & optimization
expl_leapfrog.hpp
Go to the documentation of this file.
1 #ifndef STAN_MCMC_HMC_INTEGRATORS_EXPL_LEAPFROG_HPP
2 #define STAN_MCMC_HMC_INTEGRATORS_EXPL_LEAPFROG_HPP
3 
4 #include <stan/math/prim/mat/fun/Eigen.hpp>
6 
7 namespace stan {
8  namespace mcmc {
9 
10  template <class Hamiltonian>
11  class expl_leapfrog : public base_leapfrog<Hamiltonian> {
12  public:
14  : base_leapfrog<Hamiltonian>() {}
15 
17  typename Hamiltonian::PointType& z,
18  Hamiltonian& hamiltonian, double epsilon,
21  z.p -= epsilon * hamiltonian.dphi_dq(z, info_writer, error_writer);
22  }
23 
24  void update_q(typename Hamiltonian::PointType& z,
25  Hamiltonian& hamiltonian, double epsilon,
28  z.q += epsilon * hamiltonian.dtau_dp(z);
29  hamiltonian.update_potential_gradient(z, info_writer, error_writer);
30  }
31 
33  typename Hamiltonian::PointType& z,
34  Hamiltonian& hamiltonian, double epsilon,
37  z.p -= epsilon * hamiltonian.dphi_dq(z, info_writer, error_writer);
38  }
39  };
40 
41  } // mcmc
42 } // stan
43 #endif
Probability, optimization and sampling library.
void begin_update_p(typename Hamiltonian::PointType &z, Hamiltonian &hamiltonian, double epsilon, interface_callbacks::writer::base_writer &info_writer, interface_callbacks::writer::base_writer &error_writer)
void end_update_p(typename Hamiltonian::PointType &z, Hamiltonian &hamiltonian, double epsilon, interface_callbacks::writer::base_writer &info_writer, interface_callbacks::writer::base_writer &error_writer)
base_writer is an abstract base class defining the interface for Stan writer callbacks.
Definition: base_writer.hpp:20
void update_q(typename Hamiltonian::PointType &z, Hamiltonian &hamiltonian, double epsilon, interface_callbacks::writer::base_writer &info_writer, interface_callbacks::writer::base_writer &error_writer)

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