Double Complex */
| 15267 | } /* zcopy_ */ |
| 15268 | |
| 15269 | /* Double Complex */ VOID zdotc_(doublecomplex * ret_val, integer *n, |
| 15270 | doublecomplex *zx, integer *incx, doublecomplex *zy, integer *incy) |
| 15271 | { |
| 15272 | /* System generated locals */ |
| 15273 | integer i__1, i__2; |
| 15274 | doublecomplex z__1, z__2, z__3; |
| 15275 | |
| 15276 | /* Local variables */ |
| 15277 | static integer i__, ix, iy; |
| 15278 | static doublecomplex ztemp; |
| 15279 | |
| 15280 | |
| 15281 | /* |
| 15282 | Purpose |
| 15283 | ======= |
| 15284 | |
| 15285 | ZDOTC forms the dot product of a vector. |
| 15286 | |
| 15287 | Further Details |
| 15288 | =============== |
| 15289 | |
| 15290 | jack dongarra, 3/11/78. |
| 15291 | modified 12/3/93, array(1) declarations changed to array(*) |
| 15292 | |
| 15293 | ===================================================================== |
| 15294 | */ |
| 15295 | |
| 15296 | /* Parameter adjustments */ |
| 15297 | --zy; |
| 15298 | --zx; |
| 15299 | |
| 15300 | /* Function Body */ |
| 15301 | ztemp.r = 0., ztemp.i = 0.; |
| 15302 | ret_val->r = 0., ret_val->i = 0.; |
| 15303 | if (*n <= 0) { |
| 15304 | return ; |
| 15305 | } |
| 15306 | if (*incx == 1 && *incy == 1) { |
| 15307 | goto L20; |
| 15308 | } |
| 15309 | |
| 15310 | /* |
| 15311 | code for unequal increments or equal increments |
| 15312 | not equal to 1 |
| 15313 | */ |
| 15314 | |
| 15315 | ix = 1; |
| 15316 | iy = 1; |
| 15317 | if (*incx < 0) { |
| 15318 | ix = (-(*n) + 1) * *incx + 1; |
| 15319 | } |
| 15320 | if (*incy < 0) { |
| 15321 | iy = (-(*n) + 1) * *incy + 1; |
| 15322 | } |
| 15323 | i__1 = *n; |
| 15324 | for (i__ = 1; i__ <= i__1; ++i__) { |
| 15325 | d_cnjg(&z__3, &zx[ix]); |
| 15326 | i__2 = iy; |