File shake_and_bake_walk.hpp

struct ShakeAndBakeWalk
template<typename Polytope, typename RandomNumberGenerator>
struct Walk

Subclassed by BilliardShakeAndBakeWalk::Walk< Polytope, RandomNumberGenerator >

Public Types

using Point = typename Polytope::PointType
using VT = typename Polytope::VT
using NT = typename Point::FT
using MT = typename Polytope::MT

Public Functions

template<typename GenericPolytope>
inline Walk(GenericPolytope &P, const Point &boundary_pt, int facet_idx, RandomNumberGenerator &rng, NT eps = kDefaultEpsilon)
inline NT get_epsilon() const noexcept
inline void apply(Polytope &P, unsigned int walk_len, RandomNumberGenerator &rng)
inline const Point &getCurrentPoint() const noexcept

Public Members

update_parameters _params

Public Static Attributes

static constexpr NT kDefaultEpsilon = NT(1e-10)

Protected Functions

inline void initialize(Polytope &P, const Point &boundary_pt, int facet_idx, RandomNumberGenerator &rng)

Protected Attributes

NT epsilon_ = {kDefaultEpsilon}
Point _p
VT _Ar
VT _Av
NT _lambda_hit
VT _A_row_k
struct update_parameters

Public Members

int facet_prev = -1
NT inner_vi_ak = NT(0)