implement matrix multiplication using expression templates