JuliaIntervals / IntervalLinearAlgebra.jl

Linear algebra done rigorously
MIT License
36 stars 9 forks source link

[bug]: don't use subset to check if interval vector is in the interior of the other #93

Closed lucaferranti closed 2 years ago

lucaferranti commented 2 years ago

Bug description

Verified floating point algorithms (such as epsilon inflation) need to check that a vector is in the interior of the other. Currently, this is done by all(x .⊂ y), but that checks it is a proper subset.

Minimum (non-)working example

Expected behavior

use all(isinterior.(x, y)) instead.

Version info

Related issues

See related issue in IntervalArithmetic.jl here

Additional information

Add any other useful information

lucaferranti commented 2 years ago

for the verified eigenvalues this requires a PR in IA as currently isinterior is not defined for complex intervals.

julia> a = (1..2) + (2..3)*im
[1, 2] + [2, 3]im

julia> isinterior(a, a)
ERROR: MethodError: no method matching isinterior(::Complex{Interval{Float64}}, ::Complex{Interval{Float64}})
Stacktrace:
 [1] top-level scope
   @ REPL[9]:1
lucaferranti commented 2 years ago

opened https://github.com/JuliaIntervals/IntervalArithmetic.jl/pull/492