99 REAL FUNCTION cqrt11( M, K, A, LDA, TAU, WORK, LWORK )
107 INTEGER K, LDA, LWORK, M
110 COMPLEX A( lda, * ), TAU( * ), WORK( lwork )
117 parameter( zero = 0.0e0, one = 1.0e0 )
124 EXTERNAL clange, slamch
130 INTRINSIC cmplx, real
141 IF( lwork.LT.m*m+m )
THEN
142 CALL xerbla(
'CQRT11', 7 )
151 CALL claset(
'Full', m, m, cmplx( zero ), cmplx( one ), work, m )
155 CALL cunm2r(
'Left',
'No transpose', m, m, k, a, lda, tau, work,
156 $ m, work( m*m+1 ), info )
160 CALL cunm2r(
'Left',
'Conjugate transpose', m, m, k, a, lda, tau,
161 $ work, m, work( m*m+1 ), info )
164 work( ( j-1 )*m+j ) = work( ( j-1 )*m+j ) - one
167 cqrt11 = clange(
'One-norm', m, m, work, m, rdummy ) /
168 $ (
REAL( m )*SLAMCH(
'Epsilon' ) )
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...
real function cqrt11(M, K, A, LDA, TAU, WORK, LWORK)
CQRT11
subroutine xerbla(SRNAME, INFO)
XERBLA
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...