ZonoOpt v2.0.1
Loading...
Searching...
No Matches
Point.hpp
Go to the documentation of this file.
1#ifndef ZONOOPT_POINT_HPP_
2#define ZONOOPT_POINT_HPP_
3
15#include "Zono.hpp"
16
17namespace ZonoOpt
18{
19
20using namespace detail;
21
27class Point final : public Zono
28{
29 public:
30
31 // constructor
36 Point() { sharp = true; }
37
43 explicit Point(const Eigen::Vector<zono_float, -1>& c);
44
45 // set method
51 void set(const Eigen::Vector<zono_float, -1>& c);
52
53 HybZono* clone() const override;
54
55 // display methods
56 std::string print() const override;
57
58 // do nothing methods
59 void remove_redundancy(int) override { /* do nothing */ }
60 void convert_form() override { /* do nothing */ }
61
62 protected:
63
64 Eigen::Vector<zono_float, -1> do_optimize_over(
65 const Eigen::SparseMatrix<zono_float>&, const Eigen::Vector<zono_float, -1>&, zono_float,
66 const OptSettings&, OptSolution*) const override;
67
68 Eigen::Vector<zono_float, -1> do_project_point(const Eigen::Vector<zono_float, -1>& x,
69 const OptSettings&, OptSolution*) const override;
70
71 zono_float do_support(const Eigen::Vector<zono_float, -1>& d, const OptSettings&,
72 OptSolution*) override;
73
74 bool do_contains_point(const Eigen::Vector<zono_float, -1>& x, const OptSettings&,
75 OptSolution*) const override;
76
77 Box do_bounding_box(const OptSettings&, OptSolution*) override;
78};
79
80} // namespace ZonoOpt
81
82#endif
Zonotope class for ZonoOpt library.
Box (i.e., interval vector) class.
Definition Intervals.hpp:718
Hybrid zonotope class.
Definition HybZono.hpp:44
bool sharp
flag to indicate whether the set is known to be sharp (i.e., convex relaxation = convex hull)
Definition HybZono.hpp:482
Eigen::Vector< zono_float, -1 > c
center vector
Definition HybZono.hpp:458
Point class.
Definition Point.hpp:28
Box do_bounding_box(const OptSettings &, OptSolution *) override
Definition Point.cpp:89
bool do_contains_point(const Eigen::Vector< zono_float, -1 > &x, const OptSettings &, OptSolution *) const override
Definition Point.cpp:79
void convert_form() override
Converts the set representation between -1-1 and 0-1 forms.
Definition Point.hpp:60
Eigen::Vector< zono_float, -1 > do_project_point(const Eigen::Vector< zono_float, -1 > &x, const OptSettings &, OptSolution *) const override
Definition Point.cpp:55
void set(const Eigen::Vector< zono_float, -1 > &c)
Reset point object with the given parameters.
Definition Point.cpp:18
void remove_redundancy(int) override
Removes redundant constraints and any unused generators.
Definition Point.hpp:59
std::string print() const override
Returns set information as a string.
Definition Point.cpp:39
Point()
Default constructor for Point class.
Definition Point.hpp:36
zono_float do_support(const Eigen::Vector< zono_float, -1 > &d, const OptSettings &, OptSolution *) override
Definition Point.cpp:67
HybZono * clone() const override
Clone method for polymorphic behavior.
Definition Point.cpp:13
Eigen::Vector< zono_float, -1 > do_optimize_over(const Eigen::SparseMatrix< zono_float > &, const Eigen::Vector< zono_float, -1 > &, zono_float, const OptSettings &, OptSolution *) const override
Definition Point.cpp:48
Zonotope class.
Definition Zono.hpp:33
#define zono_float
Defines the floating-point type used in ZonoOpt.
Definition ZonoOpt.hpp:45
Definition ZonoOpt.hpp:58
Settings for optimization routines in ZonoOpt library.
Definition SolverDataStructures.hpp:26
Solution data structure for optimization routines in ZonoOpt library.
Definition SolverDataStructures.hpp:153