Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #include "f2c.h"
00014 #include "blaswrap.h"
00015
00016 int zdrot_(integer *n, doublecomplex *cx, integer *incx,
00017 doublecomplex *cy, integer *incy, doublereal *c__, doublereal *s)
00018 {
00019
00020 integer i__1, i__2, i__3, i__4;
00021 doublecomplex z__1, z__2, z__3;
00022
00023
00024 integer i__, ix, iy;
00025 doublecomplex ctemp;
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085 --cy;
00086 --cx;
00087
00088
00089 if (*n <= 0) {
00090 return 0;
00091 }
00092 if (*incx == 1 && *incy == 1) {
00093 goto L20;
00094 }
00095
00096
00097
00098
00099 ix = 1;
00100 iy = 1;
00101 if (*incx < 0) {
00102 ix = (-(*n) + 1) * *incx + 1;
00103 }
00104 if (*incy < 0) {
00105 iy = (-(*n) + 1) * *incy + 1;
00106 }
00107 i__1 = *n;
00108 for (i__ = 1; i__ <= i__1; ++i__) {
00109 i__2 = ix;
00110 z__2.r = *c__ * cx[i__2].r, z__2.i = *c__ * cx[i__2].i;
00111 i__3 = iy;
00112 z__3.r = *s * cy[i__3].r, z__3.i = *s * cy[i__3].i;
00113 z__1.r = z__2.r + z__3.r, z__1.i = z__2.i + z__3.i;
00114 ctemp.r = z__1.r, ctemp.i = z__1.i;
00115 i__2 = iy;
00116 i__3 = iy;
00117 z__2.r = *c__ * cy[i__3].r, z__2.i = *c__ * cy[i__3].i;
00118 i__4 = ix;
00119 z__3.r = *s * cx[i__4].r, z__3.i = *s * cx[i__4].i;
00120 z__1.r = z__2.r - z__3.r, z__1.i = z__2.i - z__3.i;
00121 cy[i__2].r = z__1.r, cy[i__2].i = z__1.i;
00122 i__2 = ix;
00123 cx[i__2].r = ctemp.r, cx[i__2].i = ctemp.i;
00124 ix += *incx;
00125 iy += *incy;
00126
00127 }
00128 return 0;
00129
00130
00131
00132 L20:
00133 i__1 = *n;
00134 for (i__ = 1; i__ <= i__1; ++i__) {
00135 i__2 = i__;
00136 z__2.r = *c__ * cx[i__2].r, z__2.i = *c__ * cx[i__2].i;
00137 i__3 = i__;
00138 z__3.r = *s * cy[i__3].r, z__3.i = *s * cy[i__3].i;
00139 z__1.r = z__2.r + z__3.r, z__1.i = z__2.i + z__3.i;
00140 ctemp.r = z__1.r, ctemp.i = z__1.i;
00141 i__2 = i__;
00142 i__3 = i__;
00143 z__2.r = *c__ * cy[i__3].r, z__2.i = *c__ * cy[i__3].i;
00144 i__4 = i__;
00145 z__3.r = *s * cx[i__4].r, z__3.i = *s * cx[i__4].i;
00146 z__1.r = z__2.r - z__3.r, z__1.i = z__2.i - z__3.i;
00147 cy[i__2].r = z__1.r, cy[i__2].i = z__1.i;
00148 i__2 = i__;
00149 cx[i__2].r = ctemp.r, cx[i__2].i = ctemp.i;
00150
00151 }
00152 return 0;
00153 }