Class two_sided_barrier

template<typename Point>
class two_sided_barrier

A two sided barrier used by crhmc sampler.

Template Parameters:

Point – Point Type

Public Functions

inline void set_bound(VT const &_lb, VT const &_ub)
inline two_sided_barrier(VT const &_lb, VT const &_ub, int _vdim = 1)
inline two_sided_barrier()
inline VT gradient(VT const &x)
inline VT hessian(VT const &x)
inline MT hessian(MT const &x)
inline MT tensor(MT const &x)
inline MT quadratic_form_gradient(MT const &x, MT const &u)
inline VT quadratic_form_gradient(VT const &x, VT const &u)
inline NT step_size(VT const &x, VT const &v)
inline VT boundary_distance(VT const &x)
inline bool feasible(VT const &x)
inline VT feasible(MT const &x)
inline std::pair<VT, VT> analytic_center_oracle(VT const &x)
inline std::pair<VT, VT> lewis_center_oracle(VT const &x, VT const &w)
inline std::pair<VT, VT> boundary(VT const &x)

Public Members

VT lb
VT ub
int vdim
int n
std::vector<int> upperIdx
std::vector<int> lowerIdx
std::vector<int> freeIdx
VT center
const NT max_step = 1e16
const NT regularization_constant = 1e-20
const NT unbounded_center_coord = 1e6
MT extraHessian
const NT inf = std::numeric_limits<NT>::infinity()