91 REAL FUNCTION srzt02( M, N, AF, LDA, TAU, WORK,
100 INTEGER LDA, LWORK, M, N
103 REAL AF( lda, * ), TAU( * ), WORK( lwork )
110 parameter( zero = 0.0e+0, one = 1.0e+0 )
120 EXTERNAL slamch, slange
132 IF( lwork.LT.n*n+n )
THEN
133 CALL xerbla(
'SRZT02', 7 )
139 IF( m.LE.0 .OR. n.LE.0 )
144 CALL slaset(
'Full', n, n, zero, one, work, n )
148 CALL sormrz(
'Left',
'No transpose', n, n, m, n-m, af, lda, tau,
149 $ work, n, work( n*n+1 ), lwork-n*n, info )
153 CALL sormrz(
'Left',
'Transpose', n, n, m, n-m, af, lda, tau,
154 $ work, n, work( n*n+1 ), lwork-n*n, info )
159 work( ( i-1 )*n+i ) = work( ( i-1 )*n+i ) - one
162 srzt02 = slange(
'One-norm', n, n, work, n, rwork ) /
163 $ ( slamch(
'Epsilon' )*
REAL( MAX( M, N ) ) )
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 sormrz(SIDE, TRANS, M, N, K, L, A, LDA, TAU, C, LDC, WORK, LWORK, INFO)
SORMRZ
real function srzt02(M, N, AF, LDA, TAU, WORK, LWORK)
SRZT02