98 REAL FUNCTION stzt01( M, N, A, AF, LDA, TAU, WORK,
107 INTEGER LDA, LWORK, M, N
110 REAL A( lda, * ), AF( lda, * ), TAU( * ),
118 parameter( zero = 0.0e0, one = 1.0e0 )
129 EXTERNAL slamch, slange
141 IF( lwork.LT.m*n+m )
THEN
142 CALL
xerbla(
'STZT01', 8 )
148 IF( m.LE.0 .OR. n.LE.0 )
151 norma = slange(
'One-norm', m, n, a, lda, rwork )
155 CALL
slaset(
'Full', m, n, zero, zero, work, m )
158 work( ( j-1 )*m+i ) = af( i, j )
165 CALL
slatzm(
'Right', i, n-m+1, af( i, m+1 ), lda, tau( i ),
166 $ work( ( i-1 )*m+1 ), work( m*m+1 ), m,
173 CALL
saxpy( m, -one, a( 1, i ), 1, work( ( i-1 )*m+1 ), 1 )
176 stzt01 = slange(
'One-norm', m, n, work, m, rwork )
178 stzt01 = stzt01 / ( slamch(
'Epsilon' )*
REAL( MAX( M, N ) ) )
180 $ stzt01 = stzt01 / norma
subroutine slaset(UPLO, M, N, ALPHA, BETA, A, LDA)
SLASET initializes the off-diagonal elements and the diagonal elements of a matrix to given values...
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine saxpy(N, SA, SX, INCX, SY, INCY)
SAXPY
subroutine slatzm(SIDE, M, N, V, INCV, TAU, C1, C2, LDC, WORK)
SLATZM