146 SUBROUTINE ssgt01( ITYPE, UPLO, N, M, A, LDA, B, LDB, Z, LDZ, D,
156 INTEGER ITYPE, LDA, LDB, LDZ, M, N
159 REAL A( lda, * ), B( ldb, * ), D( * ), RESULT( * ),
160 $ work( * ), z( ldz, * )
167 parameter ( zero = 0.0e0, one = 1.0e0 )
174 REAL SLAMCH, SLANGE, SLANSY
175 EXTERNAL slamch, slange, slansy
186 ulp = slamch(
'Epsilon' )
190 anorm = slansy(
'1', uplo, n, a, lda, work )*
191 $ slange(
'1', n, m, z, ldz, work )
195 IF( itype.EQ.1 )
THEN
199 CALL ssymm(
'Left', uplo, n, m, one, a, lda, z, ldz, zero,
202 CALL sscal( n, d( i ), z( 1, i ), 1 )
204 CALL ssymm(
'Left', uplo, n, m, one, b, ldb, z, ldz, -one,
207 result( 1 ) = ( slange(
'1', n, m, work, n, work ) / anorm ) /
210 ELSE IF( itype.EQ.2 )
THEN
214 CALL ssymm(
'Left', uplo, n, m, one, b, ldb, z, ldz, zero,
217 CALL sscal( n, d( i ), z( 1, i ), 1 )
219 CALL ssymm(
'Left', uplo, n, m, one, a, lda, work, n, -one, z,
222 result( 1 ) = ( slange(
'1', n, m, z, ldz, work ) / anorm ) /
225 ELSE IF( itype.EQ.3 )
THEN
229 CALL ssymm(
'Left', uplo, n, m, one, a, lda, z, ldz, zero,
232 CALL sscal( n, d( i ), z( 1, i ), 1 )
234 CALL ssymm(
'Left', uplo, n, m, one, b, ldb, work, n, -one, z,
237 result( 1 ) = ( slange(
'1', n, m, z, ldz, work ) / anorm ) /
subroutine ssgt01(ITYPE, UPLO, N, M, A, LDA, B, LDB, Z, LDZ, D, WORK, RESULT)
SSGT01
subroutine sscal(N, SA, SX, INCX)
SSCAL
subroutine ssymm(SIDE, UPLO, M, N, ALPHA, A, LDA, B, LDB, BETA, C, LDC)
SSYMM