# How to make such a matrix multiplication as fast as possible in Macaulay2?

Given two matrices, $A_{m,n}$ ($m$ rows and $n$ columns), and $B_{n,k}$ ($n$ rows and $k$ columns), now we want to compute matrix $A$ acting on each row of matrix $B$, and expect $mk$-dimensional matrix $C$, namely

$$C=A * (B_{0}) | ( A * (B_{1}) ) | ( A * (B_{1}) ) |...| ( A * (B_{k}) )$$

For example, let

 A=matrix{{a_00, a_01, a_02},
{a_10, a_11, a_12}},
B=matrix{{b_00, b_01, b_02, b_03},
{b_10, b_11, b_12, b_13},
{b_20, b_21, b_22, b_23}}


namely, $m=2, n=3, k=4$

 C=matrix{{a_00*b_00+a_01*b_10+a_02*b_20,  a_00*b_01+a_01*b_11+a_02*b_21,  a_00*b_02+a_01*b_12+a_02*b_22,  a_00*b_03+a_01*b_13+a_02*b_23},
{a_10*b_00+a_11*b_10+a_12*b_20,  a_10*b_01+a_11*b_11+a_12*b_21,  a_10*b_02+a_11*b_12+a_12*b_22,  a_10*b_03+a_11*b_13+a_12*b_23} }


I could do a loop over $k$, and then concatenate column by column. But this is not efficient enough, when $k$ is very large, say $10,000$.

Any tips?

-
Use LAPACK.  – Inquest Oct 28 '12 at 19:03
Well, this computation is just a subroutine. I need other functions of Macaulay2. – Osiris Xu Oct 28 '12 at 22:45