title: Computation difference between function and manual computation
body: <p>I am facing a mystery right now. I get strange results in some program and I think it may be related to the computation since  I got different results with my functions compared to manual computation.</p>
  
  <p>This is from my program, I am printing the values pre-computation :</p>
  
  <pre><code>print("\nPrecomputation:\nmatrix\n:", matrix)
  tmp = likelihood_left * likelihood_right
  print("\nconditional_dep:", tmp)
  print("\nfinal result:", matrix @ tmp)
  </code></pre>
  
  <p>I got the following output:</p>
  
  <pre><code>Precomputation:
  matrix: 
  [array([0.08078721, 0.5802404 , 0.16957052, 0.09629893, 0.07310294])
   array([0.14633129, 0.45458744, 0.20096238, 0.02142105, 0.17669784])
   array([0.41198731, 0.06197812, 0.05934063, 0.23325626, 0.23343768])
   array([0.15686545, 0.29516415, 0.20095091, 0.14720275, 0.19981674])
   array([0.15965914, 0.18383683, 0.10606946, 0.14234812, 0.40808645])]
  
  conditional_dep: [0.01391123 0.01388155 0.17221067 0.02675524 0.01033257]
  final result: [0.07995043 0.03485223 0.02184015 0.04721548 0.05323298]
  </code></pre>
  
  <p>The thing is when I compute the following code:</p>
  
  <pre><code>matrix = [np.array([0.08078721, 0.5802404 , 0.16957052, 0.09629893, 0.07310294]),
            np.array([0.14633129, 0.45458744, 0.20096238, 0.02142105, 0.17669784]), 
            np.array([0.41198731, 0.06197812, 0.05934063, 0.23325626, 0.23343768]), 
            np.array([0.15686545, 0.29516415, 0.20095091, 0.14720275, 0.19981674]), 
            np.array([0.15965914, 0.18383683, 0.10606946, 0.14234812, 0.40808645])]
  
  tmp = np.asarray([0.01391123, 0.01388155, 0.17221067, 0.02675524, 0.01033257])
  
  matrix @ tmp
  </code></pre>
  
  <p>The values in use are exactly the same as they should be in the computation before but I get the following result:</p>
  
  <pre><code>array([0.04171218, 0.04535276, 0.02546353, 0.04688848, 0.03106443])
  </code></pre>
  
  <p>This result is then obviously different than the previous one and is the true one (I computed the dot product by hand).</p>
  
  <p>I have been facing this problem the whole day and I did not find anything useful online. If any of you have any even tiny idea where it can come from I'd be really happy :D</p>
  
  <p>Thank's in advance
  Yann</p>
  
  <p>PS: I can show more of the code if needed.
  PS2: I don't know if it is relevant but this is used in a dynamic programming algorithm.</p>