91 DOUBLE PRECISION FUNCTION zrzt02( M, N, AF, LDA, TAU, WORK,
100 INTEGER lda, lwork, m, n
103 COMPLEX*16 af( lda, * ), tau( * ), work( lwork )
109 DOUBLE PRECISION zero, one
110 parameter( zero = 0.0d0, one = 1.0d0 )
116 DOUBLE PRECISION rwork( 1 )
126 INTRINSIC dble, dcmplx, max
132 IF( lwork.LT.n*n+n )
THEN
133 CALL
xerbla(
'ZRZT02', 7 )
139 IF( m.LE.0 .OR. n.LE.0 )
144 CALL
zlaset(
'Full', n, n, dcmplx( zero ), dcmplx( one ), work,
149 CALL
zunmrz(
'Left',
'No transpose', n, n, m, n-m, af, lda, tau,
150 $ work, n, work( n*n+1 ), lwork-n*n, info )
154 CALL
zunmrz(
'Left',
'Conjugate transpose', n, n, m, n-m, af, lda,
155 $ tau, work, n, work( n*n+1 ), lwork-n*n, info )
160 work( ( i-1 )*n+i ) = work( ( i-1 )*n+i ) - one
164 $ (
dlamch(
'Epsilon' )*dble( max( m, n ) ) )
subroutine zunmrz(SIDE, TRANS, M, N, K, L, A, LDA, TAU, C, LDC, WORK, LWORK, INFO)
ZUNMRZ
DOUBLE PRECISION function zlange(NORM, M, N, A, LDA, WORK)
ZLANGE returns the value of the 1-norm, Frobenius norm, infinity-norm, or the largest absolute value ...
DOUBLE PRECISION function zrzt02(M, N, AF, LDA, TAU, WORK, LWORK)
ZRZT02
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine zlaset(UPLO, M, N, ALPHA, BETA, A, LDA)
ZLASET initializes the off-diagonal elements and the diagonal elements of a matrix to given values...
DOUBLE PRECISION function dlamch(CMACH)
DLAMCH