Faster SVD for Matrices with Small $m/n$
The singular values of a matrix are conventionally computed using either the bidiagonalization algorithm by Golub and Reinsch (1970) when $m/n less than 5/3$, or the algorithm by Lawson and Hanson (1974) and Chan (1982) when $m/n greater than 5/3.$ However, there is an algorithm that is faster and that does not involve a discontinuous choice, as follows: in all cases, perform a QR factorization as in Lawson-Hanson-Chan, but rather than do this right at the beginning, do it after zeros have already been introduced in the first $j = 2n - m$ rows and columns. The same technique applies when computing singular vectors, with one small modification. If left singular vectors are needed, the new algorithm becomes advantageous only when $m greater than 1.2661n$, and the best $j$ in this case is $3n - m$. The benefits of the new algorithm appear in terms of classical scalar floating-point operation counts; the effects of locality and parallelization are not considered in the analysis.