Class Zonotope

template<typename Point>
class Zonotope

This class describes a zonotope i.e. the Minkowski sum of a set of line segments

Template Parameters:

Point – Point type

Public Types

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

Public Functions

inline Zonotope()
inline Zonotope(const unsigned int &dim, const MT &_V, const VT &_b)
inline Zonotope(std::vector<std::vector<NT>> const &Pin)
template<typename T>
inline void copy_array(T *source, T *result, size_t count)
inline Zonotope &operator=(const Zonotope &other)
inline Zonotope &operator=(Zonotope &&other)
inline Zonotope(const Zonotope &other)
inline Zonotope(Zonotope &&other)
inline ~Zonotope()
inline void set_interior_point(Point const &r)
inline unsigned int dimension() const
inline int num_of_hyperplanes() const
inline unsigned int upper_bound_of_hyperplanes() const
inline void compute_eigenvectors(MT const &G)
inline MT get_T() const
inline MT get_Q0() const
inline MT get_sigma() const
inline int num_of_vertices() const
inline std::pair<Point, NT> InnerBall() const
inline void set_InnerBall(std::pair<Point, NT> const &innerball)
inline int num_of_generators() const
inline MT get_mat() const
inline VT get_vec() const
inline VT get_row(double generator_index) const
inline bool is_normalized()
inline void set_mat(MT const &V2)
inline void set_vec(VT const &b2)
inline Point get_mean_of_vertices() const
inline NT get_max_vert_norm() const
inline void print()
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) const
inline std::pair<NT, NT> line_intersect(Point const &r, Point const &v, VT const &Ar, VT const &Av) const
inline std::pair<NT, NT> line_intersect(Point const &r, Point const &v, VT const &Ar, VT const &Av, NT const &lambda_prev) const
inline std::pair<NT, int> line_positive_intersect(Point const &r, Point const &v, VT const &Ar, VT const &Av) const
inline std::pair<NT, int> line_positive_intersect(Point const &r, Point const &v, VT const &Ar, VT const &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, const unsigned int rand_coord, VT const &lamdas) const
inline std::pair<NT, NT> line_intersect_coord(Point const &r, Point const &r_prev, const unsigned int rand_coord, const unsigned int rand_coord_prev, VT const &lamdas) const
inline std::pair<NT, int> quadratic_positive_intersect(Point const &r, Point const &v, VT const &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 const &Ac, NT const &T, VT &Ar, VT &Av, NT const &lambda_prev, int &facet_prev) const
inline std::pair<NT, int> trigonometric_positive_intersect(Point const &r, Point const &v, NT const &omega, int &facet_prev) const
inline void shift(VT const &c)
inline std::vector<NT> get_dists(NT const &radius) const
inline void linear_transformIt(MT const &T)
template<typename T>
inline bool get_points_for_rounding(T const &randPoints)
inline void normalize()
inline void compute_reflection(Point &v, Point const &p, int const &facet) const
inline void resetFlags()
inline void update_position_internal(NT&)
template<typename update_parameters>
inline void compute_reflection(Point &v, const Point &p, update_parameters const &params) const