      SUBROUTINE DSVPRD(A,N,X,Y)
      DOUBLE PRECISION A(1),X(N),Y(N)
      DOUBLE PRECISION XK,YK
      Y(1) = A(1)*X(1)
      IF (N .EQ. 1) RETURN
C
      L = 1
      DO 20 K = 2,N
      KM1 = K - 1
      XK = X(K)
      YK = 0.D0
C
      DO 10 I = 1,KM1
      L = L + 1
      Y(I) = Y(I) + A(L)*XK
   10 YK = YK + A(L)*X(I)
C
      L = L + 1
   20 Y(K) = YK + A(L)*XK
      RETURN
      END
