Generalized the matrix-multiplication to arbitrarily-sized arrays via creation of a macro (ct-matrix-mult) that generates the unrolled loops automatically at compile-time. The order of a specific inner-loop multiplication was changed to be more "logical" (which shouldn't make a difference, assuming multiplication of floats is commutative), but if that's changed back, the resulting bytecode is exactly the same as the handmade version.