Implements the new proposed sequence[1] both for product and for matrix squaring. It uses exactly the same structure of the fastmm library[2], so it can simply replace the original mat-mulkernels.c file. Optimisations for exponentiation and chain-product are not implemented.
NOTE: Licence issue needs clarification. The code must be tested, so it is not published.
Licence: GNU GPLv3+.
Download: Mul/mat-mulkernels.c. (and Examples/example.2.c for testing
purposes)
References: [1]A
Strassen-like matrix multiplication suited for squaring and higher
power computation
by Marco Bodrato.
[2]Fast Matrix Multiplication Algorithms.
Implements the new proposed sequence[1] both for product and for matrix squaring. It uses exactly the same structure of the M4RI library[2], so it can simply replace the original strassen.c file.
Product performance should be basically the same with respect to the previously implemented Winograd variant. Squaring should be around 1% faster. Further optimisations for exponentiation are not implemented yet.
Licence: GNU GPLv3+.
Download:
References: [1]A
Strassen-like matrix multiplication suited for squaring and higher
power computation
by Marco Bodrato.
[2]M4RI - Linear Algebra over F2.
Implements the proven optimal[1] matrix squaring with binary splitting, original code[1] implemented Strassen's and Winograd's variant, my code also add the new proposed sequence, with the same or better performances for plain multiplication.
Licence: GNU GPLv3+.
Download: src-including-eclipse-project/src/main/java/org/jlinalg/MatrixMultiplication.java. (and a patch to MatrixMultiplicationTest.java to include tests for the code above).
References: [1]A
Strassen-like matrix multiplication suited for squaring and higher
power computation
by Marco Bodrato.
[2]JLinAlg - a Java-library for linear algebra.