1#ifndef ZONOOPT_ZONO_HPP_
2#define ZONOOPT_ZONO_HPP_
20using namespace detail;
50 Zono(
const Eigen::SparseMatrix<zono_float>&
G,
const Eigen::Vector<zono_float, -1>&
c,
64 void set(
const Eigen::SparseMatrix<zono_float>&
G,
const Eigen::Vector<zono_float, -1>&
c,
93 std::string
print()
const override;
125std::unique_ptr<Zono>
make_regular_zono_2D(
zono_float radius,
int n_sides,
bool outer_approx=
false,
const Eigen::Vector<zono_float, 2>& c=Eigen::Vector<zono_float, 2>::Zero());
Constrained zonotope class for ZonoOpt library.
Box (i.e., interval vector) class.
Definition Intervals.hpp:718
Constrained zonotope class.
Definition ConZono.hpp:33
Hybrid zonotope class.
Definition HybZono.hpp:44
bool zero_one_form
flag to indicate whether the set is in 0-1 or -1-1 form
Definition HybZono.hpp:479
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
Eigen::SparseMatrix< zono_float > G
generator matrix G = [Gc, Gb]
Definition HybZono.hpp:440
Zonotope class.
Definition Zono.hpp:33
bool do_is_empty(const OptSettings &, OptSolution *) const override
Definition Zono.cpp:80
std::string print() const override
Returns set information as a string.
Definition Zono.cpp:68
zono_float do_support(const Eigen::Vector< zono_float, -1 > &d, const OptSettings &, OptSolution *) override
Definition Zono.cpp:180
HybZono * clone() const override
Clone method for polymorphic behavior.
Definition Zono.cpp:14
std::unique_ptr< Zono > reduce_order(int n_o)
Perform zonotope order reduction.
Definition Zono.cpp:108
void set(const Eigen::SparseMatrix< zono_float > &G, const Eigen::Vector< zono_float, -1 > &c, bool zero_one_form=false)
Reset zonotope object with the given parameters.
Definition Zono.cpp:19
zono_float get_volume()
Get volume of zonotope.
Definition Zono.cpp:194
Box do_bounding_box(const OptSettings &, OptSolution *) override
Definition Zono.cpp:88
Zono()
Default constructor for Zono class.
Definition Zono.hpp:41
void convert_form() override
Converts the set representation between -1-1 and 0-1 forms.
Definition Zono.cpp:47
#define zono_float
Defines the floating-point type used in ZonoOpt.
Definition ZonoOpt.hpp:45
std::unique_ptr< Zono > interval_2_zono(const Box &box)
Builds a zonotope from a Box object.
Definition PolymorphicFunctions.cpp:1559
std::unique_ptr< Zono > make_regular_zono_2D(zono_float radius, int n_sides, bool outer_approx=false, const Eigen::Vector< zono_float, 2 > &c=Eigen::Vector< zono_float, 2 >::Zero())
Builds a 2D regular zonotope with a given radius and number of sides.
Definition PolymorphicFunctions.cpp:1578
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