title: Compressed matrix multiplication
body: <p>When multiplying matrices in some real fields(like I have now) these matrices contains a lot of systimaticaly repeated values. The repeated values are not only zero so we can't call it sparse(?) 
  For example lets take this matrix (In my case dimensions are 1000 x 1000):</p>
  
  <pre><code>0.8    0.8   0.8    0.1   0.1
  0.8    0.8   0.8    0.7   0.7 
  0.8    0.8   0.8    0.7   0.7
  0.9    0.6   0.5    0.7   0.7
  </code></pre>
  
  <p>Then we are multiplying this matrix by a value matrix and got a result. For example, we are multiplying just by a vector V {v1, v2, v3, v4}. We can do normal matmul, but this is wasteful. We can compress the matrix:</p>
  
  <pre><code> A1 = 0.8 * (v1 + v2 + v3)
   A2 = 0.7 * (v2 + v3 + v4)
  </code></pre>
  
  <p>And add this values again and again to the columns dot products.
  If there is a lot of repetition amount of computation can be reduced in several times.
  But effective implementation  looks hard to me. Can you suggest something?</p>