1 #include "f2c.h"
2 /*#include "blaswrap.h"*/
3
zswap_(integer * n,doublecomplex * zx,integer * incx,doublecomplex * zy,integer * incy)4 /* Subroutine */ int zswap_(integer *n, doublecomplex *zx, integer *incx,
5 doublecomplex *zy, integer *incy)
6 {
7 /* System generated locals */
8 integer i__1, i__2, i__3;
9
10 /* Local variables */
11 integer i__, ix, iy;
12 doublecomplex ztemp;
13
14 /* .. Scalar Arguments .. */
15 /* .. */
16 /* .. Array Arguments .. */
17 /* .. */
18
19 /* Purpose */
20 /* ======= */
21
22 /* interchanges two vectors. */
23 /* jack dongarra, 3/11/78. */
24 /* modified 12/3/93, array(1) declarations changed to array(*) */
25
26
27 /* .. Local Scalars .. */
28 /* .. */
29 /* Parameter adjustments */
30 --zy;
31 --zx;
32
33 /* Function Body */
34 if (*n <= 0) {
35 return 0;
36 }
37 if (*incx == 1 && *incy == 1) {
38 goto L20;
39 }
40
41 /* code for unequal increments or equal increments not equal */
42 /* to 1 */
43
44 ix = 1;
45 iy = 1;
46 if (*incx < 0) {
47 ix = (-(*n) + 1) * *incx + 1;
48 }
49 if (*incy < 0) {
50 iy = (-(*n) + 1) * *incy + 1;
51 }
52 i__1 = *n;
53 for (i__ = 1; i__ <= i__1; ++i__) {
54 i__2 = ix;
55 ztemp.r = zx[i__2].r, ztemp.i = zx[i__2].i;
56 i__2 = ix;
57 i__3 = iy;
58 zx[i__2].r = zy[i__3].r, zx[i__2].i = zy[i__3].i;
59 i__2 = iy;
60 zy[i__2].r = ztemp.r, zy[i__2].i = ztemp.i;
61 ix += *incx;
62 iy += *incy;
63 /* L10: */
64 }
65 return 0;
66
67 /* code for both increments equal to 1 */
68 L20:
69 i__1 = *n;
70 for (i__ = 1; i__ <= i__1; ++i__) {
71 i__2 = i__;
72 ztemp.r = zx[i__2].r, ztemp.i = zx[i__2].i;
73 i__2 = i__;
74 i__3 = i__;
75 zx[i__2].r = zy[i__3].r, zx[i__2].i = zy[i__3].i;
76 i__2 = i__;
77 zy[i__2].r = ztemp.r, zy[i__2].i = ztemp.i;
78 /* L30: */
79 }
80 return 0;
81 } /* zswap_ */
82