Centrally symmetric polytopes (AbstractCentrallySymmetricPolytope)
A centrally symmetric polytope is a combination of two other interfaces: Centrally symmetric sets and Polytope.
LazySets.AbstractCentrallySymmetricPolytope — TypeAbstractCentrallySymmetricPolytope{N} <: AbstractPolytope{N}Abstract type for centrally symmetric, polytopic sets. It combines the AbstractCentrallySymmetric and AbstractPolytope interfaces. Such a type combination is necessary as long as Julia does not support multiple inheritance.
Notes
Every concrete AbstractCentrallySymmetricPolytope must define the following AbstractCentrallySymmetric method, in addition to the AbstractPolytope methods:
center(::AbstractCentrallySymmetricPolytope)– return the center point
The subtypes of AbstractCentrallySymmetricPolytope (including abstract interfaces):
julia> subtypes(AbstractCentrallySymmetricPolytope)
2-element Vector{Any}:
AbstractZonotope
Ball1This interface requires to implement the required functions of both the AbstractCentrallySymmetric and AbstractPolytope interfaces:
LazySets.API.center — Methodcenter(X::LazySet)Compute the center of a centrally symmetric set.
Input
X– centrally symmetric set
Output
A vector with the center, or midpoint, of X.
LazySets.API.constraints_list — Methodconstraints_list(X::LazySet)Compute a list of linear constraints of a polyhedral set.
Input
X– polyhedral set
Output
A list of the linear constraints of X.
LazySets.API.vertices_list — Methodvertices_list(X::LazySet)Compute a list of vertices of a polytopic set.
Input
X– polytopic set
Output
A list of the vertices of X.
This interface shares the following functions with AbstractCentrallySymmetric:
LazySets.API.an_element — MethodExtended help
an_element(S::AbstractCentrallySymmetricPolytope)Output
The center of the centrally symmetric set.
Base.extrema — MethodExtended help
extrema(S::AbstractCentrallySymmetricPolytope)Notes
The result is equivalent to (low(S), high(S)).
Algorithm
We compute high(S) and then compute the lowest coordinates with the help of center(S) (which is assumed to be cheaper to obtain).
Base.extrema — MethodExtended help
extrema(S::AbstractCentrallySymmetricPolytope, i::Int)Notes
The result is equivalent to (low(S, i), high(S, i)).
Algorithm
We compute high(S, i) and then compute the lowest coordinates with the help of center(S, i) (which is assumed to be cheaper to obtain).
LazySets.API.isuniversal — FunctionExtended help
isuniversal(S::AbstractCentrallySymmetricPolytope, [witness]::Bool=false)Algorithm
A witness is obtained by computing the support vector in direction d = [1, 0, …, 0] and adding d on top.
Undocumented implementations shared with AbstractCentrallySymmetric:
Inherited from LazySet:
areachebyshev_center_radiuscomplementconcretizeconstraintsconvex_hullcopy(::Type{LazySet})diametereltypeeltypeisoperationispolytopicnormpolyhedronradiusrationalizerectifyreflectsingleton_listtosimplehreptriangulatetriangulate_facesverticesaffine_mapexponential_mapis_interior_pointlinear_mapsamplescaleρtranslatecartesian_productconvex_hullexact_sumisapprox==isequivalent⊂minkowski_difference
Inherited from ConvexSet:
Inherited from AbstractPolyhedron:
Inherited from AbstractPolytope: