title: Strange multiplication result
body: <p>In my code I have this multiplications in a C++ code with all variable types as double[]</p>
  
  <pre><code>f1[0] = (f1_rot[0] * xu[0]) + (f1_rot[1] * yu[0]); 
  f1[1] = (f1_rot[0] * xu[1]) + (f1_rot[1] * yu[1]); 
  f1[2] = (f1_rot[0] * xu[2]) + (f1_rot[1] * yu[2]); 
  
  f2[0] = (f2_rot[0] * xu[0]) + (f2_rot[1] * yu[0]); 
  f2[1] = (f2_rot[0] * xu[1]) + (f2_rot[1] * yu[1]);
  f2[2] = (f2_rot[0] * xu[2]) + (f2_rot[1] * yu[2]);
  </code></pre>
  
  <p>corresponding to these values </p>
  
  <pre><code>Force Rot1 : -5.39155e-07, -3.66312e-07
  Force Rot2 : 4.04383e-07, -1.51852e-08
  
  xu: 0.786857, 0.561981, 0.255018
  yu: 0.534605, -0.82715, 0.173264
  
  F1: -6.2007e-07, -4.61782e-16, -2.00963e-07
  F2: 3.10073e-07, 2.39816e-07, 1.00494e-07
  </code></pre>
  
  <p>this multiplication in particular produces a wrong value -4.61782e-16 instead of 1.04745e-13</p>
  
  <pre><code>f1[1] = (f1_rot[0] * xu[1]) + (f1_rot[1] * yu[1]);  
  </code></pre>
  
  <p>I hand verified the other multiplications on a calculator and they all seem to produce the correct values.</p>
  
  <p>this is an open mpi compiled code and the above result is for running a single processor, there are different values when running multiple processors for example 40 processors produces 1.66967e-13 as result of F1[1] multiplication.</p>
  
  <p>Is this some kind of mpi bug ? or a type precision problem ? and why does it work okay for the other multiplications ? </p>