Dear all,<br><br>Recently I was playing around with encoding matrices in the type-level system.&nbsp; Thereby one can enable the multiplication of matrices.&nbsp; The general idea (which can be read about at (<a href="http://notvincenz.blogspot.com/2007/06/generalized-matrix-multiplication.html">
http://notvincenz.blogspot.com/2007/06/generalized-matrix-multiplication.html</a>) is that there is more than one way to multiplly a matrix.<br><br>Given two matrices A and B, with M and N dimensions:<br><br>a_1*...*a_m and b_1*...*b_n&nbsp; then whenever the last L dimensions of A match the first L dimensions of B, they can be multiplied to have a matrix of dimension:
<br><br>a_1*..*a_(m-l)*b_(l+1)*...*b_n<br><br>What one does is a dot-product on those middle L dimensions.&nbsp; This is what I tried to do in the code in the blogpost.&nbsp; However, I was unable to formulate the constraints for the final multiplication class that does the actual proper cross-multiplication.
<br><br>Is this at all possible, or was I chasing ghosts?<br><br>Best regards,<br>Christophe<br><span class="ppt" id="_user_haskell-cafe@haskell.org"></span>