Abstract
First, we describe an algorithm (the polynomial convolution algorithm) for the multiplication of two rectangular matrices A and B. The algorithm codes the matrix elements of A and B into two polynomials in a common indeterminate; the degree of the polynomial characterizing A depends on the size of both A and B, while the degree of the polynomial characterizing B only involves the size of B. The matrix elements of the product C = AB are obtainable from the convolution of the two polynomials. Although the resultant analysis is quite complex, its implementation in optical computing can be carried out in straightforward fashion (see Sec. III). The algorithm is at least as fast as the outer product and Kronecker product algorithms advocated by Athale-Collins and Barakat, respectively, in the assumed conditions of equally accessible matrix elements. Second, we consider the situation where the matrices are so large that they cannot be stored simultaneously on optical masks. It is shown that the speed advantages of the outer product and Kronecker product algorithms are now lost in this situation, whereas the polynomial convolution algorithm, because of its modular structure, is robust with respect to the storage problem. Finally, we consider some partitioning strategies in the light of the storage problem.
© 1987 Optical Society of America
Full Article | PDF ArticleMore Like This
Henri Rajbenbach, Yeshayahu Fainman, and Sing H. Lee
Appl. Opt. 26(6) 1024-1031 (1987)
David Casasent and Anjan Ghosh
Appl. Opt. 22(22) 3572-3578 (1983)
C. K. Gary
Appl. Opt. 31(29) 6205-6211 (1992)