[Top][All Lists]

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

[Octave-bug-tracker] [bug #41116] Incorrect result for sparse LU factori

From: Marco Caliari
Subject: [Octave-bug-tracker] [bug #41116] Incorrect result for sparse LU factorization
Date: Thu, 09 Jan 2014 08:48:34 +0000
User-agent: Mozilla/5.0 (X11; Linux i686; rv:13.0) Gecko/20100101 Firefox/13.0

Follow-up Comment #4, bug #41116 (project octave):

Dear all,

I found that q after UMFPACK_DNAME (get_numeric) around l.416 of
SparsedbleLU.cc is not the identity permutation. I don't know if this is the
wanted behavior. In fact, UMFPACK_FIXQ = 1.0 only means that the symbolic
column permutation is kept in the numeric factorization. 
Anyway, since there is a column permutation, I had to rewrite the code around
l.233 of lu.cc and permute U

PermMatrix Q = fact.Pc_mat ();
SparseMatrix U = fact.U () * Q.transpose ();
retval(1) = octave_value (U, MatrixType (MatrixType::Permuted_Upper, nr,
fact.col_perm ()));

I'm not sure of the last line, I copied it from the row permutation of L and
changed row_perm with col_perm (???)
The result is now correct. If this is a real fix and not a simple workaround,
than it should be applied to the 3-argument version and to the float, complex

I hope someone more confident with the code can use my investigation to
provide a complete patch.



Reply to this item at:


  Message sent via/by Savannah

reply via email to

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