JuliaIntervals / IntervalConstraintProgramming.jl

Calculate rigorously the feasible region for a set of real-valued inequalities with Julia
Other
63 stars 16 forks source link

Re-implement contractors and separators with parameters #215

Open dpsanders opened 5 months ago

dpsanders commented 5 months ago

The mechanism is available in ReversePropagation.jl, e.g. example here:

julia> ex = x^2 + a * y^2
x^2 + a*(y^2)

julia> C = forward_backward_contractor(ex, vars, [a])
#96 (generic function with 1 method)

julia> C(IntervalBox(-10..10, -10..10), 0..1, 17)
(([-1, 1], [-0.242536, 0.242536]), [0, 1800])

The third argument is the value of the parameter.

schillic commented 5 months ago

I am not very familiar with the package family, but instead of reimplementing contractors here, would it not be better to do that in IntervalContractors.jl?

dpsanders commented 5 months ago

Old branch parameters

dpsanders commented 5 months ago

@schillic: The IntervalContractors.jl package is for individual contractors, such as the sin_rev reverse function. This package integrates those into contractors for arbitrary formulas.

We might indeed want to think about renaming the IntervalContractors.jl package, since I agree that this is a bit confusing.

dpsanders commented 5 months ago

(It's also possible that the functions from IntervalContractors.jl will be added back to the IntervalArithmetic.jl package.)