Time for action – comparing using maxulp of 2
Let's do the same comparisons as in the previous Time for action tutorial, but specify a maxulp
of 2
when necessary:
Determine the machine epsilon with the
finfo
function:eps = np.finfo(float).eps print "EPS", eps
The epsilon would be:
EPS 2.22044604925e-16
Do the comparisons as done in the previous Time for action tutorial, but use the
assert_array_max_ulp
function with the appropriatemaxulp
value:print "1", np.testing.assert_array_max_ulp(1.0, 1.0 + eps) print "2", np.testing.assert_array_max_ulp(1.0, 1 + 2 * eps, maxulp=2)
The output:
1 1.0 2 2.0
What just happened?
We compared the same values as the previous Time for action tutorial, but specified a maxulp
of 2
in the second comparison. Using the assert_array_max_ulp
function with the appropriate maxulp
value, these tests passed with a return value of the number of ULPs.