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

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

[Octave-bug-tracker] [bug #53560] pinv BIST test failing occasionally


From: Rik
Subject: [Octave-bug-tracker] [bug #53560] pinv BIST test failing occasionally
Date: Wed, 4 Apr 2018 17:44:19 -0400 (EDT)
User-agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:55.0) Gecko/20100101 Firefox/55.0

Update of bug #53560 (project octave):

                  Status:                    None => Postponed              

    _______________________________________________________

Follow-up Comment #5:

THis is super annoying.  I don't know what the issue is, but it goes pretty
deep.

I tried excluding high condition number matrices (cond # > 25), but there are
still occasional failures.

The algorithm for pinv is actually implemented in liboctave/array/dMatrix.cc
(for double matrices).  It uses the singular value decomposition.  I played
around with changing the LAPACK driver that we use for calculating the SVD
from gesdd to gesvd using the svd_driver() function.  This also didn't help.

It may just be round-off errors during intermediate computations during matrix
multiplication.  The BIST test is attempting to verify the Penrose conditions
on the pseudoinverse.  It should be the case that


A*B*A - A = 0
B*A*B - B = 0


However, only the first condition is accurate (<8 eps).  This may have
something to do with the order of multiplication.

I think we should ask someone on the Maintainer's list to run the code in
Matlab and see if it fails there as well.  But that can come later.  For now,
I just fixed the random seed to a known value
(http://hg.savannah.gnu.org/hgweb/octave/rev/435645a627dd).


    _______________________________________________________

Reply to this item at:

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

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




reply via email to

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