This repository demonstrates algorithms for matrix multiplication to optimize both performance and rank.
This project includes:
- Naive vs. Strassen Algorithm Comparison - Benchmarking traditional O(n³) multiplication against Strassen's O(n^2.807) algorithm
- Formula-based Matrix Multiplication - Parser that reads and applies optimized multiplication schemes from mkauers/matrix-multiplication
- Formula files from mkauers/matrix-multiplication
# Run benchmark with default 512x512 matrices
./strassen_multiply
# Run with custom size (must be square matrices)
./strassen_multiply 1024# Basic usage
./formula_multiply <formula_file.m> <n> <m> <p>
# Example: 4×5×6 matrix multiplication
./formula_multiply matrix-multiplication/456/k0e7ba384e845ae2.m 4 5 6
# With verification against naive algorithm
./formula_multiply matrix-multiplication/456/k0e7ba384e845ae2.m 4 5 6 --verifymake all- Build all executablesmake formula_multiply- Build the formula parser/multipliermake strassen_multiply- Build Strassen algorithm benchmarkmake test_summary- Build the efficiency analysis toolmake test- Run tests on all matrix sizesmake summary- Display efficiency comparison tablemake clean- Remove build artifactsmake help- Show all available targets