File tree Expand file tree Collapse file tree 1 file changed +8
-6
lines changed
Expand file tree Collapse file tree 1 file changed +8
-6
lines changed Original file line number Diff line number Diff line change @@ -4,15 +4,17 @@ module ULPError
44 throw (ArgumentError (" invalid" ))
55 end
66 function ulp_error (accurate:: AbstractFloat , approximate:: AbstractFloat )
7- if isnan (accurate)
8- @noinline throw_invalid ()
9- end
10- if isnan (approximate)
11- @noinline throw_invalid ()
12- end
137 # the ULP error is usually not required to great accuracy, so `Float32` should be precise enough
148 zero_return = Float32 (0 )
159 inf_return = Float32 (Inf )
10+ let accur_is_nan = isnan (accurate), approx_is_nan = isnan (approximate)
11+ if accur_is_nan || approx_is_nan
12+ if accur_is_nan === approx_is_nan
13+ return zero_return
14+ end
15+ return inf_return
16+ end
17+ end
1618 if isinf (accurate) || iszero (accurate) # handle floating-point edge cases
1719 if isinf (accurate)
1820 if isinf (approximate) && (signbit (accurate) == signbit (approximate))
You can’t perform that action at this time.
0 commit comments