Centrally symmetric polytopes (AbstractCentrallySymmetricPolytope)

A centrally symmetric polytope is a combination of two other interfaces: Centrally symmetric sets and Polytope.

LazySets.AbstractCentrallySymmetricPolytopeType
AbstractCentrallySymmetricPolytope{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
 Ball1
source

This interface requires to implement the required functions of both the AbstractCentrallySymmetric and AbstractPolytope interfaces:

LazySets.API.centerMethod
center(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.

source
LazySets.API.constraints_listMethod
constraints_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.

source
LazySets.API.vertices_listMethod
vertices_list(X::LazySet)

Compute a list of vertices of a polytopic set.

Input

  • X – polytopic set

Output

A list of the vertices of X.

source

This interface shares the following functions with AbstractCentrallySymmetric:

LazySets.API.an_elementMethod

Extended help

an_element(S::AbstractCentrallySymmetricPolytope)

Output

The center of the centrally symmetric set.

source
Base.extremaMethod

Extended 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).

source
Base.extremaMethod

Extended 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).

source
LazySets.API.isuniversalFunction

Extended 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.

source

Undocumented implementations shared with AbstractCentrallySymmetric:

Inherited from LazySet:

Inherited from ConvexSet:

Inherited from AbstractPolyhedron:

Inherited from AbstractPolytope:

Implementations