Skip to content

Revisit simplification of lazy Intersection #3687

Open
@schillic

Description

In #2482, we changed that Intersection with a HalfSpace argument automatically simplifies, e.g., to HPolyhedron. While this sounded reasonable, it breaks the assumption that Intersection always results in an Intersection object. The library has at least one place where this is assumed:

cap = Intersection(R.X, polyhedron)
if filter_empty_sets
set_isempty!(cap, false) # intersection is known to not be empty

Here, cap can be an HPolyhedron instead of the expected Intersection.

julia> rectify(rand(HalfSpace))
ERROR: MethodError: no method matching set_isempty!(::HPolyhedron{Float64, Vector{Float64}}, ::Bool)

Should we undo this change and rather leave this behavior to the concrete intersection operation?

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions