150 SUBROUTINE zspmv( UPLO, N, ALPHA, AP, X, INCX, BETA, Y, INCY )
158 INTEGER INCX, INCY, N
159 COMPLEX*16 ALPHA, BETA
162 COMPLEX*16 AP( * ), X( * ), Y( * )
169 parameter( one = ( 1.0d+0, 0.0d+0 ) )
171 parameter( zero = ( 0.0d+0, 0.0d+0 ) )
174 INTEGER I, INFO, IX, IY, J, JX, JY, K, KK, KX, KY
175 COMPLEX*16 TEMP1, TEMP2
189 IF( .NOT.lsame( uplo,
'U' ) .AND. .NOT.lsame( uplo,
'L' ) )
THEN
191 ELSE IF( n.LT.0 )
THEN
193 ELSE IF( incx.EQ.0 )
THEN
195 ELSE IF( incy.EQ.0 )
THEN
199 CALL xerbla(
'ZSPMV ', info )
205 IF( ( n.EQ.0 ) .OR. ( ( alpha.EQ.zero ) .AND. ( beta.EQ.one ) ) )
213 kx = 1 - ( n-1 )*incx
218 ky = 1 - ( n-1 )*incy
226 IF( beta.NE.one )
THEN
228 IF( beta.EQ.zero )
THEN
239 IF( beta.EQ.zero )
THEN
246 y( iy ) = beta*y( iy )
255 IF( lsame( uplo,
'U' ) )
THEN
259 IF( ( incx.EQ.1 ) .AND. ( incy.EQ.1 ) )
THEN
265 y( i ) = y( i ) + temp1*ap( k )
266 temp2 = temp2 + ap( k )*x( i )
269 y( j ) = y( j ) + temp1*ap( kk+j-1 ) + alpha*temp2
276 temp1 = alpha*x( jx )
280 DO 70 k = kk, kk + j - 2
281 y( iy ) = y( iy ) + temp1*ap( k )
282 temp2 = temp2 + ap( k )*x( ix )
286 y( jy ) = y( jy ) + temp1*ap( kk+j-1 ) + alpha*temp2
296 IF( ( incx.EQ.1 ) .AND. ( incy.EQ.1 ) )
THEN
300 y( j ) = y( j ) + temp1*ap( kk )
303 y( i ) = y( i ) + temp1*ap( k )
304 temp2 = temp2 + ap( k )*x( i )
307 y( j ) = y( j ) + alpha*temp2
314 temp1 = alpha*x( jx )
316 y( jy ) = y( jy ) + temp1*ap( kk )
319 DO 110 k = kk + 1, kk + n - j
322 y( iy ) = y( iy ) + temp1*ap( k )
323 temp2 = temp2 + ap( k )*x( ix )
325 y( jy ) = y( jy ) + alpha*temp2
subroutine xerbla(srname, info)
subroutine zspmv(uplo, n, alpha, ap, x, incx, beta, y, incy)
ZSPMV computes a matrix-vector product for complex vectors using a complex symmetric packed matrix