122 SUBROUTINE csyt01_aa( UPLO, N, A, LDA, AFAC, LDAFAC, IPIV, C,
123 $ LDC, RWORK, RESID )
131 INTEGER LDA, LDAFAC, , N
136 COMPLEX A( LDA, * ), AFAC( LDAFAC, * ), C( LDC, * )
144 parameter( zero = 0.0d+0, one = 1.0d+0 )
146 parameter( czero = 0.0e+0, cone = 1.0e+0 )
155 EXTERNAL lsame, slamch, clansy
174 eps = slamch(
'Epsilon' )
175 anorm = clansy(
'1', uplo, n, a, lda, rwork )
179 CALL claset( 'full
', N, N, CZERO, CZERO, C, LDC )
180 CALL CLACPY( 'f
', 1, N, AFAC( 1, 1 ), LDAFAC+1, C( 1, 1 ), LDC+1 )
182 IF( LSAME( UPLO, 'u
' ) ) THEN
183 CALL CLACPY( 'f
', 1, N-1, AFAC( 1, 2 ), LDAFAC+1, C( 1, 2 ),
185 CALL CLACPY( 'f
', 1, N-1, AFAC( 1, 2 ), LDAFAC+1, C( 2, 1 ),
188 CALL CLACPY( 'f
', 1, N-1, AFAC( 2, 1 ), LDAFAC+1, C( 1, 2 ),
190 CALL CLACPY( 'f
', 1, N-1, AFAC( 2, 1 ), LDAFAC+1, C( 2, 1 ),
196 IF( LSAME( UPLO, 'u
' ) ) THEN
197 CALL CTRMM( 'left
', UPLO, 'transpose
', 'unit
', N-1, N,
198 $ CONE, AFAC( 1, 2 ), LDAFAC, C( 2, 1 ), LDC )
200 CALL CTRMM( 'left
', UPLO, 'no transpose
', 'unit
', N-1, N,
201 $ CONE, AFAC( 2, 1 ), LDAFAC, C( 2, 1 ), LDC )
206 IF( LSAME( UPLO, 'u
' ) ) THEN
207 CALL CTRMM( 'right
', UPLO, 'no transpose
', 'unit
', N, N-1,
208 $ CONE, AFAC( 1, 2 ), LDAFAC, C( 1, 2 ), LDC )
210 CALL CTRMM( 'right
', UPLO, 'transpose
', 'unit
', N, N-1,
211 $ CONE, AFAC( 2, 1 ), LDAFAC, C( 1, 2 ), LDC )
220 $ CALL CSWAP( N, C( J, 1 ), LDC, C( I, 1 ), LDC )
225 $ CALL CSWAP( N, C( 1, J ), 1, C( 1, I ), 1 )
231 IF( LSAME( UPLO, 'u
' ) ) THEN
234 C( I, J ) = C( I, J ) - A( I, J )
240 C( I, J ) = C( I, J ) - A( I, J )
247 RESID = CLANSY( '1
', UPLO, N, C, LDC, RWORK )
249.LE.
IF( ANORMZERO ) THEN
253 RESID = ( ( RESID / DBLE( N ) ) / ANORM ) / EPS
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 csyt01_aa(uplo, n, a, lda, afac, ldafac, ipiv, c, ldc, rwork, resid)
CSYT01
subroutine clavsy(uplo, trans, diag, n, nrhs, a, lda, ipiv, b, ldb, info)
CLAVSY