Utility functions
LazySets.sign_cadlag — Function.sign_cadlag(x::N)::N where {N<:Real}This function works like the sign function but is $1$ for input $0$.
Input
x– real scalar
Output
$1$ if $x ≥ 0$, $-1$ otherwise.
Notes
This is the sign function right-continuous at zero (see càdlàg function). It can be used with vector-valued arguments via the dot operator.
Examples
julia> import LazySets.sign_cadlag
julia> sign_cadlag.([-0.6, 1.3, 0.0])
3-element Array{Float64,1}:
-1.0
1.0
1.0LazySets.@neutral — Macro.@neutral(SET, NEUT)Create functions to make a lazy set operation commutative with a given neutral element set type.
Input
SET– lazy set operation typeNEUT– set type for neutral element
Output
Nothing.
Notes
This macro generates four functions (possibly two more if @absorbing has been used in advance) (possibly two or four more if @declare_array_version has been used in advance).
Examples
@neutral(MinkowskiSum, N) creates at least the following functions:
neutral(::MinkowskiSum) = NMinkowskiSum(X, N) = XMinkowskiSum(N, X) = XMinkowskiSum(N, N) = N
LazySets.@absorbing — Macro.@absorbing(SET, ABS)Create functions to make a lazy set operation commutative with a given absorbing element set type.
Input
SET– lazy set operation typeABS– set type for absorbing element
Output
Nothing.
Notes
This macro generates four functions (possibly two more if @neutral has been used in advance) (possibly two or four more if @declare_array_version has been used in advance).
Examples
@absorbing(MinkowskiSum, A) creates at least the following functions:
absorbing(::MinkowskiSum) = AMinkowskiSum(X, A) = AMinkowskiSum(A, X) = AMinkowskiSum(A, A) = A
LazySets.@declare_array_version — Macro.@declare_array_version(SET, SETARR)Create functions to connect a lazy set operation with its array set type.
Input
SET– lazy set operation typeSETARR– array set type
Output
Nothing.
Notes
This macro generates eight functions (and possibly up to eight more if @neutral/@absorbing has been used in advance for the base and/or array set type).
Examples
@declare_array_version(MinkowskiSum, MinkowskiSumArray) creates at least the following functions:
array_constructor(::MinkowskiSum) = MinkowskiSumArrayis_array_constructor(::MinkowskiSumArray) = trueMinkowskiSum!(X, Y)MinkowskiSum!(X, arr)MinkowskiSum!(arr, X)MinkowskiSum!(arr1, arr2)
Helper functions for internal use only
LazySets.@neutral_absorbing — Macro.@neutral_absorbing(SET, NEUT, ABS)Create two functions to avoid method ambiguties for a lazy set operation with respect to neutral and absorbing element set types.
Input
SET– lazy set operation typeNEUT– set type for neutral elementABS– set type for absorbing element
Output
A quoted expression containing the function definitions.
Examples
@neutral_absorbing(MinkowskiSum, N, A) creates the following functions as quoted expressions:
MinkowskiSum(N, A) = AMinkowskiSum(A, N) = A
LazySets.@array_neutral — Macro.@array_neutral(FUN, NEUT, SETARR)Create two functions to avoid method ambiguities for a lazy set operation with respect to the neutral element set type and the array set type.
Input
FUN– function nameNEUT– set type for neutral elementSETARR– array set type
Output
A quoted expression containing the function definitions.
Examples
@array_neutral(MinkowskiSum, N, ARR) creates the following functions as quoted expressions:
MinkowskiSum(N, ARR) = ARRMinkowskiSum(ARR, N) = ARR
LazySets.@array_absorbing — Macro.@array_absorbing(FUN, ABS, SETARR)Create two functions to avoid method ambiguities for a lazy set operation with respect to the absorbing element set type and the array set type.
Input
FUN– function nameABS– set type for absorbing elementSETARR– array set type
Output
A quoted expression containing the function definitions.
Examples
@array_absorbing(MinkowskiSum, ABS, ARR) creates the following functions as quoted expressions:
MinkowskiSum(ABS, ARR) = ABSMinkowskiSum(ARR, ABS) = ABS