Struct BilliardShakeAndBakeWalk
-
struct BilliardShakeAndBakeWalk
Public Types
-
enum class ReflectionMode
Values:
-
enumerator Uniform
-
enumerator InverseExponential
-
enumerator Uniform
-
struct update_parameters
Public Functions
-
inline update_parameters()
Public Members
-
int facet_prev
-
bool hit_ball
-
double inner_vi_ak
-
double ball_inner_norm
-
double moved_dist
-
inline update_parameters()
-
template<typename Polytope, typename RandomNumberGenerator>
struct Walk : public ShakeAndBakeWalk::Walk<Polytope, RandomNumberGenerator> Public Types
-
using ShakeAndBake = ShakeAndBakeWalk::Walk<Polytope, RandomNumberGenerator>
-
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, Point const &p, RandomNumberGenerator &rng, int facet_idx, int nr, NT eps = kDefaultEpsilon, ReflectionMode mode = kDefaultMode)
-
inline NT get_epsilon() const noexcept
-
inline ReflectionMode get_mode() const noexcept
-
inline void apply(Polytope &P, unsigned int walk_len, RandomNumberGenerator &rng)
-
inline const Point &getCurrentPoint() const noexcept
-
inline void initialize(Polytope &P, const Point &boundary_pt, int facet_idx, RandomNumberGenerator &rng)
Public Static Attributes
-
static constexpr ReflectionMode kDefaultMode = ReflectionMode::InverseExponential
-
using ShakeAndBake = ShakeAndBakeWalk::Walk<Polytope, RandomNumberGenerator>
-
enum class ReflectionMode