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__2 = 2;
00019 static integer c__1 = 1;
00020 static real c_b35 = 2.f;
00021 static real c_b46 = 1.f;
00022 static integer c_n1 = -1;
00023
00024 int slattr_(integer *imat, char *uplo, char *trans, char *
00025 diag, integer *iseed, integer *n, real *a, integer *lda, real *b,
00026 real *work, integer *info)
00027 {
00028
00029 integer a_dim1, a_offset, i__1, i__2, i__3;
00030 real r__1, r__2;
00031 doublereal d__1, d__2;
00032
00033
00034 int s_copy(char *, char *, ftnlen, ftnlen);
00035 double pow_dd(doublereal *, doublereal *), sqrt(doublereal), r_sign(real *
00036 , real *);
00037
00038
00039 real c__;
00040 integer i__, j;
00041 real s, x, y, z__, ra, rb;
00042 integer kl, ku, iy;
00043 real ulp, sfac;
00044 integer mode;
00045 char path[3], dist[1];
00046 real unfl, rexp;
00047 char type__[1];
00048 real texp;
00049 extern int srot_(integer *, real *, integer *, real *,
00050 integer *, real *, real *);
00051 real star1, plus1, plus2, bscal;
00052 extern logical lsame_(char *, char *);
00053 extern int sscal_(integer *, real *, real *, integer *);
00054 real tscal, anorm, bnorm, tleft;
00055 logical upper;
00056 extern int scopy_(integer *, real *, integer *, real *,
00057 integer *), srotg_(real *, real *, real *, real *), sswap_(
00058 integer *, real *, integer *, real *, integer *), slatb4_(char *,
00059 integer *, integer *, integer *, char *, integer *, integer *,
00060 real *, integer *, real *, char *),
00061 slabad_(real *, real *);
00062 extern doublereal slamch_(char *);
00063 real bignum;
00064 extern integer isamax_(integer *, real *, integer *);
00065 extern doublereal slarnd_(integer *, integer *);
00066 real cndnum;
00067 integer jcount;
00068 extern int slatms_(integer *, integer *, char *, integer
00069 *, char *, real *, integer *, real *, real *, integer *, integer *
00070 , char *, real *, integer *, real *, integer *), slarnv_(integer *, integer *, integer *, real *);
00071 real smlnum;
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 --iseed;
00159 a_dim1 = *lda;
00160 a_offset = 1 + a_dim1;
00161 a -= a_offset;
00162 --b;
00163 --work;
00164
00165
00166 s_copy(path, "Single precision", (ftnlen)1, (ftnlen)16);
00167 s_copy(path + 1, "TR", (ftnlen)2, (ftnlen)2);
00168 unfl = slamch_("Safe minimum");
00169 ulp = slamch_("Epsilon") * slamch_("Base");
00170 smlnum = unfl;
00171 bignum = (1.f - ulp) / smlnum;
00172 slabad_(&smlnum, &bignum);
00173 if (*imat >= 7 && *imat <= 10 || *imat == 18) {
00174 *(unsigned char *)diag = 'U';
00175 } else {
00176 *(unsigned char *)diag = 'N';
00177 }
00178 *info = 0;
00179
00180
00181
00182 if (*n <= 0) {
00183 return 0;
00184 }
00185
00186
00187
00188 upper = lsame_(uplo, "U");
00189 if (upper) {
00190 slatb4_(path, imat, n, n, type__, &kl, &ku, &anorm, &mode, &cndnum,
00191 dist);
00192 } else {
00193 i__1 = -(*imat);
00194 slatb4_(path, &i__1, n, n, type__, &kl, &ku, &anorm, &mode, &cndnum,
00195 dist);
00196 }
00197
00198
00199
00200 if (*imat <= 6) {
00201 slatms_(n, n, dist, &iseed[1], type__, &b[1], &mode, &cndnum, &anorm,
00202 &kl, &ku, "No packing", &a[a_offset], lda, &work[1], info);
00203
00204
00205
00206
00207
00208
00209 } else if (*imat == 7) {
00210 if (upper) {
00211 i__1 = *n;
00212 for (j = 1; j <= i__1; ++j) {
00213 i__2 = j - 1;
00214 for (i__ = 1; i__ <= i__2; ++i__) {
00215 a[i__ + j * a_dim1] = 0.f;
00216
00217 }
00218 a[j + j * a_dim1] = (real) j;
00219
00220 }
00221 } else {
00222 i__1 = *n;
00223 for (j = 1; j <= i__1; ++j) {
00224 a[j + j * a_dim1] = (real) j;
00225 i__2 = *n;
00226 for (i__ = j + 1; i__ <= i__2; ++i__) {
00227 a[i__ + j * a_dim1] = 0.f;
00228
00229 }
00230
00231 }
00232 }
00233
00234
00235
00236
00237
00238
00239
00240 } else if (*imat <= 10) {
00241 if (upper) {
00242 i__1 = *n;
00243 for (j = 1; j <= i__1; ++j) {
00244 i__2 = j - 1;
00245 for (i__ = 1; i__ <= i__2; ++i__) {
00246 a[i__ + j * a_dim1] = 0.f;
00247
00248 }
00249 a[j + j * a_dim1] = (real) j;
00250
00251 }
00252 } else {
00253 i__1 = *n;
00254 for (j = 1; j <= i__1; ++j) {
00255 a[j + j * a_dim1] = (real) j;
00256 i__2 = *n;
00257 for (i__ = j + 1; i__ <= i__2; ++i__) {
00258 a[i__ + j * a_dim1] = 0.f;
00259
00260 }
00261
00262 }
00263 }
00264
00265
00266
00267
00268
00269
00270
00271
00272
00273
00274
00275
00276
00277
00278
00279
00280
00281
00282
00283
00284
00285
00286
00287
00288
00289
00290
00291
00292
00293
00294
00295
00296
00297
00298
00299
00300
00301
00302
00303
00304
00305
00306
00307
00308
00309
00310
00311
00312
00313
00314
00315
00316
00317
00318
00319
00320
00321
00322
00323 star1 = .25f;
00324 sfac = .5f;
00325 plus1 = sfac;
00326 i__1 = *n;
00327 for (j = 1; j <= i__1; j += 2) {
00328 plus2 = star1 / plus1;
00329 work[j] = plus1;
00330 work[*n + j] = star1;
00331 if (j + 1 <= *n) {
00332 work[j + 1] = plus2;
00333 work[*n + j + 1] = 0.f;
00334 plus1 = star1 / plus2;
00335 rexp = slarnd_(&c__2, &iseed[1]);
00336 d__1 = (doublereal) sfac;
00337 d__2 = (doublereal) rexp;
00338 star1 *= pow_dd(&d__1, &d__2);
00339 if (rexp < 0.f) {
00340 d__1 = (doublereal) sfac;
00341 d__2 = (doublereal) (1.f - rexp);
00342 star1 = -pow_dd(&d__1, &d__2);
00343 } else {
00344 d__1 = (doublereal) sfac;
00345 d__2 = (doublereal) (rexp + 1.f);
00346 star1 = pow_dd(&d__1, &d__2);
00347 }
00348 }
00349
00350 }
00351
00352 x = sqrt(cndnum) - 1 / sqrt(cndnum);
00353 if (*n > 2) {
00354 y = sqrt(2.f / (*n - 2)) * x;
00355 } else {
00356 y = 0.f;
00357 }
00358 z__ = x * x;
00359
00360 if (upper) {
00361 if (*n > 3) {
00362 i__1 = *n - 3;
00363 i__2 = *lda + 1;
00364 scopy_(&i__1, &work[1], &c__1, &a[a_dim1 * 3 + 2], &i__2);
00365 if (*n > 4) {
00366 i__1 = *n - 4;
00367 i__2 = *lda + 1;
00368 scopy_(&i__1, &work[*n + 1], &c__1, &a[(a_dim1 << 2) + 2],
00369 &i__2);
00370 }
00371 }
00372 i__1 = *n - 1;
00373 for (j = 2; j <= i__1; ++j) {
00374 a[j * a_dim1 + 1] = y;
00375 a[j + *n * a_dim1] = y;
00376
00377 }
00378 a[*n * a_dim1 + 1] = z__;
00379 } else {
00380 if (*n > 3) {
00381 i__1 = *n - 3;
00382 i__2 = *lda + 1;
00383 scopy_(&i__1, &work[1], &c__1, &a[(a_dim1 << 1) + 3], &i__2);
00384 if (*n > 4) {
00385 i__1 = *n - 4;
00386 i__2 = *lda + 1;
00387 scopy_(&i__1, &work[*n + 1], &c__1, &a[(a_dim1 << 1) + 4],
00388 &i__2);
00389 }
00390 }
00391 i__1 = *n - 1;
00392 for (j = 2; j <= i__1; ++j) {
00393 a[j + a_dim1] = y;
00394 a[*n + j * a_dim1] = y;
00395
00396 }
00397 a[*n + a_dim1] = z__;
00398 }
00399
00400
00401
00402 if (upper) {
00403 i__1 = *n - 1;
00404 for (j = 1; j <= i__1; ++j) {
00405 ra = a[j + (j + 1) * a_dim1];
00406 rb = 2.f;
00407 srotg_(&ra, &rb, &c__, &s);
00408
00409
00410
00411 if (*n > j + 1) {
00412 i__2 = *n - j - 1;
00413 srot_(&i__2, &a[j + (j + 2) * a_dim1], lda, &a[j + 1 + (j
00414 + 2) * a_dim1], lda, &c__, &s);
00415 }
00416
00417
00418
00419 if (j > 1) {
00420 i__2 = j - 1;
00421 r__1 = -c__;
00422 r__2 = -s;
00423 srot_(&i__2, &a[(j + 1) * a_dim1 + 1], &c__1, &a[j *
00424 a_dim1 + 1], &c__1, &r__1, &r__2);
00425 }
00426
00427
00428
00429 a[j + (j + 1) * a_dim1] = -a[j + (j + 1) * a_dim1];
00430
00431 }
00432 } else {
00433 i__1 = *n - 1;
00434 for (j = 1; j <= i__1; ++j) {
00435 ra = a[j + 1 + j * a_dim1];
00436 rb = 2.f;
00437 srotg_(&ra, &rb, &c__, &s);
00438
00439
00440
00441 if (*n > j + 1) {
00442 i__2 = *n - j - 1;
00443 r__1 = -s;
00444 srot_(&i__2, &a[j + 2 + (j + 1) * a_dim1], &c__1, &a[j +
00445 2 + j * a_dim1], &c__1, &c__, &r__1);
00446 }
00447
00448
00449
00450 if (j > 1) {
00451 i__2 = j - 1;
00452 r__1 = -c__;
00453 srot_(&i__2, &a[j + a_dim1], lda, &a[j + 1 + a_dim1], lda,
00454 &r__1, &s);
00455 }
00456
00457
00458
00459 a[j + 1 + j * a_dim1] = -a[j + 1 + j * a_dim1];
00460
00461 }
00462 }
00463
00464
00465
00466
00467
00468 } else if (*imat == 11) {
00469
00470
00471
00472
00473
00474 if (upper) {
00475 i__1 = *n;
00476 for (j = 1; j <= i__1; ++j) {
00477 slarnv_(&c__2, &iseed[1], &j, &a[j * a_dim1 + 1]);
00478 a[j + j * a_dim1] = r_sign(&c_b35, &a[j + j * a_dim1]);
00479
00480 }
00481 } else {
00482 i__1 = *n;
00483 for (j = 1; j <= i__1; ++j) {
00484 i__2 = *n - j + 1;
00485 slarnv_(&c__2, &iseed[1], &i__2, &a[j + j * a_dim1]);
00486 a[j + j * a_dim1] = r_sign(&c_b35, &a[j + j * a_dim1]);
00487
00488 }
00489 }
00490
00491
00492
00493 slarnv_(&c__2, &iseed[1], n, &b[1]);
00494 iy = isamax_(n, &b[1], &c__1);
00495 bnorm = (r__1 = b[iy], dabs(r__1));
00496 bscal = bignum / dmax(1.f,bnorm);
00497 sscal_(n, &bscal, &b[1], &c__1);
00498
00499 } else if (*imat == 12) {
00500
00501
00502
00503
00504
00505 slarnv_(&c__2, &iseed[1], n, &b[1]);
00506
00507 r__1 = 1.f, r__2 = (real) (*n - 1);
00508 tscal = 1.f / dmax(r__1,r__2);
00509 if (upper) {
00510 i__1 = *n;
00511 for (j = 1; j <= i__1; ++j) {
00512 slarnv_(&c__2, &iseed[1], &j, &a[j * a_dim1 + 1]);
00513 i__2 = j - 1;
00514 sscal_(&i__2, &tscal, &a[j * a_dim1 + 1], &c__1);
00515 a[j + j * a_dim1] = r_sign(&c_b46, &a[j + j * a_dim1]);
00516
00517 }
00518 a[*n + *n * a_dim1] = smlnum * a[*n + *n * a_dim1];
00519 } else {
00520 i__1 = *n;
00521 for (j = 1; j <= i__1; ++j) {
00522 i__2 = *n - j + 1;
00523 slarnv_(&c__2, &iseed[1], &i__2, &a[j + j * a_dim1]);
00524 if (*n > j) {
00525 i__2 = *n - j;
00526 sscal_(&i__2, &tscal, &a[j + 1 + j * a_dim1], &c__1);
00527 }
00528 a[j + j * a_dim1] = r_sign(&c_b46, &a[j + j * a_dim1]);
00529
00530 }
00531 a[a_dim1 + 1] = smlnum * a[a_dim1 + 1];
00532 }
00533
00534 } else if (*imat == 13) {
00535
00536
00537
00538
00539
00540 slarnv_(&c__2, &iseed[1], n, &b[1]);
00541 if (upper) {
00542 i__1 = *n;
00543 for (j = 1; j <= i__1; ++j) {
00544 slarnv_(&c__2, &iseed[1], &j, &a[j * a_dim1 + 1]);
00545 a[j + j * a_dim1] = r_sign(&c_b46, &a[j + j * a_dim1]);
00546
00547 }
00548 a[*n + *n * a_dim1] = smlnum * a[*n + *n * a_dim1];
00549 } else {
00550 i__1 = *n;
00551 for (j = 1; j <= i__1; ++j) {
00552 i__2 = *n - j + 1;
00553 slarnv_(&c__2, &iseed[1], &i__2, &a[j + j * a_dim1]);
00554 a[j + j * a_dim1] = r_sign(&c_b46, &a[j + j * a_dim1]);
00555
00556 }
00557 a[a_dim1 + 1] = smlnum * a[a_dim1 + 1];
00558 }
00559
00560 } else if (*imat == 14) {
00561
00562
00563
00564
00565
00566 if (upper) {
00567 jcount = 1;
00568 for (j = *n; j >= 1; --j) {
00569 i__1 = j - 1;
00570 for (i__ = 1; i__ <= i__1; ++i__) {
00571 a[i__ + j * a_dim1] = 0.f;
00572
00573 }
00574 if (jcount <= 2) {
00575 a[j + j * a_dim1] = smlnum;
00576 } else {
00577 a[j + j * a_dim1] = 1.f;
00578 }
00579 ++jcount;
00580 if (jcount > 4) {
00581 jcount = 1;
00582 }
00583
00584 }
00585 } else {
00586 jcount = 1;
00587 i__1 = *n;
00588 for (j = 1; j <= i__1; ++j) {
00589 i__2 = *n;
00590 for (i__ = j + 1; i__ <= i__2; ++i__) {
00591 a[i__ + j * a_dim1] = 0.f;
00592
00593 }
00594 if (jcount <= 2) {
00595 a[j + j * a_dim1] = smlnum;
00596 } else {
00597 a[j + j * a_dim1] = 1.f;
00598 }
00599 ++jcount;
00600 if (jcount > 4) {
00601 jcount = 1;
00602 }
00603
00604 }
00605 }
00606
00607
00608
00609 if (upper) {
00610 b[1] = 0.f;
00611 for (i__ = *n; i__ >= 2; i__ += -2) {
00612 b[i__] = 0.f;
00613 b[i__ - 1] = smlnum;
00614
00615 }
00616 } else {
00617 b[*n] = 0.f;
00618 i__1 = *n - 1;
00619 for (i__ = 1; i__ <= i__1; i__ += 2) {
00620 b[i__] = 0.f;
00621 b[i__ + 1] = smlnum;
00622
00623 }
00624 }
00625
00626 } else if (*imat == 15) {
00627
00628
00629
00630
00631
00632
00633 r__1 = 1.f, r__2 = (real) (*n - 1);
00634 texp = 1.f / dmax(r__1,r__2);
00635 d__1 = (doublereal) smlnum;
00636 d__2 = (doublereal) texp;
00637 tscal = pow_dd(&d__1, &d__2);
00638 slarnv_(&c__2, &iseed[1], n, &b[1]);
00639 if (upper) {
00640 i__1 = *n;
00641 for (j = 1; j <= i__1; ++j) {
00642 i__2 = j - 2;
00643 for (i__ = 1; i__ <= i__2; ++i__) {
00644 a[i__ + j * a_dim1] = 0.f;
00645
00646 }
00647 if (j > 1) {
00648 a[j - 1 + j * a_dim1] = -1.f;
00649 }
00650 a[j + j * a_dim1] = tscal;
00651
00652 }
00653 b[*n] = 1.f;
00654 } else {
00655 i__1 = *n;
00656 for (j = 1; j <= i__1; ++j) {
00657 i__2 = *n;
00658 for (i__ = j + 2; i__ <= i__2; ++i__) {
00659 a[i__ + j * a_dim1] = 0.f;
00660
00661 }
00662 if (j < *n) {
00663 a[j + 1 + j * a_dim1] = -1.f;
00664 }
00665 a[j + j * a_dim1] = tscal;
00666
00667 }
00668 b[1] = 1.f;
00669 }
00670
00671 } else if (*imat == 16) {
00672
00673
00674
00675 iy = *n / 2 + 1;
00676 if (upper) {
00677 i__1 = *n;
00678 for (j = 1; j <= i__1; ++j) {
00679 slarnv_(&c__2, &iseed[1], &j, &a[j * a_dim1 + 1]);
00680 if (j != iy) {
00681 a[j + j * a_dim1] = r_sign(&c_b35, &a[j + j * a_dim1]);
00682 } else {
00683 a[j + j * a_dim1] = 0.f;
00684 }
00685
00686 }
00687 } else {
00688 i__1 = *n;
00689 for (j = 1; j <= i__1; ++j) {
00690 i__2 = *n - j + 1;
00691 slarnv_(&c__2, &iseed[1], &i__2, &a[j + j * a_dim1]);
00692 if (j != iy) {
00693 a[j + j * a_dim1] = r_sign(&c_b35, &a[j + j * a_dim1]);
00694 } else {
00695 a[j + j * a_dim1] = 0.f;
00696 }
00697
00698 }
00699 }
00700 slarnv_(&c__2, &iseed[1], n, &b[1]);
00701 sscal_(n, &c_b35, &b[1], &c__1);
00702
00703 } else if (*imat == 17) {
00704
00705
00706
00707
00708
00709
00710 tscal = unfl / ulp;
00711 tscal = (1.f - ulp) / tscal;
00712 i__1 = *n;
00713 for (j = 1; j <= i__1; ++j) {
00714 i__2 = *n;
00715 for (i__ = 1; i__ <= i__2; ++i__) {
00716 a[i__ + j * a_dim1] = 0.f;
00717
00718 }
00719
00720 }
00721 texp = 1.f;
00722 if (upper) {
00723 for (j = *n; j >= 2; j += -2) {
00724 a[j * a_dim1 + 1] = -tscal / (real) (*n + 1);
00725 a[j + j * a_dim1] = 1.f;
00726 b[j] = texp * (1.f - ulp);
00727 a[(j - 1) * a_dim1 + 1] = -(tscal / (real) (*n + 1)) / (real)
00728 (*n + 2);
00729 a[j - 1 + (j - 1) * a_dim1] = 1.f;
00730 b[j - 1] = texp * (real) (*n * *n + *n - 1);
00731 texp *= 2.f;
00732
00733 }
00734 b[1] = (real) (*n + 1) / (real) (*n + 2) * tscal;
00735 } else {
00736 i__1 = *n - 1;
00737 for (j = 1; j <= i__1; j += 2) {
00738 a[*n + j * a_dim1] = -tscal / (real) (*n + 1);
00739 a[j + j * a_dim1] = 1.f;
00740 b[j] = texp * (1.f - ulp);
00741 a[*n + (j + 1) * a_dim1] = -(tscal / (real) (*n + 1)) / (real)
00742 (*n + 2);
00743 a[j + 1 + (j + 1) * a_dim1] = 1.f;
00744 b[j + 1] = texp * (real) (*n * *n + *n - 1);
00745 texp *= 2.f;
00746
00747 }
00748 b[*n] = (real) (*n + 1) / (real) (*n + 2) * tscal;
00749 }
00750
00751 } else if (*imat == 18) {
00752
00753
00754
00755
00756
00757 if (upper) {
00758 i__1 = *n;
00759 for (j = 1; j <= i__1; ++j) {
00760 i__2 = j - 1;
00761 slarnv_(&c__2, &iseed[1], &i__2, &a[j * a_dim1 + 1]);
00762 a[j + j * a_dim1] = 0.f;
00763
00764 }
00765 } else {
00766 i__1 = *n;
00767 for (j = 1; j <= i__1; ++j) {
00768 if (j < *n) {
00769 i__2 = *n - j;
00770 slarnv_(&c__2, &iseed[1], &i__2, &a[j + 1 + j * a_dim1]);
00771 }
00772 a[j + j * a_dim1] = 0.f;
00773
00774 }
00775 }
00776
00777
00778
00779 slarnv_(&c__2, &iseed[1], n, &b[1]);
00780 iy = isamax_(n, &b[1], &c__1);
00781 bnorm = (r__1 = b[iy], dabs(r__1));
00782 bscal = bignum / dmax(1.f,bnorm);
00783 sscal_(n, &bscal, &b[1], &c__1);
00784
00785 } else if (*imat == 19) {
00786
00787
00788
00789
00790
00791
00792
00793 r__1 = 1.f, r__2 = (real) (*n - 1);
00794 tleft = bignum / dmax(r__1,r__2);
00795
00796 r__1 = 1.f, r__2 = (real) (*n);
00797 tscal = bignum * ((real) (*n - 1) / dmax(r__1,r__2));
00798 if (upper) {
00799 i__1 = *n;
00800 for (j = 1; j <= i__1; ++j) {
00801 slarnv_(&c__2, &iseed[1], &j, &a[j * a_dim1 + 1]);
00802 i__2 = j;
00803 for (i__ = 1; i__ <= i__2; ++i__) {
00804 a[i__ + j * a_dim1] = r_sign(&tleft, &a[i__ + j * a_dim1])
00805 + tscal * a[i__ + j * a_dim1];
00806
00807 }
00808
00809 }
00810 } else {
00811 i__1 = *n;
00812 for (j = 1; j <= i__1; ++j) {
00813 i__2 = *n - j + 1;
00814 slarnv_(&c__2, &iseed[1], &i__2, &a[j + j * a_dim1]);
00815 i__2 = *n;
00816 for (i__ = j; i__ <= i__2; ++i__) {
00817 a[i__ + j * a_dim1] = r_sign(&tleft, &a[i__ + j * a_dim1])
00818 + tscal * a[i__ + j * a_dim1];
00819
00820 }
00821
00822 }
00823 }
00824 slarnv_(&c__2, &iseed[1], n, &b[1]);
00825 sscal_(n, &c_b35, &b[1], &c__1);
00826 }
00827
00828
00829
00830 if (! lsame_(trans, "N")) {
00831 if (upper) {
00832 i__1 = *n / 2;
00833 for (j = 1; j <= i__1; ++j) {
00834 i__2 = *n - (j << 1) + 1;
00835 sswap_(&i__2, &a[j + j * a_dim1], lda, &a[j + 1 + (*n - j + 1)
00836 * a_dim1], &c_n1);
00837
00838 }
00839 } else {
00840 i__1 = *n / 2;
00841 for (j = 1; j <= i__1; ++j) {
00842 i__2 = *n - (j << 1) + 1;
00843 i__3 = -(*lda);
00844 sswap_(&i__2, &a[j + j * a_dim1], &c__1, &a[*n - j + 1 + (j +
00845 1) * a_dim1], &i__3);
00846
00847 }
00848 }
00849 }
00850
00851 return 0;
00852
00853
00854
00855 }