Skip to content

Commit 0b05e22

Browse files
committed
ULPError: guard the edge case handling behind a single if
1 parent 85ace6c commit 0b05e22

File tree

1 file changed

+15
-13
lines changed

1 file changed

+15
-13
lines changed

test/testhelpers/ULPError.jl

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,22 @@ module ULPError
1010
zero_return = 0f0
1111
inf_return = Inf32
1212
# handle floating-point edge cases
13-
accur_is_nan = isnan(accurate)
14-
approx_is_nan = isnan(approximate)
15-
if accur_is_nan || approx_is_nan
16-
return if accur_is_nan === approx_is_nan
17-
zero_return
18-
else
19-
inf_return
13+
if !(isfinite(accurate) && isfinite(approximate))
14+
accur_is_nan = isnan(accurate)
15+
approx_is_nan = isnan(approximate)
16+
if accur_is_nan || approx_is_nan
17+
return if accur_is_nan === approx_is_nan
18+
zero_return
19+
else
20+
inf_return
21+
end
2022
end
21-
end
22-
if isinf(approximate)
23-
return if isinf(accurate) && (signbit(accurate) == signbit(approximate))
24-
zero_return
25-
else
26-
inf_return
23+
if isinf(approximate)
24+
return if isinf(accurate) && (signbit(accurate) == signbit(approximate))
25+
zero_return
26+
else
27+
inf_return
28+
end
2729
end
2830
end
2931
# assuming `precision(BigFloat)` is great enough

0 commit comments

Comments
 (0)