1 SUBROUTINE DAXPY(N,DA,DX,INCX,DY,INCY)
2 * .. Scalar Arguments ..
6 * .. Array Arguments ..
7 DOUBLE PRECISION DX(*),DY(*)
13 * DAXPY constant times a vector plus a vector.
14 * uses unrolled loops for increments equal to one.
19 * jack dongarra, linpack, 3/11/78.
20 * modified 12/3/93, array(1) declarations changed to array(*)
22 * =====================================================================
27 * .. Intrinsic Functions ..
31 IF (DA.EQ.0.0d0) RETURN
32 IF (INCX.EQ.1 .AND. INCY.EQ.1) THEN
34 * code for both increments equal to 1
42 DY(I) = DY(I) + DA*DX(I)
48 DY(I) = DY(I) + DA*DX(I)
49 DY(I+1) = DY(I+1) + DA*DX(I+1)
50 DY(I+2) = DY(I+2) + DA*DX(I+2)
51 DY(I+3) = DY(I+3) + DA*DX(I+3)
55 * code for unequal increments or equal increments
60 IF (INCX.LT.0) IX = (-N+1)*INCX + 1
61 IF (INCY.LT.0) IY = (-N+1)*INCY + 1
63 DY(IY) = DY(IY) + DA*DX(IX)