File crhmc_walk.hpp
-
struct CRHMCWalk
-
template<typename NT, typename OracleFunctor>
struct parameters -
Public Functions
-
inline parameters(OracleFunctor const &F, unsigned int dim, Opts &user_options, NT epsilon_ = 2)
-
inline parameters(OracleFunctor const &F, unsigned int dim, Opts &user_options, NT epsilon_ = 2)
-
template<typename Point, typename Polytope, typename RandomNumberGenerator, typename NegativeGradientFunctor, typename NegativeLogprobFunctor, typename Solver>
struct Walk Public Types
-
using Sampler = CRHMCWalk::Walk<Point, Polytope, RandomNumberGenerator, NegativeGradientFunctor, NegativeLogprobFunctor, Solver>
Public Functions
-
inline Walk(Polytope &Problem, Point &p, NegativeGradientFunctor &neg_grad_f, NegativeLogprobFunctor &neg_logprob_f, parameters<NT, NegativeGradientFunctor> ¶m)
-
inline MT get_direction_with_momentum(unsigned int const &dim, RandomNumberGenerator &rng, MT const &x, MT v, NT momentum = 0, bool normalize = true)
-
inline void disable_adaptive()
-
inline void apply(RandomNumberGenerator &rng, int walk_length = 1, bool metropolis_filter = true)
Public Members
-
parameters<NT, NegativeGradientFunctor> ¶ms
-
unsigned int dim
-
long total_discarded_samples = 0
-
long num_runs = 0
-
float discard_ratio = 0
-
float total_acceptance_prob = 0
-
float average_acceptance_prob = 0
-
bool accepted
-
bool update_modules
-
int simdLen
-
std::unique_ptr<auto_tuner<Sampler, RandomNumberGenerator>> module_update
-
using Sampler = CRHMCWalk::Walk<Point, Polytope, RandomNumberGenerator, NegativeGradientFunctor, NegativeLogprobFunctor, Solver>
-
template<typename NT, typename OracleFunctor>