summaryrefslogtreecommitdiff
path: root/SRC/dbdsdc.f
diff options
context:
space:
mode:
authorlangou <langou@users.noreply.github.com>2010-06-22 22:08:36 +0000
committerlangou <langou@users.noreply.github.com>2010-06-22 22:08:36 +0000
commit9d2ac5bb4d35890a66f0eaa48935de14366c8c9c (patch)
tree514a3001c4ec067a5b395a29bd74825981d15c33 /SRC/dbdsdc.f
parentcc91ce19dc8454d2129df767cadc8fa22dc7ba43 (diff)
downloadlapack-9d2ac5bb4d35890a66f0eaa48935de14366c8c9c.tar.gz
lapack-9d2ac5bb4d35890a66f0eaa48935de14366c8c9c.tar.bz2
lapack-9d2ac5bb4d35890a66f0eaa48935de14366c8c9c.zip
Corrected a bug in SBDSDC and DBDSDC.
The routine was returning with INFO = 0 while a failure of convergence should have been reported with INFO > 0. The bug has been around for quite a while and has been difficult to reproduce. More information: (*) bug0025 :: serious problem in DGESDD: DGESDD returns negative singular values with INFO = 0 o reported by Guy Bencteux on Sat Dec 06 2008 o see forum topic 847 o Julie : CANNOT REPRODUCE THE PROBLEM o on Sat Jun 19 2010, Bruno Pinçon from ESIAL, reported another matrix with the same problems o see forum topic 1868 o we can reproduce the problem with on MacOS with gfortran reference LAPACK and vecLib BLAS, we can not reproduce the problem with reference LAPACK and reference BLAS. o A patch has been proposed by Julien Langou. (See forum topic 1868.) o Under review by other lapackers. o Note: there is strong evidence that the bug of Guy Bencteux and this one are the same, although we were never able to reproduce Guy's problem. So we assume Guy's problem gone! (And send an email to Guy to inform him.)
Diffstat (limited to 'SRC/dbdsdc.f')
-rw-r--r--SRC/dbdsdc.f6
1 files changed, 3 insertions, 3 deletions
diff --git a/SRC/dbdsdc.f b/SRC/dbdsdc.f
index 40185268..0af80cbd 100644
--- a/SRC/dbdsdc.f
+++ b/SRC/dbdsdc.f
@@ -368,9 +368,9 @@
$ Q( START+( IC+QSTART-2 )*N ),
$ Q( START+( IS+QSTART-2 )*N ),
$ WORK( WSTART ), IWORK, INFO )
- IF( INFO.NE.0 ) THEN
- RETURN
- END IF
+ END IF
+ IF( INFO.NE.0 ) THEN
+ RETURN
END IF
START = I + 1
END IF