Skip to content

Return INFO = 1 from xLALSD and xBDSDC instead of stopping in XERBLA when the bidiagonal contains a NaN - #1382

Open
rmlarsen wants to merge 1 commit into
Reference-LAPACK:masterfrom
rmlarsen:dc-nan-info-not-xerbla
Open

Return INFO = 1 from xLALSD and xBDSDC instead of stopping in XERBLA when the bidiagonal contains a NaN#1382
rmlarsen wants to merge 1 commit into
Reference-LAPACK:masterfrom
rmlarsen:dc-nan-info-not-xerbla

Conversation

@rmlarsen

@rmlarsen rmlarsen commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Disclaimer: This PR was prepared using Claude Code.

Summary

xLALSD (the solver behind xGELSD) and xBDSDC scale the bidiagonal by its largest entry before the divide and conquer phase, guarded only by ORGNRM.EQ.ZERO. xLANST propagates a NaN, and xLASCL rejects CFROM = NaN as an illegal argument, so the call ends in XERBLA, and the reference XERBLA stops the program. A NaN anywhere in A reaches the bidiagonal of xGELSD, and so does an infinity, because the driver's own scaling multiplies by zero and leaves a NaN where the infinity was. This PR tests the norm with xISNAN at those sites and returns INFO = 1, the value xLASDA already uses when a singular value fails to converge. Nothing changes for finite input.

Description

With a NaN at A(2,2) of a 6-by-4 least-squares problem, one process per call:

driver master
DGELS, DGELST, DGETSLS, DGELSY returns, INFO = 0, NaN solution
DGELSS returns, INFO = 3 (DBDSQR did not converge)
DGELSD, ZGELSD process stops: ** On entry to DLASCL parameter number 4 had an illegal value

The backtrace is DGELSD -> DLALSD -> DLASCL -> XERBLA, from the unconditional DLASCL( 'G', 0, 0, ORGNRM, ONE, ... ) after ORGNRM = DLANST( 'M', N, D, E ). An infinity in A ends the same way: ANRM > BIGNUM makes DGELSD call DLASCL( 'G', 0, 0, ANRM, BIGNUM, ... ), which multiplies by zero and turns the infinity into a NaN. xGESDD guards its own input against a NaN (returns INFO = -4, #469), but an infinity passes that guard, becomes a NaN in the same way, and stops the process inside xBDSDC. Callers that replace XERBLA with an exception see an illegal-argument error from DLASCL for what is a data problem.

Whether a NaN is detected in a scan that uses MAX and comparisons is compiler dependent; the sites changed here use xISNAN, which is not.

Fix. At the scaling sites of {s,d,c,z}lalsd.f (the N = 1 branch and the general one) and {s,d}bdsdc.f, add ELSE IF( xISNAN( ... ) ) THEN INFO = 1; RETURN. The INFO descriptions of xLALSD, xBDSDC and xGELSD document the new return. Ten files, six with code changes.

xBDSDC reaches the changed site only on its divide and conquer path (COMPQ = 'I' or 'P' and N > SMLSIZ). Its small-problem path and its singular-values-only path go through xLASDQ as before and are not changed by this PR: for N <= 2 they return INFO = 0 with a NaN result, for larger N a non-convergence count.

Minimal reproducer

program minimal
  implicit none
  integer, parameter :: m = 6, n = 4
  double precision :: a(m, n), b(m), s(n), work(4096), z
  integer :: iwork(256), info, rank, i, j
  do j = 1, n
    do i = 1, m
      a(i, j) = 1 + mod(3*i + 5*j, 7) / 7d0
      if (i == j) a(i, j) = a(i, j) + 3
    end do
  end do
  z = 0
  a(2, 2) = z / z
  b = 1
  call dgelsd(m, n, 1, a, m, b, m, s, -1d0, rank, work, 4096, iwork, info)
  print '(a,i0)', 'DGELSD returned, info = ', info
end program
BEFORE (master):      ** On entry to DLASCL parameter number  4 had an illegal value
                     (program stopped by XERBLA)
AFTER (this branch):  DGELSD returned, info = 1

Validation

NaN and infinity at every position, all precisions, both sides of the divide and conquer threshold

repro/nan_sweep.f90 runs {s,d,c,z}GELSD on shapes (1,1), (2,2), (5,3), (3,5), (25,25), (26,26), (40,25), (25,40) and (80,60) with a NaN or an infinity at every position (a lattice of 40 positions for the larger shapes), and {s,d}BDSDC with a NaN on every diagonal and off-diagonal entry for the same sizes. XERBLA is replaced by a routine that stops the process with status 99, so a completed run proves that no case reached it. The same program with finite input prints the solutions in hex for a bit-for-bit comparison with master.

routine cases returned INFO = 1
SGELSD, DGELSD, CGELSD, ZGELSD 574 each all all
SBDSDC, DBDSDC, N > 25 289 each all all
SBDSDC, DBDSDC, N <= 25 116 each all pre-existing xLASDQ behavior (see above)

Finite input: 27 (routine, shape) cases, bit-identical between master and this branch. Master stops on the first NaN case.

Regression test. xERRLS gets the case: a 2 by 2 matrix with a NaN in one entry, passed to xGELSD, which must return INFO = 1 without calling XERBLA. It belongs with the error-exit tests rather than in xDRVLS, because the driver returns no solution for such a matrix and the point of the test is that it returns at all; a NaN matrix type in xDRVLS would report the fixed behaviour as a failure (INFO .NE. 0 goes to ALAERH) and let the master behaviour through, since its residual ratios are NaN and RESULT( J ) .GE. THRESH is false for a NaN. On the parent commit the four xerrls sections report *** xGELSD on a matrix with a NaN returned INFO = -4 instead of 1 *** preceded by the xLASCL illegal-argument line, and *** xLS routines failed the tests of the error exits ***; with the fix they pass. xGELSD needs a real workspace of about 800 for a 2 by 2 problem, so the arrays in xERRLS grow accordingly, and the four files join the -Onopropagate list that already keeps the NAG compiler from folding the SQRT( -ONE ) that builds the NaN.

Test suite. The full LAPACK test suite passes on this branch: 215 of 215 CTest entries, 5441901 LAPACK tests and 315872 BLAS tests with 0 numerical errors and 0 other errors, the same totals as the parent commit f96546fc9 built and run the same way (GCC 13.3, CMAKE_BUILD_TYPE=Release, BUILD_INDEX64_EXT_API=ON).

Performance. Timed on a 13th Gen Intel(R) Core(TM) i7-13700HX under WSL2 with the reference BLAS, GCC 13.3, -O2. To separate the change from code-placement effects (which move untouched routines by up to 28% between two separately linked static libraries on this machine), the parent library is a shared object shared by both sides, and each benchmark binary carries its own copy of only the changed routines, parent or branch, which interposes over the library's; everything else is byte-identical. Four rounds in alternating order, one core, one process per run, on an idle machine; medians of the per-round medians, with DPOTRF as an untouched control. The benchmark driver and raw output are available on request.

routine n parent this branch ratio
DGELSD (us/call) 16 11.4 10.8 0.95
64 179 172 0.97
256 9870 9964 1.01
512 78812 82091 1.04
DBDSDC (us/call) 32 64.7 64.9 1.00
128 1573 1567 1.00
512 69940 69707 1.00
1024 518447 513789 0.99
DPOTRF control (us/call) 64 / 256 / 1024 1.03 / 1.04 / 1.00

No measurable difference; the change is one xISNAN test per call.

Not changed here. xBDSQR with singular vectors loops indefinitely on an infinity in D (reachable through xBDSDC with N <= SMLSIZ); xGELSD cannot pass an infinity down because its scaling turns it into a NaN first. That is a separate defect.

Checklist

  • The documentation has been updated. (INFO descriptions of xLALSD, xBDSDC and xGELSD.)
  • If the PR solves a specific issue, it is set to be closed on merge. (No tracking issue; happy to open one.)

@codecov

codecov Bot commented Sep 7, 2026

Copy link
Copy Markdown

❌ 4 Tests Failed:

Tests completed Failed Passed Skipped
236 4 232 0
View the top 3 failed test(s) by shortest run time
BLAS.blas::cblat3.out (COMPLEX Level 3 BLAS routines)
Stack Traces | 0s run time
1 other error(s) (illegal: 0, info: 1), 0 test(s) run
output ends without 'END OF TESTS': the driver did not finish
BLAS.blas::dblat2.out (DOUBLE PRECISION Level 2 BLAS routines)
Stack Traces | 0s run time
1 other error(s) (illegal: 0, info: 1), 0 test(s) run
output ends without 'END OF TESTS': the driver did not finish
BLAS.blas::sblat3.out (REAL Level 3 BLAS routines)
Stack Traces | 0s run time
1 other error(s) (illegal: 0, info: 1), 0 test(s) run
output ends without 'END OF TESTS': the driver did not finish
BLAS_64.blas::cblat2_64.out (COMPLEX Level 2 BLAS routines)
Stack Traces | 0s run time
1 other error(s) (illegal: 0, info: 1), 0 test(s) run
output ends without 'END OF TESTS': the driver did not finish
BLAS_64.blas::cblat3_64.out (COMPLEX Level 3 BLAS routines)
Stack Traces | 0s run time
1 other error(s) (illegal: 0, info: 1), 0 test(s) run
output ends without 'END OF TESTS': the driver did not finish
BLAS_64.blas::dblat2_64.out (DOUBLE PRECISION Level 2 BLAS routines)
Stack Traces | 0s run time
1 other error(s) (illegal: 0, info: 1), 0 test(s) run
output ends without 'END OF TESTS': the driver did not finish
BLAS_64.blas::dblat3_64.out (DOUBLE PRECISION Level 3 BLAS routines)
Stack Traces | 0s run time
1 other error(s) (illegal: 0, info: 1), 0 test(s) run
output ends without 'END OF TESTS': the driver did not finish
BLAS_64.blas::sblat2_64.out (REAL Level 2 BLAS routines)
Stack Traces | 0s run time
1 other error(s) (illegal: 0, info: 1), 0 test(s) run
output ends without 'END OF TESTS': the driver did not finish
BLAS_64.blas::zblat2_64.out (COMPLEX16 Level 2 BLAS routines)
Stack Traces | 0s run time
1 other error(s) (illegal: 0, info: 1), 0 test(s) run
output ends without 'END OF TESTS': the driver did not finish
BLAS_64.blas::zblat3_64.out (COMPLEX16 Level 3 BLAS routines)
Stack Traces | 0s run time
1 other error(s) (illegal: 0, info: 1), 0 test(s) run
output ends without 'END OF TESTS': the driver did not finish
CBLAS.cblas::dtest3.out (DOUBLE PRECISION C interface to Level 3 BLAS routines)
Stack Traces | 0s run time
1 other error(s) (illegal: 0, info: 1), 0 test(s) run
output ends without 'END OF TESTS': the driver did not finish
CBLAS.cblas::ztest2.out (COMPLEX16 C interface to Level 2 BLAS routines)
Stack Traces | 0s run time
1 other error(s) (illegal: 0, info: 1), 0 test(s) run
output ends without 'END OF TESTS': the driver did not finish
CBLAS_64.cblas::dtest2_64.out (DOUBLE PRECISION C interface to Level 2 BLAS routines)
Stack Traces | 0s run time
1 other error(s) (illegal: 0, info: 1), 0 test(s) run
output ends without 'END OF TESTS': the driver did not finish
CBLAS_64.cblas::stest2_64.out (REAL C interface to Level 2 BLAS routines)
Stack Traces | 0s run time
1 other error(s) (illegal: 0, info: 1), 0 test(s) run
output ends without 'END OF TESTS': the driver did not finish
CBLAS_64.cblas::ztest3_64.out (COMPLEX16 C interface to Level 3 BLAS routines)
Stack Traces | 0s run time
1 other error(s) (illegal: 0, info: 1), 0 test(s) run
output ends without 'END OF TESTS': the driver did not finish
BLAS.blas::cblat2.out (COMPLEX Level 2 BLAS routines)
Stack Traces | 0.02s run time
1 other error(s) (illegal: 0, info: 1), 0 test(s) run
output ends without 'END OF TESTS': the driver did not finish
BLAS.blas::sblat2.out (REAL Level 2 BLAS routines)
Stack Traces | 0.02s run time
1 other error(s) (illegal: 0, info: 1), 0 test(s) run
output ends without 'END OF TESTS': the driver did not finish
BLAS.blas::zblat2.out (COMPLEX16 Level 2 BLAS routines)
Stack Traces | 0.02s run time
1 other error(s) (illegal: 0, info: 1), 0 test(s) run
output ends without 'END OF TESTS': the driver did not finish
BLAS.blas::zblat3.out (COMPLEX16 Level 3 BLAS routines)
Stack Traces | 0.02s run time
1 other error(s) (illegal: 0, info: 1), 0 test(s) run
output ends without 'END OF TESTS': the driver did not finish
LAPACK_64.eig::sec_64.out (REAL Eigen Condition)
Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to STRSYL_64 parameter number  1 had an illegal value
LAPACK.eig::ccsd.out (COMPLEX CS Decomposition routines)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to CUNCSD parameter number  7 had an illegal value
LAPACK.eig::cec.out (COMPLEX Eigen Condition)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to CTRSYL parameter number  1 had an illegal value
LAPACK.eig::cgd.out (COMPLEX Nonsymmetric Generalized Eigenvalue Problem driver)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to CGGES parameter number  1 had an illegal value
LAPACK.eig::cgg.out (COMPLEX Nonsymmetric Generalized Eigenvalue Problem)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to CGGHRD parameter number  1 had an illegal value
LAPACK.eig::cglm.out (COMPLEX Generalized Linear Regression Model routines)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to CGGGLM parameter number  1 had an illegal value
LAPACK.eig::cgqr.out (COMPLEX Generalized QR and RQ factorization routines)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to CGGQRF parameter number  1 had an illegal value
LAPACK.eig::cgsv.out (COMPLEX Generalized Singular Value Decomposition routines)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to CGGSVD3 parameter number  1 had an illegal value
LAPACK.eig::clse.out (COMPLEX Constrained Linear Least Squares routines)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to CGGLSE parameter number  1 had an illegal value
LAPACK.eig::csb.out (COMPLEX Symmetric Eigenvalue Problem)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to CHBTRD parameter number  1 had an illegal value
LAPACK.eig::cse2.out (COMPLEX Symmetric Eigenvalue Problem 2-stage)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to CHETRD parameter number  1 had an illegal value
LAPACK.eig::csep.out (COMPLEX Symmetric Eigenvalue Problem)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to CHETRD parameter number  1 had an illegal value
LAPACK.eig::csvd.out (COMPLEX Singular Value Decomposition)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to CGEBRD parameter number  1 had an illegal value
LAPACK.eig::dcsd.out (DOUBLE PRECISION CS Decomposition routines)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to DORCSD parameter number  7 had an illegal value
LAPACK.eig::dec.out (DOUBLE PRECISION Eigen Condition)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to DTRSYL parameter number  1 had an illegal value
LAPACK.eig::dgd.out (DOUBLE PRECISION Nonsymmetric Generalized Eigenvalue Problem driver)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to DGGES parameter number  1 had an illegal value
LAPACK.eig::dgg.out (DOUBLE PRECISION Nonsymmetric Generalized Eigenvalue Problem)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to DGGHRD parameter number  1 had an illegal value
LAPACK.eig::dglm.out (DOUBLE PRECISION Generalized Linear Regression Model routines)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to DGGGLM parameter number  1 had an illegal value
LAPACK.eig::dgqr.out (DOUBLE PRECISION Generalized QR and RQ factorization routines)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to DGGQRF parameter number  1 had an illegal value
LAPACK.eig::dgsv.out (DOUBLE PRECISION Generalized Singular Value Decomposition routines)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to DGGSVD3 parameter number  1 had an illegal value
LAPACK.eig::dlse.out (DOUBLE PRECISION Constrained Linear Least Squares routines)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to DGGLSE parameter number  1 had an illegal value
LAPACK.eig::dnep.out (DOUBLE PRECISION Nonsymmetric Eigenvalue Problem)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to DGEBAL parameter number  1 had an illegal value
LAPACK.eig::dsb.out (DOUBLE PRECISION Symmetric Eigenvalue Problem)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to DSBTRD parameter number  1 had an illegal value
LAPACK.eig::dse2.out (DOUBLE PRECISION Symmetric Eigenvalue Problem 2-stage)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to DSYTRD parameter number  1 had an illegal value
LAPACK.eig::dsep.out (DOUBLE PRECISION Symmetric Eigenvalue Problem)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to DSYTRD parameter number  1 had an illegal value
LAPACK.eig::dsvd.out (DOUBLE PRECISION Singular Value Decomposition)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to DGEBRD parameter number  1 had an illegal value
LAPACK.eig::scsd.out (REAL CS Decomposition routines)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to SORCSD parameter number  7 had an illegal value
LAPACK.eig::sec.out (REAL Eigen Condition)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to STRSYL parameter number  1 had an illegal value
LAPACK.eig::sed.out (REAL Nonsymmetric Eigenvalue)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to SGEEV parameter number  1 had an illegal value
LAPACK.eig::sgd.out (REAL Nonsymmetric Generalized Eigenvalue Problem driver)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to SGGES parameter number  1 had an illegal value
LAPACK.eig::sgg.out (REAL Nonsymmetric Generalized Eigenvalue Problem)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to SGGHRD parameter number  1 had an illegal value
LAPACK.eig::sglm.out (REAL Generalized Linear Regression Model routines)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to SGGGLM parameter number  1 had an illegal value
LAPACK.eig::sgqr.out (REAL Generalized QR and RQ factorization routines)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to SGGQRF parameter number  1 had an illegal value
LAPACK.eig::sgsv.out (REAL Generalized Singular Value Decomposition routines)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to SGGSVD3 parameter number  1 had an illegal value
LAPACK.eig::slse.out (REAL Constrained Linear Least Squares routines)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to SGGLSE parameter number  1 had an illegal value
LAPACK.eig::ssb.out (REAL Symmetric Eigenvalue Problem)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to SSBTRD parameter number  1 had an illegal value
LAPACK.eig::sse2.out (REAL Symmetric Eigenvalue Problem 2-stage)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to SSYTRD parameter number  1 had an illegal value
LAPACK.eig::ssep.out (REAL Symmetric Eigenvalue Problem)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to SSYTRD parameter number  1 had an illegal value
LAPACK.eig::ssvd.out (REAL Singular Value Decomposition)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to SGEBRD parameter number  1 had an illegal value
LAPACK.eig::zcsd.out (COMPLEX16 CS Decomposition routines)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to ZUNCSD parameter number  7 had an illegal value
LAPACK.eig::zec.out (COMPLEX16 Eigen Condition)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to ZTRSYL parameter number  1 had an illegal value
LAPACK.eig::zgd.out (COMPLEX16 Nonsymmetric Generalized Eigenvalue Problem driver)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to ZGGES parameter number  1 had an illegal value
LAPACK.eig::zgg.out (COMPLEX16 Nonsymmetric Generalized Eigenvalue Problem)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to ZGGHRD parameter number  1 had an illegal value
LAPACK.eig::zglm.out (COMPLEX16 Generalized Linear Regression Model routines)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to ZGGGLM parameter number  1 had an illegal value
LAPACK.eig::zgqr.out (COMPLEX16 Generalized QR and RQ factorization routines)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to ZGGQRF parameter number  1 had an illegal value
LAPACK.eig::zgsv.out (COMPLEX16 Generalized Singular Value Decomposition routines)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to ZGGSVD3 parameter number  1 had an illegal value
LAPACK.eig::zlse.out (COMPLEX16 Constrained Linear Least Squares routines)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to ZGGLSE parameter number  1 had an illegal value
LAPACK.eig::zsb.out (COMPLEX16 Symmetric Eigenvalue Problem)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to ZHBTRD parameter number  1 had an illegal value
LAPACK.eig::zse2.out (COMPLEX16 Symmetric Eigenvalue Problem 2-stage)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to ZHETRD parameter number  1 had an illegal value
LAPACK.eig::zsep.out (COMPLEX16 Symmetric Eigenvalue Problem)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to ZHETRD parameter number  1 had an illegal value
LAPACK.eig::zsvd.out (COMPLEX16 Singular Value Decomposition)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to ZGEBRD parameter number  1 had an illegal value
LAPACK.lin::ctest.out (COMPLEX Linear Equation routines)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to CGETRF parameter number  1 had an illegal value
LAPACK.lin::dtest.out (DOUBLE PRECISION Linear Equation routines)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to DGETRF parameter number  1 had an illegal value
LAPACK.lin::stest.out (REAL Linear Equation routines)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to SGETRF parameter number  1 had an illegal value
LAPACK.lin::ztest.out (COMPLEX16 Linear Equation routines)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to ZGETRF parameter number  1 had an illegal value
LAPACK.mixed::dstest.out (DOUBLE PRECISION Mixed Precision linear equation routines)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to DSGESV parameter number  1 had an illegal value
LAPACK.mixed::zctest.out (COMPLEX16 Mixed Precision linear equation routines)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to ZCGESV parameter number  1 had an illegal value
LAPACK.rfp::ctest_rfp.out (COMPLEX RFP linear equation routines)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to CPFTRF parameter number  1 had an illegal value
LAPACK.rfp::dtest_rfp.out (DOUBLE PRECISION RFP linear equation routines)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to DPFTRF parameter number  1 had an illegal value
LAPACK.rfp::ztest_rfp.out (COMPLEX16 RFP linear equation routines)
Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to ZPFTRF parameter number  1 had an illegal value
View the full list of 74 ❄️ flaky test(s)
BLAS.blas::dblat3.out (DOUBLE PRECISION Level 3 BLAS routines)

Flake rate in main: 16.82% (Passed 371 times, Failed 75 times)

Stack Traces | 0s run time
1 other error(s) (illegal: 0, info: 1), 0 test(s) run
output ends without 'END OF TESTS': the driver did not finish
BLAS_64.blas::sblat3_64.out (REAL Level 3 BLAS routines)

Flake rate in main: 30.65% (Passed 138 times, Failed 61 times)

Stack Traces | 0s run time
1 other error(s) (illegal: 0, info: 1), 0 test(s) run
output ends without 'END OF TESTS': the driver did not finish
LAPACK.eig::ced.out (COMPLEX Nonsymmetric Eigenvalue)

Flake rate in main: 42.35% (Passed 1081 times, Failed 794 times)

Stack Traces | 0.31s run time
8 numerical error(s), 14088 test(s) run
 CEV:    8 out of  1100 tests failed to pass the threshold
LAPACK.eig::cnep.out (COMPLEX Nonsymmetric Eigenvalue Problem)

Flake rate in main: 25.95% (Passed 1378 times, Failed 483 times)

Stack Traces | 0.14s run time
385 numerical error(s), 48 other error(s) (illegal: 0, info: 48), 10080 test(s) run
 CCHKHS: CHSEIN(R) returned INFO=     1.
 CCHKHS: CHSEIN(L) returned INFO=     1.
 CCHKHS: CHSEIN(R) returned INFO=    12.
 CCHKHS: CHSEIN(L) returned INFO=    12.
 CCHKHS: CHSEIN(R) returned INFO=    15.
 CCHKHS: CHSEIN(L) returned INFO=    16.
 CCHKHS: CHSEIN(R) returned INFO=    16.
 CCHKHS: CHSEIN(L) returned INFO=    16.
 CCHKHS: CHSEIN(R) returned INFO=    15.
 CCHKHS: CHSEIN(L) returned INFO=    15.
 CHS:   81 out of  2016 tests failed to pass the threshold
 CCHKHS: CHSEIN(L) returned INFO=     1.
 CCHKHS: CHSEIN(R) returned INFO=    13.
 CCHKHS: CHSEIN(L) returned INFO=    13.
 CCHKHS: CHSEIN(R) returned INFO=     7.
 CCHKHS: CHSEIN(L) returned INFO=    12.
 CCHKHS: CHSEIN(R) returned INFO=    16.
 CCHKHS: CHSEIN(L) returned INFO=    16.
 CCHKHS: CHSEIN(R) returned INFO=    10.
 CCHKHS: CHSEIN(L) returned INFO=    13.
 CHS:   72 out of  2016 tests failed to pass the threshold
 CCHKHS: CHSEIN(R) returned INFO=     2.
 CCHKHS: CHSEIN(L) returned INFO=     3.
 CCHKHS: CHSEIN(L) returned INFO=     1.
 CCHKHS: CHSEIN(R) returned INFO=    12.
 CCHKHS: CHSEIN(L) returned INFO=    12.
 CCHKHS: CHSEIN(R) returned INFO=    13.
 CCHKHS: CHSEIN(L) returned INFO=    14.
 CCHKHS: CHSEIN(R) returned INFO=    16.
 CCHKHS: CHSEIN(L) returned INFO=    16.
 CCHKHS: CHSEIN(R) returned INFO=    11.
 CCHKHS: CHSEIN(L) returned INFO=    12.
 CHS:   79 out of  2016 tests failed to pass the threshold
 CCHKHS: CHSEIN(L) returned INFO=     2.
 CCHKHS: CHSEIN(L) returned INFO=     1.
 CCHKHS: CHSEIN(R) returned INFO=    12.
 CCHKHS: CHSEIN(L) returned INFO=    12.
 CCHKHS: CHSEIN(R) returned INFO=    13.
 CCHKHS: CHSEIN(L) returned INFO=    14.
 CCHKHS: CHSEIN(R) returned INFO=    15.
 CCHKHS: CHSEIN(L) returned INFO=    16.
 CCHKHS: CHSEIN(R) returned INFO=    14.
 CCHKHS: CHSEIN(L) returned INFO=    15.
 CHS:   84 out of  2016 tests failed to pass the threshold
 CCHKHS: CHSEIN(R) returned INFO=    14.
 CCHKHS: CHSEIN(L) returned INFO=    14.
 CCHKHS: CHSEIN(R) returned INFO=    14.
 CCHKHS: CHSEIN(L) returned INFO=    14.
 CCHKHS: CHSEIN(R) returned INFO=    16.
 CCHKHS: CHSEIN(L) returned INFO=    16.
 CCHKHS: CHSEIN(R) returned INFO=    11.
 CCHKHS: CHSEIN(L) returned INFO=    11.
 CHS:   69 out of  2016 tests failed to pass the threshold
LAPACK.eig::ded.out (DOUBLE PRECISION Nonsymmetric Eigenvalue)

Flake rate in main: 38.73% (Passed 1147 times, Failed 725 times)

Stack Traces | 32.1s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to DGEEV parameter number  1 had an illegal value
LAPACK.eig::snep.out (REAL Nonsymmetric Eigenvalue Problem)

Flake rate in main: 28.53% (Passed 1338 times, Failed 534 times)

Stack Traces | 0.03s run time
1 numerical error(s), 10080 test(s) run
 SHS:    1 out of  2016 tests failed to pass the threshold
LAPACK.eig::zed.out (COMPLEX16 Nonsymmetric Eigenvalue)

Flake rate in main: 42.35% (Passed 1081 times, Failed 794 times)

Stack Traces | 0.42s run time
10 numerical error(s), 14090 test(s) run
 ZEV:   10 out of  1102 tests failed to pass the threshold
LAPACK.eig::znep.out (COMPLEX16 Nonsymmetric Eigenvalue Problem)

Flake rate in main: 25.95% (Passed 1378 times, Failed 483 times)

Stack Traces | 0.16s run time
99 numerical error(s), 10080 test(s) run
 ZHS:   50 out of  2016 tests failed to pass the threshold
 ZHS:   49 out of  2016 tests failed to pass the threshold
LAPACK.rfp::stest_rfp.out (REAL RFP linear equation routines)

Flake rate in main: 25.95% (Passed 1378 times, Failed 483 times)

Stack Traces | 0.2s run time
1 numerical error(s), 13128 test(s) run
  STFSM auxiliary routine:     1 out of  7776 tests failed to pass the threshold
LAPACK_64.eig::ccsd_64.out (COMPLEX CS Decomposition routines)

Flake rate in main: 37.93% (Passed 36 times, Failed 22 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to CUNCSD_64 parameter number  7 had an illegal value
LAPACK_64.eig::cec_64.out (COMPLEX Eigen Condition)

Flake rate in main: 37.93% (Passed 36 times, Failed 22 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to CTRSYL_64 parameter number  1 had an illegal value
LAPACK_64.eig::ced_64.out (COMPLEX Nonsymmetric Eigenvalue)

Flake rate in main: 39.84% (Passed 1199 times, Failed 794 times)

Stack Traces | 0.32s run time
8 numerical error(s), 14088 test(s) run
 CEV:    8 out of  1100 tests failed to pass the threshold
LAPACK_64.eig::cgd_64.out (COMPLEX Nonsymmetric Generalized Eigenvalue Problem driver)

Flake rate in main: 37.93% (Passed 36 times, Failed 22 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to CGGES_64 parameter number  1 had an illegal value
LAPACK_64.eig::cgg_64.out (COMPLEX Nonsymmetric Generalized Eigenvalue Problem)

Flake rate in main: 37.93% (Passed 36 times, Failed 22 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to CGGHRD_64 parameter number  1 had an illegal value
LAPACK_64.eig::cglm_64.out (COMPLEX Generalized Linear Regression Model routines)

Flake rate in main: 37.93% (Passed 36 times, Failed 22 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to CGGGLM_64 parameter number  1 had an illegal value
LAPACK_64.eig::cgqr_64.out (COMPLEX Generalized QR and RQ factorization routines)

Flake rate in main: 37.93% (Passed 36 times, Failed 22 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to CGGQRF_64 parameter number  1 had an illegal value
LAPACK_64.eig::cgsv_64.out (COMPLEX Generalized Singular Value Decomposition routines)

Flake rate in main: 37.93% (Passed 36 times, Failed 22 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to CGGSVD3_64 parameter number  1 had an illegal value
LAPACK_64.eig::clse_64.out (COMPLEX Constrained Linear Least Squares routines)

Flake rate in main: 33.87% (Passed 82 times, Failed 42 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to CGGLSE_64 parameter number  1 had an illegal value
LAPACK_64.eig::cnep_64.out (COMPLEX Nonsymmetric Eigenvalue Problem)

Flake rate in main: 24.51% (Passed 1488 times, Failed 483 times)

Stack Traces | 0.13s run time
385 numerical error(s), 48 other error(s) (illegal: 0, info: 48), 10080 test(s) run
 CCHKHS_64: CHSEIN_64(R) returned INFO=     1.
 CCHKHS_64: CHSEIN_64(L) returned INFO=     1.
 CCHKHS_64: CHSEIN_64(R) returned INFO=    12.
 CCHKHS_64: CHSEIN_64(L) returned INFO=    12.
 CCHKHS_64: CHSEIN_64(R) returned INFO=    15.
 CCHKHS_64: CHSEIN_64(L) returned INFO=    16.
 CCHKHS_64: CHSEIN_64(R) returned INFO=    16.
 CCHKHS_64: CHSEIN_64(L) returned INFO=    16.
 CCHKHS_64: CHSEIN_64(R) returned INFO=    15.
 CCHKHS_64: CHSEIN_64(L) returned INFO=    15.
 CHS:   81 out of  2016 tests failed to pass the threshold
 CCHKHS_64: CHSEIN_64(L) returned INFO=     1.
 CCHKHS_64: CHSEIN_64(R) returned INFO=    13.
 CCHKHS_64: CHSEIN_64(L) returned INFO=    13.
 CCHKHS_64: CHSEIN_64(R) returned INFO=     7.
 CCHKHS_64: CHSEIN_64(L) returned INFO=    12.
 CCHKHS_64: CHSEIN_64(R) returned INFO=    16.
 CCHKHS_64: CHSEIN_64(L) returned INFO=    16.
 CCHKHS_64: CHSEIN_64(R) returned INFO=    10.
 CCHKHS_64: CHSEIN_64(L) returned INFO=    13.
 CHS:   72 out of  2016 tests failed to pass the threshold
 CCHKHS_64: CHSEIN_64(R) returned INFO=     2.
 CCHKHS_64: CHSEIN_64(L) returned INFO=     3.
 CCHKHS_64: CHSEIN_64(L) returned INFO=     1.
 CCHKHS_64: CHSEIN_64(R) returned INFO=    12.
 CCHKHS_64: CHSEIN_64(L) returned INFO=    12.
 CCHKHS_64: CHSEIN_64(R) returned INFO=    13.
 CCHKHS_64: CHSEIN_64(L) returned INFO=    14.
 CCHKHS_64: CHSEIN_64(R) returned INFO=    16.
 CCHKHS_64: CHSEIN_64(L) returned INFO=    16.
 CCHKHS_64: CHSEIN_64(R) returned INFO=    11.
 CCHKHS_64: CHSEIN_64(L) returned INFO=    12.
 CHS:   79 out of  2016 tests failed to pass the threshold
 CCHKHS_64: CHSEIN_64(L) returned INFO=     2.
 CCHKHS_64: CHSEIN_64(L) returned INFO=     1.
 CCHKHS_64: CHSEIN_64(R) returned INFO=    12.
 CCHKHS_64: CHSEIN_64(L) returned INFO=    12.
 CCHKHS_64: CHSEIN_64(R) returned INFO=    13.
 CCHKHS_64: CHSEIN_64(L) returned INFO=    14.
 CCHKHS_64: CHSEIN_64(R) returned INFO=    15.
 CCHKHS_64: CHSEIN_64(L) returned INFO=    16.
 CCHKHS_64: CHSEIN_64(R) returned INFO=    14.
 CCHKHS_64: CHSEIN_64(L) returned INFO=    15.
 CHS:   84 out of  2016 tests failed to pass the threshold
 CCHKHS_64: CHSEIN_64(R) returned INFO=    14.
 CCHKHS_64: CHSEIN_64(L) returned INFO=    14.
 CCHKHS_64: CHSEIN_64(R) returned INFO=    14.
 CCHKHS_64: CHSEIN_64(L) returned INFO=    14.
 CCHKHS_64: CHSEIN_64(R) returned INFO=    16.
 CCHKHS_64: CHSEIN_64(L) returned INFO=    16.
 CCHKHS_64: CHSEIN_64(R) returned INFO=    11.
 CCHKHS_64: CHSEIN_64(L) returned INFO=    11.
 CHS:   69 out of  2016 tests failed to pass the threshold
LAPACK_64.eig::csb_64.out (COMPLEX Symmetric Eigenvalue Problem)

Flake rate in main: 37.93% (Passed 36 times, Failed 22 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to CHBTRD_64 parameter number  1 had an illegal value
LAPACK_64.eig::cse2_64.out (COMPLEX Symmetric Eigenvalue Problem 2-stage)

Flake rate in main: 37.93% (Passed 36 times, Failed 22 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to CHETRD_64 parameter number  1 had an illegal value
LAPACK_64.eig::csep_64.out (COMPLEX Symmetric Eigenvalue Problem)

Flake rate in main: 33.87% (Passed 82 times, Failed 42 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to CHETRD_64 parameter number  1 had an illegal value
LAPACK_64.eig::csvd_64.out (COMPLEX Singular Value Decomposition)

Flake rate in main: 37.93% (Passed 36 times, Failed 22 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to CGEBRD_64 parameter number  1 had an illegal value
LAPACK_64.eig::dcsd_64.out (DOUBLE PRECISION CS Decomposition routines)

Flake rate in main: 37.93% (Passed 36 times, Failed 22 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to DORCSD_64 parameter number  7 had an illegal value
LAPACK_64.eig::dec_64.out (DOUBLE PRECISION Eigen Condition)

Flake rate in main: 37.93% (Passed 36 times, Failed 22 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to DTRSYL_64 parameter number  1 had an illegal value
LAPACK_64.eig::ded_64.out (DOUBLE PRECISION Nonsymmetric Eigenvalue)

Flake rate in main: 36.51% (Passed 1261 times, Failed 725 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to DGEEV_64 parameter number  1 had an illegal value
LAPACK_64.eig::dgd_64.out (DOUBLE PRECISION Nonsymmetric Generalized Eigenvalue Problem driver)

Flake rate in main: 37.93% (Passed 36 times, Failed 22 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to DGGES_64 parameter number  1 had an illegal value
LAPACK_64.eig::dgg_64.out (DOUBLE PRECISION Nonsymmetric Generalized Eigenvalue Problem)

Flake rate in main: 37.93% (Passed 36 times, Failed 22 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to DGGHRD_64 parameter number  1 had an illegal value
LAPACK_64.eig::dglm_64.out (DOUBLE PRECISION Generalized Linear Regression Model routines)

Flake rate in main: 37.93% (Passed 36 times, Failed 22 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to DGGGLM_64 parameter number  1 had an illegal value
LAPACK_64.eig::dgqr_64.out (DOUBLE PRECISION Generalized QR and RQ factorization routines)

Flake rate in main: 37.93% (Passed 36 times, Failed 22 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to DGGQRF_64 parameter number  1 had an illegal value
LAPACK_64.eig::dgsv_64.out (DOUBLE PRECISION Generalized Singular Value Decomposition routines)

Flake rate in main: 37.93% (Passed 36 times, Failed 22 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to DGGSVD3_64 parameter number  1 had an illegal value
LAPACK_64.eig::dlse_64.out (DOUBLE PRECISION Constrained Linear Least Squares routines)

Flake rate in main: 37.93% (Passed 36 times, Failed 22 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to DGGLSE_64 parameter number  1 had an illegal value
LAPACK_64.eig::dnep_64.out (DOUBLE PRECISION Nonsymmetric Eigenvalue Problem)

Flake rate in main: 37.93% (Passed 36 times, Failed 22 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to DGEBAL_64 parameter number  1 had an illegal value
LAPACK_64.eig::dsb_64.out (DOUBLE PRECISION Symmetric Eigenvalue Problem)

Flake rate in main: 37.93% (Passed 36 times, Failed 22 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to DSBTRD_64 parameter number  1 had an illegal value
LAPACK_64.eig::dse2_64.out (DOUBLE PRECISION Symmetric Eigenvalue Problem 2-stage)

Flake rate in main: 37.93% (Passed 36 times, Failed 22 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to DSYTRD_64 parameter number  1 had an illegal value
LAPACK_64.eig::dsep_64.out (DOUBLE PRECISION Symmetric Eigenvalue Problem)

Flake rate in main: 37.93% (Passed 36 times, Failed 22 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to DSYTRD_64 parameter number  1 had an illegal value
LAPACK_64.eig::dsvd_64.out (DOUBLE PRECISION Singular Value Decomposition)

Flake rate in main: 37.93% (Passed 36 times, Failed 22 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to DGEBRD_64 parameter number  1 had an illegal value
LAPACK_64.eig::scsd_64.out (REAL CS Decomposition routines)

Flake rate in main: 37.93% (Passed 36 times, Failed 22 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to SORCSD_64 parameter number  7 had an illegal value
LAPACK_64.eig::sed_64.out (REAL Nonsymmetric Eigenvalue)

Flake rate in main: 33.87% (Passed 82 times, Failed 42 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to SGEEV_64 parameter number  1 had an illegal value
LAPACK_64.eig::sgd_64.out (REAL Nonsymmetric Generalized Eigenvalue Problem driver)

Flake rate in main: 37.93% (Passed 36 times, Failed 22 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to SGGES_64 parameter number  1 had an illegal value
LAPACK_64.eig::sgg_64.out (REAL Nonsymmetric Generalized Eigenvalue Problem)

Flake rate in main: 37.93% (Passed 36 times, Failed 22 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to SGGHRD_64 parameter number  1 had an illegal value
LAPACK_64.eig::sglm_64.out (REAL Generalized Linear Regression Model routines)

Flake rate in main: 37.93% (Passed 36 times, Failed 22 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to SGGGLM_64 parameter number  1 had an illegal value
LAPACK_64.eig::sgqr_64.out (REAL Generalized QR and RQ factorization routines)

Flake rate in main: 37.93% (Passed 36 times, Failed 22 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to SGGQRF_64 parameter number  1 had an illegal value
LAPACK_64.eig::sgsv_64.out (REAL Generalized Singular Value Decomposition routines)

Flake rate in main: 37.93% (Passed 36 times, Failed 22 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to SGGSVD3_64 parameter number  1 had an illegal value
LAPACK_64.eig::slse_64.out (REAL Constrained Linear Least Squares routines)

Flake rate in main: 33.87% (Passed 82 times, Failed 42 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to SGGLSE_64 parameter number  1 had an illegal value
LAPACK_64.eig::snep_64.out (REAL Nonsymmetric Eigenvalue Problem)

Flake rate in main: 26.89% (Passed 1452 times, Failed 534 times)

Stack Traces | 0.03s run time
1 numerical error(s), 10080 test(s) run
 SHS:    1 out of  2016 tests failed to pass the threshold
LAPACK_64.eig::ssb_64.out (REAL Symmetric Eigenvalue Problem)

Flake rate in main: 37.93% (Passed 36 times, Failed 22 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to SSBTRD_64 parameter number  1 had an illegal value
LAPACK_64.eig::sse2_64.out (REAL Symmetric Eigenvalue Problem 2-stage)

Flake rate in main: 37.93% (Passed 36 times, Failed 22 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to SSYTRD_64 parameter number  1 had an illegal value
LAPACK_64.eig::ssep_64.out (REAL Symmetric Eigenvalue Problem)

Flake rate in main: 33.87% (Passed 82 times, Failed 42 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to SSYTRD_64 parameter number  1 had an illegal value
LAPACK_64.eig::ssvd_64.out (REAL Singular Value Decomposition)

Flake rate in main: 33.87% (Passed 82 times, Failed 42 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to SGEBRD_64 parameter number  1 had an illegal value
LAPACK_64.eig::zcsd_64.out (COMPLEX16 CS Decomposition routines)

Flake rate in main: 39.29% (Passed 68 times, Failed 44 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to ZUNCSD_64 parameter number  7 had an illegal value
LAPACK_64.eig::zec_64.out (COMPLEX16 Eigen Condition)

Flake rate in main: 33.87% (Passed 82 times, Failed 42 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to ZTRSYL_64 parameter number  1 had an illegal value
LAPACK_64.eig::zed_64.out (COMPLEX16 Nonsymmetric Eigenvalue)

Flake rate in main: 39.84% (Passed 1199 times, Failed 794 times)

Stack Traces | 0.42s run time
10 numerical error(s), 14090 test(s) run
 ZEV:   10 out of  1102 tests failed to pass the threshold
LAPACK_64.eig::zgd_64.out (COMPLEX16 Nonsymmetric Generalized Eigenvalue Problem driver)

Flake rate in main: 33.87% (Passed 82 times, Failed 42 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to ZGGES_64 parameter number  1 had an illegal value
LAPACK_64.eig::zgg_64.out (COMPLEX16 Nonsymmetric Generalized Eigenvalue Problem)

Flake rate in main: 33.87% (Passed 82 times, Failed 42 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to ZGGHRD_64 parameter number  1 had an illegal value
LAPACK_64.eig::zglm_64.out (COMPLEX16 Generalized Linear Regression Model routines)

Flake rate in main: 33.87% (Passed 82 times, Failed 42 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to ZGGGLM_64 parameter number  1 had an illegal value
LAPACK_64.eig::zgqr_64.out (COMPLEX16 Generalized QR and RQ factorization routines)

Flake rate in main: 33.87% (Passed 82 times, Failed 42 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to ZGGQRF_64 parameter number  1 had an illegal value
LAPACK_64.eig::zgsv_64.out (COMPLEX16 Generalized Singular Value Decomposition routines)

Flake rate in main: 39.29% (Passed 68 times, Failed 44 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to ZGGSVD3_64 parameter number  1 had an illegal value
LAPACK_64.eig::zlse_64.out (COMPLEX16 Constrained Linear Least Squares routines)

Flake rate in main: 39.29% (Passed 68 times, Failed 44 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to ZGGLSE_64 parameter number  1 had an illegal value
LAPACK_64.eig::znep_64.out (COMPLEX16 Nonsymmetric Eigenvalue Problem)

Flake rate in main: 33.17% (Passed 1332 times, Failed 661 times)

Stack Traces | 0.15s run time
99 numerical error(s), 10080 test(s) run
 ZHS:   50 out of  2016 tests failed to pass the threshold
 ZHS:   49 out of  2016 tests failed to pass the threshold
LAPACK_64.eig::zsb_64.out (COMPLEX16 Symmetric Eigenvalue Problem)

Flake rate in main: 33.87% (Passed 82 times, Failed 42 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to ZHBTRD_64 parameter number  1 had an illegal value
LAPACK_64.eig::zse2_64.out (COMPLEX16 Symmetric Eigenvalue Problem 2-stage)

Flake rate in main: 33.87% (Passed 82 times, Failed 42 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to ZHETRD_64 parameter number  1 had an illegal value
LAPACK_64.eig::zsep_64.out (COMPLEX16 Symmetric Eigenvalue Problem)

Flake rate in main: 33.87% (Passed 82 times, Failed 42 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to ZHETRD_64 parameter number  1 had an illegal value
LAPACK_64.eig::zsvd_64.out (COMPLEX16 Singular Value Decomposition)

Flake rate in main: 33.87% (Passed 82 times, Failed 42 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to ZGEBRD_64 parameter number  1 had an illegal value
LAPACK_64.lin::ctest_64.out (COMPLEX Linear Equation routines)

Flake rate in main: 33.87% (Passed 82 times, Failed 42 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to CGETRF_64 parameter number  1 had an illegal value
LAPACK_64.lin::dtest_64.out (DOUBLE PRECISION Linear Equation routines)

Flake rate in main: 37.93% (Passed 36 times, Failed 22 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to DGETRF_64 parameter number  1 had an illegal value
LAPACK_64.lin::stest_64.out (REAL Linear Equation routines)

Flake rate in main: 37.93% (Passed 36 times, Failed 22 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to SGETRF_64 parameter number  1 had an illegal value
LAPACK_64.lin::ztest_64.out (COMPLEX16 Linear Equation routines)

Flake rate in main: 39.29% (Passed 68 times, Failed 44 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to ZGETRF_64 parameter number  1 had an illegal value
LAPACK_64.mixed::dstest_64.out (DOUBLE PRECISION Mixed Precision linear equation routines)

Flake rate in main: 37.93% (Passed 36 times, Failed 22 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to DSGESV_64 parameter number  1 had an illegal value
LAPACK_64.mixed::zctest_64.out (COMPLEX16 Mixed Precision linear equation routines)

Flake rate in main: 39.29% (Passed 68 times, Failed 44 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to ZCGESV_64 parameter number  1 had an illegal value
LAPACK_64.rfp::ctest_rfp_64.out (COMPLEX RFP linear equation routines)

Flake rate in main: 33.87% (Passed 82 times, Failed 42 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to CPFTRF_64 parameter number  1 had an illegal value
LAPACK_64.rfp::dtest_rfp_64.out (DOUBLE PRECISION RFP linear equation routines)

Flake rate in main: 37.93% (Passed 36 times, Failed 22 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to DPFTRF_64 parameter number  1 had an illegal value
LAPACK_64.rfp::stest_rfp_64.out (REAL RFP linear equation routines)

Flake rate in main: 24.51% (Passed 1488 times, Failed 483 times)

Stack Traces | 0.2s run time
1 numerical error(s), 13128 test(s) run
 STFSM_ auxiliary routine:     1 out of  7776 tests failed to pass the threshold
LAPACK_64.rfp::ztest_rfp_64.out (COMPLEX16 RFP linear equation routines)

Flake rate in main: 39.29% (Passed 68 times, Failed 44 times)

Stack Traces | 31.9s run time
1 other error(s) (illegal: 1, info: 0), 0 test(s) run
 ** On entry to ZPFTRF_64 parameter number  1 had an illegal value

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

…when the bidiagonal contains a NaN

xLALSD and xBDSDC scale the bidiagonal by its largest entry before the
divide and conquer phase, guarded only by ORGNRM.EQ.ZERO.  xLANST
propagates a NaN, and xLASCL rejects CFROM = NaN as an illegal argument,
so the call ends in XERBLA and the reference XERBLA stops the program.
A NaN anywhere in A reaches xGELSD's bidiagonal, and so does an
infinity, because the driver's scaling multiplies by zero and leaves
NaN where the infinity was.  xGESDD guards its own input against a NaN
(Reference-LAPACK#469) but an infinity still reaches xBDSDC the same way.  Every other
least-squares driver returns from such input (xGELSS with INFO > 0 from
xBDSQR, the rest with INFO = 0); xGELSD is the only one that kills the
process.

Test the norm with xISNAN at the scaling sites of xLALSD (including the
N = 1 branch) and xBDSDC and return INFO = 1, the value xLASDA already
uses when a singular value fails to converge, in all precisions.
Document the new return in xLALSD, xBDSDC and xGELSD.

xERRLS gets the case as a regression test: a 2 by 2 matrix with a NaN,
passed to xGELSD, which must return INFO = 1 without calling XERBLA.
The error-exit tests are where it belongs, since the driver returns no
solution for such a matrix and the point of the test is that it returns
at all; on the parent it reports the illegal xLASCL argument and returns
INFO = -4 with a NaN solution.

The added test changes nothing for finite input: over the finite cases
of the sweep the solutions are bit-identical to the parent commit.  Over
2296 (precision, m, n, NaN or infinity, position) xGELSD cases and 810
xBDSDC cases with a NaN, this branch returns from every call; xGELSD
returns INFO = 1 in every case, xBDSDC in every divide and conquer case,
and no call reaches XERBLA.  The full LAPACK test suite passes: 5441901
LAPACK and 315872 BLAS tests, 0 numerical errors, 0 other errors, the
same totals as the parent.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@rmlarsen
rmlarsen force-pushed the dc-nan-info-not-xerbla branch from 9e8fed1 to 24e080d Compare September 8, 2026 03:20
rmlarsen added a commit to rmlarsen/lapack that referenced this pull request Sep 8, 2026
…is a NaN

xLASQ1 scales the bidiagonal matrix by its largest entry SIGMX before
running dqds.  When D or E contains a NaN that survives the MAX
reductions computing SIGMX (with gfortran, a NaN in D(N)), SIGMX is a
NaN and xLASCL rejects it by stopping the process in XERBLA.  xBDSQR
without singular vectors and xGESVD with JOBU = JOBVT = 'N' take this
path; a NaN elsewhere in D returns INFO = 0 with NaN output.

Test SIGMX with xISNAN and return INFO = 1, the mechanism Reference-LAPACK#1382 uses
for xLALSD and xBDSDC.  xBDSQR treats every nonzero INFO from xLASQ1
as a request to finish with the QR algorithm, so it then reports the
non-convergence on the NaN data through its own INFO like it does for
other non-finite input.  Finite input never takes the new branch.

xERRBD gets the case as a regression test: a 4 by 4 bidiagonal with a
NaN in D(N), passed to xBDSQR without singular vectors, which must
return without calling XERBLA.  The error-exit tests are where it
belongs, since the routine returns no meaningful output for such a
matrix and the point of the test is that it returns at all.  All four
xERRBD files carry it, because the complex xBDSQR takes the same path
through the real xLASQ1.

Over 120 NaN/Inf cases of DBDSQR without vectors and DGESVD the parent
stops in XERBLA 3 times and this branch never; every other case
returns the same INFO on both.  The full LAPACK test suite passes:
5441901 LAPACK tests, 0 numerical errors, 0 other errors, the same
totals as the parent.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@rmlarsen

rmlarsen commented Sep 10, 2026

Copy link
Copy Markdown
Contributor Author

Verified on an Apple M4 (macOS, Homebrew gfortran 16.2, Release build with the CI flags). With this branch merged onto current master, the full test suite passes, the new tests fail without the fix, and the reproducer behaves as described above.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant