Christian Schilling

Results 200 comments of Christian Schilling

I do not really understand this algorithm, but ignoring the center and only adding it in the end (which you do), you could exploit that the zonotope is centrally symmetric...

I reviewed this in #73. `d=0` should work as expected for the following base types: `BallInf`, `Ballp`, `HPolygon`, `HPolygonOpt`, `VPolygon`, `Hyperrectangle`, `Singleton`, `Zonotope` (and of course for all "operation" types)...

This changed in #2780 to: ```julia julia> overapproximate(rand(HPolygon) ∩ rand(Ball2), 1e-3) ERROR: MethodError: no method matching intersection(::HPolygon{Float64, Vector{Float64}}, ::Ball2{Float64, Vector{Float64}}) Closest candidates are: intersection(::AbstractHPolygon, ::AbstractHPolygon) at /home/christian/.julia/dev/LazySets/src/ConcreteOperations/intersection.jl:507 intersection(::AbstractHPolygon, ::AbstractHPolygon, ::Bool)...

I think your input is not bounded. `HPolytope` is a type that assumes boundedness, so `isbounded` returns `true` without checking. Create an `HPolyhedron` instead. ```julia julia> C = HPolytope([HalfSpace([0.0010489971808121915, 0.02305738123969779,...

I suggest that in `intersection` we first do two quick checks: `isdisjoint` and `issubset`. These are efficient. In both cases we can return a simpler set representation (the empty set...

Yes, the comment was only meant for this combination. So the proposal is to add `intersection(::AbstractZonotope, ::HalfSpace)` and the symmetric method.

@SebastianGuadalupe added this idea in #2733 :tada:

I do not fully understand the implementation anymore. It might be bugged. https://github.com/JuliaReach/LazySets.jl/blob/a40b78b1920e9c0851978890f39c5fc95ac7a985/src/Interfaces/AbstractPolyhedron_functions.jl#L224-L233 There are indices `i` and `j` but they may not be changed consistently. EDIT: Nope, the code...

> `z ⊕ MinkowskiSumArray([z, z])) -> MinkowskiSumArray` More specifically, this is the purpose of `flatten` mentioned in #269, which of course could be called from `simplify` as well.

This is already the standard: https://github.com/JuliaIntervals/IntervalArithmetic.jl/blob/2d1d64628fb893b0fd5c173af5a7a791d588ba48/src/display.jl#L14 ```julia julia> Interval(1, 2) Interval{Float64, IntervalArithmetic.Interval{Float64}}([1, 2]) julia> Interval(1, 2).dat [1, 2] julia> IntervalBox(1 .. 2, 3 .. 4) [1, 2] × [3, 4]...