4

Is there any way to compute the dot product of a matrix and it's transpose matrix that is faster than the normal, O(n^3) way? I have matrix of 1000 rows and 1000 columns. If I assume n=1000, then I need to find the product the matrix and it's transpose matrix in something around O(n^2) or O(logn*n^2) time. Is it possible?

ilim
  • 4,477
  • 7
  • 27
  • 46
For_A_While
  • 315
  • 2
  • 18

1 Answers1

4

Yes, as there are already faster algorithms for general matrix multiplication, like the Strassen algorithm, which is ~O(N^2.8)

Landei
  • 54,104
  • 13
  • 100
  • 195
  • From the linked article: *"a 2010 study found that even a single step of Strassen's algorithm is often not beneficial on current architectures, compared to a highly optimized traditional multiplication, until matrix sizes exceed 1000 or more, and even for matrix sizes of several thousand the benefit is typically marginal at best (around 10% or less)."* – user3386109 Feb 07 '17 at 10:52
  • `O(n^log(7)) ~ O(n^2.8)` versus naive `O(n^log(8)) == O(n^3)` – Dmitry Bychenko Feb 07 '17 at 11:08