97 REAL function
cqrt11( m, k, a, lda, tau, work, lwork )
104 INTEGER k, lda, lwork, m
107 COMPLEX a( lda, * ), tau( * ), work( lwork )
114 parameter( zero = 0.0e0, one = 1.0e0 )
127 INTRINSIC cmplx, real
138 IF( lwork.LT.m*m+m )
THEN
139 CALL xerbla(
'CQRT11', 7 )
148 CALL claset(
'Full', m, m, cmplx( zero ), cmplx( one ), work, m )
152 CALL cunm2r(
'Left',
'No transpose', m, m, k, a, lda, tau, work,
153 $ m, work( m*m+1 ), info )
157 CALL cunm2r(
'Left',
'Conjugate transpose', m, m, k, a, lda, tau,
158 $ work, m, work( m*m+1 ), info )
161 work( ( j-1 )*m+j ) = work( ( j-1 )*m+j ) - one
165 $ ( real( m )*
slamch(
'Epsilon' ) )
subroutine xerbla(srname, info)
real function cqrt11(m, k, a, lda, tau, work, lwork)
CQRT11
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 cunm2r(side, trans, m, n, k, a, lda, tau, c, ldc, work, info)
CUNM2R multiplies a general matrix by the unitary matrix from a QR factorization determined by cgeqrf...