Class BlockWinogradAlgorithm
- java.lang.Object
-
- dev.nm.algebra.linear.matrix.doubles.matrixtype.mathoperation.multiplication.BlockWinogradAlgorithm
-
- All Implemented Interfaces:
DenseMatrixMultiplicationByBlock.BlockAlgorithm
public class BlockWinogradAlgorithm extends Object implements DenseMatrixMultiplicationByBlock.BlockAlgorithm
This implementation accelerates matrix multiplication via a combination of the Strassen algorithm and block matrix multiplication.- See Also:
- "ElGindy, H. and Ferizis, G, "On Improving the Memory Access Patterns During The Execution of Strassen's Matrix Multiplication Algorithm," In Proc. Twenty-Seventh Australasian Computer Science Conference (ACSC2004), Dunedin, New Zealand. CRPIT, 26. Estivill-Castro, V., Ed. ACS. 109-115."
- "Huss-Lederman, S., Jacobson, E., Tsao, A., Turnbull, T., and Johnson, J, "Implementation of strassen's algorithm for matrix multiplication," In Proc. 1996 ACM/IEEE Conf. Supercomputing, Washington, DC, USA. IEEE Computer Society."
-
-
Constructor Summary
Constructors Constructor Description BlockWinogradAlgorithm()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
run(SubMatrixBlock A, SubMatrixBlock B, SubMatrixBlock C)
Runs the matrix multiplication task.
-
-
-
Method Detail
-
run
public void run(SubMatrixBlock A, SubMatrixBlock B, SubMatrixBlock C)
Description copied from interface:DenseMatrixMultiplicationByBlock.BlockAlgorithm
Runs the matrix multiplication task. Allows customization in using BlockSizeCalculator and RecursionDepthCalculator and private multiplication functions.- Specified by:
run
in interfaceDenseMatrixMultiplicationByBlock.BlockAlgorithm
- Parameters:
A
- multiplicandSubMat
B
- multiplierSubMat
(transposed)C
- resultSubMat
-
-