[SciPy-dev] test failures in current trunk: sparse\linalg\isolve, and special
Nathan Bell
wnbell@gmail....
Sun Feb 15 21:00:36 CST 2009
On Sun, Feb 15, 2009 at 7:53 PM, Nathan Bell <wnbell@gmail.com> wrote:
>
> I can confirm the failure on Win32 and have isolated it to bicgstab.
> I'll continue searching for the source of the error.
>
> I noticed that the Windows binaries for SciPy 0.7 also have this
> problem, but the test has been marked as a known failure. Was this
> bug ever reported?
>
The problem seems to be that when bicgstab enters the Fortran function
BICGSTABREVCOM it dies a horrible death and returns INFO=-10
signifying breakdown of the algorithm. This doesn't make sense,
because the calling function hasn't really provided the Fortran side
with any real data except the right hand side (b) and the initial
iterate (x) which happens to be 0 in this case. I don't know Fortran,
but I believe the condition on 269 should be false since (I think)
WORK(1,RTLD) and WORK(1,R) are the same vector (both copies of b)
which, in the tests, is chosen randomly.
268 RHO = <xdot>( N, WORK(1,RTLD), 1, WORK(1,R), 1 )
269 IF ( ABS( RHO ).LT.RHOTOL ) GO TO 25
When I changed RHOTOL and OMEGATOL from:
228 RHOTOL = <sdsd>GETBREAK()
229 OMEGATOL = <sdsd>GETBREAK()
To:
228 RHOTOL = 0
229 OMEGATOL = 0
The tests pass. Can a Fortran guru tell us if GETBREAK() is suspect?
Here are the suspects:
http://projects.scipy.org/scipy/scipy/browser/trunk/scipy/sparse/linalg/isolve/iterative.py#L134
http://projects.scipy.org/scipy/scipy/browser/trunk/scipy/sparse/linalg/isolve/iterative/BiCGSTABREVCOM.f.src
http://projects.scipy.org/scipy/scipy/browser/trunk/scipy/sparse/linalg/isolve/iterative/getbreak.f.src
I give up for now.
--
Nathan Bell wnbell@gmail.com
http://graphics.cs.uiuc.edu/~wnbell/
More information about the Scipy-dev
mailing list