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

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

[Octave-bug-tracker] [bug #59488] eigs error in dsaupd for zero matrix


From: John W. Eaton
Subject: [Octave-bug-tracker] [bug #59488] eigs error in dsaupd for zero matrix
Date: Fri, 20 Nov 2020 10:10:11 -0500 (EST)
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0

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

It works for me with 4.2.2 but fails with 4.4.1, so the bug is not new.

Bisecting for old versions of Octave on a current system doesn't work very
well because of changes in tools and things, so I tried to just run the
debugger on my 4.2.2 and 4.4.1 builds and I found that dsaupd is not called
for this problem with version 4.2.2.  So I stepped through eigs.m in both
versions and found that in 4.2.2, __eigs__ was not called.

Next, I extracted all versions of eigs.m from the repo since the time around
version 4.2.2 and tried the example with each one until I found the first that
failed:


## list of revisions with changes to eigs.m
hg log scripts/*/eigs.m --no-merges --template "{rev}\n" > /tmp/revs

## extract eigs.m from each of those revisions
mkdir /tmp/eigs
for rev in $(cat /tmp/revs) ; do hg update -r $rev ; cp scripts/sparse/eigs.m
/tmp/eigs/$rev-eigs.m ; done

## test each until we find a failure
## in this case, *-eigs.m is sorts correctly
## in chronological order so the first that fails
## should be the first bad revision
cd /tmp/eigs
for f in *-eigs.m ; do echo $f ; cp $f eigs.m ; octave --eval "eigs (zeros
(3), 1)"; rm -f eigs.m ; done


The first revision that showed the error for me was


# HG changeset patch
# User Marco Caliari <marco.caliari@univr.it>
# Date 1524560299 -7200
#      Tue Apr 24 10:58:19 2018 +0200
# Branch stable
# Node ID 1a632692a58e3204d8597404cdee8d7200deac88
# Parent  4c98a9e5ce2557e64256a8f02d857157187a80a3
Use eig in eigs when p is equal to matrix dimension n (bug #53719)


However, even the previous version that doesn't fail for zeros(3) will fail
for matrices of zeros that are larger than the limit eigs may also use to
determine when to call eig instead of __eigs__.  So we may just need to have a
special case for matrices that are all zeros.

    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?59488>

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




reply via email to

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