ZonoOpt v2.0.1
Loading...
Searching...
No Matches
Classes | Namespaces | Functions
HybZono.hpp File Reference

Hybrid zonotope class for ZonoOpt library. More...

#include "SparseMatrixUtilities.hpp"
#include "MI_Solver.hpp"
#include "MI_DataStructures.hpp"
#include "Inequality.hpp"
#include "Intervals.hpp"
#include <stdexcept>
#include <limits>
#include <set>

Go to the source code of this file.

Classes

class  ZonoOpt::HybZono
 Hybrid zonotope class. More...
 

Namespaces

namespace  ZonoOpt
 

Functions

std::unique_ptr< HybZonoZonoOpt::affine_map (const HybZono &Z, const Eigen::SparseMatrix< zono_float > &R, const Eigen::Vector< zono_float, -1 > &s=Eigen::Vector< zono_float, -1 >())
 Returns affine map R*Z + s of set Z.
 
std::unique_ptr< HybZonoZonoOpt::project_onto_dims (const HybZono &Z, const std::vector< int > &dims)
 Projects set Z onto the dimensions specified in dims.
 
std::unique_ptr< HybZonoZonoOpt::minkowski_sum (const HybZono &Z1, HybZono &Z2)
 Computes Minkowski sum of two sets Z1 and Z2.
 
std::unique_ptr< HybZonoZonoOpt::pontry_diff (HybZono &Z1, HybZono &Z2, bool exact=false)
 Computes the Pontryagin difference Z1 - Z2.
 
std::unique_ptr< HybZonoZonoOpt::intersection (const HybZono &Z1, HybZono &Z2, const Eigen::SparseMatrix< zono_float > &R=Eigen::SparseMatrix< zono_float >())
 Computes the generalized intersection of sets Z1 and Z2 over the matrix R.
 
std::unique_ptr< HybZonoZonoOpt::intersection_over_dims (const HybZono &Z1, HybZono &Z2, const std::vector< int > &dims)
 Computes the generalized intersection of sets Z1 and Z2 over the specified dimensions.
 
std::unique_ptr< HybZonoZonoOpt::halfspace_intersection (HybZono &Z, const Eigen::SparseMatrix< zono_float > &H, const Eigen::Vector< zono_float, -1 > &f, const Eigen::SparseMatrix< zono_float > &R=Eigen::SparseMatrix< zono_float >())
 Computes the intersection generalized intersection of set Z with halfspace H*x <= f over matrix R.
 
std::unique_ptr< HybZonoZonoOpt::union_of_many (const std::vector< std::shared_ptr< HybZono > > &Zs, bool preserve_sharpness=false, bool expose_indicators=false)
 Computes union of several sets.
 
std::unique_ptr< HybZonoZonoOpt::cartesian_product (const HybZono &Z1, HybZono &Z2)
 Computes the Cartesian product of two sets Z1 and Z2.
 
std::unique_ptr< HybZonoZonoOpt::constrain (HybZono &Z, const std::vector< Inequality > &ineqs, const Eigen::SparseMatrix< zono_float > &R=Eigen::SparseMatrix< zono_float >())
 Applies inequalities to set.
 
std::unique_ptr< HybZonoZonoOpt::set_diff (const HybZono &Z1, HybZono &Z2, zono_float delta_m=100, bool remove_redundancy=true, const OptSettings &settings=OptSettings(), OptSolution *solution=nullptr, int n_leaves=std::numeric_limits< int >::max(), int contractor_iter=100)
 Set difference Z1 \ Z2.
 
std::unique_ptr< HybZonoZonoOpt::vrep_2_hybzono (const std::vector< Eigen::Matrix< zono_float, -1, -1 > > &Vpolys, bool expose_indicators=false)
 Computes a hybrid zonotope from a union of vertex representation polytopes.
 
std::unique_ptr< HybZonoZonoOpt::zono_union_2_hybzono (std::vector< Zono > &Zs, bool expose_indicators=false)
 Computes a hybrid zonotope from a union of zonotopes.
 

Detailed Description

Hybrid zonotope class for ZonoOpt library.

Author
Josh Robbins (jrobb.nosp@m.ins@.nosp@m.psu.e.nosp@m.du)
Version
1.0
Date
2025-06-04