- The public API has been completely rewritten
- The previous macros such as
@constrainthave been removed - The API now uses symbolic variables from
Symbolics.jl - See the README for usage examples
- The minimum Julia version supported is now Julia 1.1
- Contractor can be make by just function name only
- New type of Contractor named as
BasicContractorcan be construct which only contain fields of useful data.
- The minimum Julia version supported is now Julia 1.0.
- By the help of
ModelingToolkit.jlwe can construct contractors and separators without the use of macros.
- The minimum Julia version supported is now Julia 0.7. The package is fully compatible with Julia 1.0.
- Pavings are now immutable, so
refine!no longer works.
- The minimum Julia version required has been bumped to 0.6; this will be the last release to support 0.6.
The reverse functions used for constraint propagation have been factored out into the IntervalContractors.jl package.
- The minimum Julia version required has been bumped to 0.5
- Objects such as
Contractorhave been simplified by putting functions and the code that generated them inside aGeneratedFunctiontype
- The dependency on
ValidatedNumerics.jlhas been replaced byIntervalArithmetic.jlandIntervalRootFinding.jl
- API change: Contractors now have their dimension as a type parameter
- Refactoring for type stability
- Removed reference to FixedSizeArrays; everything (including
bisect) is now provided byIntervalArithmetic - Removed all functions acting directly on
Intervals andIntervalBoxes that should belong toIntervalArithmetic - Generated code uses simpler symbols
- Example notebooks have been split out into a separate repository: https://github.com/dpsanders/IntervalConstraintProgrammingNotebooks
@function f(x) = 4xdefines a function- Functions may be used inside constraints
- Functions may be iterated
- Functions may be multi-dimensional
- Local variables may be introduced
- Simple plotting solution for the results of
paveusingPlots.jlrecipes (viaIntervalArithmetic.jl):
using Plots
gr() # preferred (fast) backed for `Plots.jl`
plot(paving.inner)
plot!(paving.boundary)
- Major internals rewrite
- Unary minus and
power_revwith odd powers now work correctly - Examples updated
- Basic documentation using
Documenter.jl
-
Renamed
setinversetopave -
External constants may now be used in
@constraint, e.g.
a, b = 1, 2
C = @constraint (x-$a)^2 + (y-$b)^2
The constraint will not change if the constants are changed, but may be
updated (changed) by calling the same @constraint command again.
-
setinversenow returns an object of typePaving#17 -
refine!function added to refine an existingPavingto a lower tolerance #17 -
volhas been renamed toVol, and is applied directly to aPavingobject. -
Internal variable names in generated code are now of form
_z_1_instead ofz1to eliminate collisions with user-defined variables #20
-
Add
sqrtRevreverse-mode function -
Add solid torus example, including 3D visualization with GLVisualize
-
Tests pass with Julia 0.5
-
Basic functionality working (separators and
setinverse) -
Volfunction calculates the Volume of the set produced bysetinverse; returns objects of typeVolparametrised by the dimension$d$ of the set (i.e.$d$ -dimensional Lebesgue measure), which are interval ranges