Struct HamiltonianMonteCarloWalk::Walk

template<typename Point, typename Polytope, typename RandomNumberGenerator, typename NegativeGradientFunctor, typename NegativeLogprobFunctor, typename Solver>
struct Walk

Public Types

typedef std::vector<Point> pts
typedef Point::FT NT
typedef std::vector<Polytope*> bounds

Public Functions

inline Walk(Polytope *P, Point &p, NegativeGradientFunctor &neg_grad_f, NegativeLogprobFunctor &neg_logprob_f, parameters<NT, NegativeGradientFunctor> &param)
inline void apply(RandomNumberGenerator &rng, int walk_length = 1, bool metropolis_filter = true)
inline NT hamiltonian(Point &pos, Point &vel) const
inline void disable_adaptive()
inline void enable_adaptive()

Public Members

parameters<NT, NegativeGradientFunctor> &params
Solver *solver
unsigned int dim
long total_discarded_samples = 0
long num_runs = 0
float discard_ratio = 0
float total_acceptance_log_prob = 0
float average_acceptance_log_prob = 0
Point x
Point v
Point x_tilde
Point v_tilde
NegativeGradientFunctor &F
bool accepted
NT H
NT H_tilde
NT log_prob
NT u_logprob
NegativeLogprobFunctor &f