Fast Commutative Matrix Algorithm (1904.07683v2)
Abstract: We show that the product of an nx3 matrix and a 3x3 matrix over a commutative ring can be computed using 6n+3 multiplications. For two 3x3 matrices this gives us an algorithm using 21 multiplications. This is an improvement with respect to Makarov's algorithm using 22 multiplications[13]. We generalize our result for nx3 and 3x3 matrices and present an algorithm for computing the product of an lxn matrix and an nxm matrix over a commutative ring for odd n using n(lm+l+m-1)/2 multiplications if m is odd and using (n(lm+l+m-1)+l-1)/2 multiplications if m is even. Waksman's and Islam's algorithm for odd n needs (n-1)(lm+l+m-1)/2+lm multiplications [10,19], thus in both cases less multiplications are required by our algorithm. We also give an algorithm for even n using n(lm+l+m-1)/2 multiplications without making use of divisions, since Waksman's and Islam's algorithm make use of some divisions by 2 [10,19]. Furthermore we present a novelty for matrix multiplication: In this paper we show that some non-bilinear algorithms with special properties can be used as recursive algorithms. In comparison to bilinear algorithms for small nxn matrices say n<20 we obtain some better results. From these non-bilinear algorithms we finally obtain approximate non-bilinear algorithms. For instance we obtain an approximate non-bilinear algorithm for 5x5 matrices that uses only 89 multiplications. If at all it is possible to compare this algorithm with a bilinear algorithm we obtain a better result with respect to Smirnov's algorithm [15].