ZonoOpt v2.0.1
Loading...
Searching...
No Matches
Namespaces | Functions
PolymorphicFunctions.cpp File Reference
#include <stdexcept>
#include <algorithm>
#include <utility>
#include <memory>
#include <cmath>
#include "ZonoOpt.hpp"

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::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::pontry_diff (HybZono &Z1, HybZono &Z2, bool exact=false)
 Computes the Pontryagin difference Z1 - Z2.
 
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::zono_union_2_hybzono (std::vector< Zono > &Zs, bool expose_indicators=false)
 Computes a hybrid zonotope from a union of zonotopes.
 
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< ConZonoZonoOpt::vrep_2_conzono (const Eigen::Matrix< zono_float, -1, -1 > &Vpoly)
 Builds a constrained zonotope from a vertex representation polytope.
 
std::unique_ptr< ZonoZonoOpt::interval_2_zono (const Box &box)
 Builds a zonotope from a Box object.
 
std::unique_ptr< ZonoZonoOpt::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.