Class OrderPolytope

template<typename Point>
class OrderPolytope

This class represents an order polytope parameterized by a point type

Template Parameters:

Point – Point type

Public Types

typedef Point PointType
typedef Point::FT NT
typedef Eigen::Matrix<NT, Eigen::Dynamic, 1> VT
typedef Eigen::Matrix<NT, Eigen::Dynamic, Eigen::Dynamic> MT

Public Functions

inline OrderPolytope(Poset const &poset)
inline unsigned int dimension() const
inline unsigned int num_of_hyperplanes() const
inline VT get_col(unsigned int i) const
inline Eigen::SparseMatrix<NT> get_mat() const
inline MT get_dense_mat() const
inline VT get_vec() const
inline bool is_normalized()
inline void print() const
inline VT vec_mult(VT const &x, bool transpose = false) const

multiply the sparse matrix A of the order polytope by a vector x if transpose = false : return Ax else if transpose = true : return (A^T)x

inline int is_in(Point const &p, NT tol = NT(0)) const
inline std::pair<Point, NT> ComputeInnerBall()
inline std::pair<NT, NT> line_intersect(Point const &r, Point const &v, bool pos = false) const
inline std::pair<NT, NT> line_intersect(Point const &r, Point const &v, VT &Ar, VT &Av, bool pos = false) const
inline std::pair<NT, NT> line_intersect(Point const &r, Point const &v, VT &Ar, VT &Av, NT const &lambda_prev, bool pos = false) const
inline std::pair<NT, int> line_positive_intersect(Point const &r, Point const &v, VT &Ar, VT &Av) const
inline std::pair<NT, int> line_positive_intersect(Point const &r, Point const &v, VT &Ar, VT &Av, NT const &lambda_prev) const
template<typename update_parameters>
inline std::pair<NT, int> line_first_positive_intersect(Point const &r, Point const &v, VT &Ar, VT &Av, update_parameters &params) const
template<typename update_parameters>
inline std::pair<NT, int> line_positive_intersect(Point const &r, Point const &v, VT &Ar, VT &Av, NT const &lambda_prev, MT const &AA, update_parameters &params) const
template<typename update_parameters>
inline std::pair<NT, int> line_positive_intersect(Point const &r, Point const &v, VT &Ar, VT &Av, NT const &lambda_prev, update_parameters &params) const
inline std::pair<NT, NT> line_intersect_coord(Point const &r, unsigned int const &rand_coord, VT &lamdas) const
inline std::pair<NT, NT> line_intersect_coord(Point const &r, Point const &r_prev, unsigned int const &rand_coord, unsigned int const &rand_coord_prev, VT &lamdas) const
template<typename T>
inline bool get_points_for_rounding(T const&)
inline void linear_transformIt(MT const &T)
inline void shift(VT const &c)
inline VT inner_point()
inline void normalize()
inline std::vector<NT> get_dists(NT const &radius) const
inline void compute_reflection(Point &v, NT dot_prod, unsigned int facet) const
inline void compute_reflection(Point &v, Point const&, unsigned int facet) const
template<typename update_parameters>
inline void compute_reflection(Point &v, Point const&, update_parameters const &params) const