00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #include "f2c.h"
00014 #include "blaswrap.h"
00015
00016
00017
00018 struct {
00019 integer infot, iounit;
00020 logical ok, lerr;
00021 } infoc_;
00022
00023 #define infoc_1 infoc_
00024
00025 struct {
00026 char srnamt[32];
00027 } srnamc_;
00028
00029 #define srnamc_1 srnamc_
00030
00031
00032
00033 static doublecomplex c_b1 = {1.,0.};
00034 static doublecomplex c_b2 = {0.,0.};
00035 static integer c__9 = 9;
00036 static integer c__25 = 25;
00037 static integer c__1 = 1;
00038 static integer c__3 = 3;
00039 static integer c__2 = 2;
00040 static integer c__0 = 0;
00041 static integer c_n1 = -1;
00042 static doublereal c_b91 = -1.;
00043
00044 int zdrvls_(logical *dotype, integer *nm, integer *mval,
00045 integer *nn, integer *nval, integer *nns, integer *nsval, integer *
00046 nnb, integer *nbval, integer *nxval, doublereal *thresh, logical *
00047 tsterr, doublecomplex *a, doublecomplex *copya, doublecomplex *b,
00048 doublecomplex *copyb, doublecomplex *c__, doublereal *s, doublereal *
00049 copys, doublecomplex *work, doublereal *rwork, integer *iwork,
00050 integer *nout)
00051 {
00052
00053
00054 static integer iseedy[4] = { 1988,1989,1990,1991 };
00055
00056
00057 static char fmt_9999[] = "(\002 TRANS='\002,a1,\002', M=\002,i5,\002, N"
00058 "=\002,i5,\002, NRHS=\002,i4,\002, NB=\002,i4,\002, type\002,i2"
00059 ",\002, test(\002,i2,\002)=\002,g12.5)";
00060 static char fmt_9998[] = "(\002 M=\002,i5,\002, N=\002,i5,\002, NRHS="
00061 "\002,i4,\002, NB=\002,i4,\002, type\002,i2,\002, test(\002,i2"
00062 ",\002)=\002,g12.5)";
00063
00064
00065 integer i__1, i__2, i__3, i__4, i__5, i__6;
00066 doublereal d__1;
00067
00068
00069 int s_copy(char *, char *, ftnlen, ftnlen);
00070 double sqrt(doublereal);
00071 integer s_wsfe(cilist *), do_fio(integer *, char *, ftnlen), e_wsfe(void);
00072
00073
00074 integer i__, j, k, m, n, nb, im, in, lda, ldb, inb;
00075 doublereal eps;
00076 integer ins, info;
00077 char path[3];
00078 integer rank, nrhs, nrun;
00079 extern int alahd_(integer *, char *);
00080 integer nfail, iseed[4], crank, irank;
00081 doublereal rcond;
00082 extern doublereal dasum_(integer *, doublereal *, integer *);
00083 integer itran, mnmin, ncols;
00084 doublereal norma, normb;
00085 extern int zgels_(char *, integer *, integer *, integer *
00086 , doublecomplex *, integer *, doublecomplex *, integer *,
00087 doublecomplex *, integer *, integer *), daxpy_(integer *,
00088 doublereal *, doublereal *, integer *, doublereal *, integer *),
00089 zgemm_(char *, char *, integer *, integer *, integer *,
00090 doublecomplex *, doublecomplex *, integer *, doublecomplex *,
00091 integer *, doublecomplex *, doublecomplex *, integer *);
00092 char trans[1];
00093 integer nerrs, itype, lwork;
00094 extern doublereal zqrt12_(integer *, integer *, doublecomplex *, integer *
00095 , doublereal *, doublecomplex *, integer *, doublereal *),
00096 zqrt14_(char *, integer *, integer *, integer *, doublecomplex *,
00097 integer *, doublecomplex *, integer *, doublecomplex *, integer *);
00098 extern int zqrt13_(integer *, integer *, integer *,
00099 doublecomplex *, integer *, doublereal *, integer *), zqrt15_(
00100 integer *, integer *, integer *, integer *, integer *,
00101 doublecomplex *, integer *, doublecomplex *, integer *,
00102 doublereal *, integer *, doublereal *, doublereal *, integer *,
00103 doublecomplex *, integer *);
00104 integer nrows;
00105 extern doublereal zqrt17_(char *, integer *, integer *, integer *,
00106 integer *, doublecomplex *, integer *, doublecomplex *, integer *,
00107 doublecomplex *, integer *, doublecomplex *, doublecomplex *,
00108 integer *);
00109 integer lwlsy;
00110 extern int zqrt16_(char *, integer *, integer *, integer
00111 *, doublecomplex *, integer *, doublecomplex *, integer *,
00112 doublecomplex *, integer *, doublereal *, doublereal *);
00113 extern doublereal dlamch_(char *);
00114 extern int alaerh_(char *, char *, integer *, integer *,
00115 char *, integer *, integer *, integer *, integer *, integer *,
00116 integer *, integer *, integer *, integer *);
00117 integer iscale;
00118 extern int zdscal_(integer *, doublereal *,
00119 doublecomplex *, integer *), alasvm_(char *, integer *, integer *,
00120 integer *, integer *), zgelsd_(integer *, integer *,
00121 integer *, doublecomplex *, integer *, doublecomplex *, integer *,
00122 doublereal *, doublereal *, integer *, doublecomplex *, integer *
00123 , doublereal *, integer *, integer *), xlaenv_(integer *, integer
00124 *);
00125 integer ldwork;
00126 extern int zlacpy_(char *, integer *, integer *,
00127 doublecomplex *, integer *, doublecomplex *, integer *),
00128 zgelss_(integer *, integer *, integer *, doublecomplex *, integer
00129 *, doublecomplex *, integer *, doublereal *, doublereal *,
00130 integer *, doublecomplex *, integer *, doublereal *, integer *),
00131 zgelsx_(integer *, integer *, integer *, doublecomplex *, integer
00132 *, doublecomplex *, integer *, integer *, doublereal *, integer *,
00133 doublecomplex *, doublereal *, integer *), zgelsy_(integer *,
00134 integer *, integer *, doublecomplex *, integer *, doublecomplex *,
00135 integer *, integer *, doublereal *, integer *, doublecomplex *,
00136 integer *, doublereal *, integer *);
00137 doublereal result[18];
00138 extern int zlarnv_(integer *, integer *, integer *,
00139 doublecomplex *), zerrls_(char *, integer *);
00140
00141
00142 static cilist io___34 = { 0, 0, 0, fmt_9999, 0 };
00143 static cilist io___39 = { 0, 0, 0, fmt_9998, 0 };
00144 static cilist io___41 = { 0, 0, 0, fmt_9998, 0 };
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
00186
00187
00188
00189
00190
00191
00192
00193
00194
00195
00196
00197
00198
00199
00200
00201
00202
00203
00204
00205
00206
00207
00208
00209
00210
00211
00212
00213
00214
00215
00216
00217
00218
00219
00220
00221
00222
00223
00224
00225
00226
00227
00228
00229
00230
00231
00232
00233
00234
00235
00236
00237
00238
00239
00240
00241
00242
00243
00244
00245
00246
00247
00248
00249
00250
00251
00252
00253
00254
00255
00256
00257
00258
00259
00260
00261
00262
00263
00264
00265
00266
00267
00268
00269
00270 --iwork;
00271 --rwork;
00272 --work;
00273 --copys;
00274 --s;
00275 --c__;
00276 --copyb;
00277 --b;
00278 --copya;
00279 --a;
00280 --nxval;
00281 --nbval;
00282 --nsval;
00283 --nval;
00284 --mval;
00285 --dotype;
00286
00287
00288
00289
00290
00291
00292
00293 s_copy(path, "Zomplex precision", (ftnlen)1, (ftnlen)17);
00294 s_copy(path + 1, "LS", (ftnlen)2, (ftnlen)2);
00295 nrun = 0;
00296 nfail = 0;
00297 nerrs = 0;
00298 for (i__ = 1; i__ <= 4; ++i__) {
00299 iseed[i__ - 1] = iseedy[i__ - 1];
00300
00301 }
00302 eps = dlamch_("Epsilon");
00303
00304
00305
00306 rcond = sqrt(eps) - (sqrt(eps) - eps) / 2;
00307
00308
00309
00310 xlaenv_(&c__9, &c__25);
00311 if (*tsterr) {
00312 zerrls_(path, nout);
00313 }
00314
00315
00316
00317 if ((*nm == 0 || *nn == 0) && *thresh == 0.) {
00318 alahd_(nout, path);
00319 }
00320 infoc_1.infot = 0;
00321
00322 i__1 = *nm;
00323 for (im = 1; im <= i__1; ++im) {
00324 m = mval[im];
00325 lda = max(1,m);
00326
00327 i__2 = *nn;
00328 for (in = 1; in <= i__2; ++in) {
00329 n = nval[in];
00330 mnmin = min(m,n);
00331
00332 i__3 = max(1,m);
00333 ldb = max(i__3,n);
00334
00335 i__3 = *nns;
00336 for (ins = 1; ins <= i__3; ++ins) {
00337 nrhs = nsval[ins];
00338
00339 i__4 = 1, i__5 = (m + nrhs) * (n + 2), i__4 = max(i__4,i__5),
00340 i__5 = (n + nrhs) * (m + 2), i__4 = max(i__4,i__5),
00341 i__5 = m * n + (mnmin << 2) + max(m,n), i__4 = max(
00342 i__4,i__5), i__5 = (n << 1) + m;
00343 lwork = max(i__4,i__5);
00344
00345 for (irank = 1; irank <= 2; ++irank) {
00346 for (iscale = 1; iscale <= 3; ++iscale) {
00347 itype = (irank - 1) * 3 + iscale;
00348 if (! dotype[itype]) {
00349 goto L100;
00350 }
00351
00352 if (irank == 1) {
00353
00354
00355
00356
00357
00358 zqrt13_(&iscale, &m, &n, ©a[1], &lda, &norma,
00359 iseed);
00360 i__4 = *nnb;
00361 for (inb = 1; inb <= i__4; ++inb) {
00362 nb = nbval[inb];
00363 xlaenv_(&c__1, &nb);
00364 xlaenv_(&c__3, &nxval[inb]);
00365
00366 for (itran = 1; itran <= 2; ++itran) {
00367 if (itran == 1) {
00368 *(unsigned char *)trans = 'N';
00369 nrows = m;
00370 ncols = n;
00371 } else {
00372 *(unsigned char *)trans = 'C';
00373 nrows = n;
00374 ncols = m;
00375 }
00376 ldwork = max(1,ncols);
00377
00378
00379
00380 if (ncols > 0) {
00381 i__5 = ncols * nrhs;
00382 zlarnv_(&c__2, iseed, &i__5, &work[1])
00383 ;
00384 i__5 = ncols * nrhs;
00385 d__1 = 1. / (doublereal) ncols;
00386 zdscal_(&i__5, &d__1, &work[1], &c__1)
00387 ;
00388 }
00389 zgemm_(trans, "No transpose", &nrows, &
00390 nrhs, &ncols, &c_b1, ©a[1], &
00391 lda, &work[1], &ldwork, &c_b2, &b[
00392 1], &ldb);
00393 zlacpy_("Full", &nrows, &nrhs, &b[1], &
00394 ldb, ©b[1], &ldb);
00395
00396
00397
00398 if (m > 0 && n > 0) {
00399 zlacpy_("Full", &m, &n, ©a[1], &
00400 lda, &a[1], &lda);
00401 zlacpy_("Full", &nrows, &nrhs, ©b[
00402 1], &ldb, &b[1], &ldb);
00403 }
00404 s_copy(srnamc_1.srnamt, "ZGELS ", (ftnlen)
00405 32, (ftnlen)6);
00406 zgels_(trans, &m, &n, &nrhs, &a[1], &lda,
00407 &b[1], &ldb, &work[1], &lwork, &
00408 info);
00409
00410 if (info != 0) {
00411 alaerh_(path, "ZGELS ", &info, &c__0,
00412 trans, &m, &n, &nrhs, &c_n1, &
00413 nb, &itype, &nfail, &nerrs,
00414 nout);
00415 }
00416
00417
00418
00419 ldwork = max(1,nrows);
00420 if (nrows > 0 && nrhs > 0) {
00421 zlacpy_("Full", &nrows, &nrhs, ©b[
00422 1], &ldb, &c__[1], &ldb);
00423 }
00424 zqrt16_(trans, &m, &n, &nrhs, ©a[1], &
00425 lda, &b[1], &ldb, &c__[1], &ldb, &
00426 rwork[1], result);
00427
00428 if (itran == 1 && m >= n || itran == 2 &&
00429 m < n) {
00430
00431
00432
00433 result[1] = zqrt17_(trans, &c__1, &m,
00434 &n, &nrhs, ©a[1], &lda, &
00435 b[1], &ldb, ©b[1], &ldb, &
00436 c__[1], &work[1], &lwork);
00437 } else {
00438
00439
00440
00441 result[1] = zqrt14_(trans, &m, &n, &
00442 nrhs, ©a[1], &lda, &b[1],
00443 &ldb, &work[1], &lwork);
00444 }
00445
00446
00447
00448
00449 for (k = 1; k <= 2; ++k) {
00450 if (result[k - 1] >= *thresh) {
00451 if (nfail == 0 && nerrs == 0) {
00452 alahd_(nout, path);
00453 }
00454 io___34.ciunit = *nout;
00455 s_wsfe(&io___34);
00456 do_fio(&c__1, trans, (ftnlen)1);
00457 do_fio(&c__1, (char *)&m, (ftnlen)
00458 sizeof(integer));
00459 do_fio(&c__1, (char *)&n, (ftnlen)
00460 sizeof(integer));
00461 do_fio(&c__1, (char *)&nrhs, (
00462 ftnlen)sizeof(integer));
00463 do_fio(&c__1, (char *)&nb, (
00464 ftnlen)sizeof(integer));
00465 do_fio(&c__1, (char *)&itype, (
00466 ftnlen)sizeof(integer));
00467 do_fio(&c__1, (char *)&k, (ftnlen)
00468 sizeof(integer));
00469 do_fio(&c__1, (char *)&result[k -
00470 1], (ftnlen)sizeof(
00471 doublereal));
00472 e_wsfe();
00473 ++nfail;
00474 }
00475
00476 }
00477 nrun += 2;
00478
00479 }
00480
00481 }
00482 }
00483
00484
00485
00486
00487 zqrt15_(&iscale, &irank, &m, &n, &nrhs, ©a[1], &
00488 lda, ©b[1], &ldb, ©s[1], &rank, &
00489 norma, &normb, iseed, &work[1], &lwork);
00490
00491
00492
00493 i__4 = n;
00494 for (j = 1; j <= i__4; ++j) {
00495 iwork[j] = 0;
00496
00497 }
00498 ldwork = max(1,m);
00499
00500
00501
00502
00503
00504
00505
00506 zlacpy_("Full", &m, &n, ©a[1], &lda, &a[1], &lda);
00507 zlacpy_("Full", &m, &nrhs, ©b[1], &ldb, &b[1], &
00508 ldb);
00509
00510 s_copy(srnamc_1.srnamt, "ZGELSX", (ftnlen)32, (ftnlen)
00511 6);
00512 zgelsx_(&m, &n, &nrhs, &a[1], &lda, &b[1], &ldb, &
00513 iwork[1], &rcond, &crank, &work[1], &rwork[1],
00514 &info);
00515
00516 if (info != 0) {
00517 alaerh_(path, "ZGELSX", &info, &c__0, " ", &m, &n,
00518 &nrhs, &c_n1, &nb, &itype, &nfail, &
00519 nerrs, nout);
00520 }
00521
00522
00523
00524
00525
00526
00527 result[2] = zqrt12_(&crank, &crank, &a[1], &lda, &
00528 copys[1], &work[1], &lwork, &rwork[1]);
00529
00530
00531
00532
00533 zlacpy_("Full", &m, &nrhs, ©b[1], &ldb, &work[1],
00534 &ldwork);
00535 zqrt16_("No transpose", &m, &n, &nrhs, ©a[1], &
00536 lda, &b[1], &ldb, &work[1], &ldwork, &rwork[1]
00537 , &result[3]);
00538
00539
00540
00541
00542 result[4] = 0.;
00543 if (m > crank) {
00544 result[4] = zqrt17_("No transpose", &c__1, &m, &n,
00545 &nrhs, ©a[1], &lda, &b[1], &ldb, &
00546 copyb[1], &ldb, &c__[1], &work[1], &lwork);
00547 }
00548
00549
00550
00551
00552 result[5] = 0.;
00553
00554 if (n > crank) {
00555 result[5] = zqrt14_("No transpose", &m, &n, &nrhs,
00556 ©a[1], &lda, &b[1], &ldb, &work[1], &
00557 lwork);
00558 }
00559
00560
00561
00562
00563 for (k = 3; k <= 6; ++k) {
00564 if (result[k - 1] >= *thresh) {
00565 if (nfail == 0 && nerrs == 0) {
00566 alahd_(nout, path);
00567 }
00568 io___39.ciunit = *nout;
00569 s_wsfe(&io___39);
00570 do_fio(&c__1, (char *)&m, (ftnlen)sizeof(
00571 integer));
00572 do_fio(&c__1, (char *)&n, (ftnlen)sizeof(
00573 integer));
00574 do_fio(&c__1, (char *)&nrhs, (ftnlen)sizeof(
00575 integer));
00576 do_fio(&c__1, (char *)&c__0, (ftnlen)sizeof(
00577 integer));
00578 do_fio(&c__1, (char *)&itype, (ftnlen)sizeof(
00579 integer));
00580 do_fio(&c__1, (char *)&k, (ftnlen)sizeof(
00581 integer));
00582 do_fio(&c__1, (char *)&result[k - 1], (ftnlen)
00583 sizeof(doublereal));
00584 e_wsfe();
00585 ++nfail;
00586 }
00587
00588 }
00589 nrun += 4;
00590
00591
00592
00593 i__4 = *nnb;
00594 for (inb = 1; inb <= i__4; ++inb) {
00595 nb = nbval[inb];
00596 xlaenv_(&c__1, &nb);
00597 xlaenv_(&c__3, &nxval[inb]);
00598
00599
00600
00601
00602
00603
00604
00605
00606 zlacpy_("Full", &m, &n, ©a[1], &lda, &a[1], &
00607 lda);
00608 zlacpy_("Full", &m, &nrhs, ©b[1], &ldb, &b[1],
00609 &ldb);
00610
00611
00612
00613 i__5 = n;
00614 for (j = 1; j <= i__5; ++j) {
00615 iwork[j] = 0;
00616
00617 }
00618
00619
00620
00621
00622 i__5 = mnmin << 1, i__6 = nb * (n + 1), i__5 =
00623 max(i__5,i__6), i__6 = mnmin + nb * nrhs;
00624 lwlsy = mnmin + max(i__5,i__6);
00625 lwlsy = max(1,lwlsy);
00626
00627 s_copy(srnamc_1.srnamt, "ZGELSY", (ftnlen)32, (
00628 ftnlen)6);
00629 zgelsy_(&m, &n, &nrhs, &a[1], &lda, &b[1], &ldb, &
00630 iwork[1], &rcond, &crank, &work[1], &
00631 lwlsy, &rwork[1], &info);
00632 if (info != 0) {
00633 alaerh_(path, "ZGELSY", &info, &c__0, " ", &m,
00634 &n, &nrhs, &c_n1, &nb, &itype, &
00635 nfail, &nerrs, nout);
00636 }
00637
00638
00639
00640
00641
00642
00643 result[6] = zqrt12_(&crank, &crank, &a[1], &lda, &
00644 copys[1], &work[1], &lwork, &rwork[1]);
00645
00646
00647
00648
00649 zlacpy_("Full", &m, &nrhs, ©b[1], &ldb, &work[
00650 1], &ldwork);
00651 zqrt16_("No transpose", &m, &n, &nrhs, ©a[1],
00652 &lda, &b[1], &ldb, &work[1], &ldwork, &
00653 rwork[1], &result[7]);
00654
00655
00656
00657
00658 result[8] = 0.;
00659 if (m > crank) {
00660 result[8] = zqrt17_("No transpose", &c__1, &m,
00661 &n, &nrhs, ©a[1], &lda, &b[1], &
00662 ldb, ©b[1], &ldb, &c__[1], &work[
00663 1], &lwork);
00664 }
00665
00666
00667
00668
00669 result[9] = 0.;
00670
00671 if (n > crank) {
00672 result[9] = zqrt14_("No transpose", &m, &n, &
00673 nrhs, ©a[1], &lda, &b[1], &ldb, &
00674 work[1], &lwork);
00675 }
00676
00677
00678
00679
00680
00681
00682
00683 zlacpy_("Full", &m, &n, ©a[1], &lda, &a[1], &
00684 lda);
00685 zlacpy_("Full", &m, &nrhs, ©b[1], &ldb, &b[1],
00686 &ldb);
00687 s_copy(srnamc_1.srnamt, "ZGELSS", (ftnlen)32, (
00688 ftnlen)6);
00689 zgelss_(&m, &n, &nrhs, &a[1], &lda, &b[1], &ldb, &
00690 s[1], &rcond, &crank, &work[1], &lwork, &
00691 rwork[1], &info);
00692
00693 if (info != 0) {
00694 alaerh_(path, "ZGELSS", &info, &c__0, " ", &m,
00695 &n, &nrhs, &c_n1, &nb, &itype, &
00696 nfail, &nerrs, nout);
00697 }
00698
00699
00700
00701
00702
00703
00704 if (rank > 0) {
00705 daxpy_(&mnmin, &c_b91, ©s[1], &c__1, &s[1]
00706 , &c__1);
00707 result[10] = dasum_(&mnmin, &s[1], &c__1) /
00708 dasum_(&mnmin, ©s[1], &c__1) / (
00709 eps * (doublereal) mnmin);
00710 } else {
00711 result[10] = 0.;
00712 }
00713
00714
00715
00716 zlacpy_("Full", &m, &nrhs, ©b[1], &ldb, &work[
00717 1], &ldwork);
00718 zqrt16_("No transpose", &m, &n, &nrhs, ©a[1],
00719 &lda, &b[1], &ldb, &work[1], &ldwork, &
00720 rwork[1], &result[11]);
00721
00722
00723
00724 result[12] = 0.;
00725 if (m > crank) {
00726 result[12] = zqrt17_("No transpose", &c__1, &
00727 m, &n, &nrhs, ©a[1], &lda, &b[1],
00728 &ldb, ©b[1], &ldb, &c__[1], &work[
00729 1], &lwork);
00730 }
00731
00732
00733
00734 result[13] = 0.;
00735 if (n > crank) {
00736 result[13] = zqrt14_("No transpose", &m, &n, &
00737 nrhs, ©a[1], &lda, &b[1], &ldb, &
00738 work[1], &lwork);
00739 }
00740
00741
00742
00743
00744
00745
00746
00747 xlaenv_(&c__9, &c__25);
00748
00749 zlacpy_("Full", &m, &n, ©a[1], &lda, &a[1], &
00750 lda);
00751 zlacpy_("Full", &m, &nrhs, ©b[1], &ldb, &b[1],
00752 &ldb);
00753
00754 s_copy(srnamc_1.srnamt, "ZGELSD", (ftnlen)32, (
00755 ftnlen)6);
00756 zgelsd_(&m, &n, &nrhs, &a[1], &lda, &b[1], &ldb, &
00757 s[1], &rcond, &crank, &work[1], &lwork, &
00758 rwork[1], &iwork[1], &info);
00759 if (info != 0) {
00760 alaerh_(path, "ZGELSD", &info, &c__0, " ", &m,
00761 &n, &nrhs, &c_n1, &nb, &itype, &
00762 nfail, &nerrs, nout);
00763 }
00764
00765
00766
00767 if (rank > 0) {
00768 daxpy_(&mnmin, &c_b91, ©s[1], &c__1, &s[1]
00769 , &c__1);
00770 result[14] = dasum_(&mnmin, &s[1], &c__1) /
00771 dasum_(&mnmin, ©s[1], &c__1) / (
00772 eps * (doublereal) mnmin);
00773 } else {
00774 result[14] = 0.;
00775 }
00776
00777
00778
00779 zlacpy_("Full", &m, &nrhs, ©b[1], &ldb, &work[
00780 1], &ldwork);
00781 zqrt16_("No transpose", &m, &n, &nrhs, ©a[1],
00782 &lda, &b[1], &ldb, &work[1], &ldwork, &
00783 rwork[1], &result[15]);
00784
00785
00786
00787 result[16] = 0.;
00788 if (m > crank) {
00789 result[16] = zqrt17_("No transpose", &c__1, &
00790 m, &n, &nrhs, ©a[1], &lda, &b[1],
00791 &ldb, ©b[1], &ldb, &c__[1], &work[
00792 1], &lwork);
00793 }
00794
00795
00796
00797 result[17] = 0.;
00798 if (n > crank) {
00799 result[17] = zqrt14_("No transpose", &m, &n, &
00800 nrhs, ©a[1], &lda, &b[1], &ldb, &
00801 work[1], &lwork);
00802 }
00803
00804
00805
00806
00807 for (k = 7; k <= 18; ++k) {
00808 if (result[k - 1] >= *thresh) {
00809 if (nfail == 0 && nerrs == 0) {
00810 alahd_(nout, path);
00811 }
00812 io___41.ciunit = *nout;
00813 s_wsfe(&io___41);
00814 do_fio(&c__1, (char *)&m, (ftnlen)sizeof(
00815 integer));
00816 do_fio(&c__1, (char *)&n, (ftnlen)sizeof(
00817 integer));
00818 do_fio(&c__1, (char *)&nrhs, (ftnlen)
00819 sizeof(integer));
00820 do_fio(&c__1, (char *)&nb, (ftnlen)sizeof(
00821 integer));
00822 do_fio(&c__1, (char *)&itype, (ftnlen)
00823 sizeof(integer));
00824 do_fio(&c__1, (char *)&k, (ftnlen)sizeof(
00825 integer));
00826 do_fio(&c__1, (char *)&result[k - 1], (
00827 ftnlen)sizeof(doublereal));
00828 e_wsfe();
00829 ++nfail;
00830 }
00831
00832 }
00833 nrun += 12;
00834
00835
00836 }
00837 L100:
00838 ;
00839 }
00840
00841 }
00842
00843 }
00844
00845 }
00846
00847 }
00848
00849
00850
00851 alasvm_(path, nout, &nfail, &nrun, &nerrs);
00852
00853 return 0;
00854
00855
00856
00857 }