Cache-oblivious matrix multiplication