4.2-2 Write pseudocode for Strassen's algorithm
STRASSEN(A, B) n = A.rows let C be a new n*n matrices if n == 1 C11 = a11*b11; else partition A, B, P in equations 4.9 S1 = B12 - B22 S2 = A11 + A12 S3 = A21 + A22 S4 = B21 - B11 S5 = A11 + A22 S6 = B11 + B22 S7 = A12 - A22 S8 = B21 + B22 S9 = A11 - A21 S10 = B11 + B12 //Recursive P1 = STRASSEN(A11, S1) P2 = STRASSEN(S2, B22) P3 = STRASSEN(S3, B11) P4 = STRASSEN(A22, S4) P5 = STRASSEN(S5, S6) P6 = STRASSEN(S7, S8) P7 = STRASSEN(S9, S10) C11 = P5 + P4 - P2 + P6 C12 = P1 + P2 C21 = P3 + P4 C22 = P5 + P1 - P3 - P7 return C