00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #include "f2c.h"
00014 #include "blaswrap.h"
00015
00016
00017
00018 static integer c__1 = 1;
00019
00020 int zhptrf_(char *uplo, integer *n, doublecomplex *ap,
00021 integer *ipiv, integer *info)
00022 {
00023
00024 integer i__1, i__2, i__3, i__4, i__5, i__6;
00025 doublereal d__1, d__2, d__3, d__4;
00026 doublecomplex z__1, z__2, z__3, z__4, z__5, z__6;
00027
00028
00029 double sqrt(doublereal), d_imag(doublecomplex *);
00030 void d_cnjg(doublecomplex *, doublecomplex *);
00031
00032
00033 doublereal d__;
00034 integer i__, j, k;
00035 doublecomplex t;
00036 doublereal r1, d11;
00037 doublecomplex d12;
00038 doublereal d22;
00039 doublecomplex d21;
00040 integer kc, kk, kp;
00041 doublecomplex wk;
00042 integer kx;
00043 doublereal tt;
00044 integer knc, kpc, npp;
00045 doublecomplex wkm1, wkp1;
00046 integer imax, jmax;
00047 extern int zhpr_(char *, integer *, doublereal *,
00048 doublecomplex *, integer *, doublecomplex *);
00049 doublereal alpha;
00050 extern logical lsame_(char *, char *);
00051 integer kstep;
00052 logical upper;
00053 extern int zswap_(integer *, doublecomplex *, integer *,
00054 doublecomplex *, integer *);
00055 extern doublereal dlapy2_(doublereal *, doublereal *);
00056 doublereal absakk;
00057 extern int xerbla_(char *, integer *), zdscal_(
00058 integer *, doublereal *, doublecomplex *, integer *);
00059 doublereal colmax;
00060 extern integer izamax_(integer *, doublecomplex *, integer *);
00061 doublereal rowmax;
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151
00152
00153
00154
00155
00156
00157
00158
00159
00160
00161
00162
00163
00164
00165
00166
00167
00168
00169
00170
00171
00172
00173
00174
00175
00176
00177
00178
00179
00180
00181
00182
00183
00184
00185 --ipiv;
00186 --ap;
00187
00188
00189 *info = 0;
00190 upper = lsame_(uplo, "U");
00191 if (! upper && ! lsame_(uplo, "L")) {
00192 *info = -1;
00193 } else if (*n < 0) {
00194 *info = -2;
00195 }
00196 if (*info != 0) {
00197 i__1 = -(*info);
00198 xerbla_("ZHPTRF", &i__1);
00199 return 0;
00200 }
00201
00202
00203
00204 alpha = (sqrt(17.) + 1.) / 8.;
00205
00206 if (upper) {
00207
00208
00209
00210
00211
00212
00213 k = *n;
00214 kc = (*n - 1) * *n / 2 + 1;
00215 L10:
00216 knc = kc;
00217
00218
00219
00220 if (k < 1) {
00221 goto L110;
00222 }
00223 kstep = 1;
00224
00225
00226
00227
00228 i__1 = kc + k - 1;
00229 absakk = (d__1 = ap[i__1].r, abs(d__1));
00230
00231
00232
00233
00234 if (k > 1) {
00235 i__1 = k - 1;
00236 imax = izamax_(&i__1, &ap[kc], &c__1);
00237 i__1 = kc + imax - 1;
00238 colmax = (d__1 = ap[i__1].r, abs(d__1)) + (d__2 = d_imag(&ap[kc +
00239 imax - 1]), abs(d__2));
00240 } else {
00241 colmax = 0.;
00242 }
00243
00244 if (max(absakk,colmax) == 0.) {
00245
00246
00247
00248 if (*info == 0) {
00249 *info = k;
00250 }
00251 kp = k;
00252 i__1 = kc + k - 1;
00253 i__2 = kc + k - 1;
00254 d__1 = ap[i__2].r;
00255 ap[i__1].r = d__1, ap[i__1].i = 0.;
00256 } else {
00257 if (absakk >= alpha * colmax) {
00258
00259
00260
00261 kp = k;
00262 } else {
00263
00264
00265
00266
00267 rowmax = 0.;
00268 jmax = imax;
00269 kx = imax * (imax + 1) / 2 + imax;
00270 i__1 = k;
00271 for (j = imax + 1; j <= i__1; ++j) {
00272 i__2 = kx;
00273 if ((d__1 = ap[i__2].r, abs(d__1)) + (d__2 = d_imag(&ap[
00274 kx]), abs(d__2)) > rowmax) {
00275 i__2 = kx;
00276 rowmax = (d__1 = ap[i__2].r, abs(d__1)) + (d__2 =
00277 d_imag(&ap[kx]), abs(d__2));
00278 jmax = j;
00279 }
00280 kx += j;
00281
00282 }
00283 kpc = (imax - 1) * imax / 2 + 1;
00284 if (imax > 1) {
00285 i__1 = imax - 1;
00286 jmax = izamax_(&i__1, &ap[kpc], &c__1);
00287
00288 i__1 = kpc + jmax - 1;
00289 d__3 = rowmax, d__4 = (d__1 = ap[i__1].r, abs(d__1)) + (
00290 d__2 = d_imag(&ap[kpc + jmax - 1]), abs(d__2));
00291 rowmax = max(d__3,d__4);
00292 }
00293
00294 if (absakk >= alpha * colmax * (colmax / rowmax)) {
00295
00296
00297
00298 kp = k;
00299 } else {
00300 i__1 = kpc + imax - 1;
00301 if ((d__1 = ap[i__1].r, abs(d__1)) >= alpha * rowmax) {
00302
00303
00304
00305
00306 kp = imax;
00307 } else {
00308
00309
00310
00311
00312 kp = imax;
00313 kstep = 2;
00314 }
00315 }
00316 }
00317
00318 kk = k - kstep + 1;
00319 if (kstep == 2) {
00320 knc = knc - k + 1;
00321 }
00322 if (kp != kk) {
00323
00324
00325
00326
00327 i__1 = kp - 1;
00328 zswap_(&i__1, &ap[knc], &c__1, &ap[kpc], &c__1);
00329 kx = kpc + kp - 1;
00330 i__1 = kk - 1;
00331 for (j = kp + 1; j <= i__1; ++j) {
00332 kx = kx + j - 1;
00333 d_cnjg(&z__1, &ap[knc + j - 1]);
00334 t.r = z__1.r, t.i = z__1.i;
00335 i__2 = knc + j - 1;
00336 d_cnjg(&z__1, &ap[kx]);
00337 ap[i__2].r = z__1.r, ap[i__2].i = z__1.i;
00338 i__2 = kx;
00339 ap[i__2].r = t.r, ap[i__2].i = t.i;
00340
00341 }
00342 i__1 = kx + kk - 1;
00343 d_cnjg(&z__1, &ap[kx + kk - 1]);
00344 ap[i__1].r = z__1.r, ap[i__1].i = z__1.i;
00345 i__1 = knc + kk - 1;
00346 r1 = ap[i__1].r;
00347 i__1 = knc + kk - 1;
00348 i__2 = kpc + kp - 1;
00349 d__1 = ap[i__2].r;
00350 ap[i__1].r = d__1, ap[i__1].i = 0.;
00351 i__1 = kpc + kp - 1;
00352 ap[i__1].r = r1, ap[i__1].i = 0.;
00353 if (kstep == 2) {
00354 i__1 = kc + k - 1;
00355 i__2 = kc + k - 1;
00356 d__1 = ap[i__2].r;
00357 ap[i__1].r = d__1, ap[i__1].i = 0.;
00358 i__1 = kc + k - 2;
00359 t.r = ap[i__1].r, t.i = ap[i__1].i;
00360 i__1 = kc + k - 2;
00361 i__2 = kc + kp - 1;
00362 ap[i__1].r = ap[i__2].r, ap[i__1].i = ap[i__2].i;
00363 i__1 = kc + kp - 1;
00364 ap[i__1].r = t.r, ap[i__1].i = t.i;
00365 }
00366 } else {
00367 i__1 = kc + k - 1;
00368 i__2 = kc + k - 1;
00369 d__1 = ap[i__2].r;
00370 ap[i__1].r = d__1, ap[i__1].i = 0.;
00371 if (kstep == 2) {
00372 i__1 = kc - 1;
00373 i__2 = kc - 1;
00374 d__1 = ap[i__2].r;
00375 ap[i__1].r = d__1, ap[i__1].i = 0.;
00376 }
00377 }
00378
00379
00380
00381 if (kstep == 1) {
00382
00383
00384
00385
00386
00387
00388
00389
00390
00391
00392
00393 i__1 = kc + k - 1;
00394 r1 = 1. / ap[i__1].r;
00395 i__1 = k - 1;
00396 d__1 = -r1;
00397 zhpr_(uplo, &i__1, &d__1, &ap[kc], &c__1, &ap[1]);
00398
00399
00400
00401 i__1 = k - 1;
00402 zdscal_(&i__1, &r1, &ap[kc], &c__1);
00403 } else {
00404
00405
00406
00407
00408
00409
00410
00411
00412
00413
00414
00415
00416
00417 if (k > 2) {
00418
00419 i__1 = k - 1 + (k - 1) * k / 2;
00420 d__1 = ap[i__1].r;
00421 d__2 = d_imag(&ap[k - 1 + (k - 1) * k / 2]);
00422 d__ = dlapy2_(&d__1, &d__2);
00423 i__1 = k - 1 + (k - 2) * (k - 1) / 2;
00424 d22 = ap[i__1].r / d__;
00425 i__1 = k + (k - 1) * k / 2;
00426 d11 = ap[i__1].r / d__;
00427 tt = 1. / (d11 * d22 - 1.);
00428 i__1 = k - 1 + (k - 1) * k / 2;
00429 z__1.r = ap[i__1].r / d__, z__1.i = ap[i__1].i / d__;
00430 d12.r = z__1.r, d12.i = z__1.i;
00431 d__ = tt / d__;
00432
00433 for (j = k - 2; j >= 1; --j) {
00434 i__1 = j + (k - 2) * (k - 1) / 2;
00435 z__3.r = d11 * ap[i__1].r, z__3.i = d11 * ap[i__1].i;
00436 d_cnjg(&z__5, &d12);
00437 i__2 = j + (k - 1) * k / 2;
00438 z__4.r = z__5.r * ap[i__2].r - z__5.i * ap[i__2].i,
00439 z__4.i = z__5.r * ap[i__2].i + z__5.i * ap[
00440 i__2].r;
00441 z__2.r = z__3.r - z__4.r, z__2.i = z__3.i - z__4.i;
00442 z__1.r = d__ * z__2.r, z__1.i = d__ * z__2.i;
00443 wkm1.r = z__1.r, wkm1.i = z__1.i;
00444 i__1 = j + (k - 1) * k / 2;
00445 z__3.r = d22 * ap[i__1].r, z__3.i = d22 * ap[i__1].i;
00446 i__2 = j + (k - 2) * (k - 1) / 2;
00447 z__4.r = d12.r * ap[i__2].r - d12.i * ap[i__2].i,
00448 z__4.i = d12.r * ap[i__2].i + d12.i * ap[i__2]
00449 .r;
00450 z__2.r = z__3.r - z__4.r, z__2.i = z__3.i - z__4.i;
00451 z__1.r = d__ * z__2.r, z__1.i = d__ * z__2.i;
00452 wk.r = z__1.r, wk.i = z__1.i;
00453 for (i__ = j; i__ >= 1; --i__) {
00454 i__1 = i__ + (j - 1) * j / 2;
00455 i__2 = i__ + (j - 1) * j / 2;
00456 i__3 = i__ + (k - 1) * k / 2;
00457 d_cnjg(&z__4, &wk);
00458 z__3.r = ap[i__3].r * z__4.r - ap[i__3].i *
00459 z__4.i, z__3.i = ap[i__3].r * z__4.i + ap[
00460 i__3].i * z__4.r;
00461 z__2.r = ap[i__2].r - z__3.r, z__2.i = ap[i__2].i
00462 - z__3.i;
00463 i__4 = i__ + (k - 2) * (k - 1) / 2;
00464 d_cnjg(&z__6, &wkm1);
00465 z__5.r = ap[i__4].r * z__6.r - ap[i__4].i *
00466 z__6.i, z__5.i = ap[i__4].r * z__6.i + ap[
00467 i__4].i * z__6.r;
00468 z__1.r = z__2.r - z__5.r, z__1.i = z__2.i -
00469 z__5.i;
00470 ap[i__1].r = z__1.r, ap[i__1].i = z__1.i;
00471
00472 }
00473 i__1 = j + (k - 1) * k / 2;
00474 ap[i__1].r = wk.r, ap[i__1].i = wk.i;
00475 i__1 = j + (k - 2) * (k - 1) / 2;
00476 ap[i__1].r = wkm1.r, ap[i__1].i = wkm1.i;
00477 i__1 = j + (j - 1) * j / 2;
00478 i__2 = j + (j - 1) * j / 2;
00479 d__1 = ap[i__2].r;
00480 z__1.r = d__1, z__1.i = 0.;
00481 ap[i__1].r = z__1.r, ap[i__1].i = z__1.i;
00482
00483 }
00484
00485 }
00486
00487 }
00488 }
00489
00490
00491
00492 if (kstep == 1) {
00493 ipiv[k] = kp;
00494 } else {
00495 ipiv[k] = -kp;
00496 ipiv[k - 1] = -kp;
00497 }
00498
00499
00500
00501 k -= kstep;
00502 kc = knc - k;
00503 goto L10;
00504
00505 } else {
00506
00507
00508
00509
00510
00511
00512 k = 1;
00513 kc = 1;
00514 npp = *n * (*n + 1) / 2;
00515 L60:
00516 knc = kc;
00517
00518
00519
00520 if (k > *n) {
00521 goto L110;
00522 }
00523 kstep = 1;
00524
00525
00526
00527
00528 i__1 = kc;
00529 absakk = (d__1 = ap[i__1].r, abs(d__1));
00530
00531
00532
00533
00534 if (k < *n) {
00535 i__1 = *n - k;
00536 imax = k + izamax_(&i__1, &ap[kc + 1], &c__1);
00537 i__1 = kc + imax - k;
00538 colmax = (d__1 = ap[i__1].r, abs(d__1)) + (d__2 = d_imag(&ap[kc +
00539 imax - k]), abs(d__2));
00540 } else {
00541 colmax = 0.;
00542 }
00543
00544 if (max(absakk,colmax) == 0.) {
00545
00546
00547
00548 if (*info == 0) {
00549 *info = k;
00550 }
00551 kp = k;
00552 i__1 = kc;
00553 i__2 = kc;
00554 d__1 = ap[i__2].r;
00555 ap[i__1].r = d__1, ap[i__1].i = 0.;
00556 } else {
00557 if (absakk >= alpha * colmax) {
00558
00559
00560
00561 kp = k;
00562 } else {
00563
00564
00565
00566
00567 rowmax = 0.;
00568 kx = kc + imax - k;
00569 i__1 = imax - 1;
00570 for (j = k; j <= i__1; ++j) {
00571 i__2 = kx;
00572 if ((d__1 = ap[i__2].r, abs(d__1)) + (d__2 = d_imag(&ap[
00573 kx]), abs(d__2)) > rowmax) {
00574 i__2 = kx;
00575 rowmax = (d__1 = ap[i__2].r, abs(d__1)) + (d__2 =
00576 d_imag(&ap[kx]), abs(d__2));
00577 jmax = j;
00578 }
00579 kx = kx + *n - j;
00580
00581 }
00582 kpc = npp - (*n - imax + 1) * (*n - imax + 2) / 2 + 1;
00583 if (imax < *n) {
00584 i__1 = *n - imax;
00585 jmax = imax + izamax_(&i__1, &ap[kpc + 1], &c__1);
00586
00587 i__1 = kpc + jmax - imax;
00588 d__3 = rowmax, d__4 = (d__1 = ap[i__1].r, abs(d__1)) + (
00589 d__2 = d_imag(&ap[kpc + jmax - imax]), abs(d__2));
00590 rowmax = max(d__3,d__4);
00591 }
00592
00593 if (absakk >= alpha * colmax * (colmax / rowmax)) {
00594
00595
00596
00597 kp = k;
00598 } else {
00599 i__1 = kpc;
00600 if ((d__1 = ap[i__1].r, abs(d__1)) >= alpha * rowmax) {
00601
00602
00603
00604
00605 kp = imax;
00606 } else {
00607
00608
00609
00610
00611 kp = imax;
00612 kstep = 2;
00613 }
00614 }
00615 }
00616
00617 kk = k + kstep - 1;
00618 if (kstep == 2) {
00619 knc = knc + *n - k + 1;
00620 }
00621 if (kp != kk) {
00622
00623
00624
00625
00626 if (kp < *n) {
00627 i__1 = *n - kp;
00628 zswap_(&i__1, &ap[knc + kp - kk + 1], &c__1, &ap[kpc + 1],
00629 &c__1);
00630 }
00631 kx = knc + kp - kk;
00632 i__1 = kp - 1;
00633 for (j = kk + 1; j <= i__1; ++j) {
00634 kx = kx + *n - j + 1;
00635 d_cnjg(&z__1, &ap[knc + j - kk]);
00636 t.r = z__1.r, t.i = z__1.i;
00637 i__2 = knc + j - kk;
00638 d_cnjg(&z__1, &ap[kx]);
00639 ap[i__2].r = z__1.r, ap[i__2].i = z__1.i;
00640 i__2 = kx;
00641 ap[i__2].r = t.r, ap[i__2].i = t.i;
00642
00643 }
00644 i__1 = knc + kp - kk;
00645 d_cnjg(&z__1, &ap[knc + kp - kk]);
00646 ap[i__1].r = z__1.r, ap[i__1].i = z__1.i;
00647 i__1 = knc;
00648 r1 = ap[i__1].r;
00649 i__1 = knc;
00650 i__2 = kpc;
00651 d__1 = ap[i__2].r;
00652 ap[i__1].r = d__1, ap[i__1].i = 0.;
00653 i__1 = kpc;
00654 ap[i__1].r = r1, ap[i__1].i = 0.;
00655 if (kstep == 2) {
00656 i__1 = kc;
00657 i__2 = kc;
00658 d__1 = ap[i__2].r;
00659 ap[i__1].r = d__1, ap[i__1].i = 0.;
00660 i__1 = kc + 1;
00661 t.r = ap[i__1].r, t.i = ap[i__1].i;
00662 i__1 = kc + 1;
00663 i__2 = kc + kp - k;
00664 ap[i__1].r = ap[i__2].r, ap[i__1].i = ap[i__2].i;
00665 i__1 = kc + kp - k;
00666 ap[i__1].r = t.r, ap[i__1].i = t.i;
00667 }
00668 } else {
00669 i__1 = kc;
00670 i__2 = kc;
00671 d__1 = ap[i__2].r;
00672 ap[i__1].r = d__1, ap[i__1].i = 0.;
00673 if (kstep == 2) {
00674 i__1 = knc;
00675 i__2 = knc;
00676 d__1 = ap[i__2].r;
00677 ap[i__1].r = d__1, ap[i__1].i = 0.;
00678 }
00679 }
00680
00681
00682
00683 if (kstep == 1) {
00684
00685
00686
00687
00688
00689
00690
00691 if (k < *n) {
00692
00693
00694
00695
00696
00697 i__1 = kc;
00698 r1 = 1. / ap[i__1].r;
00699 i__1 = *n - k;
00700 d__1 = -r1;
00701 zhpr_(uplo, &i__1, &d__1, &ap[kc + 1], &c__1, &ap[kc + *n
00702 - k + 1]);
00703
00704
00705
00706 i__1 = *n - k;
00707 zdscal_(&i__1, &r1, &ap[kc + 1], &c__1);
00708 }
00709 } else {
00710
00711
00712
00713
00714
00715
00716
00717
00718 if (k < *n - 1) {
00719
00720
00721
00722
00723
00724
00725
00726
00727
00728 i__1 = k + 1 + (k - 1) * ((*n << 1) - k) / 2;
00729 d__1 = ap[i__1].r;
00730 d__2 = d_imag(&ap[k + 1 + (k - 1) * ((*n << 1) - k) / 2]);
00731 d__ = dlapy2_(&d__1, &d__2);
00732 i__1 = k + 1 + k * ((*n << 1) - k - 1) / 2;
00733 d11 = ap[i__1].r / d__;
00734 i__1 = k + (k - 1) * ((*n << 1) - k) / 2;
00735 d22 = ap[i__1].r / d__;
00736 tt = 1. / (d11 * d22 - 1.);
00737 i__1 = k + 1 + (k - 1) * ((*n << 1) - k) / 2;
00738 z__1.r = ap[i__1].r / d__, z__1.i = ap[i__1].i / d__;
00739 d21.r = z__1.r, d21.i = z__1.i;
00740 d__ = tt / d__;
00741
00742 i__1 = *n;
00743 for (j = k + 2; j <= i__1; ++j) {
00744 i__2 = j + (k - 1) * ((*n << 1) - k) / 2;
00745 z__3.r = d11 * ap[i__2].r, z__3.i = d11 * ap[i__2].i;
00746 i__3 = j + k * ((*n << 1) - k - 1) / 2;
00747 z__4.r = d21.r * ap[i__3].r - d21.i * ap[i__3].i,
00748 z__4.i = d21.r * ap[i__3].i + d21.i * ap[i__3]
00749 .r;
00750 z__2.r = z__3.r - z__4.r, z__2.i = z__3.i - z__4.i;
00751 z__1.r = d__ * z__2.r, z__1.i = d__ * z__2.i;
00752 wk.r = z__1.r, wk.i = z__1.i;
00753 i__2 = j + k * ((*n << 1) - k - 1) / 2;
00754 z__3.r = d22 * ap[i__2].r, z__3.i = d22 * ap[i__2].i;
00755 d_cnjg(&z__5, &d21);
00756 i__3 = j + (k - 1) * ((*n << 1) - k) / 2;
00757 z__4.r = z__5.r * ap[i__3].r - z__5.i * ap[i__3].i,
00758 z__4.i = z__5.r * ap[i__3].i + z__5.i * ap[
00759 i__3].r;
00760 z__2.r = z__3.r - z__4.r, z__2.i = z__3.i - z__4.i;
00761 z__1.r = d__ * z__2.r, z__1.i = d__ * z__2.i;
00762 wkp1.r = z__1.r, wkp1.i = z__1.i;
00763 i__2 = *n;
00764 for (i__ = j; i__ <= i__2; ++i__) {
00765 i__3 = i__ + (j - 1) * ((*n << 1) - j) / 2;
00766 i__4 = i__ + (j - 1) * ((*n << 1) - j) / 2;
00767 i__5 = i__ + (k - 1) * ((*n << 1) - k) / 2;
00768 d_cnjg(&z__4, &wk);
00769 z__3.r = ap[i__5].r * z__4.r - ap[i__5].i *
00770 z__4.i, z__3.i = ap[i__5].r * z__4.i + ap[
00771 i__5].i * z__4.r;
00772 z__2.r = ap[i__4].r - z__3.r, z__2.i = ap[i__4].i
00773 - z__3.i;
00774 i__6 = i__ + k * ((*n << 1) - k - 1) / 2;
00775 d_cnjg(&z__6, &wkp1);
00776 z__5.r = ap[i__6].r * z__6.r - ap[i__6].i *
00777 z__6.i, z__5.i = ap[i__6].r * z__6.i + ap[
00778 i__6].i * z__6.r;
00779 z__1.r = z__2.r - z__5.r, z__1.i = z__2.i -
00780 z__5.i;
00781 ap[i__3].r = z__1.r, ap[i__3].i = z__1.i;
00782
00783 }
00784 i__2 = j + (k - 1) * ((*n << 1) - k) / 2;
00785 ap[i__2].r = wk.r, ap[i__2].i = wk.i;
00786 i__2 = j + k * ((*n << 1) - k - 1) / 2;
00787 ap[i__2].r = wkp1.r, ap[i__2].i = wkp1.i;
00788 i__2 = j + (j - 1) * ((*n << 1) - j) / 2;
00789 i__3 = j + (j - 1) * ((*n << 1) - j) / 2;
00790 d__1 = ap[i__3].r;
00791 z__1.r = d__1, z__1.i = 0.;
00792 ap[i__2].r = z__1.r, ap[i__2].i = z__1.i;
00793
00794 }
00795 }
00796 }
00797 }
00798
00799
00800
00801 if (kstep == 1) {
00802 ipiv[k] = kp;
00803 } else {
00804 ipiv[k] = -kp;
00805 ipiv[k + 1] = -kp;
00806 }
00807
00808
00809
00810 k += kstep;
00811 kc = knc + *n - k + 2;
00812 goto L60;
00813
00814 }
00815
00816 L110:
00817 return 0;
00818
00819
00820
00821 }