156 SUBROUTINE zsymv( UPLO, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY )
164 INTEGER INCX, INCY, LDA, N
165 COMPLEX*16 ALPHA, BETA
168 COMPLEX*16 A( LDA, * ), X( * ), Y( * )
175 parameter( one = ( 1.0d+0, 0.0d+0 ) )
177 parameter( zero = ( 0.0d+0, 0.0d+0 ) )
180 INTEGER I, INFO, IX, IY, J, JX, JY, KX, KY
181 COMPLEX*16 TEMP1, TEMP2
198 IF( .NOT.lsame( uplo,
'U' ) .AND. .NOT.lsame( uplo,
'L' ) )
THEN
200 ELSE IF( n.LT.0 )
THEN
202 ELSE IF( lda.LT.max( 1, n ) )
THEN
204 ELSE IF( incx.EQ.0 )
THEN
206 ELSE IF( incy.EQ.0 )
THEN
210 CALL xerbla(
'ZSYMV ', info )
216 IF( ( n.EQ.0 ) .OR. ( ( alpha.EQ.zero ) .AND. ( beta.EQ.one ) ) )
224 kx = 1 - ( n-1 )*incx
229 ky = 1 - ( n-1 )*incy
238 IF( beta.NE.one )
THEN
240 IF( beta.EQ.zero )
THEN
251 IF( beta.EQ.zero )
THEN
258 y( iy ) = beta*y( iy )
266 IF( lsame( uplo,
'U' ) )
THEN
270 IF( ( incx.EQ.1 ) .AND. ( incy.EQ.1 ) )
THEN
275 y( i ) = y( i ) + temp1*a( i, j )
276 temp2 = temp2 + a( i, j )*x( i )
278 y( j ) = y( j ) + temp1*a( j, j ) + alpha*temp2
284 temp1 = alpha*x( jx )
289 y( iy ) = y( iy ) + temp1*a( i, j )
290 temp2 = temp2 + a( i, j )*x( ix )
294 y( jy ) = y( jy ) + temp1*a( j, j ) + alpha*temp2
303 IF( ( incx.EQ.1 ) .AND. ( incy.EQ.1 ) )
THEN
307 y( j ) = y( j ) + temp1*a( j, j )
309 y( i ) = y( i ) + temp1*a( i, j )
310 temp2 = temp2 + a( i, j )*x( i )
312 y( j ) = y( j ) + alpha*temp2
318 temp1 = alpha*x( jx )
320 y( jy ) = y( jy ) + temp1*a( j, j )
326 y( iy ) = y( iy ) + temp1*a( i, j )
327 temp2 = temp2 + a( i, j )*x( ix )
329 y( jy ) = y( jy ) + alpha*temp2
subroutine xerbla(srname, info)
subroutine zsymv(uplo, n, alpha, a, lda, x, incx, beta, y, incy)
ZSYMV computes a matrix-vector product for a complex symmetric matrix.