Releases: JuliaReach/LazySets.jl
Releases · JuliaReach/LazySets.jl
v1.14.1
v1.14.0
Breaking changes
- moved some internal helper functions to new
Arrays
module (#1452) - renamed
delete_zero_columns
->delete_zero_columns!
and moved to newArrays
module (#1452) - renamed
UnitVector
->SingleEntryVector
and moved to newArrays
module (#1452) - renamed
iscounterclockwise
->is_cyclic_permutation
(#1464) - delete sorting in two-points convex hull (#1472)
Features
- added concrete
linear_map
of a lazyTranslation
(#1442) - added
is_intersection_empty
between twoCartesianProductArray
s and betweenCartesianProductArray
andHPolyhedron
(#1421) - added concrete
intersection
between twoCartesianProductArray
s (#1421) - added decomposed intersection between
CartesianProductArray
andAbstractPolyhedron
(#1421) - added
AbstractZonotope
interface (#1443) - added concrete
minkowski_sum
forAbstractZonotope
(#1444) - approximate membership test for vectors (#1484)
- approximate
ispermutation
test for numbers in floating point (#1484) - added concrete minkowski sum between polytopes (#1479), and updated the
remove_redundant_vertices
function (#1490)
Bug fixes
- added a precondition check to
constraints_list
ofZonotope
s (#1451), for which we also definedrank
for sparse matrices (#1469) - fixed witness production in
isdisjoint
for hyperrectangles (#1465) - fixed a bug in the concrete Minkowski sum of polygons in vertex representation (#1474)
Enhancements
- (internal refactoring) outsourced package-requirement messages to a central place (#1445)
- added efficient version of
convex_hull
for four vertices in 2D (#1434) - faster support function for
AbstractHyperrectangle
,AbstractSingleton
,Interval
, andZeroSet
(#1454) - let identity version of
overapproximate
accept additional arguments (#1489) - removed
Pkg
requirement (#1492)
v1.13.0
Breaking changes
SparseMatrixExp
andProjectionSparseMatrixExp
received new type parameters for the matrices (#1401)- removed
Compat
requirement and dropped remaining support for pre-v1.0-Julia versions (#1406) - added a type parameter to
HalfSpace
for the direction vector; removed the numeric-typeconvert
method forHalfSpace
(#1412)
Features
- added lazy
Rectification
operation (#1372, #1376) - added
isapprox
(≈
) betweenLazySet
s (#1409) - added decomposed linear map of a
CartesianProductArray
(viaoverapproximate
) (#1419) - added
TaylorModel
overapproximation using a Zonotope (#1433)
Bug fixes
- consistently return an
EmptySet
if the concreteintersection
of twoAbstractPolyhedron
instances is empty (#1414)
Enhancements
VPolygon
has a new parameter for the type of vector of the vertices (#1385)- generalized sparse-matrix types (
SparseMatrixExp
,ProjectionSparseMatrixExp
,isinvertible
) (#1401) - improved plotting of
LazySet
s (1D sets can be plotted; vectors of sets now use individual plot recipes, which can be circumvented with a newfast
option if compilation is too heavy) (#1400, #1426) - faster convex hull of a triangle (#1411)
- the list of vertices of a lazy linear map now computes their convex hull by default and is controlled with the
prune
keyword argument (#1428)
v1.12.0
Announcements
First-time contributors:
- Sebastian Guadalupe (@SebastianGuadalupe) (#1377)
Breaking changes
- We dropped support for Julia versions older than v1.0 (#1322)
- Plot recipes now use iterative refinement by default (#1303)
- Changed (increased) the default absolute zero tolerance for Floats (#1341)
Features
- Conversion of hyperrectangles to cartesian products of intervals (#1336)
- Set difference between intervals (#1330)
- Set membership for lazy translation (#1363)
- Concrete
intersection
between anInterval
and generalLazySet
s (#1345) - Added
PolynomialZonotope
set representation (#1370) - Concrete
minkowski_sum
forVPolygon
s (#1377)
Bug fixes
- Fix diagonal matrix times
UnitVector
(#1362) tohrep
of an emptyVPolytope
/VPolygon
now returns anEmptySet
(#1371)- The convex hull of empty
VPolytope
's is an emptyVPolytope
(#1369) - Conversion to
polyhedron
now doesn't break with an emptyVPolytope
(#1373)
Enhancements
- Faster disjointness check for intervals (#1323)
- Added a
generators
getter forZonotope
s (#1313) - Robust point-in-polygon check (#1340)
- In conversion from HPolytope to HPolygon, set the
prune
option such that it removes redundant constraints by default (#1342) - We revised plot recipes defaults, letting
alpha < 1
andaspectratio=1
, and properly used the no-alias version of the argument names (#1304) - Compute vertices of
HPolytope
in two-dimensions using the algorithm for convex polygons (#1338) - Added
_isapprox
for generalReal
s (#1367) - Faster concrete
intersection
between anInterval
and a polyhedron (#1345) - Improve binary convex hull of
VPolytope
, using specializations for dimensions 1 and 2 (#1369)
v1.11.0
Announcements
This is the last release compatible with Julia v0.6/v0.7.
The release here on Github is fully compatible with Julia v0.6/v0.7/v1.0/v1.1.
If you install LazySets
through Julia's package manager, then this version will only be available in v0.6 (through METADATA
) and again in v1.0 (through General
) with slight administrative changes.
Breaking changes
- the keyword argument
use_polyhedra_library
in the intersection of twoAbstractPolyhedron
was removed; instead useintersection(P, Q, backend=...)
with an appropriate Polyhedra backend, or usebackend=GLPKSolverLP()
to run a feasibility LP (#1253) Expokit
, used inLazySets
for working with matrix exponentials, is now an optional dependency; users have to load this package manually if they want to use that functionality (#1290)
Features
- added new template directions:
- added a
split
method for abstract hyperrectangles (#1264) - added support function methods for
Zonotope
andEllipsoid
(#1273) - added
isdisjoint
for twoZonotope
s (#1269)
Bug fixes
- fixed an ambiguity in the overapproximation of the lazy
Intersection
between two polytopes (#1257) - fixed a
BoundsError
when trying to plot polytopes which are empty (#1274) - a translation of a set
X
along a vectorv
can be applied from the left (v + X
) as well as from the right (X + v
) (#1302)
Enhancements
- added a plot recipe for
EmptySet
(#1254) - improve convex hull docs and better error messages (#1282, #1285)
- better error messages for inclusion and membership that cover the common misuses (#1299)
- set inclusion between a
LazySet
and anAbstractPolyhedron
now uses the robust comparison method_leq
fromsrc/comparisons.jl
(#1297) - made
Expokit
an optional dependency (#1290)
v1.10.0
Announcements
Note: this release is fully compatible with Julia v0.6/v0.7/v1.0/v1.1.
Features
- added
convert
from hyperrectangular sets toHyperrectangle
(#1224) andCartesianProduct
of hyperrectangles toHyperrectangle
or toZonotope
#1221) - added
⊆
forCartesianProductArray
s (#1225) - added
convert
fromCartesianProduct
ofZonotope
s to a newZonotope
(#1228) - added
convert
of the lazyLinearMap
of a hyperrectangular set to aZonotope
(#1232), andLinearMap
of aCartesianProduct
to aZonotope
(#1237) - added
constraints_list
forZonotope
s of order < 1 (just falls back to vertex representation) (#1241)
Bug fixes
- fixed crash in
reduce_order
forZonotope
s with order smaller than one (#1247) - fixed
overapproximate
of aConvexHull
of twoZonotope
s for order smaller than one (#1248)
Enhancements
v1.9.0
Announcements
Note: this release is fully compatible with Julia v0.6/v0.7/v1.0/v1.1.
Breaking changes
- The interface for
decompose
has changed. We now require three arguments: the set, the partition (although there is an option to specify a uniform block size), and a single option for approximation (#1179)
Features
- added a lazy
Translation
and a concretetranslate
operation (#1173, #1192) - added an extension to the
subtypes
function, to be used assubtypes(interface, concrete::Bool)
that returns all concrete subtypes of a given interface (#1185) - added a lazy
Complement
operation (#1204, #1206) - added concrete projection for
HalfSpace
andHPolyhedron
(#1213) - added conversion to and from
IntervalBox
types fromIntervalArithmetic
(#1215)
Bug fixes
HPolyhedron
'sisempty
method does not require the packagePolyhedra
anymore (#1195)- fixed
dim
of aUnionSet
(#1200) - fixed
constrained_dimensions
ofHalfSpace
with sparse normal vector (#1212)
Enhancements
v1.8.0
Announcements
Note: this release is fully compatible with Julia v0.6/v0.7/v1.0/v1.1.
Features
- the unary function
convex_hull(::Vector{AbstractVector})
now accepts points of arbitrary dimension >= 1, using specific algorithms for the uni-dimensional, two-dimensional and higher dimensional cases (#1168) - use promotion for the concrete linear map of polyhedra, allowing to use mixed numeric types (#1153)
Bug fixes
- fixed an index problem in
constraints_list
ofZonotope
(#1153) - fixed a crash in
linear_map
for polyhedra if the matrix was non-square (#1164) - fixed return type for rectangular linear maps (#1167)
Enhancements
×
is now exported correctly (#1149)- conversion from polytopic types to
HPolytope
now call theconstraints_list
method (required by the interface), see (#1155) - conversion from one-dimensional hyperrectangular sets to interval (#1157)
- overapproximation of hyperrectangular sets with intervals is faster, now falling back to a specific
convert
method (#1157) - faster overapproximation of CartesianProductArray of hyperrectangular sets (#1162)
- faster hyperrectangular approximation of the lazy linear map of a hyperrectangular set (#1172)
- faster
overapproximate
withHPolygon
and box directions (#1180)
v1.7.0
Announcements
Note: this release is fully compatible with Julia v0.6/v0.7/v1.0/v1.1.
Breaking changes
- The output type of the concrete
linear_map
of polytopes has changed in some cases. In particular, in 2D we now create polygon types (HPolygon
/VPolygon
), and we try to stay close to the input type. We have also removed the optionoutput_type
. Useconvert
on the result to imitate the old behavior. (#1093)
Features
- added
remove_redundant_constraints
for removing redundant constraints of anHPolygon
, which is now used by default (#898) - added
Universe
set type (#1098, #1121) - added
constraints_list
from matrix and vector, and corresponding constructors forHPolygon
/HPolygonOpt
(#1102) - added lazy
Resetmap
operation type (#1114) - added concrete
intersection
betweenAbstractPolyhedron
(#1120) - added concrete
intersection
betweenAbstractPolyhedron
and polytopicResetMap
(#1139)
Bug fixes
- fixed crash for
isinvertible
for sparse matrices (by converting to a dense matrix) (#1093)
Enhancements
v1.6.0
Note: this release is fully compatible with Julia v0.7/1.0 and also with Julia v0.6.
Breaking changes
- removed the conversion constructor for
HPolygon
andHPolytope
; useconvert(HPolytope, S)
andconvert(HPolygon, S)
instead (#978)
Features
- added most standard methods for
UnionSet
andUnionSetArray
(#1012) - added membership test for
VPolytope
(#999) - added subset test for
HPolyhedron
(#975) - added
linear_map
for more sets: - added
split
method for zonotopes (#1018) - added
use_type_assumption
option toisbounded
for thoroughly checking for boundedness ofHPolytope
andHPolygon
(#978) - added
check_boundedness
option to the constructor ofHPolytope
andHPolygon
(#978) - added
constraints_list
forHyperplane
andLine
(#1046),LinearMap
(#1058),Intersection
andIntersectionArray
(#1053) - added
tosimplehrep
(#1053) - added
remove_redundant_constraints
andremove_redundant_constraints!
(#1053) - added concrete
intersection
withLinearMap
(#1069) - added
AbstractPolyhedron
interface (#1077)
Bug fixes
- fixed
isdisjoint
between polyhedra (#1044) - fixed
tohrep
ofVPolygon
(#1072) - fixed an unbounded support value for an
Intersection
with a bounded set and anHPolyhedron
(#1075)
Enhancements
- efficient concrete
intersection
withAbstractSingleton
(#1027) - intersection of polyhedra now makes use of
remove_redundant_constraints
by default, and it returns an empty set if the intersection is detected to be empty (#1040); use theuse_polyhedra_interface=true
keyword inintersection
to get the old behavior isempty
forHPolyhedron
andHPolytope
does not requirePolyhedra
anymore (#1056)