bug 159 DSTEMR - consolidates bugs 113 and 126

  • CONFIRMED

  • Present in LAPACK 3.6.0

  • Assigned to Osni.

  • Osni: We have a new subroutine to replace the subroutine causing us trouble.  We will be sitting together (OM and Prof. Parlett) tomorrow to discuss how this will behave.

  • I expect the new version of the subroutine will fix bug 113

  • 02/10/16 Osni: The bug has been traced to the factorization(s) performed by dlarrf.

  • The current implementation of dlarrf can lead to NaNs or element growth (this is expected) but the tests to deal with these cases are not working properly.

  • Beresford and I have experimented changing a few things in dlarrf, which fixes this bug and also bug 126, but we know that a more robust strategy needs to be devised. 

  • 2/11/16: We were able to trace the issue down here to the factorizations. We have some tests to cope with extreme growth in elements and NaNs,

  • but these tests are not robust. So we end up with linearly dependent eigenvectors when eigenvalues are close to each other.

  • 5/9/16: (Osni) We had a meeting in Berkeley (Prof. Parlett, Jim, Osni, I Dhillon) Some safeguards were removed over the years thinking we did not need them;

  • perhaps they must come back (this was the focus of our discussion). For some matrices, the vectors that are returned are not orthogonal the way we would

  • like them to be---the level of orthogonality is not ideal for nearly multiple eigenvalues. Prof Parlett and I will sit together to determine the best strategy for future LAPACK release.

bug 158 problem with DC SVD least squares

  • CONFIRMED

  • Present in LAPACK 3.6.0

  • Bug reported by Alexander Kobotov in 2015 to Julien

  • Assigned to Osni.

bug 157 gesdd , gesvd, and bdsdc Workspace computation

  • CORRECTED

  • Present in LAPACK 3.6.0

  • Bug reported by Mark Gates on Feb 12th 2016 to Julie / Julien

  • Bug report from Peng HongBo (IBM) on Mar 14 th 2016, Mar 21st 2016 to LAPACK mailing List

  • Corrected by Mark (files sent to Julie) on Apr 27th, svn 1739.

bug 156 Accuracy Loss in DSTEVD and DSTEVR

bug 155 [CZ]GESVJ - OMPQ eval only when rotating

bug 154 [LAPACKE] lapacke_?lantr: unnecessary work array allocation

bug 153 Fix out of bounds error in dgeev

  • CORRECTED

  • Present in LAPACK 3.6.0

  • Bug reported by Andreas Noack (MIT) on Dec 9th 2015 on LAPACK Mailing List

  • Corrected by Julien on Dec 9th, svn 1669

bug 152 [LAPACKE] Dormbr check wrong for RowMajor

bug 151 Bug in xGETC2, quick return for N=0, N=1

  • CORRECTED

  • Present in LAPACK 3.6.0

  • Bug reported by Martin Köhler on Nov 29th 2015 on LAPACK Mailing List

  • Corrected by Julien on Nov 29th, svn 1660

bug 150 [LAPACKE] Fix bug on [sd]lantr which don’t report the result

  • CORRECTED

  • Present in LAPACK 3.6.0

  • Bug and fix reported by Mathieu Faverge (PLASMA team) on Nov 25 2015

  • Corrected by Mathieu Faverge on Nov 22th, svn 1658

bug 149 workspace computation for [CZ]GESVDX when a workspace query is done

bug 148 workspace computation for [s/d]gesvdx.f

bug 147 INFO parameter value when LVT is not correct.

bug 146 properly avoid setting the install rpath when installing to system directories

  • CORRECTED

  • Present in LAPACK 3.6.0

  • Bug and fix reported by Orion Poplawski on Nov 18 2015 on LAPACK Mailing List

  • Corrected by Julie on Nov 18th, rev 1653

bug 145 Fix upper case issue in CMakeLists

  • CORRECTED

  • Present in LAPACK 3.6.0

  • Bug and fix reported by Julien Schueller on Nov 17 2015 on LAPACK Mailing List

  • Corrected by Julie on Nov 17th, rev 1651

bug 144 inconsistency in the lapacke cmake config files install directory location

  • CORRECTED

  • Present in LAPACK 3.6.0

  • Bug and fix reported by Julien Schueller on Mon Nov 16 2015 on LAPACK Mailing List

  • Corrected by Julie on Nov 16th, rev 1650

bug 143 [CZ]GEJSV - real→ complex bugs

bug142 Mistake in computation of workspace for ZGGEV3

bug141 LAPACKE dlantr causes memory corruption

bug140 LAHEF_ROOK and LASYF_ROOK: could choose zero pivot in the case when non-zero pivot could be used

bug139 xSTEDC eigenvalues not sorted

bug138 :: LAPACKE_dtr_nancheck not working for trapezoidal matrix

bug 137 :: Dlange gives inconsistent/incorrect results for RowMajor

bug 136 :: xGGEV3 returns zeros in BETA array

bug 135 :: LAPACKE_dlansy et al cause segfault with 1-norm

bug 134 :: Rook pivoting factorization goes into an infinite loop

  • NOT A BUG

  • Present in LAPACK 3.5.0

  • Bug reported directly by Bobby Cheng (Matlab) on Aug 12th

  • Assigned to Igor on Aug 12th 2015

  • Not able to reproduce the issue (Aug 20th 2015)

  • Correction to be made: Working on having NaNs/Infs not cause an infinite loop (Aug 20th 2015)

bug 133 :: Dormlq C interface error check

bug 132 :: dsyevr bug

bug 131 :: Possible bug in DORGR2

bug 130 :: Ambiguous lapacke interfaces to Cosine/Sine decomposition - 2 Trans parameters

bug 129 :: LAPACK_?syconv interface problem - Work is used to return values

bug 128 :: lapacke_?laset has limitations - pb if initialize the matrix with NaNs (Matrix assumed to be initialized by this functions)

bug 127 :: LAPACKE interface to ?ORCSD / ?UNCSD is not fully functional - Work is used to return values

bug 126 :: DSTEMR - misbehaviour of DLARRF

bug125 :: xLAHQR v3.5 does not converge on some matrices while xLAHQR v2 converges

  • CORRECTED, rev 1537

  • Present in LAPACK 3.5.0

  • Bug reported by Yoshihide Okimi on July 16, 2014

  • Link: https://icl.cs.utk.edu/lapack-forum/viewtopic.php?f=13&t=4566

  • and, independently, by Marco Caliari (Università di Verona) on February 11, 2015.

  • Involved in bug fix: Yoshihide Okimi, Marco Caliari (Università di Verona),

  • Meiyue Shao (LBL), Julien Langou, and Daniel Kressner (EPFL).

  • Confirmed and Corrected by Julien Langou on Mar 25th 2015.

bug124 :: dpstf2 returns incorrect value of rank

bug123 :: csytrf_rook test fails for dimensions 127, 260

bug122 :: Wrong Info code when checking input parameter QSIZ in SLASD7 and DLASD7

  • CORRECTED, rev 1504

  • Present in LAPACK 3.5.0

  • Bug report by Elena Ivanova (Oracle) directly to Julie on Oct 2nd 2014

  • Corrected by Julie Langou on October 6th

bug121 :: Bugs in DLASD8 and DLASD6

bug120 :: Workspace query return too small value for xGESDD

bug119 :: CBLAS - missing the floating point constant argument in sdsdotsub

  • Present in CBLAS

  • Bug report by by Shandong Lao fron Oracle on LAPACK Mailing List - Aug 11th 2014

  • Corrected by Julien and Julie Langou on August 11th

bug118 :: ZLANHF and CLANHF Norm Calculation

bug117 :: NSPLIT unitialized; N=2 code wrong

bug116 :: ZGGEV fails but Matlab works

bug115 :: DSYEVD fails to converge

bug114 :: (C, Z)GESVD stack corruption issue

bug113 :: DLARRB() infinite loop bug

  • CORRECTED, rev 1540, rev 1603

  • Present in LAPACK 3.4.2

  • Bug report by Aleksey Vorona on LAPACK Mailing - September 11th 2013

  • Assigned to Osni (UC Berkeley) on Feb 11th 2015

  • Links: https://bugs.r-project.org/bugzilla3/show_bug.cgi?id=15211

  • The patch is attached to the bug: https://bugs.r-project.org/bugzilla3/attachment.cgi?id=1478

  • The fix consisted of setting NOFAIL=.false. in subroutine DLARRF.

  • The above fix may lead subroutine DSTEMR return INFO>0 for tridiagonal matrices with clusters of very tight eigenvalues

  • Confirmed by Osni on Mon, 06 Apr 2015

  • Corrected by Osni on Mon May 4th 2015

  • Corrected by Osni on Oct 26th 2015

  • Prevention fix to avoid enter into an infinite loop in some rare cases.

  • Fix: set the variable NOFAIL to .false.

bug112 :: DSYEVR does not seem to be thread-safe

  • CORRECTED, rev 1436

  • Present in LAPACK 3.4.2

  • Bug report by Daniel Strobusch on LAPACK Mailing - August 19th 2013

  • Links: http://stackoverflow.com/q/18216314/1458343

  • Fix: LAPACK needs to be compiled with option "-frecursive" so that local arrays are allocated on the stack. * Corrected by Julien on Oct 4 2013

bug111 :: incorrect RWORK size for ZGESDD

bug110 :: possible infinite loop in ZLARTG when input vector has NaN

  • CORRECTED, rev 1437

  • Present in LAPACK 3.4.2

  • Bug report by Mark Hoemmen and Jack Poulson

  • See http://icl.cs.utk.edu/lapack-forum/viewtopic.php?f=5&t=3267&p=9067

  • Mark Hoemmen writes: Jack Poulson found that ZLARTG has an infinite loop related

  • to NaN .EQ. 0. It’s the line below "ELSE IF( SCALE.LE.SAFMN2 )" between 10 and

  • 20. When G is NaN, then the loop goes forever.

  • Corrected by Rodney on Oct 5 2013

bug0109 :: [xSTEGR_WORK] do not check ldz correctly

  • CORRECTED, rev 1425

  • Present in LAPACKE 3.4.2

  • bug report by Hong Xu (INTEL) on July 21st

  • Patch sent by Hong Xu (INTEL)

  • In the input parameter checking, LDZ was not checked correctly

  • LDZ was checked against M instead of N essentially

  • Corrected by Julien on July 22 2013

bug0108 :: [xDRVRFP] Test was failing

  • CORRECTED, rev 1416

  • Present in LAPACK 3.4.2

  • bug report by Elena Ivanova (ORACLE)

  • Patch sent by Elena Ivanova (ORACLE)

  • add MAX() to ensure index is at least 1

  • Corrected by Rodney on June 27 2013

bug0107 :: [CSD routines] fixed array index problems

  • CORRECTED, rev 1414

  • Present in LAPACK 3.4.2

  • add MAX() to ensure index is at least 1

  • this fixes array bounds violations in the test suite when array bounds checking is enabled

  • Corrected by Rodney on June 04 2013

bug0106 :: [xGEBAL] very large backward error for certain Hessenberg matrices (Watkins)

  • CORRECTED, rev 1413

  • Present in LAPACK 3.4.2

  • bug report on the forum topic 4221

  • Now using 2-norm to compute vector norms of row and column for balancing algorithm.

  • This seems to fix problems with balancing causing very large backward error for certain

  • Hessenberg matrices, including the often cited example of Watkins.

  • Corrected by Bradley Lowery, Rodney James, Julien Langou on May 26 2013

bug0105 :: [LAPACKE] lapacke.h problem

  • CORRECTED, rev 1388

  • Present in LAPACKE 3.4.2

  • bug report on the forum topic 4221

  • Patch sent by bmoloney

  • A few C++ library includes are inside of the 'extern C block which causes many template with C

  • linkage errors when the header is included in a C++ file.

  • Corrected by Julie on April 03 2013

bug0104 :: dgeqp3 fall over when asked to do a factorization of the last two columns.

  • CORRECTED, rev 1385

  • Present in LAPACK 3.4.2

  • bug report by Tyrone Rees (STFC Rutherford Appleton Laboratory) on March 22 2013

  • Patch sent by Tyrone Rees

  • Corrected by Rodney on March 22 2013

bug0103 :: [dlasd4/slasd4] fixes bug where TAU2 can be uninitialized.

  • CORRECTED, rev 1384

  • Present in LAPACK 3.4.2

  • bug report by Sergey Kuznetsov (INTEL) on March 15 2013

  • Patch sent by Sergey Kuznetsov

  • Corrected by Rodney on March 22 2013

bug0102 :: convergence problem with some particular pencils in xGGEV

  • CORRECTED, rev 1351

  • Present in LAPACK 3.4.2

  • bug report by Mathworks on October 19 2012

  • Patch sent by Mathworks

  • Corrected by Rodney on Thu Oct 19

bug0101 :: [S,D, C, Z]hsein: NaN in H can cause an infinite loop

  • CORRECTED

  • Present in LAPACK 3.4.2

  • bug report by Alexander Kobotov (INTEL) on October 3 2012

  • See forum topic 3928

  • added check for NaN after the norm of each block of H is computed

  • if NaN is detected, returns with INFO=-6 (H is the 6th parameter)

  • Corrected by Rodney

bug0100 :: [S,D]gesdd correct minimum LWORK size

  • CORRECTED

  • Present in LAPACK 3.4.1

  • bug report by Tim Wentz (CRAY) on August 23 2012

  • Email sent directly to Julie

  • correct LWORK size bug for the case JOBZ=A and M >> N (which corresponds to path 4 in the code)

  • the minimum LWORK size in this case had incorrectly used N as the length of LWORK to the DORGQR call, when it should have been M

  • Corrected by Rodney

bug0099 :: [S,D]sgesvj array SVA(N2=0) can be out of the array boundary

  • CORRECTED

  • Present in LAPACK 3.4.1

  • bug report by Shandong Lao (ORACLE) on August 20 2012

  • Email sent directly to Julie

  • Corrected by Rodney

bug0098 :: DSYEV may return non-orthogonal eigenvectors

  • CORRECTED

  • Present in LAPACK 3.4.1

  • bug report by Duncan Po (Mathworks) on August 15 2012

  • See forum topic 3597

  • Corrected by Rodney

bug0097 :: [S,D]LASQ3 could cause NaNs appearance in ?GESVD and ?GESDD

  • CORRECTED

  • Present in LAPACK 3.4.1

  • bug report by Alexander Kobotov (INTEL) on June 28 2012

  • See forum topic 3455

  • Corrected by Rodney

bug0096 :: ?STEMR sorting is not done for N=2.

  • CORRECTED

  • Present in LAPACK 3.4.1

  • bug report by Joseph Young (SANDIA) on June 26 2012

  • bug report sent to lapack mailing list

  • corrected by Julie on July 3 2012

bug0094 :: [S,D]SYEVR and [C,Z]SYEVR routine - workspace indices problem

  • CORRECTED

  • Present in LAPACK 3.4.1

  • bug report by Keita Teranishi (CRAY) on May 18 2012

  • INDIWO should be INDIFL+N. Otherwise, subsequent {S,D}STEIN call takes the same address for IWORK(INDIWO) and INWROK(INDIFL).

  • Sent to LAPACK team

  • corrected by Julie on May 21 2012

bug0093 :: LAPACKE - LAPACKE_xlange routine - workspace problem

  • CORRECTED

  • Present in LAPACK 3.4.1

  • bug report by Mathieu (PLASMA)

  • Was allocating workspace for Frobenius norm, but not inf norm - This is wrong, only the inf norm needs a workspace.

  • Sent directly yo Julie

  • corrected by Julie on May 11 2012

bug0092 :: xLAED6 avoid div by zero

  • CORRECTED

  • Present in LAPACK 3.4.0

  • bug report by Mict Pont (NAG).

  • In the 40 loop - when DSCALE(I)=TAU you get a divide by zero (rare in practice). This can cause some compilers to immediately stop, e.g. the Sun compiler.

  • Sent directly yo Julie

  • corrected by Julie on Apr 18 2012

bug0091 :: xLANHF div by zero

  • CORRECTED

  • Present in LAPACK 3.4.0

  • bug report by Ake Sandgren, Umea University and HPC2N, on 10-22-2011.

  • See LAPACK Mailing list msg 01195

  • corrected by Rodney on Apr 11 2012

bug0090 :: xGGEV and xGGEVX: Need to unscale if necessary when there is an error in DHGEQZ (QZ iteration failed)

  • CORRECTED

  • Present in LAPACK 3.4.0

  • bug report by Hong Bo Peng Sandgren, on 03-19-2012.

  • See LAPACK Mailing list msg 01257

  • corrected by Julie on Mar 20 2012

bug0089 :: unused external declarations

bug0088 :: Uninitialized variable bug in ZHERFSX

  • CORRECTED

  • Present in LAPACK 3.4.0

  • bug report by Mick Pont from NAG on Sat, 30 Nov 2011

  • See forum topic 2893

  • corrected by Julie on April 11 2012

bug0087 :: Wrong call name for XBLAS xLA_RPVGRW, needs to be xLA_GERPVGRW

  • CORRECTED - see svn 1128

  • Present in LAPACK 3.4.0

  • bug detected and corrected by Julie

bug0086 :: ILAxLR:commit r1006 reverts the change made in commit r977

  • CORRECTED - see svn 1099

  • Present in LAPACK 3.4.0

  • bug report by Ake Sandgren on Sat, 22 Oct 2011

  • See LAPACK Mailing list msg 01149

  • corrected by Rodney James on Nov 30 2011

bug0085 :: xGESVD Problem in Workspace computation

  • CORRECTED - see svn 1207

  • Present in LAPACK 3.4.0

  • bug report by Marco on Nov 18th 2011

  • See forum topic 2861

  • Problem in Workspace computation

  • corrected by Julie on Jan 6 2012

bug0084 :: Bug Ming Gu

  • CORRECTED - see svn 1017

  • bug reported by Ming Gu (UC Berkeley) through Jim Demmel

  • LAPACK driver routine infected: All SVD solvers when asked for singular values only. (Pathological matrix only)

  • bug is present in LAPACK since 3.1.1 and in Matlab 2010a and 2010b

  • For very specific matrices (given by Ming Gu), the DQDS code converges much slower than expected. The algorithm converges for these matrices un many more iterations than the LAPACK maximum number of iterations allow.

  • bug fix: (1) increase the maximum number of iterations in xlasq2, (2) fall back on Demmel/Kahan algorithm in case of nonconvergence of dqds.

  • corrected by Benjamin Lipschitz on Mon Oct 3rd 2011

bug0083 :: Bug in the testing of CHERFSX function

  • CORRECTED - see svn 1000

  • bug reported by Olga Mitrofanova (Intel MKL team), on the LAPACK forum

  • see forum topic 2644

  • Test of CHERFSX function doesn’t work because there is an error in ../TESTING/LIN/cerrhex.f ( lines 284-330 ). This function uses the diagonal pivoting factorization of a Hermitian indefinite matrix instead of the diagonal pivoting factorization of a Hermitian indefinite packed matrix. When CHERFSX is included in conditional "IF( LSAMEN( 2, C2, HE ) ) THEN " the test works.

  • corrected by Julie on Mon Aug 15th 2011

bug0082 :: [CZ]laed2 Memory problems when COMPZ='I' in DSTEDC

  • CORRECTED - see svn 982

  • bug reported by Edward Smyth (NAG)

  • Added IF statement to prevent potential out of range errors with "K+1" indices.

  • corrected by Rodney on Wed Jun 21th 2011

bug0081 :: [SD]laed2 WORKSPACE size is wrong when NCVT = NRU = NCC = 0

  • CORRECTED - see svn 979

  • bug reported by Hatem Ltaief (KAUST)

  • Update Workspace requirement to 4*N because the routine call [SD]LASCL that requires a 4*N workspace.

  • corrected by Julie on Thu May 19th 2011

bug0080 :: [CZ]BDSQR WORKSPACE size is wrong when NCVT = NRU = NCC = 0

  • CORRECTED - see svn 979

  • bug reported by Hatem Ltaief (KAUST)

  • Update Workspace requirement to 4*N because the routine call [SD]LASCL that requires a 4*N workspace.

  • corrected by Julie on Thu May 19th 2011

bug0079 :: ILA[SDCZ]LR out of bound access in the DO LOOP for array A.

  • CORRECTED - see svn 977

  • bug detected by Julie

  • Change DO LOOP condition and add a IF inside the DO LOOP

  • corrected by Rodney on Tue April 21th 2011

bug0078 :: DBDSDC problem with orthogonality of U in certain cases

  • CORRECTED - see svn 968

  • bug report sent by duncanpo on April 4th 2011

  • see forum topic 2326

  • decreased EPS by a factor of 0.9 to correct problem with orthogonality of U in certain cases

  • corrected by Rodney on Tue April 7th 2011

bug0077 :: [DS]GESVD Minimum Worksize comments need clarification

  • CORRECTED - see svn 967

  • bug report sent by squartz on Sep 19th

  • see forum topic 2011

  • corrected by Julie on Tue April 5th 2011

bug0076 :: Problem in ?(sy/he)tri2 when nbmax greater than n

  • CORRECTED - see svn 953

  • bug report sent by nmozarto on Mar 4th

  • see forum topic 2223

  • corrected by Julie on Fri March 4th 2011

bug0075 :: not orhtogonal: eigenvectors of a symmetric matrix with DSYEV

  • CORRECTED - see svn 946

  • bug report sent by fabioaffinito on Feb 8th

  • see forum topic 2169

  • The bug appears only when the matrix is diagonalized by using the upper half, and when the leading dimension n>200 approx.

  • User gave test program see: here

  • Come from change in version 3.2 [Release Notes]

  • committed by Rodney on Thu Mar 3 2011

  • related to 0035

bug0074 :: ?sysv and ?hesv

  • CORRECTED - see svn 926 and 927

  • bug report sent by Alexander Kobotov on Feb 8th

  • see forum topic 2168

  • corrected by Julie

  • In LAPACK 3.3 ?(SY/HE)SV are updated to use TRS2. The TRS2 requires WORK(N) to operate, whereas in SV requirements for LWORK just to be >=1. There is no any check in SV if LWORK>=N, the array WORK just passed as it is to TRS2. So if LWORK<N a crash could occur while executing TRS2 due to overuse of allocated workspace.

  • I guess for the case of LWORK<N just previsous Level2 based ?(SY/HE)TRS should be used.

bug0073 :: secondtst.f and dsecnd.f

  • CORRECTED - see svn 918

  • bug report sent by John Tellefson on Feb 7th

  • email sent to lapack mailing list, user provided fix.

  • corrected by Julie

  • We went ahead and remove the dummy subroutine in those timing for the last LAPACK version because we did not find a machine or compiler that still had the problem. I guess we were too optimistic.

  • also committed the "cosmetic" modifications suggested by user as they make the program easier to modify.

bug0072 :: cchkhs.f and zchkhs.f

  • CORRECTED - see svn 904

  • bug report sent by Inge Gutheil on Feb 3rd

  • email sent to lapack mailing list, user provided fix.

  • corrected by Julie

  • Add IF statement to prevent calculation if N=0

bug0071 :: slarre and dlarre

  • CORRECTED - see svn 902

  • bug report sent by Christof Voemel on Jan 31th

  • email sent directly to Julie and Julien, Christof provided fix.

  • corrected by Julien

  • Add a line to prevent TAU from becoming zero

bug0070 :: IWORK dimension is incorrect

  • CORRECTED - see svn 899

  • bug report sent by nmozarto on Jan 27th

  • see forum topic 2156

  • confirmed by Julie and corrected by Brian Sutton

  • The correct dimension is (M-R), in which R is the smallest of P, M-P, Q, and M-Q.

  • An M-by-M matrix is partitioned into a 2-by-2 block structure. The

  • dimensions of the blocks are P-by-Q, P-by-(M-Q), (M-P)-by-Q, and

  • (M-P)-by-(M-Q). IWORK is involved in the permutation of rows or

  • columns of these blocks, and it is the largest block, in terms of

  • number of rows or columns, that determines the size of IWORK.

bug0069 :: sytri2x is writing on other part of A

  • CORRECTED - see svn 898

  • bug report sent by nmozarto on Jan 27th

  • see forum topic 2156

  • confirmed by Julie and corrected by Julie

bug0068 :: Need to add LDA in *sytrs2

  • CORRECTED - see svn 897,896

  • bug report sent by nmozarto on Jan 27th

  • see forum topic 2157

  • confirmed by Julie and corrected by Julie

bug0067 :: Need to add LDA in *syswapr

  • CORRECTED - see svn r893 and 894

  • bug report sent by nmozarto on Jan 24th

  • see forum topic 2150

  • confirmed by Julie and corrected by Julien

  • Need to add LDA in *syswapr routines and update testing to test having LDA

bug0066 :: bugs in {s,d}gejsv

  • CORRECTED - see svn r891

  • bug report sent by Paul Roberts on Oct 21st

  • reported to Zlatko Drmac and corrected by Zlatko Drmac

  • see LAPACK Mailing list msg 049

bug0065 :: workspace queries not being used

  • CORRECTED - see svn r1038

  • bug report by Clint Whaley on October 27th, 2010

  • DGESVD does not perform a workspace query on worker

  • functions such as DGELQF, but rather it hardwires in an assumption as

  • to LQF’s workspace requirements. This means that if LQF is changed,

  • GESVD breaks. This actually happens in ATLAS, because we provide a

  • faster GELQF, which sometimes uses extra workspace. For LAPACK itself,

  • it represents extra dependencies that don’t need to be there.

bug0064 :: got a bug in divide and conquer (non convergence)

  • CORRECTED - see svn r813

  • bug report by wdobler on November 12th 2007 and edrumwri (Evan) on October 10th 2010

  • lapackers involved in the bug fix process: Julie Langou

  • bug fix by wdobler

  • see forum topic 529

  • Increase MAXIT to 200 (was 20 before)

bug0063 :: Division by 0 in *GESVJ & *GEVSJ with zero columns

  • CORRECTED - see svn r790

  • bug report and fix from Bart Oldeman on Mon Aug 16 2010

  • independent fix proposed by Zlatko Drmac on Tue Aug 24 2010

  • see forum topic 1953

  • The problem that was reported (with zero matrix) is caused by bad initialization to xLASSQ. It should be ZERO, ONE and not ZERO, ZERO. With ZERO, ZERO, xLASSQ does not touch those variables in case of zero vector, leaving scaling at ZERO, and in the nonzero case the scaling is between ONE and SQRT(N). So, in case of zero vector, division by a variable that is normally bigger than ONE causes division by zero. This is change (i) below.

  • committed by Julie Langou (SVN revision r790, on Wed, Aug 25 2010)

  • changes from Zlatko:

    1. In xgejsv.f and xgesvj.f input parameters SCALE and SUMSQ in xlassq.f are now initially set as SCALE = ZERO, SUMSQ=ONE. Setting them both to zero (without carefully reading xlassq.f) caused problems with exactly zero columns.

    2. There was a problem in the branch that computes only SIGMA and U of a rank deficient matrix. The computed numerical rank (NR) was incorrectly written as N in parameter lists of the corresponding calls.

    3. In xgsvj0.f, xgsvj1.f testing the input parameters is changed to prevent unnecessarily negative INFO in some situations.

    4. Minor changes, renaming some variables etc.

bug0062 :: Array out-of-bounds reference in xLAQR5

  • CORRECTED - see svn r787

  • bug report and fix from Mathew Cross (NAG) on Sat Aug 14 2010

  • see forum topic 1949

  • In the section of the code "Special case: 2-by-2 reflection (if needed)" the logical test IF( BMP22 .AND. ( V( 1, M22 ).NE.ZERO ) ) must be split into a nested test IF (BMP22) THEN, IF (V(1,M22).NE.ZERO) THEN… If .NOT. BMP22 then M22 can exceed the second extent of V (and recall that logical expressions can be evaluated in any order in Fortran).

  • committed by Julien Langou (SVN revision r787, on Tue, Aug 17 2010)

bug0061 :: zgehrd.f is overflowing

  • CONFIRMED

  • bug report by Victor Liu on Tuesday August 03rd, 2010

  • zgehrd.f is overflowing the maximum size in bytes of the largest array that

  • can be put on the stack with gfortran (⇒ leads ,e.g., to non-reproducible and uncorrect execution

  • of zgeev in multithreaded context

  • bug report by Victor Liu on Tuesday August 03rd, 2010

  • lapackers involved in the bug fix process: Julie and Julien Langou and Mathieu Faverge

  • bug fix by Victor Liu on Wednesday August 04th, 2010

  • see forum topic 1930

  • two outstanding issues: (1) how do we go to fix this?, (2) more LAPACK subroutines might be concerned.

bug0060 :: Bug in dtgsy2, missing IWORK call

  • CORRECTED - see svn r767

  • bug report and fix sent by Vasile Sima on 24 Feb 2009 to "lapack@cs.utk.edu".

  • The error is that "IWORK" must appear in the line 640. (It was included in the 1999 version.) Note that the statement IE = ( I+1 ) - 1 is strange; also, in other similar place, IWORK is used like below.

  • committed by Julie Langou (SVN revision r767, on Thu, June 24 2010)

bug0060 :: Typo in TESTING/EIG/dchkee.f and TESTING/EIG/zchkee.f

  • CORRECTED - see svn r768

  • bug report by Ake Sandgren (HPC2N, Umea University) on Thu July 1 2010 to "lapack@cs.utk.edu".

  • committed by Julie Langou (SVN revision r768, on Fri, July 2 2010)

bug0059 :: ZGELSD crashes on large matrices (eq M=N=NHRS>=88), if real workspace allocated exactly as reported on workspace query.

  • CORRECTED - see svn r765

  • bug report and fix sent by Alexander Kobotov (Intel) on Wed, 23 June 2010 to "lapack@cs.utk.edu".

  • Root cause is wrong estimation of real workspace size in ZLALSA (on path zgelsd→zlalsd→zlalsa). It assumes that RWORK array length should be max( N, (SMLSZ+1)NRHS*3 ), where SMLSIZ=25. But in fact the function calls zlals0 which requires RWORK to be ( K(1+NRHS) + 2*NRHS ), where K could be as large as number of columns in matrix A. The same is actual for CGELSD.

  • committed by Julie Langou (SVN revision r765, on Thu, June 24 2010)

bug0058 :: variable N0 in xLASQ3 is INPUT/OUTPUT. (The comments said INPUT.)

  • CORRECTED - see svn r750

  • bug report and bug fix are from William Gandler (NIH/CIT) on October 16, 2009; April 23, 2010; May 01, 2010, May 03, 2010. to "lapack@cs.utk.edu".

  • committed by Julie Langou (SVN revision r750, on Fri, May 27 2010)

bug0057 :: Non-eigenvectors from DGEEV, problem in balancing

  • CORRECTED

  • Same bug than bug0106

  • bug report sent by Numpy team on April 22nd, 2010

  • see forum topic 1818

  • see follow-up on lapackers on April 22nd from Jim "bug in DGEHRD" "The balancing is choosing to scale some rows/columns by factors like 1e18, which rather amplifies tiny rounding errors in the (presumably correctly) computed eigenvectors of the balanced matrix, when balancing is undone at the end. The expert driver interface dgeevx would let the user disable balancing, until we figure out whether this is a bug or a feature, I’m not sure which."

  • Corrected by Bradley Lowery, Rodney James, Julien Langou on May 26 2013

bug0056 :: Non-orthogonal eigenvectors returned from DSYEVR

  • CORRECTED, rev 1540

  • bug report sent by Scipy team on April 22nd

  • see LAPACK Mailing list msg 874

  • Confirmed by Rodney on Tue, 17 Feb 2011

  • " I can reproduce similar problems that the user encountered with non-orthogonal eigenvectors when only

  • a few eigenvalues are requested. This also happens with SSYEVR. If I set ABSTOL to SLAMCH(Safe minimum),

  • the problem goes away in SSYEVR, and improves with DSYEVR but does not completely go away."

  • Corrected by Osni on Mon May 4th 2015

bug0055 :: Missing arguments descriptions of work and uplo in [csz]syequb

  • CORRECTED - see svn r740

  • bug report sent by Paul Roberts (NAG) on Fri, 13 Apr 2010 to "lapack@cs.utk.edu".

  • committed by Julie Langou (SVN revision r740, on Fri, Apr 13 2010)

bug0054 :: Fix comment some of the argument descriptions have the wrong type.

  • CORRECTED - see svn r739

  • bug report sent by Paul Roberts (NAG) on Fri, 12 Apr 2010 to "lapack@cs.utk.edu".

  • committed by Julie Langou (SVN revision r739, on Fri, Apr 12 2010)

bug0053 :: Fix external declaration issue in testing suite file: cebchvxx.f

  • CORRECTED - see svn r738

  • bug report and fix sent by Michael Chuvelev (Intel) on Fri, 5 Apr 2010 to "lapack@cs.utk.edu".

  • committed by Julie Langou (SVN revision r738, on Fri, Apr 5 2010)

bug0052 :: Incorrect NRHS parameter in call to ?SYTRS from ?la_{po,sy,he}rfsx_extended.f.

  • CORRECTED - see svn r736

  • bug report and fix sent by Michael Chuvelev (Intel) on Fri, 2 Apr 2010 to "lapack@cs.utk.edu".

  • committed by Julie Langou (SVN revision r736, on Fri, Apr 2 2010)

bug0051 :: INFO=N+2 in xDGGES due to too stringent threshold in xTGEX2.

  • CORRECTED - see svn r735

  • bug report sent by Ondra Kamenik on Tue Mar 16, 2010

  • see forum topic 1783

  • We have changed xLARFG to xLARFP in xGEQR2. xGEQR2 is used by xDGGES. The matrices are therefore different (although all of them are correct.) However for the matrix generated by xLARFP, xTGEX2 exceeds the THRES value by 10%, causing an error flag. We decided to increase THRES by a factor of 2. Although the bug was triggered by the change from xLARFG to xLARFP, XLARFP is not really at guilt.

  • confirmed by Julie Langou on Thu Mar 18 2010

  • fix provided by Guillaume Revy and Jim Demmel

  • committed by Julien Langou (SVN revision r735, on Thu Apr 2 2010)

bug0050 :: An extra argument after matrix A lines 348-249 in STFSM.f causes a crash of SGEMM call.

  • CORRECTED - see svn r732

  • bug report and fix sent by Alexander Kobotov (Intel) on Wed, 3 Feb 2010 to "lapack@cs.utk.edu".

  • committed by Julie Langou (SVN revision r732, on Tue Mar 9 2010)

bug0049 :: output parameter GIVPTR stays uninitialized in case of quick exit (n.eq.0) or if the rank-1 modifier is small enough in *laed8.

  • CORRECTED - see svn r731

  • bug report and fix sent by Alexander Kobotov (Intel) on Wed, 3 Feb 2010 to "lapack@cs.utk.edu".

  • committed by Julie Langou (SVN revision r731, on Tue Mar 9 2010)

bug0048 :: Hanging could occur in *gebal if a NaN is in input matrix.

  • CORRECTED - see svn r730

  • bug report and fix sent by Alexander Kobotov (Intel) on Wed, 3 Feb 2010 to "lapack@cs.utk.edu".

  • committed by Julie Langou (SVN revision r730, on Tue Mar 9 2010)

bug0047 :: incorrect R/C parameter description in *gerfsx

  • CORRECTED - see svn r726

  • bug report sent by Michael Chuvelev (Intel) on Wed, 1 Mar 2010 to "lapack@cs.utk.edu".

  • bug fix sent by James Demmel "R/C are input only by their usage" "there’s no FACT parameter in these routines"

  • committed by Julie Langou (SVN revision r726, on Tue Mar 9 2010)

bug0046 :: Incorrectly documented RWORK workspace in ZGESDD

  • CORRECTED - see svn r729 (LAPACK), rev 1541 (LAPACKE)

  • bug report from Zbigniew on Mon 15 Mar 2010

  • see forum topic 1779

  • committed by Julie Langou (SVN revision 729, on Thu Mar 18 2010)

bug0045 :: bug in dstemr.f when N = 2

  • CORRECTED - see svn r705 o bug report and fix sent by Ashutosh Mahajan (Mathematics and Computer Science Division of Argonne National Labs) on Thu, 10 Dec 2009 to "lapack@cs.utk.edu". o committed by Julien Langou (SVN revision 705, on Tue Dec 15 2009)

bug0044 :: bug in dsyevr.f when N = 1

  • CORRECTED - see svn r704 o bug report and fix sent by Ashutosh Mahajan (Mathematics and Computer Science Division of Argonne National Labs) on Fri, 11 Dec 2009 to "lapack@cs.utk.edu". o committed by Julien Langou (SVN revision 704, on Tue Dec 15 2009)

bug0043 :: VL, VU are referenced in lapack-3.2.1 dsyevr even if range.ne.V

  • CORRECTED - see svn r699 o bug report sent by Michael Chuvelev (Intel) on Wed, 14 Oct 2009 to "lapack@cs.utk.edu". "VL, VU are referenced in lapack-3.2.1 dsyevr even if range.ne.V" o committed by Julien Langou (SVN revision 699, on Tue Oct 20 2009)

bug0042 :: printing format misuse in ./TESTING/EIG/[s,c,d,z]drvgbx.f

  • CORRECTED - see svn r697

  • bug report sent by Kevin Wadleigh on Tue 29 Sep 2009 to "lapack@cs.utk.edu". "LAPACK routine ieeeck.f and compiler optimizations"

  • The LAPACK function IEEECK should be modified to keep compilers from optimizing away the line NAN6 = NAN5*0.0 and replacing it by NAN6 = 0.0. I’ve seen this happen using two different compilers at their default level of optimization. However, using NAN6 = NAN5*ZERO as in the attached file keeps this from happening.

  • committed by Julie Langou (SVN revision 697, on Wed Sep 30 2009)

bug0041 :: printing format misuse in ./TESTING/EIG/[s,c,d,z]drvgbx.f

  • CORRECTED - see svn r696

  • bug report sent by Michael Chuvelev (Intel) on Tue 29 Jul 2009 to "lapack@cs.utk.edu". "Bug in lapack-3.2.1/TESTING/EIG/zdrvgbx.f"

  • printing format misuse, this would possibly lead to a segmentation fault in case of errors in zgbsvxx.

  • committed by Julien Langou (SVN revision 696, on Tue Sep 29 2009)

bug0040 :: Q referenced in real TGSENs when WANTQ .FALSE.

  • CORRECTED - see svn r643

  • bug report from Mathew Cross on Tue 18 Aug 2009

  • see forum topic 1604

  • committed by Jason (SVN revision 643, on Tue Mar 3 2009)

bug0039 :: faulty workspace queries in GEESX

  • CORRECTED - see svn r657

  • bug report from Mathew Cross on Tue 18 Aug 2009

  • see forum topic 1602

  • committed by Julien (SVN revision 657, on Sun May 10 2009)

bug0038 :: no LIWORK query in DGELSD

  • CORRECTED - see svn r698

  • bug report from Mathew Cross on Tue 18 Aug 2009

  • see forum topic 1601

  • committed by Julie Langou (SVN revision 698, on Thu Oct 20 2009)

bug0038 :: out of range element access in DLASET when using DGELSS

  • CORRECTED - see svn r695

  • bug report sent by Tim Hopkins on Fri 31 Jul 2009

  • see forum topic 1582

  • committed by Julie Langou (SVN revision 695, on Fri Sep 25 2009)

bug0037 :: xLARFP and scaling

bug0036 :: scaling in xSTEQR, xSTERF

  • CORRECTED - see svn 937

  • bug report sent by Pat Quillen on Fri 24 Jul 2009 to "lapack@cs.utk.edu". "Scaling in xSTEQR, xSTERF"

  • see Pat Quillen’s email, quillen dsteqr.f.

  • confirmed by Rodney on Tue Feb 21 2011

  • Correction: "changed matrix norm to M (max) from I (inf) for scaling of input matrix

  • and added check for zero norm in xSTERF (the xSTEQR already had this check)"

  • committed by Rodney on Tue Feb 24 2011

bug0035 :: dlarfb.f and likes

bug0034 :: comments in SSPTRF not correct

  • CORRECTED - see svn r932 and 933

  • clarification asked by "sarnath" on Thu Jul 02 2009

  • confirmation of bug by "sarnath" and Julien Langou on Fri Jul 03 2009

  • The statement "JMAX is the column-index of the largest off-diagonal element in row IMAX" is not correct

  • see forum topic 1553

  • committed by Rodney (SVN revision 932, 933, on Tue Feb 17 2011)

bug0033 :: failure of zheevd on a specific matrix

bug0032 :: matrix splitting problem with dstebz and sstebz

  • CORRECTED, rev 1540

  • bug report sent by Phil DeMier (IBM) on Mon 29 Jun 2009 to "lapack@cs.utk.edu". "matrix splitting problem with dstebz and sstebz"

  • see Phil DeMier’s email and Phil DeMier’s test code

  • Confirmed by Rodney on Tue, 08 Feb 2011

  • Corrected by Osni on Mon May 4th 2015

bug0031 :: whitespace fix in comments

  • CORRECTED - see svn r692

  • reported by "Jan" on Tue Jun 02 2009

  • see forum topic 1449

  • committed by Julie Langou (SVN revision 692, on Fri Sep 11 2009)

bug0030 :: line 641 of DTGSY2 (present as well in STGSY2, ZTGSY2, CTGSY2)

  • CORRECTED - see svn r766

  • Same bug than bug0060

  • reported by Zbigniew Leyk (College Station, TX) on Mon Jun 01, 2009

  • see forum topic 1445

bug0029 :: problem of WORKSPACE query with DSTEDC

  • CORRECTED - see svn r984

  • reported by Tiago Requeijo on Mon Mar 30 2009

  • see forum topic 1389

  • see also email from Edward Smyth on June 21st 2011

  • committed by Rodney (SVN revision 984, on Wed Jun 22 2011)

bug0028 :: failure of convergence of DHGEQZ for some specific matrix pencils

  • CORRECTED - see svn r1272, 1271

  • reported by Vasile Sima on Thu Jan 22 2009

  • see: email from Vasile

  • more information at: <a href=http://www-math.ucdenver.edu/~langou/lapack-3.2/lapack_known_issues.html>lapack known issues]

  • committed by Rodney (SVN revision r1272, 1271, on Tue Apr 17 2012)

bug0027 :: misleading comment in the header of DGHEQZ, the 2x2 block of the real Schur form are not as claimed

  • CORRECTED - see svn r929

  • reported by Vasile Sima on Tue Jan 27 2009

  • see: email from Vasile

  • more information: more specifically Vasile is reporting that the comments:

*          [...] H contains the upper quasi-triangular
*          matrix S from the generalized Schur factorization;
*          2-by-2 diagonal blocks (corresponding to complex conjugate
*          pairs of eigenvalues) are returned in standard form, with
*          H(i,i) = H(i+1,i+1) and H(i+1,i)*H(i,i+1) &lt; 0.

are not correct

  • committed by Rodney James (SVN revision r929, on Tue Feb 17 2011)

bug0026 :: problem when playing with DGEEV and gfortran optimization flags

bug0025 :: serious problem in DGESDD: DGESDD returns negative singular values with INFO = 0

  • CORRECTED - see svn r760

  • reported by Guy Bencteux on Sat Dec 06 2008

  • see forum topic 847

  • At the time, Julie was not able to reproduce the bug. The bug is highly BLAS dependent.

  • on Sat Jun 19 2010, Bruno Pinçon from ESIAL, reported another matrix with the same problems

  • see forum topic 1868

  • we were able to reproduce the problem with MacOS with gfortran reference LAPACK and vecLib BLAS, we can not reproduce the problem with reference LAPACK and reference BLAS.

  • A patch has been proposed and committed by Julien Langou. (See forum topic 1868.)

  • 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.

bug0024 :: the notation A' is confusing for complex matrices. Does A' stand for A transpose of A Hermitian transpose?

  • CORRECTED - see svn r969, 966 and 965

  • reported by Clint Whaley early July 2009

  • LAPACK is not consistent in it use of the notation for transpose and Hermitian transpose.

  • The use of LAPACK A' is not consistent with the BLAS useage.

  • We note that the Matlab/Scilab/Octave convention is A' stands for "conjugate transpose" and A.' stands for "transpose".

  • In the Z routines, LAPACK uses the notation A' 669 times, it means "conjugate transpose" most of the time but it means "transpose" a few times (maybe 10 times max, for BLAS-like routines). The notation A*H, A*T, A*N is used 549 times, The notation AT, AN, A^H 19 times. (This is just for the Z routines.)

  • see Julien’s emails

  • vote on the lapackers mailing list: A*T (or AT) and A*H (or AH): Clint Whaley, Jim Demmel, Sven Hammarling, Antoine Petitet, Daniel Kressner A' (for A*H) and A.' for (A*T): Julien Langou (I love to be that supported by the lapackers!)

bug0023 :: SROTMG and DROTMG uses deprecated Fortran ASSIGN statement and assigned GOTO statement

  • CORRECTED - see svn r691

  • reported by Marco Atzeri on Fri Mar 06 2009

  • see forum topic 1420

  • committed by Julie Langou (SVN revision 691, on Thu Sep 10 2009)

bug0022 :: workspace query bug with DGEJSV (when only left or right singular vectors desired)

  • CORRECTED - see 891 and 964

  • reported by Allin Cottrell on Tue Jan 15 2009

  • confirmed by Julien Langou on Fri Jan 30 2009

  • see forum topic 866

  • all information sent to Zlatko Drmac

  • committed by Julie Langou (SVN revision 891 and 964)

bug0021 :: in DGESDD, workspace query gives a value smaller than the minimal value given in the header to run the routine

  • CORRECTED - see svn r649

  • reported by Guy Bencteux on Sat Dec 06 2008

  • see forum topic 846

  • committed by Julie Langou (SVN revision 649, on Tue Mar 17 2009)

bug0020 :: in xGESDD, workspace query can overflow for large matrices

  • CORRECTED

  • reported by Stephan Ripke (Broad Institute, Boston) on Thu May 21 2009

  • confirmed by Julien Langou on Thu May 21 2009

  • see forum topic 1418

  • It’s just the usual 32-bit integer overflow issue, which is a user problem, not a bug in the code.

  • Recompiling everything with 64-bit integers is the correct way to deal with this issue.

bug0019 :: make install generates a "** Error: Time for operations was zero" too easily

  • CORRECTED - see svn r693

  • negative flop counts can be generated by make install

  • reported by Sergei Steshenko on Thu Nov 20 2008

  • see: emails

  • committed by Julie Langou (SVN revision 693, on Fri Sep 11 2009)

bug0017 :: in CHBGST/ZHBGST, reference to uninitialized elements of RWORK in the DO 240 and DO 470 loops

  • CORRECTED - see svn r656

  • patch given by Lawrence Mulholland (NAG) on Wed May 06 2009

  • see forum topic 1408

  • committed by Julien Langou (SVN revision 656, on Sun May 10 2009)

bug0016 :: problem in workspace query for CGEESX/DGEESX/SGEESX/ZGEESX

  • CORRECTED - see svn r657

  • bug report sent by Alexander V. Kobotov (Intel) on Mon, 6 Apr 2009 to "lapack@cs.utk.edu". "(c/z)geesx: no lwork=-1 branch at all, info = -15 is returned while doing lquery." The S and D versions were not exiting after WORKSPACE query as well.

  • committed by Julien Langou (SVN revision 657, on Sun May 10 2009)

bug0015 :: referencing WORK(1) and IWORK(1) when IJOB=0 in CTGSEN/DTGSEN/STGSEN/ZTGSEN contradicts header description

  • CORRECTED - see svn r658,659

  • bug report sent by Alexander V. Kobotov (Intel) on Mon, 6 Apr 2009 to "lapack@cs.utk.edu". "(d/s)tgsen.f: iwork(1) always referenced: line 455: iwork( 1 ) = LIWMIN, documentation says that if IJOB=0 it shouldn’t, so NULL pointer causes a segfault." Same problem for C and Z versions and for the WORK array.

  • committed by Julien Langou (SVN revision 658 and 659, on Sun May 10 2009)

bug0014 :: CSYEQUB/ZSYEQUB/SSYEQUB/DSYEQUB/CHEEQUB/CHEEQUB: EXTERNAL and INTRINSIC list are not accurate (or not even present)

  • CORRECTED - see svn r660

  • bug report sent by Alexander V. Kobotov (Intel) on Mon, 6 Apr 2009 to "lapack@cs.utk.edu". "c(he/sy)equb: no slamch in external lists and lsame, intrinsics not described" Same problem for D and S versions and for the WORK array.

  • committed by Julien Langou (SVN revision 660 on Sun May 10 2009)

bugXXXX Wrong type for workspace in cpot01 and zpot01

  • CORRECTED - see svn r655

  • Bug reported by Julie Langou on Th. 04/30/09

  • Workspace types needed by CPOT01 and ZPOT01, they need to be REAL (or DOUBLE PRECISION) and not COMPLEX (or DOUBLE COMPLEX).

  • committed by Julie Langou (SVN revision r655, on Sun, May 3 2009)

bugXXXX Revert DLARFG to 3.1.0, move DLARFG to DLARFP and improved DLARFP

  • CORRECTED - see svn (r706, r707, r708, r710, r712, r713) + (r755)

  • Bug reported by Pat Quillen (MathWorks)

  • The Householder reflector generation routine dlarfg (for double precision) has been changed in LAPACK-3.2 by dlarfp to generate nonnegative diagonal elements (on the diagonal of the R factor of a QR factorization). There is an issue in the dlarfp subroutine in LAPACK-3.2. The bug report is from Pat Quillen from MathWorks, have participated in the bug fix: Pat Quillen, Jim Demmel, Sven Hammarling, Mark Hoemmen, Guillaume Revy, William Kahan, Julie Langou and Julien Langou.

  • Extensive work by Jim Demmel, Guillaume Revy, and William Kahan have revealed that the new Householder reflector that guarantees a positive diagonal of R in QR has two apparently unfixable drawbacks compared to the old reflector: 1) the computed reflector can be less orthogonal by a factor of about 4, (Jim, Guillaume and William are not sure why.) 2) this new routine is intrinsically more sensitive to over/underflow, this is now well understood, details are skipped here. None of these issues arise with the conventional Householder reflector.

  • So the decision is to

    1) Fix as much as possible the xLARFP routines. This was corrected by
       Julien (see (r706, r707, r708, r710, r712, r713)) based on Jim's idea.
    2) Back out the changes in LAPACK to go back to using the old reflector
       (xlarfg) everywhere (e.g. in xGEQRF, xGEQR2, etc.).
    3) Keep the change that saves flops when u has lots of trailing zeros,
       since this is independently a good idea.
    4) Change the name from xLARFP to xLARFGP and introduce new QR routines
       (xGEQRFP and xGEQR2P) that uses xlarfp to guarantee a new positive
       diagonal of R, for who needs it.
    5) This requires to adapt the test suites
    6) Note: only the QR routines have an xGEQRFP. While it seems that quite
       a few users care for QR factorization with nonnegative diagonal R. Noone
       seemed to care for this feature on LQ, QL or RQ. So we have left out
       these routines.
    7) Steps 2 to 6 were done during r755 by Julie.

dead code* :: xLAHRD is now replaced by xLAHR2, xLAHRD is a dead code since LAPACK 3.1

  • xLAHRD will be removed at some point in the future from the distribution