89 REAL function
srzt02( m, n, af, lda, tau, work,
97 INTEGER lda, lwork, m, n
100 REAL af( lda, * ), tau( * ), work( lwork )
107 parameter( zero = 0.0e+0, one = 1.0e+0 )
129 IF( lwork.LT.n*n+n )
THEN
130 CALL xerbla(
'SRZT02', 7 )
136 IF( m.LE.0 .OR. n.LE.0 )
141 CALL slaset(
'Full', n, n, zero, one, work, n )
145 CALL sormrz(
'Left',
'No transpose', n, n, m, n-m, af, lda, tau,
146 $ work, n, work( n*n+1 ), lwork-n*n, info )
150 CALL sormrz(
'Left',
'Transpose', n, n, m, n-m, af, lda, tau,
151 $ work, n, work( n*n+1 ), lwork-n*n, info )
156 work( ( i-1 )*n+i ) = work( ( i-1 )*n+i ) - one
160 $ (
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
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 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
real function slamch(CMACH)
SLAMCH