[Q] #2 TDecompSVD unsorted version?


To calculate covariant matrix of input vector,
I need to get ‘un-sorted’ V/S from TDecompSVD
class. But it looks like TDecompSVD always
sort vector/matrices, so if I call GetSig()/GetU()/GetV()
they are always sorted according the the Sig vector.
How can I get unsorted S/V (and U)?

Chul Su


I might be confised, as far as the
order of columns in U/V are sorted,
it’ll not affect covariant matrix calculation.

Chul Su

Hi Chul Su,

Several remarks :

  1. Since your covariance matrix will be a positive-definite symmetric
    matrix , a better choice would be to use the Cholesky
    decomposition in TDecompChol . It takes advantge of the structure
    and will be much faster . If you expect your matrix to be numerically
    "challenged" (near singular) then TDecompSVD is the right choice .
    You could check this with Condition() method

  2. Indeed permutations are applied to S, U and V matrix so that the
    singular values in S are ordered , but still A = U S V^T will be true .
    So what is the issue ? Why unsorted ?