Time for action – comparing using maxulp of 2
Let's do the same comparisons as in the previous Time for action section, 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 as follows:
EPS 2.22044604925e-16
Do the comparisons as done in the previous Time for action section, 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 is as follows:
1 1.0 2 2.0
What just happened?
We compared the same values as the previous Time for action section, 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.