96 DOUBLE PRECISION FUNCTION drzt01( M, N, A, AF, LDA, TAU, WORK,
104 INTEGER lda, lwork, m, n
107 DOUBLE PRECISION a( lda, * ), af( lda, * ), tau( * ),
114 DOUBLE PRECISION zero, one
115 parameter( zero = 0.0d+0, one = 1.0d+0 )
119 DOUBLE PRECISION norma
122 DOUBLE PRECISION rwork( 1 )
138 IF( lwork.LT.m*n+m )
THEN
139 CALL xerbla(
'DRZT01', 8 )
145 IF( m.LE.0 .OR. n.LE.0 )
148 norma =
dlange(
'One-norm', m, n, a, lda, rwork )
152 CALL dlaset(
'Full', m, n, zero, zero, work, m )
155 work( ( j-1 )*m+i ) = af( i, j )
161 CALL dormrz(
'Right',
'No transpose', m, n, m, n-m, af, lda, tau,
162 $ work, m, work( m*n+1 ), lwork-m*n, info )
167 CALL daxpy( m, -one, a( 1, i ), 1, work( ( i-1 )*m+1 ), 1 )
subroutine xerbla(srname, info)
double precision function drzt01(m, n, a, af, lda, tau, work, lwork)
DRZT01
subroutine daxpy(n, da, dx, incx, dy, incy)
DAXPY
double precision function dlamch(cmach)
DLAMCH
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 dlaset(uplo, m, n, alpha, beta, a, lda)
DLASET initializes the off-diagonal elements and the diagonal elements of a matrix to given values.
subroutine dormrz(side, trans, m, n, k, l, a, lda, tau, c, ldc, work, lwork, info)
DORMRZ