Skip to content

Releases: JuliaReach/LazySets.jl

v2.7.0

17 Mar 18:18
f1a3956
Compare
Choose a tag to compare

LazySets v2.7.0

Diff since v2.6.0

Announcements

Contributors for this release:

Breaking changes

  • Revise HParallelotope: add consistency check to constructor and use cheap isempty method (#3219)

Features

  • Generalize isempty from HPolyhedron to (polyhedral) LazySet (#3235)
  • Add is_polyhedral for IntersectionArray (#3235)

Enhancements

  • Remove remaining N<:Real annotations (#3236)
  • Make sure rand of HParallelotope returns a nonempty set (#3221)
  • Remove dependency on JuMP.MOI (#3245)

Internal changes

  • Update manual ("Getting started") (#3243)
  • Move some code to interface files (#3244)

Closed issues:

  • Generalize methods to AbstractPolyhedron (#1078)
  • Conversion from simple HRep to list of constraints (#1610)
  • Remove N<:Real annotation (#2219)
  • vertices_list of an empty HParallelotope is non-empty (#2786)
  • Random parallelotope generation often returns an empty set (#3203)
  • Documentation Update section causes error (#3242)

Merged pull requests:

v2.6.0

23 Feb 18:18
937404d
Compare
Choose a tag to compare

LazySets v2.6.0

Diff since v2.5.0

Announcements

Contributors for this release:

Features

  • Add overapproximate for Intersection of AbstractZonotope and Hyperplane (#3201)
  • Add volume for HParallelotope (#3204)
  • Add order-reduction method with parallelotope (#3205)
  • Generalize polyhedron to polyhedral LazySets (#3223)

Enhancements

  • Faster support function and support vector for CartesianProduct and CartesianProductArray (#3199)
  • Improved bound for line search (#3214)
  • Concrete Minkowski difference for zonotopes (#3206)
  • Fix compatibility with JuMP v1.8 (#3239)

Bug fixes

  • Fix support vector of Ball2 in zero direction (#3200)
  • Use rng in all calls to rand etc. (#3224)
  • Fix check for elimination algorithm in minkowski_sum (#3227, #3230)
  • Fix undefined variable in overapproximate with HPolyhedron (#3228)
  • Fix CartesianProduct constructor with EmptySet (#3208)
  • Fix linear_map of polyhedra (vrep_chull algorithm) (#3207)
  • Fix constraints_list of flat zonotopes (#3210)
  • Fix automatic generation of template-direction instances (#3211)
  • Fix support vector of unbounded HPolyhedron (#3234)
  • Fix binary search in addconstraint! for (H-)polygons (#3213)

Internal changes

  • Use newer version of Makie in tests (#3220)
  • Add publications (#3222)
  • Fix warning with Polyhedra in test (#3225)
  • Pull out documentation from requires blocks (#3217)
  • Add test for MiniQhull (#3216)
  • Simplify remove_redundant_constraints! (#3218)
  • Make names dir/dirs consistent (#3229)
  • Update Symbolics in tests (#3232)
  • Remove invoke calls (#3233)

Closed issues:

  • Concrete Minkowski difference for zonotopes (#586)
  • HPolygon's addconstraint! should ignore/replace constraints with same normal direction (#653)
  • HPolytope's removehredundancy! removes non-redundant constraints (#754)
  • Iterative refinement of HPolygon with redundant constraint adds unexpected constraint (#895)
  • tohrep(::VPolytope) results in unbounded polytope (#1234)
  • Overapproximation of zonotope with polyhedron in constraint representation (#1328)
  • Different result for intersection using HPolyhedron or HPolytope (#1348)
  • HPolygon should not reorder already-sorted constraints (#1393)
  • Convert AbstractPolyhedron to Polyhedra.polyhedron (#1505)
  • Docstrings with kwargs (#1650)
  • Faster support function for CPA and canonical vectors (#1758)
  • Add test for MiniQhull optional dependency (#2077)
  • Documentation redefinition in require blocks (#2080)
  • Fix warnings with Polyhedra (#2162)
  • addconstraint! for HPolygon differs with linear_search option (#2426)
  • Error when passing LP solver to Polyhedra (#2542)
  • AssertionError in is_tighter_same_dir_2D (#2582)
  • Checking equality of Complements Unexpected Behavior. (#2686)
  • Fix links in documentation (#2721)
  • Undefined LP in remove_redundant_constraints (#2732)
  • Overapproximation with zonotope and PolarDirections (CPA algorithm) crashes (#2833)
  • MethodError in eps close approx of Bloating (#2894)
  • rand doesn't work with Rational{Int} (#3019)
  • isdisjoint of flat zonotope with polyhedron returns wrong answer (#3038)
  • Generalize polyhedron to AbstractPolyhedron (#3060)
  • EmptySet is not quite the absorbing operation for CartesianProduct (#3078)
  • Support vector of Ball2 in zero direction (#3198)
  • constraints_list of flat zonotopes is wrong (#3209)
  • Depend on MathOptInterface directly instead of referencing the internal variable of JuMP (#3238)

Merged pull requests:

v2.5.0

18 Nov 22:22
2b0f823
Compare
Choose a tag to compare

LazySets v2.5.0

Diff since v2.4.0

Announcements

Contributors for this release:

Breaking changes

  • Generalize ConvexSet to LazySet in lazy operations (#3195)

Merged pull requests:

v2.4.0

14 Nov 18:09
dd8db00
Compare
Choose a tag to compare

LazySets v2.4.0

Diff since v2.3.0

Announcements

Contributors for this release:

Breaking changes

  • Rename VPolygonNC to Polygon (#3138)
  • Translation of EmptySet and Universe are now simplified automatically (absorbing elements) (#3184)

Features

  • Add some functionality for VPolygonNC (#3127)
  • Add unary convex hull of general sets with a vertices_list method (#3148)
  • Add is_polyhedral for Bloating (#3154)
  • Add isboundedtype for CachedMinkowskiSum (#3170)

Enhancements

  • Revise iterative_refinement code (#3121)
  • Revise template_directions code (#3122)
  • Generalize plotting to LazySet (#3127)
  • Revise decompositions code (#3128)
  • Revise distance code and generalize to LazySet (#3129)
  • Revise exact_sum code (#3130)
  • Revise isstrictsubset code and generalize to LazySet (#3131)
  • Revise linear_combination code (#3132)
  • Revise minkowski_difference code and generalize to LazySet (#3133)
  • Revise difference code and generalize to LazySet (#3134)
  • Revise cartesian_product code and generalize to LazySet (#3135)
  • Revise plot recipes (#3139)
  • Change default overapproximation of polynomial zonotopes (#3139)
  • Revise AbstractSingleton code (in particular, the membership check is now approximate) (#3143)
  • Remove unused type parameters (#3141)
  • Revise overapproximate code and generalize to LazySet (#3140)
  • Add some sets to unions CompactSet and NonCompactSet (#3142)
  • Revise AbstractPolytope code (#3144)
  • Revise minkowski_sum code and generalize to LazySet (#3145)
  • Revise intersection code and generalize to LazySet (#3147)
  • Revise LazySet code (#3149)
  • Revise AbstractPolygon code (#3151)
  • Revise convex_hull code and generalize to LazySet (behavioral change: vertices are sorted in 1D) (#3148)
  • Revise AbstractPolyhedron code (#3150)
  • Revise AbstractCentrallySymmetric code (#3152)
  • Revise AbstractCentrallySymmetricPolytopic code (#3153)
  • Revise issubset code and generalize to LazySet (behavioral change: use some approximate equality checks) (#3154)
  • Revise Bloating code (#3103)
  • Revise isdisjoint code and generalize to LazySet (#3156)
  • Revise AbstractHyperrectangle code (#3157)
  • Revise convert code and generalize to LazySet (#3159)
  • Revise AbstractPolyhedron code (#3161)
  • Revise HPolyhedron code (#3162)
  • Revise AbstractAffineMap code (#3163)
  • Revise HPolygon, HPolygonOpt, and AbstractHPolygon code (#3164)
  • Revise macros code (#3165)
  • Revise DensePolynomialZonotope code (#3166)
  • Revise SimpleSparsePolynomialZonotope code (#3167)
  • Revise AffineMap code (#3168)
  • Revise CachedMinkowskiSum code (#3170)
  • Revise CartesianProductArray code (#3171)
  • Revise ConvexHullArray code and generalize to LazySet (#3172)
  • Revise IntersectionArray code (#3173)
  • Revise MinkowskiSumArray code (#3174)
  • Revise UnionSetArray code and generalize to LazySet (#3175)
  • Revise CartesianProduct code (#3176)
  • Revise ConvexHull code and generalize to LazySet (#3177)
  • Revise Intersection code (#3178)
  • Revise MinkowskiSum code (#3179)
  • Revise UnionSet code and generalize to LazySet (#3180)
  • Revise InverseLinearMap code (#3181)
  • Revise QuadraticMap code (#3182)
  • Revise ResetMap code (#3183)
  • Revise Translation code (#3184)
  • Generalize ConvexSet methods to LazySet (#3185)
  • Revise SymmetricIntervalHull code and generalize to LazySet (#3187)
  • Revise LinearMap code (#3188)
  • Revise ExponentialMap code (#3189)
  • Revise SparsePolynomialZonotope code (#3190)
  • Revise AbstractZonotope code (#3191)
  • Revise Rectification code (in particular finish the implementation) and generalize to LazySet (#3192)

Bug fixes

  • Fix plotting of 3D singletons via plot (#3143)
  • Fix empty intersection of two VPolygons/VPolytopes (#3147)
  • Fix a crash in ⊆(::LazySet, ::UnionSetArray) (#3154)
  • Let the InverseLinearMap constructors from ZeroSet and EmptySet produce consistent dimensions (#3181)
  • Make dim of ConvexHullArray and UnionSetArray consistent with other array set types (#3172, #3175)
  • LinearMap of an EmptySet now correctly changes the dimension (#3188)
  • ExponentialMap of an EmptySet now correctly changes the dimension (#3189)

Internal changes

  • Outsource ExponentialProjectionMap to its own file (#3189)
  • Outsource FallbackGeneratorIterator to ReachabilityBase (now called ColumnIterator)

Closed issues:

  • Restrict generic inclusion between line segment and lazy sets to convex type (#1856)
  • Extend LazySet to non-convex sets (#1895)
  • Unary convex hull (#2755)
  • Rename VPolygonNC to Polygon (#3137)

Merged pull requests:

Read more

v2.3.0

12 Oct 20:44
829fd1b
Compare
Choose a tag to compare

LazySets v2.3.0

Diff since v2.2.1

Announcements

Contributors for this release:

Breaking changes

  • The normalize option in the Line constructor now defaults to false (#3086)
  • symmetric_interval_hull of an Interval now also returns a Hyperrectangle (makes the function type stable) (#3118)

Features

  • Add reduce_order for SparsePolynomialZonotope (#3069)
  • Add overapproximate of a QuadraticMap of a SparsePolynomialZonotope with a SparsePolynomialZonotope (#3056)
  • Add translate for UnionSetArray (#3070)
  • Add non-convex polygon type VPolygonNC (#3116)

Enhancements

  • Generalize reduce_order to AbstractZonotope (#3071)
  • Generalize box_approximation to LazySet (#3072)
  • Generalize low, high, extrema to LazySet (#3074)
  • Generalize some overapproximate methods to LazySet (#3075)
  • Let box_approximation use extrema, which is sometimes more efficient (#3076)
  • Revise EmptySet code (#3079, #3080)
  • Revise HalfSpace code (#3081)
  • Revise Interval code (#3084, #3087)
  • Revise HParallelotope code (#3085, #3087)
  • Revise Line2D code (#3088)
  • Revise LineSegment code (#3089)
  • Revise Line code (#3086)
  • Revise Hyperplane code (#3090)
  • Revise RotatedHyperrectangle code (#3091)
  • Revise Singleton code (#3092)
  • Revise ZeroSet code (#3093)
  • Revise Universe code (#3094)
  • Revise Hyperrectangle code (#3095)
  • Revise Star code; in particular, rand now returns a more general set (#3096)
  • Revise Zonotope code (#3097)
  • Generalize Javis and Polyhedra interfaces to LazySet (#3098)
  • Revise QuadraticMap code (#3099)
  • Revise sampling code and generalize to LazySet (#3100)
  • Revise HPolytope code (#3102)
  • Add isbounded method for list of constraints (#3102)
  • Revise VPolygon code (#3106)
  • Revise AbstractPolynomialZonotope and AbstractStar code (#3109)
  • Revise helper functions and generalize to LazySet (#3110)
  • Revise Parallel code and generalize to LazySet (#3112)
  • Revise paraview code and generalize to LazySet (#3113)
  • Revise plot3d code and generalize to LazySet (#3114)
  • Revise Complement code and generalize to LazySet (#3104)
  • Revise VPolytope code (#3107)
  • Revise box_approximation ballinf_approximation and symmetric_interval_hull code (#3118)
  • concretize(::SymmetricIntervalHull) does not call concretize recursively anymore (#3118)
  • Revise some Approximations code, in particular extend underapproximate via support-vector queries in given directions to unbounded sets (at least in principle; many sets throw an error in these cases) (#3119)

Bug fixes

  • Fix output dimension of linear_map for an EmptySet (#3079)
  • Fix project of Line2D with block [2, 1] (#3088)
  • Fix normalize option in Line constructor (#3086)
  • Fix linear_map for Line (could fail if the result was a singleton) (#3086)
  • Fix linear_map for ZeroSet (always returned a Float64 set) (#3093)
  • Fix genmat for Hyperrectangles with sparse vectors (#3095)
  • Fix project of VPolygon (#3106)
  • Fix (de)activate_assertions (#3111)
  • Fix translate!, project, and tohrep for VPolytope (#3107)
  • Fix underapproximate with a Hyperrectangle (sometimes crashed) (#3119)

Internal changes

  • Move docstrings for sparse polynomial zonotopes and code of exact_sum to files for binary operations (#3067)
  • Update packages using LazySets (#3066)
  • Reorder polynomial zonotopes in docs (#3083)
  • Remove box_approximation_helper (#3118)

Closed issues:

  • Create single generator for approximately flat LineSegment (#2001)
  • Errors when computing intersection(HPolytope, Zonotope) (#3059)

Merged pull requests:

Read more

v2.2.1

27 Aug 13:29
1cb26f9
Compare
Choose a tag to compare

LazySets v2.2.1

Diff since v2.2.0

Announcements

Contributors for this release:

Features

  • Add minkowski_sum for SparsePolynomialZonotopes (#3057)
  • Add translate for SparsePolynomialZonotope (#3058)

Enhancements

  • Revise BallInf code (#3063)
  • Revise Ellipsoid code (#3065)

Bug fixes

  • Pass @__MODULE__ to require function explicitly (this avoids problems when used from within other modules) (#3064)

Closed issues:

  • ERROR: AssertionError: package 'Polyhedra' not loaded (it is required for executing tohrep) despite it being present (#3062)

Merged pull requests:

v2.2.0

25 Aug 12:31
508f00a
Compare
Choose a tag to compare

LazySets v2.2.0

Diff since v2.1.1

Announcements

Contributors for this release:

Breaking changes

  • We redefined the semantics of AbstractCentrallySymmetric to be convex. (This is not breaking inside this library because there were no non-convex subtypes defined, but if an external package defined another subtype, this may be breaking.) (#3054)
  • We renamed chebyshev_center to chebyshev_center_radius, which now always returns both the center and the radius. It is now also available for lazy polytopic sets. Furthermore, the radius for Intervals was fixed. (#3055)

Features

  • Add remove_redundant_generators for SparsePolynomialZonotopes (#3043)
  • Add underapproximate with a Ball2 (#3055)

Enhancements

  • We replaced the optional dependency StaticArrays by the hard dependency StaticArraysCore. The switch is because StaticArraysCore is more lightweight. We made it a hard dependency because it prevented Revise from working. (#3045)
  • Remove Pkg dependency (#3046)
  • Use updated require function from ReachabilityBase and do not modify it (avoids conflicts with other packages) (#3049)
  • Add more efficient extrema methods for AbstractCentrallySymmetric and AbstractCentrallySymmetricPolytope(#3048)
  • Revise Ball1 code (#3050)
  • Revise Ball2 code (#3051)
  • Revise Ballp code (#3052)

Bug fixes

  • Fix isconvextype to return true for ConvexSet and AbstractCentrallySymmetric; define a fallback implementation for LazySet as false; move some method documentations of ConvexSet to the right place (#3054)

Closed issues:

  • Review SPZ remove_redundant_generators (compact) (#3029)

Merged pull requests:

v2.1.1

19 Aug 21:18
3b29c04
Compare
Choose a tag to compare

LazySets v2.1.1

Diff since v2.1.0

Announcements

Contributors for this release:

Features

  • Add Zonotope enclosure of SparsePolynomialZonotope (#3028)
  • Add generalized quadratic_map for SimpleSparsePolynomialZonotopes (#3037)

Enhancements

  • Generalize code for inclusion checking in a UnionSetArray (#3041)

Bug fixes

  • Fix bug that prevented from using Revise and Ipopt together (#3042)

Closed issues:

  • Sparse polynomial zonotopes (#1543)
  • Inclusion in union (#3012)
  • quadratic_map on SSPZ should call remove_redundant_generators (#3032)
  • Cannot load LazySets and Ipopt simulatneously when Revise is active (#3040)
  • remove redundants (#3044)

Merged pull requests:

v2.1.0

17 Aug 16:42
d54e0bb
Compare
Choose a tag to compare

LazySets v2.1.0

Diff since v2.0.0

Announcements

Contributors for this release:

Breaking changes

  • Rename genmat and ngens methods for sparse polynomial zonotopes (#3035)

Features

  • Add underapproximate of a polygon with a box of maximum area (#3011)
  • Add project for UnionSetArray (#3026)
  • Add exact_sum for SparsePolynomialZonotopes (#3025)

Enhancements

  • Add missing convert to Interval and to/from IntervalArithmetic.Interval (#3024)
  • Extend linear_map for polynomial zonotopes (#3036)

Closed issues:

  • minor list (#215)
  • Investigate performance regression in Reachability with LinearMap (#1054)
  • Make PolynomialZonotope a LazySet (#1845)
  • Make unions a LazySet (#1846)
  • Make Complement a LazySet (#2407)
  • Make AbstractStar a LazySet (#2553)
  • Make multiplication with a scalar fall back to scale (#2609)
  • Polytope underapproximation of connected union of boxes (#3000)
  • Rename independent_genmat and dependent_genmat (#3031)

Merged pull requests:

v2.0.0

04 Aug 03:52
9488d50
Compare
Choose a tag to compare

LazySets v2.0.0

Diff since v1.59.1

Announcements

Contributors for this release:

Breaking changes

  • LazySet is not restricted to convex sets anymore. This is a major breaking change if convexity was assumed. To write code with the previous restriction to convex sets, you can use ConvexSet instead. Currently there is no additional functionality for LazySet types that are not ConvexSet, but the code will be generalized from ConvexSet to LazySet step by step. Hence, over time, the ConvexSet restriction may become redundant and be removed. The long-term solution to check for convexity by type is to use the isconvextype trait. (#3022, #3023)
  • Outsource auxiliary code to ReachabilityBase (#3021)

Features

  • Add ConvexSet interface (#2992)
  • Add rand for SparsePolynomialZonotope (#3020)

Closed issues:

  • Add rand function to PZ subtypes (#2984)

Merged pull requests: