Skip to content

Commit fd7bee9

Browse files
yashrajguptadpsanders
authored andcommitted
Fix bug in extended_div function (#293)
* Fix bug in extended_div function * use / function * use faster / method
1 parent 46f424d commit fd7bee9

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

src/intervals/arithmetic.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -218,10 +218,10 @@ function extended_div(a::Interval{T}, b::Interval{T}) where T<:Real
218218
S = typeof(a.lo / b.lo)
219219
if 0 < b.hi && 0 > b.lo && 0 a
220220
if a.hi < 0
221-
return (Interval(T(-Inf), a.hi / b.hi), Interval(a.hi / b.lo, T(Inf)))
221+
return (Interval(T(-Inf), /(a.hi, b.hi, RoundUp)), Interval(/(a.hi, b.lo, RoundDown), T(Inf)))
222222

223223
elseif a.lo > 0
224-
return (Interval(T(-Inf), a.lo / b.lo), Interval(a.lo / b.hi, T(Inf)))
224+
return (Interval(T(-Inf), /(a.lo, b.lo, RoundUp)), Interval(/(a.lo, b.hi, RoundDown), T(Inf)))
225225

226226
end
227227
elseif 0 a && 0 b
@@ -372,7 +372,7 @@ julia> signbit(@interval(-4,5))
372372
[0, 1]
373373
```
374374
"""
375-
function signbit(a::Interval)
375+
function signbit(a::Interval)
376376
isempty(a) && return emptyinterval(a)
377377
return Interval(signbit(a.hi), signbit(a.lo))
378378
end

test/interval_tests/numeric.jl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,9 @@ setprecision(Interval, Float64)
4747
@test extended_div(interval(1.0, 2.0), interval(-4.0, 4.0)) == ((-.. -0.25), (0.25..∞))
4848
@test extended_div(interval(-2.0, -1.0), interval(-2.0, 4.0)) == ((-.. -0.25), (0.5..∞))
4949
@test extended_div(interval(0.0, 0.0), interval(-1.0, 1.0)) == (entireinterval(c), emptyinterval(c))
50-
50+
@test extended_div(2..10, -2..5) == (Interval(-Inf, -1.0), Interval(0.39999999999999997, Inf))
51+
@test extended_div(2..5, 2..5) == (Interval(0.39999999999999997, 2.5), ∅)
52+
@test extended_div(2..5, -5.. -2) == (Interval(-2.5, -0.39999999999999997), ∅)
5153

5254
a = @interval(1.e-20)
5355
@test a == Interval(1.0e-20, 1.0000000000000001e-20)

0 commit comments

Comments
 (0)