-
Notifications
You must be signed in to change notification settings - Fork 25
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
Bisection of atomic interval #26
Comments
Or an object of a new type |
How is an interval decided to be atomic? If |
A thin interval is an interval such that its lower bound and its upper one are the same. I think the notion of an atomic interval is the generalization of a thin interval for real numbers which are not exactly representable as floating points. (@dpsanders , please correct me if I'm wrong.) So we have julia> using IntervalArithmetic
julia> Interval(1.0,1.0)
Interval(1.0, 1.0)
julia> isthin(ans)
true
julia> a = @interval(sqrt(2))
[1.41421, 1.41422]
julia> @format full
6
julia> a
Interval(1.414213562373095, 1.4142135623730951)
julia> isthin(a)
false
julia> diam(a) ≤ eps(a) # `a` has the smallest diam that contains the true answer
true At the end, I have compared |
An atomic interval is literally one that cannot be split up, in other words it's either thin or consists of two adjacent floating point numbers. |
@dpsanders @lbenet Thanks a lot for the clarification! |
That is probably a good solution, but that information would have to be used in the functions that call |
Atomic interval are special cased in |
One solution for the bisection of an atomic interval [l, h] would be to return three intervals:
Probably the easiest solution is not to bisect it.
Note that this will cause problems since currently it is expected that
bisect
returns two intervals.Could return the same interval twice, together with an
:atomic
flag.The text was updated successfully, but these errors were encountered: