LazySets.jl
LazySets.jl copied to clipboard
Generalize ConvexSet to LazySet
This is a fresh start of #1895 because since then there have been changes. Now that there is ConvexSet, it is easy to keep track of the places that need to be generalized. The goal is to replace ConvexSet by LazySet whenever possible and, if convexity is assumed, think about a more general implementation.
A short road map:
- Generalize the concrete set types and interfaces. We have to keep the
<: ConvexSetannotation of convex set types, at least for now for compatibility reasons (but I do not see a problem to permanently keep them). There are only three occurrences (apart fromConvexSet.jlof course), so this should be simple. - Check the lazy operations (moderate amount of work). We have to keep the
<: ConvexSetrestrictions of the arguments and structs for now for compatibility reasons (see below). - Define plot recipes for non-convex sets.
- Generalize the binary operations (lots of work).
When all of the above is done:
- Generalize the
ConvexSetrestrictions of lazy operations (both in the arguments and the structs).
Rough suggested order
- [x] Sets/Ball1.jl (#3050)
- [x] Sets/Ball2.jl (#3051)
- [x] Sets/BallInf.jl (#3063)
- [x] Sets/Ballp.jl (#3052)
- [ ] Sets/DensePolynomialZonotope.jl
- [x] Sets/Ellipsoid.jl (#3065)
- [x] Sets/EmptySet.jl (#3079)
- [x] Sets/HalfSpace.jl (#3081)
- [x] Sets/HParallelotope.jl (#3085)
- [ ] Sets/HPolygon.jl
- [ ] Sets/HPolygonOpt.jl
- [ ] Sets/HPolyhedron.jl
- [ ] Sets/HPolytope.jl
- [ ] Sets/Hyperplane.jl
- [ ] Sets/Hyperrectangle.jl
- [x] Sets/Interval.jl (#3084)
- [ ] Sets/Line.jl (#3086)
- [ ] Sets/Line2D.jl (#3088)
- [ ] Sets/LineSegment.jl (#3089)
- [ ] Sets/RotatedHyperrectangle.jl
- [ ] Sets/SimpleSparsePolynomialZonotope.jl
- [ ] Sets/Singleton.jl
- [ ] Sets/SparsePolynomialZonotope.jl
- [ ] Sets/Star.jl
- [ ] Sets/Universe.jl
- [ ] Sets/VPolygon.jl
- [ ] Sets/VPolytope.jl
- [ ] Sets/ZeroSet.jl
- [ ] Sets/Zonotope.jl (#3071, ...)
- [ ] Initialization/init_Polyhedra.jl
- [ ] Initialization/init_Javis.jl
- [ ] Utils/samples.jl
- [ ] Utils/helper_functions.jl
- [ ] Interfaces/AbstractSingleton.jl
- [ ] Interfaces/AbstractPolytope.jl
- [ ] Interfaces/AbstractStar.jl
- [ ] Interfaces/AbstractZonotope.jl
- [ ] Interfaces/AbstractPolyhedron.jl
- [ ] Interfaces/AbstractAffineMap.jl
- [ ] Interfaces/aliases.jl
- [ ] Interfaces/AbstractCentrallySymmetricPolytope.jl
- [ ] Interfaces/AbstractCentrallySymmetric.jl
- [ ] Interfaces/AbstractArraySet.jl
- [ ] Interfaces/AbstractPolygon.jl
- [ ] Interfaces/AbstractPolynomialZonotope.jl
- [ ] Interfaces/LazySet.jl
- [ ] Interfaces/AbstractHPolygon.jl
- [ ] Interfaces/AbstractPolyhedron_functions.jl
- [ ] Interfaces/AbstractHyperrectangle.jl
- [ ] Parallel/distribute.jl
- [ ] Parallel/box_approximations.jl
- [ ] Parallel/Parallel.jl
- [ ] convert.jl
- [ ] Plotting/mesh.jl
- [ ] Plotting/paraview.jl
- [ ] Plotting/plot_recipes.jl
- [ ] Approximations/approximate.jl
- [ ] Approximations/Approximations.jl
- [ ] Approximations/ballinf_approximation.jl
- [ ] Approximations/box_approximation.jl (#3072, ...)
- [ ] Approximations/decompositions.jl
- [ ] Approximations/hausdorff_distance.jl
- [ ] Approximations/init_Ipopt.jl
- [ ] Approximations/iterative_refinement.jl
- [ ] Approximations/overapproximate.jl (#3075, ...)
- [ ] Approximations/symmetric_interval_hull.jl
- [ ] Approximations/template_directions.jl
- [ ] Approximations/underapproximate.jl
- [ ] ConcreteOperations/cartesian_product.jl
- [ ] ConcreteOperations/convex_hull.jl
- [ ] ConcreteOperations/difference.jl
- [ ] ConcreteOperations/distance.jl
- [ ] ConcreteOperations/intersection.jl
- [ ] ConcreteOperations/isdisjoint.jl
- [ ] ConcreteOperations/isstrictsubset.jl
- [ ] ConcreteOperations/issubset.jl
- [ ] ConcreteOperations/linear_combination.jl
- [ ] ConcreteOperations/minkowski_difference.jl
- [ ] ConcreteOperations/minkowski_sum.jl
- [ ] LazyOperations/AffineMap.jl
- [ ] LazyOperations/Bloating.jl
- [ ] LazyOperations/CachedMinkowskiSumArray.jl
- [ ] LazyOperations/CartesianProduct.jl
- [ ] LazyOperations/CartesianProductArray.jl
- [ ] LazyOperations/Complement.jl
- [ ] LazyOperations/ConvexHull.jl
- [ ] LazyOperations/ConvexHullArray.jl
- [ ] LazyOperations/ExponentialMap.jl
- [ ] LazyOperations/Intersection.jl
- [ ] LazyOperations/IntersectionArray.jl
- [ ] LazyOperations/InverseLinearMap.jl
- [ ] LazyOperations/LinearMap.jl
- [ ] LazyOperations/MinkowskiSum.jl
- [ ] LazyOperations/MinkowskiSumArray.jl
- [ ] LazyOperations/QuadraticMap.jl
- [ ] LazyOperations/Rectification.jl
- [ ] LazyOperations/ResetMap.jl
- [ ] LazyOperations/SymmetricIntervalHull.jl
- [ ] LazyOperations/Translation.jl
- [ ] LazyOperations/UnionSet.jl
- [ ] LazyOperations/UnionSetArray.jl
- [ ] Interfaces/ConvexSet.jl (#3074, ...)
- [ ] Utils/macros.jl