@@ -469,7 +469,7 @@ SUBROUTINE DCHK1( SNAME, EPS, THRESH, NOUT, NTRA, TRACE, REWI,
469
469
LOGICAL LDE, LDERES
470
470
EXTERNAL LDE, LDERES
471
471
* .. External Subroutines ..
472
- EXTERNAL DGBMV, DGEMV, DMAKE, DMVCH
472
+ EXTERNAL DGBMV, DGEMV, DMAKE, DMVCH, DREGR1
473
473
* .. Intrinsic Functions ..
474
474
INTRINSIC ABS, MAX, MIN
475
475
* .. Scalars in Common ..
@@ -724,6 +724,34 @@ SUBROUTINE DCHK1( SNAME, EPS, THRESH, NOUT, NTRA, TRACE, REWI,
724
724
*
725
725
120 CONTINUE
726
726
*
727
+ * Regression test to verify preservation of y when m zero, n nonzero.
728
+ *
729
+ CALL DREGR1( TRANS, M, N, LY, KL, KU, ALPHA, AA, LDA, XX, INCX,
730
+ $ BETA, YY, INCY, YS )
731
+ IF ( FULL )THEN
732
+ IF ( TRACE )
733
+ $ WRITE ( NTRA, FMT = 9994 )NC, SNAME, TRANS, M, N, ALPHA, LDA,
734
+ $ INCX, BETA, INCY
735
+ IF ( REWI )
736
+ $ REWIND NTRA
737
+ CALL DGEMV( TRANS, M, N, ALPHA, AA, LDA, XX, INCX, BETA, YY,
738
+ $ INCY )
739
+ ELSE IF ( BANDED )THEN
740
+ IF ( TRACE )
741
+ $ WRITE ( NTRA, FMT = 9995 )NC, SNAME, TRANS, M, N, KL, KU,
742
+ $ ALPHA, LDA, INCX, BETA, INCY
743
+ IF ( REWI )
744
+ $ REWIND NTRA
745
+ CALL DGBMV( TRANS, M, N, KL, KU, ALPHA, AA, LDA, XX, INCX,
746
+ $ BETA, YY, INCY )
747
+ END IF
748
+ NC = NC + 1
749
+ IF ( .NOT. LDE( YS, YY, LY ) )THEN
750
+ WRITE ( NOUT, FMT = 9998 )NARGS - 1
751
+ FATAL = .TRUE.
752
+ GO TO 130
753
+ END IF
754
+ *
727
755
* Report result.
728
756
*
729
757
IF ( ERRMAX.LT. THRESH )THEN
@@ -3116,6 +3144,39 @@ SUBROUTINE CHKXER( SRNAMT, INFOT, NOUT, LERR, OK )
3116
3144
*
3117
3145
* End of CHKXER
3118
3146
*
3147
+ END
3148
+ SUBROUTINE DREGR1 ( TRANS , M , N , LY , KL , KU , ALPHA , A , LDA , X ,
3149
+ $ INCX , BETA , Y , INCY , YS )
3150
+ *
3151
+ * Input initialization for regression test.
3152
+ *
3153
+ * .. Scalar Arguments ..
3154
+ CHARACTER * 1 TRANS
3155
+ INTEGER LY, M, N, KL, KU, LDA, INCX, INCY
3156
+ DOUBLE PRECISION ALPHA, BETA
3157
+ * .. Array Arguments ..
3158
+ DOUBLE PRECISION A(LDA,* ), X(* ), Y(* ), YS(* )
3159
+ * .. Local Scalars ..
3160
+ INTEGER I
3161
+ * .. Intrinsic Functions ..
3162
+ INTRINSIC DBLE
3163
+ * .. Executable Statements ..
3164
+ TRANS = ' T'
3165
+ M = 0
3166
+ N = 5
3167
+ KL = 0
3168
+ KU = 0
3169
+ ALPHA = 1.0D0
3170
+ LDA = MAX ( 1 , M )
3171
+ INCX = 1
3172
+ BETA = - 0.7D0
3173
+ INCY = 1
3174
+ LY = ABS ( INCY )* N
3175
+ DO 10 I = 1 , LY
3176
+ Y( I ) = 42.0D0 + DBLE ( I )
3177
+ YS( I ) = Y( I )
3178
+ 10 CONTINUE
3179
+ RETURN
3119
3180
END
3120
3181
SUBROUTINE XERBLA ( SRNAME , INFO )
3121
3182
*
0 commit comments