Class HPolytope
-
template<typename Point, typename MT_type = Eigen::Matrix<typename Point::FT, Eigen::Dynamic, Eigen::Dynamic>>
class HPolytope This class describes a polytope in H-representation or an H-polytope i.e. a polytope defined by a set of linear inequalities
- Template Parameters:
Point – Point type
Public Types
Public Functions
-
inline HPolytope()
-
template<typename T = DenseMT>
inline HPolytope(unsigned d_, DenseMT const &A_, VT const &b_, typename std::enable_if<!std::is_same<MT, T>::value, T>::type* = 0)
-
inline unsigned int dimension() const
-
inline int num_of_hyperplanes() const
-
inline int num_of_generators() const
-
inline bool is_normalized()
-
inline void print()
-
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 ¶ms) 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, DenseMT const &AA, update_parameters ¶ms) const
-
template<typename update_parameters, typename set_type, typename AA_type>
inline std::pair<NT, int> line_positive_intersect(Point const &r, VT &Ar, VT &Av, NT const &lambda_prev, set_type &distances_set, AA_type const &AA, update_parameters ¶ms) 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 ¶ms) const
-
template<typename Params>
inline std::pair<NT, int> sparse_line_positive_intersect(Point const &r_rounded, Point const &v_rounded, VT &Ar, VT &Av, Params ¶ms) const
-
template<typename Params>
inline std::pair<NT, int> sparse_line_positive_intersect(Point const &r_rounded, Point const &v_rounded, VT &Ar, VT &Av, NT lambda_prev, Params ¶ms) 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
-
inline std::pair<NT, int> get_positive_quadratic_root(Point const &r, Point const &v, VT &Ac, NT const &T, VT &Ar, VT &Av, int &facet_prev) const
-
inline std::pair<NT, int> quadratic_positive_intersect(Point const &r, Point const &v, VT &Ac, NT const &T, VT &Ar, VT &Av, int &facet_prev) const
-
inline std::pair<NT, int> quadratic_positive_intersect(Point const &r, Point const &v, VT &Ac, NT const &T, VT &Ar, VT &Av, NT const &lambda_prev, int &facet_prev) const
-
inline NT pick_first_intersection_time_with_boundary(NT const &lamda1, NT const &lamda2, int const ¤t_facet, int const &previous_facet) const
-
inline std::pair<NT, int> trigonometric_positive_intersect(Point const &r, Point const &v, NT const &omega, int &facet_prev) const
-
inline void normalize()
-
inline void resetFlags()
-
template<typename update_parameters>
inline void compute_reflection(Point &v, Point const&, update_parameters const ¶ms) const
-
template<typename Params>
inline void sparse_compute_reflection(Point &v_rounded, Params const ¶ms) const
-
template<typename update_parameters>
inline auto compute_reflection_abw_sparse(Point &v, Point &p, update_parameters const ¶ms) const
-
template<typename DenseSparseMT, typename update_parameters>
inline NT compute_reflection(Point &v, Point &p, NT &vEv, DenseSparseMT const &AE, VT const &AEA, update_parameters const ¶ms) const