IntervalArithmetic.jl
IntervalArithmetic.jl copied to clipboard
Library for validated numerics using interval arithmetic
When intervals are components of bigger `struct`s that impose `eltype`-consistency, it would be nice not to have to force the `eltype` to be an `AbstractFloat`. It's been possible to construct...
``` julia> @format true Display parameters: - format: standard - decorations: true - significant figures: 6 julia> a = DecoratedInterval(1..2) [1, 2]_com julia> b = IntervalBox(a, 2) [1, 2] ×...
```julia dt1 = 0 .. 1 dt2 = 0.5 .. 1.0 !(dt1 ⊆ dt2) true dt1 ⊊ dt2 MethodError: no method matching Float64(::IntervalArithmetic.Interval{Float64}) Closest candidates are: Float64(::Real, !Matched::RoundingMode) where T
`atan(y, x)` is very slow for two intervals `x` and `y`, since it uses BigFloat. We should make this run fast (but not be correctly rounded) for a suitable rounding...
Some functions do not work on 1.6 on windows. Particularly, I found the functions `abs, mig, fma, sqrt` . The core problem seems that they use `setrounding`. `abs` calls `mig`...
This strikes me as inconsistent: ```julia julia> union(interval(0, 1), interval(2, 3)) [0, 3] julia> setdiff(interval(0, 3), interval(1,2)) 2-element Array{Interval{Float64},1}: [0, 1] [2, 3] ```
```jl julia> M = [1.2..1.6 1.2..1.6; -1..1 -1..1] 2×2 Array{Interval{Float64},2}: [1.19999, 1.60001] [1.19999, 1.60001] [-1, 1] [-1, 1] ```
The following functions are currently broken for complex intervals; see https://github.com/JuliaLang/julia/issues/22095. They give a stack overflow due to incorrect fallbacks in base Julia: - [x] `exp`, `sin`, `cos`, `cosh`, `sinh`...
If `x = [-1,1], y = [-1,1]` The program gives me `x^y => [0, Inf]`. But `(-1)^(-1) = -1`, which is lower than 0. Is my understanding wrong, but I...