Go to the documentation of this file.00001 SUBROUTINE ZSWAP(N,ZX,INCX,ZY,INCY)
00002
00003 INTEGER INCX,INCY,N
00004
00005
00006 DOUBLE COMPLEX ZX(*),ZY(*)
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 DOUBLE COMPLEX ZTEMP
00024 INTEGER I,IX,IY
00025
00026 IF (N.LE.0) RETURN
00027 IF (INCX.EQ.1 .AND. INCY.EQ.1) GO TO 20
00028
00029
00030
00031
00032 IX = 1
00033 IY = 1
00034 IF (INCX.LT.0) IX = (-N+1)*INCX + 1
00035 IF (INCY.LT.0) IY = (-N+1)*INCY + 1
00036 DO 10 I = 1,N
00037 ZTEMP = ZX(IX)
00038 ZX(IX) = ZY(IY)
00039 ZY(IY) = ZTEMP
00040 IX = IX + INCX
00041 IY = IY + INCY
00042 10 CONTINUE
00043 RETURN
00044
00045
00046 20 DO 30 I = 1,N
00047 ZTEMP = ZX(I)
00048 ZX(I) = ZY(I)
00049 ZY(I) = ZTEMP
00050 30 CONTINUE
00051 RETURN
00052 END