title: numpy machine precision for dot product?
body: <p>How do I deal with the floats precision in numpy? For example in the following <code>a==0</code> returns False, even though up to machine precision it's 0:</p>
  
  <pre><code>a = -2.22044605e-16
  </code></pre>
  
  <p>This is particularly an issue because I am taking dot products of vectors and it seems like the results is affected, i.e. a is treated as a 'negative' number.</p>
  
  <pre><code>np.finfo(float).eps 
  </code></pre>
  
  <p>returns -2.22044605e-16</p>
  
  <p>Here is an example: </p>
  
  <pre><code>a = np.array([[-2.22044605e-16,-2.22044605e-16]])
  
  b = np.array([[5,5]])
  
  np.dot(a,b)
  array([[ -2.22044605e-15]])
  
  a = np.array([[-2.22044605e-16,2.22044605e-16]])
  np.dot(a,b.T)
  array([[ 0.]])
  </code></pre>