98 REAL FUNCTION srzt01( M, N, A, AF, LDA, TAU, WORK,
107 INTEGER LDA, LWORK, M, N
110 REAL A( lda, * ), AF( lda, * ), TAU( * ),
118 parameter ( zero = 0.0e+0, one = 1.0e+0 )
129 EXTERNAL slamch, slange
141 IF( lwork.LT.m*n+m )
THEN
142 CALL xerbla(
'SRZT01', 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 )
164 CALL sormrz(
'Right',
'No tranpose', m, n, m, n-m, af, lda, tau,
165 $ work, m, work( m*n+1 ), lwork-m*n, info )
170 CALL saxpy( m, -one, a( 1, i ), 1, work( ( i-1 )*m+1 ), 1 )
173 srzt01 = slange(
'One-norm', m, n, work, m, rwork )
175 srzt01 =
srzt01 / ( slamch(
'Epsilon' )*
REAL( MAX( M, N ) ) )
subroutine xerbla(SRNAME, INFO)
XERBLA
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 sormrz(SIDE, TRANS, M, N, K, L, A, LDA, TAU, C, LDC, WORK, LWORK, INFO)
SORMRZ
subroutine saxpy(N, SA, SX, INCX, SY, INCY)
SAXPY
real function srzt01(M, N, A, AF, LDA, TAU, WORK, LWORK)
SRZT01