Thanks for all your replies. I will look into them all. A bit of googling and I also found some other speed enhancements:for A^r where A is an NxN matrix the number of matrix multiplications can be reduces from r to O(log2(r)) by observing that (for example) A^2 = A x A A^4 = (A^2) x (A^2)A^8 = (A^4) x (A^4)A^15 = A^8 x A^4 x A^2 x A=6 matrix multiplications Likewsie matrix multiplication (in general) can be reduced from an O(n^3) operation to an O(n^log2(7)) operation (<a target=new class=ftalternatingbarlinklarge href="
http://www.library.cornell.edu/nr/bookc ... >Numerical Recipes</a>. A little further research and I found that if you are prepared to do it, different memory storage schemes for the matrix can also deliver further improvements for large matrices.The easiest way to get a speed increase will be to get and use a graphics which is dedicated to linear algebra (as many of them are). And/or depoly the code on a MacAnother (to me very surprising) route that I found is to use reflection in C# to write out the matrix multiplication semi-explictly at run time. Apparantly this will deliver around 50% speed increases for medium sized matrices (and I presume with tweaking could deliver similar improvements for larger (i.e. N>100) matrices).I looked at our current matrix library (based on LAPACK) and found that it was (for instance) creating a new matrix for the transpose. By overloading the indexing I got a more efficient transpose property/ method. For large matrices some kind of matrix memory pooling may deliver some further improvements?!The LLt algorithm? I don't recognise the name - but will check my copy of nr when I get home and see what is there! If I'm really lucky it may already be somewhere in my current library!!!regarding C++/ C# - one would expect that C++, especially unmanaged, would be faster, but I then loose the depth of debugging that I get with C#, since everything else is C#! I can step into the matrix operations and see what has gone wrong. (No doubt I will now be informed that this is rubbish and that I can use the two together in the same Visual Studio Solution ??!!!)