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
00032
00033 static integer c__2 = 2;
00034 static integer c__0 = 0;
00035 static integer c__1 = 1;
00036 static integer c_n1 = -1;
00037 static integer c__10 = 10;
00038 static integer c__3 = 3;
00039
00040 int zerrls_(char *path, integer *nunit)
00041 {
00042
00043 int s_copy(char *, char *, ftnlen, ftnlen);
00044 integer s_wsle(cilist *), e_wsle(void);
00045
00046
00047 doublecomplex a[4] , b[4] ;
00048 doublereal s[2];
00049 doublecomplex w[2];
00050 char c2[2];
00051 integer ip[2];
00052 doublereal rw[2];
00053 integer info, irnk;
00054 doublereal rcond;
00055 extern int zgels_(char *, integer *, integer *, integer *
00056 , doublecomplex *, integer *, doublecomplex *, integer *,
00057 doublecomplex *, integer *, integer *), alaesm_(char *,
00058 logical *, integer *);
00059 extern logical lsamen_(integer *, char *, char *);
00060 extern int chkxer_(char *, integer *, integer *, logical
00061 *, logical *), zgelsd_(integer *, integer *, integer *,
00062 doublecomplex *, integer *, doublecomplex *, integer *,
00063 doublereal *, doublereal *, integer *, doublecomplex *, integer *,
00064 doublereal *, integer *, integer *), zgelss_(integer *, integer *
00065 , integer *, doublecomplex *, integer *, doublecomplex *, integer
00066 *, doublereal *, doublereal *, integer *, doublecomplex *,
00067 integer *, doublereal *, integer *), zgelsx_(integer *, integer *,
00068 integer *, doublecomplex *, integer *, doublecomplex *, integer *
00069 , integer *, doublereal *, integer *, doublecomplex *, doublereal
00070 *, integer *), zgelsy_(integer *, integer *, integer *,
00071 doublecomplex *, integer *, doublecomplex *, integer *, integer *,
00072 doublereal *, integer *, doublecomplex *, integer *, doublereal *
00073 , integer *);
00074
00075
00076 static cilist io___3 = { 0, 0, 0, 0, 0 };
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 infoc_1.nout = *nunit;
00121 s_copy(c2, path + 1, (ftnlen)2, (ftnlen)2);
00122 a[0].r = 1., a[0].i = 0.;
00123 a[2].r = 2., a[2].i = 0.;
00124 a[3].r = 3., a[3].i = 0.;
00125 a[1].r = 4., a[1].i = 0.;
00126 infoc_1.ok = TRUE_;
00127 io___3.ciunit = infoc_1.nout;
00128 s_wsle(&io___3);
00129 e_wsle();
00130
00131
00132
00133 if (lsamen_(&c__2, c2, "LS")) {
00134
00135
00136
00137 s_copy(srnamc_1.srnamt, "ZGELS ", (ftnlen)32, (ftnlen)6);
00138 infoc_1.infot = 1;
00139 zgels_("/", &c__0, &c__0, &c__0, a, &c__1, b, &c__1, w, &c__1, &info);
00140 chkxer_("ZGELS ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00141 infoc_1.ok);
00142 infoc_1.infot = 2;
00143 zgels_("N", &c_n1, &c__0, &c__0, a, &c__1, b, &c__1, w, &c__1, &info);
00144 chkxer_("ZGELS ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00145 infoc_1.ok);
00146 infoc_1.infot = 3;
00147 zgels_("N", &c__0, &c_n1, &c__0, a, &c__1, b, &c__1, w, &c__1, &info);
00148 chkxer_("ZGELS ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00149 infoc_1.ok);
00150 infoc_1.infot = 4;
00151 zgels_("N", &c__0, &c__0, &c_n1, a, &c__1, b, &c__1, w, &c__1, &info);
00152 chkxer_("ZGELS ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00153 infoc_1.ok);
00154 infoc_1.infot = 6;
00155 zgels_("N", &c__2, &c__0, &c__0, a, &c__1, b, &c__2, w, &c__2, &info);
00156 chkxer_("ZGELS ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00157 infoc_1.ok);
00158 infoc_1.infot = 8;
00159 zgels_("N", &c__2, &c__0, &c__0, a, &c__2, b, &c__1, w, &c__2, &info);
00160 chkxer_("ZGELS ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00161 infoc_1.ok);
00162 infoc_1.infot = 10;
00163 zgels_("N", &c__1, &c__1, &c__0, a, &c__1, b, &c__1, w, &c__1, &info);
00164 chkxer_("ZGELS ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00165 infoc_1.ok);
00166
00167
00168
00169 s_copy(srnamc_1.srnamt, "ZGELSS", (ftnlen)32, (ftnlen)6);
00170 infoc_1.infot = 1;
00171 zgelss_(&c_n1, &c__0, &c__0, a, &c__1, b, &c__1, s, &rcond, &irnk, w,
00172 &c__1, rw, &info);
00173 chkxer_("ZGELSS", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00174 infoc_1.ok);
00175 infoc_1.infot = 2;
00176 zgelss_(&c__0, &c_n1, &c__0, a, &c__1, b, &c__1, s, &rcond, &irnk, w,
00177 &c__1, rw, &info);
00178 chkxer_("ZGELSS", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00179 infoc_1.ok);
00180 infoc_1.infot = 3;
00181 zgelss_(&c__0, &c__0, &c_n1, a, &c__1, b, &c__1, s, &rcond, &irnk, w,
00182 &c__1, rw, &info);
00183 chkxer_("ZGELSS", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00184 infoc_1.ok);
00185 infoc_1.infot = 5;
00186 zgelss_(&c__2, &c__0, &c__0, a, &c__1, b, &c__2, s, &rcond, &irnk, w,
00187 &c__2, rw, &info);
00188 chkxer_("ZGELSS", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00189 infoc_1.ok);
00190 infoc_1.infot = 7;
00191 zgelss_(&c__2, &c__0, &c__0, a, &c__2, b, &c__1, s, &rcond, &irnk, w,
00192 &c__2, rw, &info);
00193 chkxer_("ZGELSS", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00194 infoc_1.ok);
00195
00196
00197
00198 s_copy(srnamc_1.srnamt, "ZGELSX", (ftnlen)32, (ftnlen)6);
00199 infoc_1.infot = 1;
00200 zgelsx_(&c_n1, &c__0, &c__0, a, &c__1, b, &c__1, ip, &rcond, &irnk, w,
00201 rw, &info);
00202 chkxer_("ZGELSX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00203 infoc_1.ok);
00204 infoc_1.infot = 2;
00205 zgelsx_(&c__0, &c_n1, &c__0, a, &c__1, b, &c__1, ip, &rcond, &irnk, w,
00206 rw, &info);
00207 chkxer_("ZGELSX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00208 infoc_1.ok);
00209 infoc_1.infot = 3;
00210 zgelsx_(&c__0, &c__0, &c_n1, a, &c__1, b, &c__1, ip, &rcond, &irnk, w,
00211 rw, &info);
00212 chkxer_("ZGELSX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00213 infoc_1.ok);
00214 infoc_1.infot = 5;
00215 zgelsx_(&c__2, &c__0, &c__0, a, &c__1, b, &c__2, ip, &rcond, &irnk, w,
00216 rw, &info);
00217 chkxer_("ZGELSX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00218 infoc_1.ok);
00219 infoc_1.infot = 7;
00220 zgelsx_(&c__2, &c__0, &c__0, a, &c__2, b, &c__1, ip, &rcond, &irnk, w,
00221 rw, &info);
00222 chkxer_("ZGELSX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00223 infoc_1.ok);
00224
00225
00226
00227 s_copy(srnamc_1.srnamt, "ZGELSY", (ftnlen)32, (ftnlen)6);
00228 infoc_1.infot = 1;
00229 zgelsy_(&c_n1, &c__0, &c__0, a, &c__1, b, &c__1, ip, &rcond, &irnk, w,
00230 &c__10, rw, &info);
00231 chkxer_("ZGELSY", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00232 infoc_1.ok);
00233 infoc_1.infot = 2;
00234 zgelsy_(&c__0, &c_n1, &c__0, a, &c__1, b, &c__1, ip, &rcond, &irnk, w,
00235 &c__10, rw, &info);
00236 chkxer_("ZGELSY", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00237 infoc_1.ok);
00238 infoc_1.infot = 3;
00239 zgelsy_(&c__0, &c__0, &c_n1, a, &c__1, b, &c__1, ip, &rcond, &irnk, w,
00240 &c__10, rw, &info);
00241 chkxer_("ZGELSY", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00242 infoc_1.ok);
00243 infoc_1.infot = 5;
00244 zgelsy_(&c__2, &c__0, &c__0, a, &c__1, b, &c__2, ip, &rcond, &irnk, w,
00245 &c__10, rw, &info);
00246 chkxer_("ZGELSY", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00247 infoc_1.ok);
00248 infoc_1.infot = 7;
00249 zgelsy_(&c__2, &c__0, &c__0, a, &c__2, b, &c__1, ip, &rcond, &irnk, w,
00250 &c__10, rw, &info);
00251 chkxer_("ZGELSY", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00252 infoc_1.ok);
00253 infoc_1.infot = 12;
00254 zgelsy_(&c__0, &c__3, &c__0, a, &c__1, b, &c__3, ip, &rcond, &irnk, w,
00255 &c__1, rw, &info);
00256 chkxer_("ZGELSY", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00257 infoc_1.ok);
00258
00259
00260
00261 s_copy(srnamc_1.srnamt, "ZGELSD", (ftnlen)32, (ftnlen)6);
00262 infoc_1.infot = 1;
00263 zgelsd_(&c_n1, &c__0, &c__0, a, &c__1, b, &c__1, s, &rcond, &irnk, w,
00264 &c__10, rw, ip, &info);
00265 chkxer_("ZGELSD", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00266 infoc_1.ok);
00267 infoc_1.infot = 2;
00268 zgelsd_(&c__0, &c_n1, &c__0, a, &c__1, b, &c__1, s, &rcond, &irnk, w,
00269 &c__10, rw, ip, &info);
00270 chkxer_("ZGELSD", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00271 infoc_1.ok);
00272 infoc_1.infot = 3;
00273 zgelsd_(&c__0, &c__0, &c_n1, a, &c__1, b, &c__1, s, &rcond, &irnk, w,
00274 &c__10, rw, ip, &info);
00275 chkxer_("ZGELSD", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00276 infoc_1.ok);
00277 infoc_1.infot = 5;
00278 zgelsd_(&c__2, &c__0, &c__0, a, &c__1, b, &c__2, s, &rcond, &irnk, w,
00279 &c__10, rw, ip, &info);
00280 chkxer_("ZGELSD", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00281 infoc_1.ok);
00282 infoc_1.infot = 7;
00283 zgelsd_(&c__2, &c__0, &c__0, a, &c__2, b, &c__1, s, &rcond, &irnk, w,
00284 &c__10, rw, ip, &info);
00285 chkxer_("ZGELSD", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00286 infoc_1.ok);
00287 infoc_1.infot = 12;
00288 zgelsd_(&c__2, &c__2, &c__1, a, &c__2, b, &c__2, s, &rcond, &irnk, w,
00289 &c__1, rw, ip, &info);
00290 chkxer_("ZGELSD", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, &
00291 infoc_1.ok);
00292 }
00293
00294
00295
00296 alaesm_(path, &infoc_1.ok, &infoc_1.nout);
00297
00298 return 0;
00299
00300
00301
00302 }