matrix_multiplication multiply two matrices efficiently using classical multiplication, divide-and-conquer method, and Strassen algorithm.