octave-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Octave-bug-tracker] [bug #29487] Feature request: svd with 3 output var


From: John W. Eaton
Subject: [Octave-bug-tracker] [bug #29487] Feature request: svd with 3 output variables should use dgesdd
Date: Sat, 10 Apr 2010 19:46:47 +0000
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.8) Gecko/20100308 Iceweasel/3.5.8 (like Firefox/3.5.8)

Follow-up Comment #6, bug #29487 (project octave):

If you make the change globally, then all functions that call svd will be
affected, even those that need accuracy rather than speed.  So then we are in
the situation of having to always write things like

  saved_svd_method = svd_method ();
  unwind_protect
    svd_method ("prefer_accuracy_over_speed");
    [u, s, v] = svd (m);
  unwind_protect_cleanup
    svd_method (saved_svd_method);
  end_unwind_protect

and I would need to remember to do this everywhere I called svd to avoid
having some user's preference for speed over accuracy potentially screw up the
calculation in the software I write and distribute (say, in some package).

I would rather not have to do that.  Exactly this kind of situtation is why I
tried to remove all of the global "variables" that we used to have that could
affect results of computations.

OTOH, I do understand that it is not convenient to have to change all the
code that calls svd if you want to switch to using the other method globally,
even just as an experiment to see what will happen.

What about using a different function name, say svddc (for svd
divide-and-conquer, after the algorithm used in dgesdd).  Then if you really
want to use this function globally in place of the default svd function, can't
you do that by putting a @double/svd.m function in your path that does
something like

  function varargout = svd (varargin)
    varargout = cell (nargout, 1);
    [varargout{:}] = svddc (varargin{:});
  endfunction

?

    _______________________________________________________

Reply to this item at:

  <http://savannah.gnu.org/bugs/?29487>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/





reply via email to

[Prev in Thread] Current Thread [Next in Thread]