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

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

 From: Dan Sebald Subject: [Octave-bug-tracker] [bug #53719] eigs delivers wrong result in case of complex valued general eigenvalue problem Date: Thu, 26 Apr 2018 04:53:47 -0400 (EDT) User-agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:55.0) Gecko/20100101 Firefox/55.0

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

OK, the invalid number of converged Ritz makes sense.

I'm wondering about the following comment in the code:

c           %-----------------------------------------%
c           | Perform y <-- OP*x = inv[A-sigma*M]*M*x |
c           | M*x has been saved in workd(ipntr(3)).  |
c           | The user only need the linear system    |
c           | solver here that takes workd(ipntr(3))  |
c           | as input, and returns the result to     |
c           | workd(ipntr(2)).                        |
c           %-----------------------------------------%

The documentation says that when IDO=1:

c  Mode 3:  A*x = lambda*M*x, M symmetric semi-definite
c           ===> OP =  inv[A - sigma*M]*M   and  B = M.
c           ===> shift-and-invert mode
c           If OP*x = amu*x, then lambda = sigma + 1/amu.
[snip]
c          IDO =  1: compute  Y = OP * Z  and Z = B * X where
c                    IPNTR(1) is the pointer into WORKD for X,
c                    IPNTR(2) is the pointer into WORKD for Y,
c                    IPNTR(3) is the pointer into WORKD for Z.

That comment above makes it sound as though Z = M X, but then why would the
documentation state Y = OP Z?  That would be Y = inv(A) M M X.  I don't follow
that part of things.

_______________________________________________________

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

_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/

```