The Kronecker product of two matrices replaces each element of the first matrix with a multiple of a copy of the second matrix. The history, applications, and properties of the Kronecker and the symmetric products are well known [1,2]. For example, the Kronecker product is used in control theory to unfold systems of linear equations. In many applications, one needs to multiply a matrix represented as a Kronecker product of several matrices times an input matrix.
Are there more effective ways to compute this product than simply carrying out the Kronecker products, producing a large matrix, and then multiplying times the input matrix? Not surprisingly, the answer is yes. Fackler describes forward and backward algorithms for this problem, and shows how his methods can avoid the memory intensive matrix reordering required by other methods. He presents MATLAB implementations of his methods and compares them with previously implemented methods.
The major contributions of this research are algorithms to eliminate computationally intensive data shuffling, as well as a simplified way to optimally order the workflow. In light of the experimental results presented, I invite all algorithmic designers and MATLAB lovers to read this insightful paper and then recommend more diverse areas of Kronecker applications in more computing domains.