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

Compatibility with IntervalArithmetic v0.22 #203

Merged
merged 36 commits into from
Nov 5, 2024
Merged

Compatibility with IntervalArithmetic v0.22 #203

merged 36 commits into from
Nov 5, 2024

Conversation

Kolaru
Copy link
Collaborator

@Kolaru Kolaru commented May 29, 2024

This PR aims at providing compatibility with IntervalArithmetic v0.22, which is breaking.

The user facing changes are

  • Decorated intervals must be used (which is the default Interval in the latest releases of IntervalArithmetic)
  • The signature of the roots function changed to roots(f::Function, X::Union{Interval, AbstractVector} ; kwargs...), with the following consequences
    • Manual derivatives and contractors must now always be passed as keyword arguments. This greatly simplify the internal logic of the roots function.
    • No more IntervalBox. Multidimensional problem are specified by returning a vector of intervals, and giving a vector of intervals as initial search region.
    • Normal vectors of intervals are supported. They are significantly (3x) time slower for a simple 2D problem than SVector, but more convenient.
  • Features of the packages outside of the roots function are unsupported for the time being (e.g. Slopes and quadratic equations). If you were using them, please open an issue.
  • roots works with @exact.

This PR does not yet contain an update of the documentation, but is otherwise ready for review (if the tests pass on CI ^^').

@Kolaru Kolaru closed this May 30, 2024
@Kolaru Kolaru reopened this May 30, 2024
@Kolaru Kolaru mentioned this pull request May 30, 2024
@OlivierHnt
Copy link
Member

OlivierHnt commented May 31, 2024

You are mentioning a slowdown, this is only due to using Vector instead of SVector?

Also, does this PR address some of the following issues #41, #52, #77, #98, #107, #117, #124, #157, #162, #181?

What is the status of #40 about complex intervals?

@Kolaru
Copy link
Collaborator Author

Kolaru commented Jun 14, 2024

With the update to the doc, this PR is not fully ready for review.

@schillic schillic mentioned this pull request Jun 17, 2024
@OlivierHnt
Copy link
Member

Ok! I can help with the review once you decide your PR is ready.

@schillic
Copy link

With the update to the doc, this PR is not fully ready for review.

@Kolaru was the "not" a "now" with a typo? :)

@OlivierHnt
Copy link
Member

Yes I believe that was the case 🙂

src/region.jl Outdated Show resolved Hide resolved
src/region.jl Outdated Show resolved Hide resolved
src/region.jl Outdated Show resolved Hide resolved
src/region.jl Outdated Show resolved Hide resolved
src/region.jl Outdated Show resolved Hide resolved
src/region.jl Outdated Show resolved Hide resolved
src/region.jl Outdated Show resolved Hide resolved
src/roots.jl Outdated
Comment on lines 13 to 14
reltol::T # TODO
max_iteration::Int # TODO
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the meaning of "TODO"?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

They options are straight up not used currently 😬.

I've moved this to the docstrings.

@OlivierHnt
Copy link
Member

I went through the changes. Since I am not familiar with this library, I cannot comment on the some inner changes, but in terms of IA v0.22, it is looking good!

I think the breaking changes are consistent with IA changes, so it may be good to merge this PR soon-ish.

@Kolaru
Copy link
Collaborator Author

Kolaru commented Oct 29, 2024

Thanks a lot ! I have added two missing docstrings.

I will go through the doc to make sure everything is described, and then I think it would be indeed ready to be merged.

@Kolaru
Copy link
Collaborator Author

Kolaru commented Nov 5, 2024

Surprising myself, I had already updated the doc and added an entry in NEWS.md, so I am merging.

@Kolaru Kolaru merged commit 6f65bae into master Nov 5, 2024
11 checks passed
@OlivierHnt OlivierHnt deleted the IA_v0.22 branch November 5, 2024 17:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment