89 REAL function
crzt02( m, n, af, lda, tau, work,
97 INTEGER lda, lwork, m, n
100 COMPLEX af( lda, * ), tau( * ), work( lwork )
107 parameter( zero = 0.0e0, one = 1.0e0 )
123 INTRINSIC cmplx, max, real
129 IF( lwork.LT.n*n+n )
THEN
130 CALL xerbla(
'CRZT02', 7 )
136 IF( m.LE.0 .OR. n.LE.0 )
141 CALL claset(
'Full', n, n, cmplx( zero ), cmplx( one ), work, n )
145 CALL cunmrz(
'Left',
'No transpose', n, n, m, n-m, af, lda, tau,
146 $ work, n, work( n*n+1 ), lwork-n*n, info )
150 CALL cunmrz(
'Left',
'Conjugate transpose', n, n, m, n-m, af, lda,
151 $ tau, 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 xerbla(srname, info)
real function crzt02(m, n, af, lda, tau, work, lwork)
CRZT02
real function slamch(cmach)
SLAMCH
real function clange(norm, m, n, a, lda, work)
CLANGE returns the value of the 1-norm, Frobenius norm, infinity-norm, or the largest absolute value ...
subroutine claset(uplo, m, n, alpha, beta, a, lda)
CLASET initializes the off-diagonal elements and the diagonal elements of a matrix to given values.
subroutine cunmrz(side, trans, m, n, k, l, a, lda, tau, c, ldc, work, lwork, info)
CUNMRZ