Time for action – comparing with assert_array_almost_equal_nulp

Let's see the assert_array_almost_equal_nulp() function in action:

  1. 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
    
  2. Compare 1.0 with 1 + epsilon using the assert_almost_equal_nulp() function. Do the same for 1 + 2 * epsilon:
    print("1", np.testing.assert_array_almost_equal_nulp(1.0, 1.0 + eps))
    print("2", np.testing.assert_array_almost_equal_nulp(1.0, 1.0 + 2 * eps))

    The result is as follows:

    1 None
    2
    Traceback (most recent call last):
    
     assert_array_almost_equal_nulp
        raise AssertionError(msg)
    AssertionError: X and Y are not equal to 1 ULP (max is 2)
    

What just happened?

We determined ...

Get NumPy : Beginner's Guide - Third Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.