1 SUBROUTINE dsymv ( UPLO, N, ALPHA, A, LDA, X, INCX,
4 DOUBLE PRECISION ALPHA, BETA
5 INTEGER INCX, INCY, LDA, N
8 DOUBLE PRECISION A( LDA, * ), X( * ), Y( * )
101 DOUBLE PRECISION ONE , ZERO
102 parameter( one = 1.0d+0, zero = 0.0d+0 )
104 DOUBLE PRECISION TEMP1, TEMP2
105 INTEGER I, INFO, IX, IY, J, JX, JY, KX, KY
119 IF ( .NOT.lsame( uplo,
'U' ).AND.
120 $ .NOT.lsame( uplo,
'L' ) )
THEN
122 ELSE IF( n.LT.0 )
THEN
124 ELSE IF( lda.LT.max( 1, n ) )
THEN
126 ELSE IF( incx.EQ.0 )
THEN
128 ELSE IF( incy.EQ.0 )
THEN
132 CALL xerbla(
'DSYMV ', info )
138 IF( ( n.EQ.0 ).OR.( ( alpha.EQ.zero ).AND.( beta.EQ.one ) ) )
146 kx = 1 - ( n - 1 )*incx
151 ky = 1 - ( n - 1 )*incy
160 IF( beta.NE.one )
THEN
162 IF( beta.EQ.zero )
THEN
173 IF( beta.EQ.zero )
THEN
180 y( iy ) = beta*y( iy )
188 IF( lsame( uplo,
'U' ) )
THEN
192 IF( ( incx.EQ.1 ).AND.( incy.EQ.1 ) )
THEN
197 y( i ) = y( i ) + temp1*a( i, j )
198 temp2 = temp2 + a( i, j )*x( i )
200 y( j ) = y( j ) + temp1*a( j, j ) + alpha*temp2
206 temp1 = alpha*x( jx )
211 y( iy ) = y( iy ) + temp1*a( i, j )
212 temp2 = temp2 + a( i, j )*x( ix )
216 y( jy ) = y( jy ) + temp1*a( j, j ) + alpha*temp2
225 IF( ( incx.EQ.1 ).AND.( incy.EQ.1 ) )
THEN
229 y( j ) = y( j ) + temp1*a( j, j )
231 y( i ) = y( i ) + temp1*a( i, j )
232 temp2 = temp2 + a( i, j )*x( i )
234 y( j ) = y( j ) + alpha*temp2
240 temp1 = alpha*x( jx )
242 y( jy ) = y( jy ) + temp1*a( j, j )
248 y( iy ) = y( iy ) + temp1*a( i, j )
249 temp2 = temp2 + a( i, j )*x( ix )
251 y( jy ) = y( jy ) + alpha*temp2
subroutine dsymv(UPLO, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
subroutine xerbla(SRNAME, INFO)