Patent ID: 7209939

Claim:
A computer system comprising: a processor configured to execute an operation on a first matrix and a second matrix, wherein the operation causes round-off errors by destructively cancelling at least one significant bit; a memory; a storage device; and software instructions stored in the memory for enabling the computer system, under the control of the processor, to produce and store a product matrix by: obtaining a first set of dimension values for the first matrix and a second set of dimension values for the second matrix, selecting one of a plurality of multiplication permutations if the first set of dimension values and the second set of dimension values are greater than a crossover value, wherein selecting from a plurality of multiplication permutations uses a round-robin method, multiplying the first matrix by the second matrix using the multiplication permutation, a Strassen-Winograd method, and the operation, recursively sub-dividing the first matrix and the second matrix producing a set of sub-matrix products and a recursion tree, propagating the set of sub-matrix products up the recursion tree to produce the product matrix, and storing the product matrix in the memory to obtain a stored product matrix, wherein executing the software instructions reduces round-off errors by distributing destructive cancellation of the at least one significant bit by the operation across the stored product matrix.