91 DOUBLE PRECISION FUNCTION drzt02( M, N, AF, LDA, TAU, WORK,
100 INTEGER lda, lwork, m, n
103 DOUBLE PRECISION af( lda, * ), tau( * ), work( lwork )
109 DOUBLE PRECISION zero, one
110 parameter( zero = 0.0d+0, one = 1.0d+0 )
116 DOUBLE PRECISION rwork( 1 )
132 IF( lwork.LT.n*n+n )
THEN
133 CALL
xerbla(
'DRZT02', 7 )
139 IF( m.LE.0 .OR. n.LE.0 )
144 CALL
dlaset(
'Full', n, n, zero, one, work, n )
148 CALL
dormrz(
'Left',
'No transpose', n, n, m, n-m, af, lda, tau,
149 $ work, n, work( n*n+1 ), lwork-n*n, info )
153 CALL
dormrz(
'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 $ (
dlamch(
'Epsilon' )*dble( max( m, n ) ) )
subroutine xerbla(SRNAME, INFO)
XERBLA
DOUBLE PRECISION function dlange(NORM, M, N, A, LDA, WORK)
DLANGE returns the value of the 1-norm, Frobenius norm, infinity-norm, or the largest absolute value ...
subroutine dormrz(SIDE, TRANS, M, N, K, L, A, LDA, TAU, C, LDC, WORK, LWORK, INFO)
DORMRZ
DOUBLE PRECISION function drzt02(M, N, AF, LDA, TAU, WORK, LWORK)
DRZT02
DOUBLE PRECISION function dlamch(CMACH)
DLAMCH
subroutine dlaset(UPLO, M, N, ALPHA, BETA, A, LDA)
DLASET initializes the off-diagonal elements and the diagonal elements of a matrix to given values...