[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Octave-bug-tracker] [bug #55564] GESDD: vastly different singular value
From: |
Rik |
Subject: |
[Octave-bug-tracker] [bug #55564] GESDD: vastly different singular values when vectors are also requested |
Date: |
Fri, 15 Feb 2019 11:34:36 -0500 (EST) |
User-agent: |
Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko |
Follow-up Comment #20, bug #55564 (project octave):
@count: Go ahead and file a different bug report about adding additional
drivers to svd_drivers() as a feature request. If you have software skills it
would also be good to submit a patch. This is a relatively esoteric request
which may not attract anyone else to write such a patch.
Beyond that, no algorithm is perfect. Octave is prioritizing accuracy over
speed, but--unlike Matlab--we give you the choice of using whatever driver you
want. I think the documentation, quoted below, is clear on that.
-- VAL = svd_driver ()
-- OLD_VAL = svd_driver (NEW_VAL)
-- svd_driver (NEW_VAL, "local")
Query or set the underlying LAPACK driver used by 'svd'.
Currently recognized values are "gesdd" and "gesvd". The default
is "gesvd".
When called from inside a function with the "local" option, the
variable is changed locally for the function and any subroutines it
calls. The original variable value is restored when exiting the
function.
Algorithm Notes: The LAPACK library provides two routines for
calculating the full singular value decomposition (left and right
singular matrices as well as singular values). When calculating
just the singular values the following discussion is not relevant.
The newer 'gesdd' routine is based on a Divide-and-Conquer
algorithm that is 5X faster than the alternative 'gesvd', which is
based on QR factorization. However, the new algorithm can use
significantly more memory. For an MxN input matrix the memory
usage is of order O(min(M,N) ^ 2), whereas the alternative is of
order O(max(M,N)).
Beyond speed and memory issues, there have been instances where
some input matrices were not accurately decomposed by 'gesdd'. See
currently active bug <https://savannah.gnu.org/bugs/?55564>. Until
these accuracy issues are resolved in a new version of the LAPACK
library, the default driver in Octave has been set to "gesvd".
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?55564>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/
- [Octave-bug-tracker] [bug #55564] GESDD: vastly different singular values when vectors are also requested, count, 2019/02/14
- [Octave-bug-tracker] [bug #55564] GESDD: vastly different singular values when vectors are also requested, Tim Mitchell, 2019/02/15
- [Octave-bug-tracker] [bug #55564] GESDD: vastly different singular values when vectors are also requested, count, 2019/02/15
- [Octave-bug-tracker] [bug #55564] GESDD: vastly different singular values when vectors are also requested, count, 2019/02/15
- [Octave-bug-tracker] [bug #55564] GESDD: vastly different singular values when vectors are also requested, Tim Mitchell, 2019/02/15
- [Octave-bug-tracker] [bug #55564] GESDD: vastly different singular values when vectors are also requested,
Rik <=
- [Octave-bug-tracker] [bug #55564] GESDD: vastly different singular values when vectors are also requested, count, 2019/02/15
- [Octave-bug-tracker] [bug #55564] GESDD: vastly different singular values when vectors are also requested, Eddy, 2019/02/24
- [Octave-bug-tracker] [bug #55564] GESDD: vastly different singular values when vectors are also requested, Mike Miller, 2019/02/25