Bug: In ?ROT call LDX11 is passed as the leading dimension of X21.
Fix: use LDX21 as the INCY argument, matching how X21 is addressed
everywhere else in the same loop body.
Replace direct UPLO character comparisons in the LALSD routines with LSAME. This keeps option handling consistent with the surrounding LAPACK convention for case-insensitive checks.
Replace direct case-sensitive TRANS character comparisons in the GTTRS routines with LSAME. This keeps option handling consistent with the surrounding LAPACK convention for case-insensitive checks.
Replace direct case-sensitive UPLO character comparisons in CPTTRS and ZPTTRS with LSAME. This matches the surrounding LAPACK convention for case-insensitive option checks.
Replace hard-coded floating-point constants with named constants in selected TESTING/EIG error-exit tests. This keeps the test setup code consistent with surrounding LAPACK test style.
Replace REALONE/REALZERO and complex ZERO/ONE with
type-specific named constants in the CSD test routines:
ZERO/ONE for real scalars, and CZERO/CONE for complex values.
Update {C,Z}LASET, {C,Z}GEMM, and {C,Z}HERK call sites to use
the matching constant type, and replace literal imaginary zeros
in CMPLX/DCMPLX calls with the named real ZERO constant.
No functional change intended.
Replace hard-coded floating-point constants with existing named
constants in the drvrf3 and drvrfp test drivers. This keeps the test
initialization code consistent with surrounding LAPACK test style.
TESTING/csd.in declares that the number of values of M, P, and Q
is 10, but each of the three data lines actually contains 11
entries.
Update the count to 11 so the header matches the test input data.
This is a test-data consistency fix only.
Replace hard-coded 1./1.D0 literals with the named constant ONE
in several TESTING/EIG error-exit test routines.
Add missing ONE parameter declarations where needed so the test
setup code follows the surrounding named-constant style.
The DMD test drivers use the testing ILAENV from TESTING/EIG, where
ISPEC=9 returns IPARMS(9). The drivers never initialized that entry,
so the xGESDD/xBDSDC divide-and-conquer cutoff SMLSIZ came from
undefined state.
This undefined test state can lead to invalid xLASD0 calls and a large
number of false failures. In this patch we initialize XLAENV(9,25) in
the s/c/d/z DMD test drivers so the tests start from a defined ILAENV
configuration.
CUNMLQ's documentation says LWORK must be:
If SIDE = 'L', LWORK >= max(1,N);
if SIDE = 'R', LWORK >= max(1,M).
In the current implementation, however, when K=0 a workspace query
will return LWORK=1 in WORK(1). This means a subsequent call to CUNMLQ
with a workspace of that size will fail with INFO = -12.
The other ???MLQ routines return consistent values of LWORK when K=0
(that is, equal to or greater than NW) so this patch makes CUNMLQ's
behaviour match theirs.