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 @@ -6,15 +6,17 @@ module ULPError
66 throw (ArgumentError (" invalid" ))
77 end
88 function ulp_error (accurate:: AbstractFloat , approximate:: AbstractFloat )
9- if isnan (accurate)
10- @noinline throw_invalid ()
11- end
12- if isnan (approximate)
13- @noinline throw_invalid ()
14- end
159 # the ULP error is usually not required to great accuracy, so `Float32` should be precise enough
1610 zero_return = Float32 (0 )
1711 inf_return = Float32 (Inf )
12+ let accur_is_nan = isnan (accurate), approx_is_nan = isnan (approximate)
13+ if accur_is_nan || approx_is_nan
14+ if accur_is_nan === approx_is_nan
15+ return zero_return
16+ end
17+ return inf_return
18+ end
19+ end
1820 if isinf (accurate) || iszero (accurate) # handle floating-point edge cases
1921 if isinf (accurate)
2022 if isinf (approximate) && (signbit (accurate) == signbit (approximate))
You can’t perform that action at this time.
0 commit comments