LAPACK Archives

[Lapack] Bugs in DLASD8 and DLASD6

Dear Justin,
Just to let you know that the bug you reported (bug0121) has been corrected in 
rev 1505 on Oct 1st 2014.
See http://www.netlib.org/lapack/Errata/index2.html 
<http://www.netlib.org/lapack/Errata/index2.html>

The bug fix will be released in the coming LAPACK release. At the moment, it is 
available in our SVN repository.

The bug has been traced to [d/s]laed6, which computes the root closest to the 
origin of a secular equation and is used in the D&C tridiagonal eigensolver 
(DSTEDC) and D&C least squares solver (DGELSD). We have interacted with 
Ren-Cang Li (the original developer of [d/s]laed6) about possible fixes, and I 
am attaching a new version of [d/s]laed6. This version has been tested with our 
'torture cases' (more on this below) in:

- single and double precision
- Intel Xeon Westmere with gnu (gfortran) and intel (ifort) compilers
- AMD MagnyCours with pgi, cray, intel and gnu compilers

The bug was related to a too stringent tolerance convergence criterion, line 
390 in laed6. The fix is

390          IF( ( ABS( F ).LE.FOUR*EPS*ERRETM ) .OR.
391      $      ( (UBD-LBD).LE.FOUR*EPS*ABS(TAU) )  )

to replace

390          IF( ABS( F ).LE.EPS*ERRETM )


Thank you again for reporting the issue!
Sincerely,
Julie
On Sep 23, 2014, at 9:29 AM, julie <julie@Domain.Removed> wrote:

Dear Justin
Thank you for the bug report, and the detailed explanation
We recorded the bug on our Errata as bug 121 - 
http://www.netlib.org/lapack/Errata/index2.html#_strong_span_class_maroon_bug121_span_strong_bugs_in_dlasd8_and_dlasd6
 
<http://www.netlib.org/lapack/Errata/index2.html#_strong_span_class_maroon_bug121_span_strong_bugs_in_dlasd8_and_dlasd6>
We are going to take a look very shortly.
Sincerely,
Julie
On Sep 22, 2014, at 10:22 AM, Justin (Weiguang Si) <forswg@Domain.Removed 
<mailto:forswg@Domain.Removed>> wrote:

We got a fatal error message "On entry to DLASD4 paramater number -1 had an 
illegal value" when using IpOpt. We think this is due to a bug in Lapack.

The bug is in DLASD8 (see line 276 to line 284 of DLASD8 
<http://www.netlib.org/lapack/explore-html/d8/d96/dlasd8_8f_source.html>), 
which calls DLASD4 and then handles the INFO =1 error return incorrectly. 
The error indicates that DLASD4 failed to converge and should have been 
reported as an INFO = 1 return to DLASD8's caller. It should not have been 
passed to XERBLA. We also see similar bugs in DLASD6 (see line 414 to line 
422 of DLASD6 
<http://www.netlib.org/lapack/explore-html/d6/d85/dlasd6_8f_source.html>).

DLASDA shows what we think is the correct behavior (see line 486 to line 507 
of DLASDA 
<http://www.netlib.org/lapack/explore-html/d4/d6f/dlasda_8f_source.html>). 
Here it is just passing the info value from DLASD6 back as the info value 
from DLASDA which is reasonable (setting info = 1 before returning might be 
cleaner). This method allows the higher-level subroutine that called DLASDA 
to recover from low-level convergence failure. We think that's the fix we 
need done in DLASD8 and DLASD6.

Thanks a lot for your attention.

-- 
--------------------------------------------------
Justin (Weiguang Si)

Postdoctoral Researcher
Neuromuscular Biomechanics Lab
Stanford University

forswg@Domain.Removed <mailto:forswg@Domain.Removed>
weiguang@Domain.Removed 
<mailto:weiguang@Domain.Removed>_______________________________________________
Lapack mailing list
Lapack@Domain.Removed <mailto:Lapack@Domain.Removed>
http://lists.eecs.utk.edu/mailman/listinfo/lapack


-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://lists.eecs.utk.edu/mailman/private/lapack/attachments/20150311/01e61a1d/attachment.html>

<Prev in Thread] Current Thread [Next in Thread>


For additional information you may use the LAPACK/ScaLAPACK Forum.
Or one of the mailing lists, or