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

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

[Octave-bug-tracker] [bug #53719] eigs delivers wron result in case of c


From: Rik
Subject: [Octave-bug-tracker] [bug #53719] eigs delivers wron result in case of complex valued general eigenvalue problem
Date: Mon, 23 Apr 2018 11:38:05 -0400 (EDT)
User-agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:55.0) Gecko/20100101 Firefox/55.0

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

For question 2:

2) the diff fixes in general the crash when B is not SPD, but maybe a bug in
sparse_chol is now hidden (is it correct that fact.P() does not exist when
info != 0?) 

This is correct.  Downstream code should not rely on any of the outputs from
the factorization if the factorization has failed.

P is not, in fact a data member of the sparse_chol class, but actually a
function.  The code is


      octave_idx_type P (void) const
      {
#if defined (HAVE_CHOLMOD)
        return (minor_p == static_cast<octave_idx_type>(Lsparse->ncol) ?
                0 : minor_p + 1);
#else
        return 0;
#endif
      }


So P is not calculable if Lsparse hasn't been computed.  There is an optional
fourth argument that we could pass to the sparse_chol to force some kind of
factorization.  Instead of this,


   octave::math::sparse_chol<SparseMatrix> fact (b, info, false);


call


   octave::math::sparse_chol<SparseMatrix> fact (b, info, false, true);


but I doubt that is a good idea.

I will commit your patch whenever you think it is sufficiently tested.


    _______________________________________________________

Reply to this item at:

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

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




reply via email to

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