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, nout;
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 struct {
00032 integer selopt, seldim;
00033 logical selval[20];
00034 real selwr[20], selwi[20];
00035 } sslct_;
00036
00037 #define sslct_1 sslct_
00038
00039
00040
00041 static integer c__2 = 2;
00042 static integer c__0 = 0;
00043 static integer c__1 = 1;
00044 static integer c_n1 = -1;
00045 static integer c__6 = 6;
00046 static integer c__8 = 8;
00047 static integer c__3 = 3;
00048 static integer c__5 = 5;
00049
00050 int serred_(char *path, integer *nunit)
00051 {
00052
00053 static char fmt_9999[] = "(1x,a3,\002 routines passed the tests of the e"
00054 "rror exits (\002,i3,\002 tests done)\002)";
00055 static char fmt_9998[] = "(\002 *** \002,a3,\002 routines failed the tes"
00056 "ts of the error ex\002,\002its ***\002)";
00057
00058
00059 integer s_wsle(cilist *), e_wsle(void);
00060 int s_copy(char *, char *, ftnlen, ftnlen);
00061 integer s_wsfe(cilist *), do_fio(integer *, char *, ftnlen), e_wsfe(void);
00062
00063
00064 real a[16] ;
00065 logical b[4];
00066 integer i__, j;
00067 real s[4], u[16] , w[16];
00068 char c2[2];
00069 real r1[4], r2[4];
00070 integer iw[8];
00071 real wi[4];
00072 integer nt;
00073 real vl[16] , vr[16] , wr[4], vt[
00074 16] ;
00075 integer ihi, ilo, info, sdim;
00076 real abnrm;
00077 extern int sgees_(char *, char *, L_fp, integer *, real *
00078 , integer *, integer *, real *, real *, real *, integer *, real *,
00079 integer *, logical *, integer *), sgeev_(char *,
00080 char *, integer *, real *, integer *, real *, real *, real *,
00081 integer *, real *, integer *, real *, integer *, integer *), sgesdd_(char *, integer *, integer *, real *,
00082 integer *, real *, real *, integer *, real *, integer *, real *,
00083 integer *, integer *, integer *);
00084 extern logical lsamen_(integer *, char *, char *);
00085 extern int chkxer_(char *, integer *, integer *, logical
00086 *, logical *), sgesvd_(char *, char *, integer *, integer
00087 *, real *, integer *, real *, real *, integer *, real *, integer *
00088 , real *, integer *, integer *);
00089 extern logical sslect_();
00090 extern int sgeesx_(char *, char *, L_fp, char *, integer
00091 *, real *, integer *, integer *, real *, real *, real *, integer *
00092 , real *, real *, real *, integer *, integer *, integer *,
00093 logical *, integer *), sgeevx_(char *,
00094 char *, char *, char *, integer *, real *, integer *, real *,
00095 real *, real *, integer *, real *, integer *, integer *, integer *
00096 , real *, real *, real *, real *, real *, integer *, integer *,
00097 integer *);
00098
00099
00100 static cilist io___1 = { 0, 0, 0, 0, 0 };
00101 static cilist io___24 = { 0, 0, 0, fmt_9999, 0 };
00102 static cilist io___25 = { 0, 0, 0, fmt_9998, 0 };
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 infoc_1.nout = *nunit;
00159 io___1.ciunit = infoc_1.nout;
00160 s_wsle(&io___1);
00161 e_wsle();
00162 s_copy(c2, path + 1, (ftnlen)2, (ftnlen)2);
00163
00164
00165
00166 for (j = 1; j <= 4; ++j) {
00167 for (i__ = 1; i__ <= 4; ++i__) {
00168 a[i__ + (j << 2) - 5] = 0.f;
00169
00170 }
00171
00172 }
00173 for (i__ = 1; i__ <= 4; ++i__) {
00174 a[i__ + (i__ << 2) - 5] = 1.f;
00175
00176 }
00177 infoc_1.ok = TRUE_;
00178 nt = 0;
00179
00180 if (lsamen_(&c__2, c2, "EV")) {
00181
00182
00183
00184 s_copy(srnamc_1.srnamt, "SGEEV ", (ftnlen)32, (ftnlen)6);
00185 infoc_1.infot = 1;
00186 sgeev_("X", "N", &c__0, a, &c__1, wr, wi, vl, &c__1, vr, &c__1, w, &
00187 c__1, &info);
00188 chkxer_("SGEEV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00189 infoc_1.ok);
00190 infoc_1.infot = 2;
00191 sgeev_("N", "X", &c__0, a, &c__1, wr, wi, vl, &c__1, vr, &c__1, w, &
00192 c__1, &info);
00193 chkxer_("SGEEV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00194 infoc_1.ok);
00195 infoc_1.infot = 3;
00196 sgeev_("N", "N", &c_n1, a, &c__1, wr, wi, vl, &c__1, vr, &c__1, w, &
00197 c__1, &info);
00198 chkxer_("SGEEV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00199 infoc_1.ok);
00200 infoc_1.infot = 5;
00201 sgeev_("N", "N", &c__2, a, &c__1, wr, wi, vl, &c__1, vr, &c__1, w, &
00202 c__6, &info);
00203 chkxer_("SGEEV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00204 infoc_1.ok);
00205 infoc_1.infot = 9;
00206 sgeev_("V", "N", &c__2, a, &c__2, wr, wi, vl, &c__1, vr, &c__1, w, &
00207 c__8, &info);
00208 chkxer_("SGEEV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00209 infoc_1.ok);
00210 infoc_1.infot = 11;
00211 sgeev_("N", "V", &c__2, a, &c__2, wr, wi, vl, &c__1, vr, &c__1, w, &
00212 c__8, &info);
00213 chkxer_("SGEEV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00214 infoc_1.ok);
00215 infoc_1.infot = 13;
00216 sgeev_("V", "V", &c__1, a, &c__1, wr, wi, vl, &c__1, vr, &c__1, w, &
00217 c__3, &info);
00218 chkxer_("SGEEV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00219 infoc_1.ok);
00220 nt += 7;
00221
00222 } else if (lsamen_(&c__2, c2, "ES")) {
00223
00224
00225
00226 s_copy(srnamc_1.srnamt, "SGEES ", (ftnlen)32, (ftnlen)6);
00227 infoc_1.infot = 1;
00228 sgees_("X", "N", (L_fp)sslect_, &c__0, a, &c__1, &sdim, wr, wi, vl, &
00229 c__1, w, &c__1, b, &info);
00230 chkxer_("SGEES ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00231 infoc_1.ok);
00232 infoc_1.infot = 2;
00233 sgees_("N", "X", (L_fp)sslect_, &c__0, a, &c__1, &sdim, wr, wi, vl, &
00234 c__1, w, &c__1, b, &info);
00235 chkxer_("SGEES ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00236 infoc_1.ok);
00237 infoc_1.infot = 4;
00238 sgees_("N", "S", (L_fp)sslect_, &c_n1, a, &c__1, &sdim, wr, wi, vl, &
00239 c__1, w, &c__1, b, &info);
00240 chkxer_("SGEES ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00241 infoc_1.ok);
00242 infoc_1.infot = 6;
00243 sgees_("N", "S", (L_fp)sslect_, &c__2, a, &c__1, &sdim, wr, wi, vl, &
00244 c__1, w, &c__6, b, &info);
00245 chkxer_("SGEES ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00246 infoc_1.ok);
00247 infoc_1.infot = 11;
00248 sgees_("V", "S", (L_fp)sslect_, &c__2, a, &c__2, &sdim, wr, wi, vl, &
00249 c__1, w, &c__6, b, &info);
00250 chkxer_("SGEES ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00251 infoc_1.ok);
00252 infoc_1.infot = 13;
00253 sgees_("N", "S", (L_fp)sslect_, &c__1, a, &c__1, &sdim, wr, wi, vl, &
00254 c__1, w, &c__2, b, &info);
00255 chkxer_("SGEES ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00256 infoc_1.ok);
00257 nt += 6;
00258
00259 } else if (lsamen_(&c__2, c2, "VX")) {
00260
00261
00262
00263 s_copy(srnamc_1.srnamt, "SGEEVX", (ftnlen)32, (ftnlen)6);
00264 infoc_1.infot = 1;
00265 sgeevx_("X", "N", "N", "N", &c__0, a, &c__1, wr, wi, vl, &c__1, vr, &
00266 c__1, &ilo, &ihi, s, &abnrm, r1, r2, w, &c__1, iw, &info);
00267 chkxer_("SGEEVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00268 infoc_1.ok);
00269 infoc_1.infot = 2;
00270 sgeevx_("N", "X", "N", "N", &c__0, a, &c__1, wr, wi, vl, &c__1, vr, &
00271 c__1, &ilo, &ihi, s, &abnrm, r1, r2, w, &c__1, iw, &info);
00272 chkxer_("SGEEVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00273 infoc_1.ok);
00274 infoc_1.infot = 3;
00275 sgeevx_("N", "N", "X", "N", &c__0, a, &c__1, wr, wi, vl, &c__1, vr, &
00276 c__1, &ilo, &ihi, s, &abnrm, r1, r2, w, &c__1, iw, &info);
00277 chkxer_("SGEEVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00278 infoc_1.ok);
00279 infoc_1.infot = 4;
00280 sgeevx_("N", "N", "N", "X", &c__0, a, &c__1, wr, wi, vl, &c__1, vr, &
00281 c__1, &ilo, &ihi, s, &abnrm, r1, r2, w, &c__1, iw, &info);
00282 chkxer_("SGEEVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00283 infoc_1.ok);
00284 infoc_1.infot = 5;
00285 sgeevx_("N", "N", "N", "N", &c_n1, a, &c__1, wr, wi, vl, &c__1, vr, &
00286 c__1, &ilo, &ihi, s, &abnrm, r1, r2, w, &c__1, iw, &info);
00287 chkxer_("SGEEVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00288 infoc_1.ok);
00289 infoc_1.infot = 7;
00290 sgeevx_("N", "N", "N", "N", &c__2, a, &c__1, wr, wi, vl, &c__1, vr, &
00291 c__1, &ilo, &ihi, s, &abnrm, r1, r2, w, &c__1, iw, &info);
00292 chkxer_("SGEEVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00293 infoc_1.ok);
00294 infoc_1.infot = 11;
00295 sgeevx_("N", "V", "N", "N", &c__2, a, &c__2, wr, wi, vl, &c__1, vr, &
00296 c__1, &ilo, &ihi, s, &abnrm, r1, r2, w, &c__6, iw, &info);
00297 chkxer_("SGEEVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00298 infoc_1.ok);
00299 infoc_1.infot = 13;
00300 sgeevx_("N", "N", "V", "N", &c__2, a, &c__2, wr, wi, vl, &c__1, vr, &
00301 c__1, &ilo, &ihi, s, &abnrm, r1, r2, w, &c__6, iw, &info);
00302 chkxer_("SGEEVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00303 infoc_1.ok);
00304 infoc_1.infot = 21;
00305 sgeevx_("N", "N", "N", "N", &c__1, a, &c__1, wr, wi, vl, &c__1, vr, &
00306 c__1, &ilo, &ihi, s, &abnrm, r1, r2, w, &c__1, iw, &info);
00307 chkxer_("SGEEVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00308 infoc_1.ok);
00309 infoc_1.infot = 21;
00310 sgeevx_("N", "V", "N", "N", &c__1, a, &c__1, wr, wi, vl, &c__1, vr, &
00311 c__1, &ilo, &ihi, s, &abnrm, r1, r2, w, &c__2, iw, &info);
00312 chkxer_("SGEEVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00313 infoc_1.ok);
00314 infoc_1.infot = 21;
00315 sgeevx_("N", "N", "V", "V", &c__1, a, &c__1, wr, wi, vl, &c__1, vr, &
00316 c__1, &ilo, &ihi, s, &abnrm, r1, r2, w, &c__3, iw, &info);
00317 chkxer_("SGEEVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00318 infoc_1.ok);
00319 nt += 11;
00320
00321 } else if (lsamen_(&c__2, c2, "SX")) {
00322
00323
00324
00325 s_copy(srnamc_1.srnamt, "SGEESX", (ftnlen)32, (ftnlen)6);
00326 infoc_1.infot = 1;
00327 sgeesx_("X", "N", (L_fp)sslect_, "N", &c__0, a, &c__1, &sdim, wr, wi,
00328 vl, &c__1, r1, r2, w, &c__1, iw, &c__1, b, &info);
00329 chkxer_("SGEESX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00330 infoc_1.ok);
00331 infoc_1.infot = 2;
00332 sgeesx_("N", "X", (L_fp)sslect_, "N", &c__0, a, &c__1, &sdim, wr, wi,
00333 vl, &c__1, r1, r2, w, &c__1, iw, &c__1, b, &info);
00334 chkxer_("SGEESX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00335 infoc_1.ok);
00336 infoc_1.infot = 4;
00337 sgeesx_("N", "N", (L_fp)sslect_, "X", &c__0, a, &c__1, &sdim, wr, wi,
00338 vl, &c__1, r1, r2, w, &c__1, iw, &c__1, b, &info);
00339 chkxer_("SGEESX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00340 infoc_1.ok);
00341 infoc_1.infot = 5;
00342 sgeesx_("N", "N", (L_fp)sslect_, "N", &c_n1, a, &c__1, &sdim, wr, wi,
00343 vl, &c__1, r1, r2, w, &c__1, iw, &c__1, b, &info);
00344 chkxer_("SGEESX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00345 infoc_1.ok);
00346 infoc_1.infot = 7;
00347 sgeesx_("N", "N", (L_fp)sslect_, "N", &c__2, a, &c__1, &sdim, wr, wi,
00348 vl, &c__1, r1, r2, w, &c__6, iw, &c__1, b, &info);
00349 chkxer_("SGEESX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00350 infoc_1.ok);
00351 infoc_1.infot = 12;
00352 sgeesx_("V", "N", (L_fp)sslect_, "N", &c__2, a, &c__2, &sdim, wr, wi,
00353 vl, &c__1, r1, r2, w, &c__6, iw, &c__1, b, &info);
00354 chkxer_("SGEESX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00355 infoc_1.ok);
00356 infoc_1.infot = 16;
00357 sgeesx_("N", "N", (L_fp)sslect_, "N", &c__1, a, &c__1, &sdim, wr, wi,
00358 vl, &c__1, r1, r2, w, &c__2, iw, &c__1, b, &info);
00359 chkxer_("SGEESX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00360 infoc_1.ok);
00361 nt += 7;
00362
00363 } else if (lsamen_(&c__2, c2, "BD")) {
00364
00365
00366
00367 s_copy(srnamc_1.srnamt, "SGESVD", (ftnlen)32, (ftnlen)6);
00368 infoc_1.infot = 1;
00369 sgesvd_("X", "N", &c__0, &c__0, a, &c__1, s, u, &c__1, vt, &c__1, w, &
00370 c__1, &info);
00371 chkxer_("SGESVD", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00372 infoc_1.ok);
00373 infoc_1.infot = 2;
00374 sgesvd_("N", "X", &c__0, &c__0, a, &c__1, s, u, &c__1, vt, &c__1, w, &
00375 c__1, &info);
00376 chkxer_("SGESVD", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00377 infoc_1.ok);
00378 infoc_1.infot = 2;
00379 sgesvd_("O", "O", &c__0, &c__0, a, &c__1, s, u, &c__1, vt, &c__1, w, &
00380 c__1, &info);
00381 chkxer_("SGESVD", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00382 infoc_1.ok);
00383 infoc_1.infot = 3;
00384 sgesvd_("N", "N", &c_n1, &c__0, a, &c__1, s, u, &c__1, vt, &c__1, w, &
00385 c__1, &info);
00386 chkxer_("SGESVD", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00387 infoc_1.ok);
00388 infoc_1.infot = 4;
00389 sgesvd_("N", "N", &c__0, &c_n1, a, &c__1, s, u, &c__1, vt, &c__1, w, &
00390 c__1, &info);
00391 chkxer_("SGESVD", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00392 infoc_1.ok);
00393 infoc_1.infot = 6;
00394 sgesvd_("N", "N", &c__2, &c__1, a, &c__1, s, u, &c__1, vt, &c__1, w, &
00395 c__5, &info);
00396 chkxer_("SGESVD", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00397 infoc_1.ok);
00398 infoc_1.infot = 9;
00399 sgesvd_("A", "N", &c__2, &c__1, a, &c__2, s, u, &c__1, vt, &c__1, w, &
00400 c__5, &info);
00401 chkxer_("SGESVD", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00402 infoc_1.ok);
00403 infoc_1.infot = 11;
00404 sgesvd_("N", "A", &c__1, &c__2, a, &c__1, s, u, &c__1, vt, &c__1, w, &
00405 c__5, &info);
00406 chkxer_("SGESVD", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00407 infoc_1.ok);
00408 nt += 8;
00409
00410
00411
00412 s_copy(srnamc_1.srnamt, "SGESDD", (ftnlen)32, (ftnlen)6);
00413 infoc_1.infot = 1;
00414 sgesdd_("X", &c__0, &c__0, a, &c__1, s, u, &c__1, vt, &c__1, w, &c__1,
00415 iw, &info);
00416 chkxer_("SGESDD", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00417 infoc_1.ok);
00418 infoc_1.infot = 2;
00419 sgesdd_("N", &c_n1, &c__0, a, &c__1, s, u, &c__1, vt, &c__1, w, &c__1,
00420 iw, &info);
00421 chkxer_("SGESDD", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00422 infoc_1.ok);
00423 infoc_1.infot = 3;
00424 sgesdd_("N", &c__0, &c_n1, a, &c__1, s, u, &c__1, vt, &c__1, w, &c__1,
00425 iw, &info);
00426 chkxer_("SGESDD", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00427 infoc_1.ok);
00428 infoc_1.infot = 5;
00429 sgesdd_("N", &c__2, &c__1, a, &c__1, s, u, &c__1, vt, &c__1, w, &c__5,
00430 iw, &info);
00431 chkxer_("SGESDD", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00432 infoc_1.ok);
00433 infoc_1.infot = 8;
00434 sgesdd_("A", &c__2, &c__1, a, &c__2, s, u, &c__1, vt, &c__1, w, &c__5,
00435 iw, &info);
00436 chkxer_("SGESDD", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00437 infoc_1.ok);
00438 infoc_1.infot = 10;
00439 sgesdd_("A", &c__1, &c__2, a, &c__1, s, u, &c__1, vt, &c__1, w, &c__5,
00440 iw, &info);
00441 chkxer_("SGESDD", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00442 infoc_1.ok);
00443 nt += 6;
00444 }
00445
00446
00447
00448 if (! lsamen_(&c__2, c2, "BD")) {
00449 if (infoc_1.ok) {
00450 io___24.ciunit = infoc_1.nout;
00451 s_wsfe(&io___24);
00452 do_fio(&c__1, path, (ftnlen)3);
00453 do_fio(&c__1, (char *)&nt, (ftnlen)sizeof(integer));
00454 e_wsfe();
00455 } else {
00456 io___25.ciunit = infoc_1.nout;
00457 s_wsfe(&io___25);
00458 do_fio(&c__1, path, (ftnlen)3);
00459 e_wsfe();
00460 }
00461 }
00462
00463 return 0;
00464
00465
00466
00467 }