Annotation of rpl/lapack/blas/zswap.f, revision 1.7
1.1 bertrand 1: SUBROUTINE ZSWAP(N,ZX,INCX,ZY,INCY)
2: * .. Scalar Arguments ..
3: INTEGER INCX,INCY,N
4: * ..
5: * .. Array Arguments ..
6: DOUBLE COMPLEX ZX(*),ZY(*)
7: * ..
8: *
9: * Purpose
10: * =======
11: *
12: * ZSWAP interchanges two vectors.
13: *
14: * Further Details
15: * ===============
16: *
17: * jack dongarra, 3/11/78.
18: * modified 12/3/93, array(1) declarations changed to array(*)
19: *
20: * =====================================================================
21: *
22: * .. Local Scalars ..
23: DOUBLE COMPLEX ZTEMP
24: INTEGER I,IX,IY
25: * ..
26: IF (N.LE.0) RETURN
1.7 ! bertrand 27: IF (INCX.EQ.1 .AND. INCY.EQ.1) THEN
! 28: *
! 29: * code for both increments equal to 1
! 30: DO I = 1,N
! 31: ZTEMP = ZX(I)
! 32: ZX(I) = ZY(I)
! 33: ZY(I) = ZTEMP
! 34: END DO
! 35: ELSE
1.1 bertrand 36: *
37: * code for unequal increments or equal increments not equal
38: * to 1
39: *
1.7 ! bertrand 40: IX = 1
! 41: IY = 1
! 42: IF (INCX.LT.0) IX = (-N+1)*INCX + 1
! 43: IF (INCY.LT.0) IY = (-N+1)*INCY + 1
! 44: DO I = 1,N
! 45: ZTEMP = ZX(IX)
! 46: ZX(IX) = ZY(IY)
! 47: ZY(IY) = ZTEMP
! 48: IX = IX + INCX
! 49: IY = IY + INCY
! 50: END DO
! 51: END IF
1.1 bertrand 52: RETURN
53: END
CVSweb interface <joel.bertrand@systella.fr>