File tree Expand file tree Collapse file tree 1 file changed +15
-13
lines changed Expand file tree Collapse file tree 1 file changed +15
-13
lines changed Original file line number Diff line number Diff line change @@ -10,20 +10,22 @@ module ULPError
10
10
zero_return = 0f0
11
11
inf_return = Inf32
12
12
# 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
20
22
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
27
29
end
28
30
end
29
31
# assuming `precision(BigFloat)` is great enough
You can’t perform that action at this time.
0 commit comments