Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RangeEnclosures #302

Open
blegat opened this issue Sep 13, 2023 · 2 comments
Open

RangeEnclosures #302

blegat opened this issue Sep 13, 2023 · 2 comments

Comments

@blegat
Copy link
Collaborator

blegat commented Sep 13, 2023

We could use RangeEnclosures for computing the abstraction.
It has an interface with a list of solvers so if our abstraction based solvers are parametrized by a AbstractEnclosureAlgorithm then they automatically support any alogrithm implementing the RangeEnclosures API !
It's still only for scalar output but in their paper, they say vector output is planned, let's keep an eye on it !
If what we still want to use what we are currently doing by default, we could implement it as a solver and have it as default solver.

cc @schillic @mforets @lucaferranti

@schillic
Copy link
Contributor

schillic commented Mar 23, 2024

Just a heads up that this already works with the default algorithm if you can deal with tuple outputs:

# 1D input, 2D output

julia> f(x) = (x, 2x);

julia> X = interval(1..2)
[1.0, 2.0]

julia> enclose(f, X)
(Interval{Float64}(1.0, 2.0), Interval{Float64}(2.0, 4.0))

# 2D input, 2D output

julia> g((x, y)) = (x, 2y);

julia> Y = IntervalBox(1..2, 3..4)
[1.0, 2.0] × [3.0, 4.0]

julia> enclose(g, Y)
(Interval{Float64}(1.0, 2.0), Interval{Float64}(6.0, 8.0))

@schillic
Copy link
Contributor

I also just added a PR for better support of vector outputs, at least for some of the solvers, in JuliaReach/RangeEnclosures.jl#175. But it may require some discussions before that gets in.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants