@@ -481,7 +481,7 @@ SUBROUTINE ZCHK1( SNAME, EPS, THRESH, NOUT, NTRA, TRACE, REWI,
481481 LOGICAL LZE, LZERES
482482 EXTERNAL LZE, LZERES
483483* .. External Subroutines ..
484- EXTERNAL ZGBMV, ZGEMV, ZMAKE, ZMVCH
484+ EXTERNAL ZGBMV, ZGEMV, ZMAKE, ZMVCH, ZREGR1
485485* .. Intrinsic Functions ..
486486 INTRINSIC ABS, MAX, MIN
487487* .. Scalars in Common ..
@@ -736,6 +736,34 @@ SUBROUTINE ZCHK1( SNAME, EPS, THRESH, NOUT, NTRA, TRACE, REWI,
736736*
737737 120 CONTINUE
738738*
739+ * Regression test to verify preservation of y when m zero, n nonzero.
740+ *
741+ CALL ZREGR1( TRANS, M, N, LY, KL, KU, ALPHA, AA, LDA, XX, INCX,
742+ $ BETA, YY, INCY, YS )
743+ IF ( FULL )THEN
744+ IF ( TRACE )
745+ $ WRITE ( NTRA, FMT = 9994 )NC, SNAME, TRANS, M, N, ALPHA, LDA,
746+ $ INCX, BETA, INCY
747+ IF ( REWI )
748+ $ REWIND NTRA
749+ CALL ZGEMV( TRANS, M, N, ALPHA, AA, LDA, XX, INCX, BETA, YY,
750+ $ INCY )
751+ ELSE IF ( BANDED )THEN
752+ IF ( TRACE )
753+ $ WRITE ( NTRA, FMT = 9995 )NC, SNAME, TRANS, M, N, KL, KU,
754+ $ ALPHA, LDA, INCX, BETA, INCY
755+ IF ( REWI )
756+ $ REWIND NTRA
757+ CALL ZGBMV( TRANS, M, N, KL, KU, ALPHA, AA, LDA, XX, INCX,
758+ $ BETA, YY, INCY )
759+ END IF
760+ NC = NC + 1
761+ IF ( .NOT. LZE( YS, YY, LY ) )THEN
762+ WRITE ( NOUT, FMT = 9998 )NARGS - 1
763+ FATAL = .TRUE.
764+ GO TO 130
765+ END IF
766+ *
739767* Report result.
740768*
741769 IF ( ERRMAX.LT. THRESH )THEN
@@ -3227,6 +3255,39 @@ SUBROUTINE CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
32273255*
32283256* End of CHKXER
32293257*
3258+ END
3259+ SUBROUTINE ZREGR1 ( TRANS , M , N , LY , KL , KU , ALPHA , A , LDA , X ,
3260+ $ INCX , BETA , Y , INCY , YS )
3261+ *
3262+ * Input initialization for regression test.
3263+ *
3264+ * .. Scalar Arguments ..
3265+ CHARACTER * 1 TRANS
3266+ INTEGER LY, M, N, KL, KU, LDA, INCX, INCY
3267+ COMPLEX * 16 ALPHA, BETA
3268+ * .. Array Arguments ..
3269+ COMPLEX * 16 A(LDA,* ), X(* ), Y(* ), YS(* )
3270+ * .. Local Scalars ..
3271+ INTEGER I
3272+ * .. Intrinsic Functions ..
3273+ INTRINSIC DBLE, DCMPLX
3274+ * .. Executable Statements ..
3275+ TRANS = ' T'
3276+ M = 0
3277+ N = 5
3278+ KL = 0
3279+ KU = 0
3280+ ALPHA = DCMPLX( 1.0D0 )
3281+ LDA = MAX ( 1 , M )
3282+ INCX = 1
3283+ BETA = DCMPLX( - 0.7D0 , - 0.8D0 )
3284+ INCY = 1
3285+ LY = ABS ( INCY )* N
3286+ DO 10 I = 1 , LY
3287+ Y( I ) = DCMPLX( 42.0D0 , DBLE ( I ) )
3288+ YS( I ) = Y( I )
3289+ 10 CONTINUE
3290+ RETURN
32303291 END
32313292 SUBROUTINE XERBLA ( SRNAME , INFO )
32323293*
0 commit comments