Table of Contents Author Guidelines Submit a Manuscript
Scientific Programming
Volume 5 (1996), Issue 3, Pages 203-217

Massively Parallel Searching for Better Algorithms or How to Do a Cross Product with Five Multiplications

John Gustafson1 and Srinivas Aluru2

1Ames Laboratory, Iowa State University, Ames, IA 50011, USA
2Department of Computer and Information Science, Syracuse University, Syracuse, NY 13244, USA

Received 22 December 1993; Accepted 22 August 1995

Copyright © 1996 Hindawi Publishing Corporation. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.


A number of "tricks" are known that trade multiplications for additions. The term "tricks" reflects the way these methods seem not to proceed from any general theory, but instead jump into existence as recipes that work. The Strassen method for 2 × 2 matrix product with seven multiplications is a well-known example, as is the method for finding a complex number product in three multiplications. We have created a practical computer program for finding such tricks automatically, where massive parallelism makes the combinatorially explosive search tolerable for small problems. One result of this program is a method for cross products of three-vectors that requires only five multiplications.