Complement

Note that the complement of a convex set is generally not convex. Hence this set type is not part of the convex-set family LazySet.

LazySets.ComplementType
Complement{N, S<:LazySet{N}}

Type that represents the complement of a convex set.

Fields

  • X – convex set

Notes

Since X is assumed to be closed, unless X is empty or the universe, its complement is open (i.e., not closed). Since X is assumed to be closed, unless X is empty, the universe, or a half-space, its complement is not convex.

The complement of the complement is the original set again.

Examples

julia> B = BallInf(zeros(2), 1.);

julia> C = Complement(B)
Complement{Float64,BallInf{Float64,Array{Float64,1}}}(BallInf{Float64,Array{Float64,1}}([0.0, 0.0], 1.0))

julia> Complement(C)
BallInf{Float64,Array{Float64,1}}([0.0, 0.0], 1.0)
source
LazySets.dimMethod
dim(C::Complement)

Return the dimension of the complement of a convex set.

Input

  • C – complement of a convex set

Output

The dimension of the complement of a convex set.

source
Base.:∈Method
∈(x::AbstractVector, C::Complement)

Check whether a given point is contained in the complement of a convex set.

Input

  • x – point/vector
  • C – complement of a convex set

Output

true iff the vector is contained in the complement.

Algorithm

\[ x ∈ X^C ⟺ x ∉ X\]

source
Base.isemptyMethod
isempty(C::Complement)

Return if the complement of a convex set is empty or not.

Input

  • C – complement of a convex set

Output

false unless the original set is universal.

Algorithm

We use the isuniversal method.

source

The concrete complement can be computed with the function complement (mind the lowercase, as it is usual for functions).

LazySets.constraints_listMethod
constraints_list(C::Complement)

Return the list of constraints of the complement of a set.

Input

  • C – lazy set complement

Output

A vector of linear constraints.

Notes

The method requires that the list of constraints of the complemented set can be obtained. Then, each constraint is complemented and returned in the output array. The set union of such array corresponds to the concrete set complement.

source