Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions include/convex_bodies/hpolytope.h
Original file line number Diff line number Diff line change
Expand Up @@ -388,7 +388,7 @@ class HPolytope {
NT min_plus = std::numeric_limits<NT>::max();
NT max_minus = std::numeric_limits<NT>::lowest();
VT sum_nom;
int m = num_of_hyperplanes(), facet;
int m = num_of_hyperplanes(), facet = -1;

Ar.noalias() = A * r.getCoefficients();
sum_nom = b - Ar;
Expand Down Expand Up @@ -432,7 +432,7 @@ class HPolytope {
NT mult;
//unsigned int i, j;
unsigned int j;
int m = num_of_hyperplanes(), facet;
int m = num_of_hyperplanes(), facet = -1;

Ar.noalias() += lambda_prev*Av;
sum_nom = b - Ar;
Expand Down Expand Up @@ -546,7 +546,7 @@ class HPolytope {
NT lamda = 0;
NT inner_prev = params.inner_vi_ak;
VT sum_nom;
int m = num_of_hyperplanes(), facet;
int m = num_of_hyperplanes(), facet = -1;
int skip = params.facet_prev;

Ar.noalias() += lambda_prev*Av;
Expand Down Expand Up @@ -649,7 +649,7 @@ class HPolytope {

NT lamda = 0;
VT sum_nom;
int m = num_of_hyperplanes(), facet;
int m = num_of_hyperplanes(), facet = -1;
int skip = params.facet_prev;

Ar.noalias() += lambda_prev*Av;
Expand Down
14 changes: 12 additions & 2 deletions include/random_walks/gaussian_ball_walk.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ struct Walk
}

Walk (Polytope& P, Point const& p, NT const& a,
RandomNumberGenerator &rng)
RandomNumberGenerator &rng) : _a_i(a)
{
_delta = compute_delta(P, a);
}
Expand All @@ -62,12 +62,21 @@ struct Walk
Point const& p,
NT const& a,
RandomNumberGenerator &rng,
parameters const& params)
parameters const& params) : _a_i(a)
{
_delta = params.set_delta ? params.m_L
: compute_delta(P, a);
}

template<typename BallPolytope>
inline void apply(BallPolytope const& P,
Point &p,
unsigned int const& walk_length,
RandomNumberGenerator& rng)
{
apply(P, p, _a_i, walk_length, rng);
}

template<typename BallPolytope>
inline void apply(BallPolytope const& P,
Point &p, // a point to start
Expand Down Expand Up @@ -100,6 +109,7 @@ struct Walk

private :
NT _delta;
NT _a_i;
};

};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
#define RANDOM_WALKS_GAUSSIAN_EXACT_HMC_WALK_HPP

#include "sampling/sphere.hpp"
#include "random_walks/compute_diameter.hpp"



Expand Down Expand Up @@ -62,7 +63,7 @@ struct Walk
::template compute<NT>(P);
_omega = std::sqrt(NT(2) * a_i);
_rho = 100 * P.dimension(); // upper bound for the number of reflections (experimental)
initialize(P, p, a_i, rng);
initialize(P, p, rng);
}

template <typename GenericPolytope>
Expand All @@ -74,7 +75,7 @@ struct Walk
::template compute<NT>(P);
_omega = std::sqrt(NT(2) * a_i);
_rho = 100 * P.dimension(); // upper bound for the number of reflections (experimental)
initialize(P, p, a_i, rng);
initialize(P, p, rng);
}

template
Expand All @@ -86,6 +87,18 @@ struct Walk
NT const& a_i,
unsigned int const& walk_length,
RandomNumberGenerator &rng)
{
apply(P, p, walk_length, rng);
}

template
<
typename GenericPolytope
>
inline void apply(GenericPolytope const& P,
Point& p,
unsigned int const& walk_length,
RandomNumberGenerator &rng)
{
unsigned int n = P.dimension();
NT T;
Expand Down Expand Up @@ -198,7 +211,6 @@ private :
>
inline void initialize(GenericPolytope const& P,
Point const& p,
NT const& a_i,
RandomNumberGenerator &rng)
{
unsigned int n = P.dimension();
Expand Down
21 changes: 18 additions & 3 deletions include/random_walks/gaussian_rdhr_walk.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -80,13 +80,25 @@ struct Walk
typedef typename Polytope::PointType Point;
typedef typename Point::FT NT;

Walk(Polytope&, Point const&, NT const&, RandomNumberGenerator&)
Walk(Polytope&, Point const&, NT const& a, RandomNumberGenerator&) : _a_i(a)
{}

Walk(Polytope&, Point const&, NT const&, RandomNumberGenerator&,
parameters&)
Walk(Polytope&, Point const&, NT const& a, RandomNumberGenerator&,
parameters&) : _a_i(a)
{}

template
<
typename BallPolytope
>
inline void apply(BallPolytope const& P,
Point &p,
unsigned int const& walk_length,
RandomNumberGenerator &rng)
{
apply(P, p, _a_i, walk_length, rng);
}

template
<
typename BallPolytope
Expand All @@ -110,6 +122,9 @@ struct Walk
chord_random_point_generator_exp(lower, upper, a_i, p, rng);
}
}

private:
NT _a_i;
};

};
Expand Down
4 changes: 2 additions & 2 deletions include/sampling/random_point_generators.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ struct GaussianRandomPointGenerator
Walk walk(P, p, a_i, rng);
for (unsigned int i=0; i<rnum; ++i)
{
walk.apply(P, p, a_i, walk_length, rng);
walk.apply(P, p, walk_length, rng);
policy.apply(randPoints, p);
}
}
Expand Down Expand Up @@ -184,7 +184,7 @@ struct GaussianRandomPointGenerator

for (unsigned int i=0; i<rnum; ++i)
{
walk.apply(P, p, a_i, walk_length, rng);
walk.apply(P, p, walk_length, rng);
policy.apply(randPoints, p);
}
}
Expand Down