1 #ifndef STAN_MCMC_HMC_HAMILTONIANS_UNIT_E_METRIC_HPP
2 #define STAN_MCMC_HMC_HAMILTONIANS_UNIT_E_METRIC_HPP
6 #include <boost/random/variate_generator.hpp>
7 #include <boost/random/normal_distribution.hpp>
13 template <
class Model,
class BaseRNG>
21 return 0.5 * z.
p.squaredNorm();
35 return 2 *
T(z) - z.
q.dot(z.
g);
42 return Eigen::VectorXd::Zero(this->
model_.num_params_r());
57 boost::variate_generator<BaseRNG&, boost::normal_distribution<> >
58 rand_unit_gaus(rng, boost::normal_distribution<>());
60 for (
int i = 0; i < z.
p.size(); ++i)
61 z.
p(i) = rand_unit_gaus();
Probability, optimization and sampling library.
void sample_p(unit_e_point &z, BaseRNG &rng)
double tau(unit_e_point &z)
double phi(unit_e_point &z)
Eigen::VectorXd dtau_dq(unit_e_point &z, interface_callbacks::writer::base_writer &info_writer, interface_callbacks::writer::base_writer &error_writer)
Point in a phase space with a base Euclidean manifold with unit metric.
base_writer is an abstract base class defining the interface for Stan writer callbacks.
double dG_dt(unit_e_point &z, interface_callbacks::writer::base_writer &info_writer, interface_callbacks::writer::base_writer &error_writer)
double T(unit_e_point &z)
double V(unit_e_point &z)
Eigen::VectorXd dphi_dq(unit_e_point &z, interface_callbacks::writer::base_writer &info_writer, interface_callbacks::writer::base_writer &error_writer)
unit_e_metric(const Model &model)
Eigen::VectorXd dtau_dp(unit_e_point &z)