12/28/16
There is a new bug report about slow performance when using the svd()
function (https://savannah.gnu.org/bugs/index.php?49940). The difference
in run times between requesting just the singular values, versus the full
decomposition, is ~10X. Interestingly enough, there are two LAPACK
routines to choose from when performing the svd and Octave provides the
svd_driver function for switching between using gesvd and gesdd. The
default for Octave is gesvd, but gesdd is 5X faster. Is there a reason not
to switch and have gesdd be the default?
I found this thread from the Julia group in 2012
(https://groups.google.com/forum/?_escaped_fragment_=msg/julia-dev/mmgO65i6-fA/SkbAjg8SCzgJ#!msg/julia-dev/mmgO65i6-fA/SkbAjg8SCzgJ)
which goes over the same material. They concluded it was acceptable to
switch to gesdd.
If there are no objections I will change the default on the dev branch in
the next few days.