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