$35
Homework Batch I: Matrix Multiplication
Download the Python matrix template class from https://moodle2.units.it/mod/resource/view.php?id=213844 and:
1. implement the strassen matrix mult function to multiply two 2n× 2n matrices by using the Strassen’s algorithm;
2. generalize strassen matrix mult to deal with any kind of matrix pair that can be multiplied (possibly also non-square matrices) and prove that the asymptotic complexity does not change;
3. improve the implementation of the function by reducing the number of auxiliary matrices and test the effects on the execution time;
4. answer to the following question: how much is the minimum auxiliary space required to evaluate the Strassen’s algorithm? Motivate the answer.