SymmetricIntervalHull

Symmetric interval hull (SymmetricIntervalHull)

SymmetricIntervalHull{N<:Real, S<:LazySet{N}} <: AbstractHyperrectangle{N}

Type that represents the symmetric interval hull of a compact convex set.

Fields

  • X – compact convex set
  • cache – partial storage of already computed bounds, organized as mapping from dimension to tuples (bound, valid), where valid is a flag indicating if the bound entry has been computed

Notes

The symmetric interval hull can be computed with $2n$ support vector queries of unit vectors, where $n$ is the dimension of the wrapped set (i.e., two queries per dimension). When asking for the support vector for a direction $d$, one needs $2k$ such queries, where $k$ is the number of non-zero entries in $d$.

However, if one asks for many support vectors in a loop, the number of computations may exceed $2n$. To be most efficient in such cases, this type stores the intermediately computed bounds in the cache field.

The set X must be compact.

source
LazySets.dimMethod.
dim(sih::SymmetricIntervalHull)

Return the dimension of a symmetric interval hull of a convex set.

Input

  • sih – symmetric interval hull of a convex set

Output

The ambient dimension of the symmetric interval hull of a convex set.

source
LazySets.σMethod.
σ(d::AbstractVector{N}, sih::SymmetricIntervalHull{N}) where {N<:Real}

Return the support vector of a symmetric interval hull of a convex set in a given direction.

Input

  • d – direction
  • sih – symmetric interval hull of a convex set

Output

The support vector of the symmetric interval hull of a convex set in the given direction. If the direction has norm zero, the origin is returned.

Algorithm

For each non-zero entry in d we need to either look up the bound (if it has been computed before) or compute it, in which case we store it for future queries. One such computation just asks for the support vector of the underlying set for both the positive and negative unit vector in the respective dimension.

source
LazySets.centerMethod.
center(sih::SymmetricIntervalHull{N}) where {N<:Real}

Return the center of a symmetric interval hull of a convex set.

Input

  • sih – symmetric interval hull of a convex set

Output

The origin.

source
radius_hyperrectangle(sih::SymmetricIntervalHull{N}) where {N<:Real}

Return the box radius of a symmetric interval hull of a convex set in every dimension.

Input

  • sih – symmetric interval hull of a convex set

Output

The box radius of the symmetric interval hull of a convex set.

Notes

This function computes the symmetric interval hull explicitly.

source
radius_hyperrectangle(sih::SymmetricIntervalHull{N},
                      i::Int) where {N<:Real}

Return the box radius of a symmetric interval hull of a convex set in a given dimension.

Input

  • sih – symmetric interval hull of a convex set
  • i – dimension of interest

Output

The radius in the given dimension. If it was computed before, this is just a look-up, otherwise it requires two support vector computations.

source

Inherited from LazySet:

Inherited from AbstractPolytope:

Inherited from AbstractCentrallySymmetricPolytope:

Inherited from AbstractZonotope:

Inherited from AbstractHyperrectangle: