1 SUBROUTINE zhescal( UPLO, M, N, IOFFD, ALPHA, A, LDA )
10 INTEGER IOFFD, LDA, M, N
11 DOUBLE PRECISION ALPHA
14 COMPLEX*16 A( LDA, * )
108 DOUBLE PRECISION RONE, RZERO
109 parameter( rone = 1.0d+0, rzero = 0.0d+0 )
111 parameter( zero = ( 0.0d+0, 0.0d+0 ) )
124 INTRINSIC dble, dcmplx,
max,
min
130 IF( m.LE.0 .OR. n.LE.0 )
135 IF( alpha.EQ.rone )
THEN
139 IF( lsame( uplo,
'L' ).OR.lsame( uplo,
'U' ).OR.
140 $ lsame( uplo,
'D' ) )
THEN
141 DO 10 j =
max( 0, -ioffd ) + 1,
min( m - ioffd, n )
143 a( jtmp, j ) = dcmplx( dble( a( jtmp, j ) ), rzero )
147 ELSE IF( alpha.EQ.rzero )
THEN
148 CALL ztzpad( uplo, 'n
', M, N, IOFFD, ZERO, ZERO, A, LDA )
152 IF( LSAME( UPLO, 'l
' ) ) THEN
156 MN = MAX( 0, -IOFFD )
157 DO 20 J = 1, MIN( MN, N )
158 CALL ZDSCAL( M, ALPHA, A( 1, J ), 1 )
160 DO 30 J = MN + 1, MIN( M - IOFFD, N )
162 A( JTMP, J ) = DCMPLX( ALPHA * DBLE( A( JTMP, J ) ), RZERO )
164 $ CALL ZDSCAL( M-JTMP, ALPHA, A( JTMP + 1, J ), 1 )
167 ELSE IF( LSAME( UPLO, 'u
' ) ) THEN
171 MN = MIN( M - IOFFD, N )
172 DO 40 J = MAX( 0, -IOFFD ) + 1, MN
174 CALL ZDSCAL( JTMP - 1, ALPHA, A( 1, J ), 1 )
175 A( JTMP, J ) = DCMPLX( ALPHA * DBLE( A( JTMP, J ) ), RZERO )
177 DO 50 J = MAX( 0, MN ) + 1, N
178 CALL ZDSCAL( M, ALPHA, A( 1, J ), 1 )
181 ELSE IF( LSAME( UPLO, 'd
' ) ) THEN
185 DO 60 J = MAX( 0, -IOFFD ) + 1, MIN( M - IOFFD, N )
187 A( JTMP, J ) = DCMPLX( ALPHA * DBLE( A( JTMP, J ) ), RZERO )
195 CALL ZDSCAL( M, ALPHA, A( 1, J ), 1 )
subroutine zdscal(n, da, zx, incx)
ZDSCAL
subroutine zhescal(uplo, m, n, ioffd, alpha, a, lda)
subroutine ztzpad(uplo, herm, m, n, ioffd, alpha, beta, a, lda)