into the field F induced by a scalar double-dot product, (i.e. in this case the sum of all the entries of a Hadamard product.) It can be shown that the total number of elementary multiplications required for matrix multiplication is tightly asymptotically bound to the rank , i.e. , or more specifically, since the constants are known, . One useful property of the rank is that it is submultiplicative for tensor products, and this enables one to show that matrix multiplication can be accomplished with no more than elementary multiplications for any . (This -fold tensor product of the matrix multiplication map with itself — an -th tensor power—is realized by the recursive step in the algorithm shown.) Cache behavior Strassen's algorithm is cache oblivious. Analysis of its cache behavior algorithm has shown it to incur cache misses during its execution, assuming an idealized cache of size (i.e. with lines of length ). Implementation considerations The description above states that the matrices are square, and the size is a power of two, and that padding should be used if needed. This restriction allows the matrices to be split in half, recursively, until limit of scalar multiplication is reached. The restriction simplifies the explanation, and analysis of complexity, but is not actually necessary; and in fact, padding the matrix as described will increase the computation time and can easily eliminate the fairly narrow time savings obtained by using the method in the first place. A good implementation will observe the following: It is not necessary or desirable to use the Strassen algorithm down to the limit of scalars. Compared to conventional matrix multiplication, the algorithm adds a considerable workload in addition/subtractions; so below a certain size, it will be better to use conventional multiplication. Thus, for instance, a does not need to be padded to , since it could be subdivided down to matrices and conventional multiplication can then be used at that level. The method can indeed be applied to square matrices of any dimension. If the dimension is even, they are split in half as described. If the dimension is odd, zero padding by one row and one column is applied first. Such padding can be applied on-the-fly and lazily, and the extra rows and columns discarded as the result is formed. For instance, suppose the matrices are . They can be split so that the upper-left portion is