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 )
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
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...
real function slange(NORM, M, N, A, LDA, WORK)
SLANGE returns the value of the 1-norm, Frobenius norm, infinity-norm, or the largest absolute value ...
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine sormrz(SIDE, TRANS, M, N, K, L, A, LDA, TAU, C, LDC, WORK, LWORK, INFO)
SORMRZ
real function slamch(CMACH)
SLAMCH
real function srzt02(M, N, AF, LDA, TAU, WORK, LWORK)
SRZT02