Strassen and Winograd algorithms for efficient matrix multiplication