I would like to know the algorithm asymptotic complexity with Complete Pivoting. With partial pivoting, it is known to be $O(n^3)$.
Is it the same for complete pivoting?
Computational Science Stack Exchange is a question and answer site for scientists using computers to solve scientific problems. It only takes a minute to sign up.Sign up to join this community
Yes. Searching the entire trailing submatrix for the next pivot instead of only the current column merely replaces the time spent on finding pivots from $O(n^2)$ to $O(n^3)$. While the total runtime is increased, the overall asymptotic complexity remains $O(n^3)$.
Carl's answer is correct, I upvoted it too. The growth in pivot searches from taking $O(n^2)$ steps to $O(n^3)$ steps is unfortunate, but doesn't jeopardize the overall complexity. But I think the usual caveats about big-$O$ notation should be doubly repeated, that omitting the constants can obscure important details.
The hidden problem here is that full pivoting appears to spoil the opportunity to use BLAS3 operations to do deferred updates on the trailing columns. Because any column might be holding the next pivot at any time, they always have to be to kept up to date using BLAS2 kernels.
In contrast, partial pivoting only requires BLAS2 to update a thin "leading panel" of upcoming columns, and can update all the trailing columns later using BLAS3 once the panel is done.
The bottom line of all this is that full pivoting runs vastly slower than partial pivoting on practical computers, despite having the same asymptotic complexity.