slarfx.c
Go to the documentation of this file.
00001 /* slarfx.f -- translated by f2c (version 20061008).
00002    You must link the resulting object file with libf2c:
00003         on Microsoft Windows system, link with libf2c.lib;
00004         on Linux or Unix systems, link with .../path/to/libf2c.a -lm
00005         or, if you install libf2c.a in a standard place, with -lf2c -lm
00006         -- in that order, at the end of the command line, as in
00007                 cc *.o -lf2c -lm
00008         Source for libf2c is in /netlib/f2c/libf2c.zip, e.g.,
00009 
00010                 http://www.netlib.org/f2c/libf2c.zip
00011 */
00012 
00013 #include "f2c.h"
00014 #include "blaswrap.h"
00015 
00016 /* Table of constant values */
00017 
00018 static integer c__1 = 1;
00019 
00020 /* Subroutine */ int slarfx_(char *side, integer *m, integer *n, real *v, 
00021         real *tau, real *c__, integer *ldc, real *work)
00022 {
00023     /* System generated locals */
00024     integer c_dim1, c_offset, i__1;
00025 
00026     /* Local variables */
00027     integer j;
00028     real t1, t2, t3, t4, t5, t6, t7, t8, t9, v1, v2, v3, v4, v5, v6, v7, v8, 
00029             v9, t10, v10, sum;
00030     extern logical lsame_(char *, char *);
00031     extern /* Subroutine */ int slarf_(char *, integer *, integer *, real *, 
00032             integer *, real *, real *, integer *, real *);
00033 
00034 
00035 /*  -- LAPACK auxiliary routine (version 3.2) -- */
00036 /*     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. */
00037 /*     November 2006 */
00038 
00039 /*     .. Scalar Arguments .. */
00040 /*     .. */
00041 /*     .. Array Arguments .. */
00042 /*     .. */
00043 
00044 /*  Purpose */
00045 /*  ======= */
00046 
00047 /*  SLARFX applies a real elementary reflector H to a real m by n */
00048 /*  matrix C, from either the left or the right. H is represented in the */
00049 /*  form */
00050 
00051 /*        H = I - tau * v * v' */
00052 
00053 /*  where tau is a real scalar and v is a real vector. */
00054 
00055 /*  If tau = 0, then H is taken to be the unit matrix */
00056 
00057 /*  This version uses inline code if H has order < 11. */
00058 
00059 /*  Arguments */
00060 /*  ========= */
00061 
00062 /*  SIDE    (input) CHARACTER*1 */
00063 /*          = 'L': form  H * C */
00064 /*          = 'R': form  C * H */
00065 
00066 /*  M       (input) INTEGER */
00067 /*          The number of rows of the matrix C. */
00068 
00069 /*  N       (input) INTEGER */
00070 /*          The number of columns of the matrix C. */
00071 
00072 /*  V       (input) REAL array, dimension (M) if SIDE = 'L' */
00073 /*                                     or (N) if SIDE = 'R' */
00074 /*          The vector v in the representation of H. */
00075 
00076 /*  TAU     (input) REAL */
00077 /*          The value tau in the representation of H. */
00078 
00079 /*  C       (input/output) REAL array, dimension (LDC,N) */
00080 /*          On entry, the m by n matrix C. */
00081 /*          On exit, C is overwritten by the matrix H * C if SIDE = 'L', */
00082 /*          or C * H if SIDE = 'R'. */
00083 
00084 /*  LDC     (input) INTEGER */
00085 /*          The leading dimension of the array C. LDA >= (1,M). */
00086 
00087 /*  WORK    (workspace) REAL array, dimension */
00088 /*                      (N) if SIDE = 'L' */
00089 /*                      or (M) if SIDE = 'R' */
00090 /*          WORK is not referenced if H has order < 11. */
00091 
00092 /*  ===================================================================== */
00093 
00094 /*     .. Parameters .. */
00095 /*     .. */
00096 /*     .. Local Scalars .. */
00097 /*     .. */
00098 /*     .. External Functions .. */
00099 /*     .. */
00100 /*     .. External Subroutines .. */
00101 /*     .. */
00102 /*     .. Executable Statements .. */
00103 
00104     /* Parameter adjustments */
00105     --v;
00106     c_dim1 = *ldc;
00107     c_offset = 1 + c_dim1;
00108     c__ -= c_offset;
00109     --work;
00110 
00111     /* Function Body */
00112     if (*tau == 0.f) {
00113         return 0;
00114     }
00115     if (lsame_(side, "L")) {
00116 
00117 /*        Form  H * C, where H has order m. */
00118 
00119         switch (*m) {
00120             case 1:  goto L10;
00121             case 2:  goto L30;
00122             case 3:  goto L50;
00123             case 4:  goto L70;
00124             case 5:  goto L90;
00125             case 6:  goto L110;
00126             case 7:  goto L130;
00127             case 8:  goto L150;
00128             case 9:  goto L170;
00129             case 10:  goto L190;
00130         }
00131 
00132 /*        Code for general M */
00133 
00134         slarf_(side, m, n, &v[1], &c__1, tau, &c__[c_offset], ldc, &work[1]);
00135         goto L410;
00136 L10:
00137 
00138 /*        Special code for 1 x 1 Householder */
00139 
00140         t1 = 1.f - *tau * v[1] * v[1];
00141         i__1 = *n;
00142         for (j = 1; j <= i__1; ++j) {
00143             c__[j * c_dim1 + 1] = t1 * c__[j * c_dim1 + 1];
00144 /* L20: */
00145         }
00146         goto L410;
00147 L30:
00148 
00149 /*        Special code for 2 x 2 Householder */
00150 
00151         v1 = v[1];
00152         t1 = *tau * v1;
00153         v2 = v[2];
00154         t2 = *tau * v2;
00155         i__1 = *n;
00156         for (j = 1; j <= i__1; ++j) {
00157             sum = v1 * c__[j * c_dim1 + 1] + v2 * c__[j * c_dim1 + 2];
00158             c__[j * c_dim1 + 1] -= sum * t1;
00159             c__[j * c_dim1 + 2] -= sum * t2;
00160 /* L40: */
00161         }
00162         goto L410;
00163 L50:
00164 
00165 /*        Special code for 3 x 3 Householder */
00166 
00167         v1 = v[1];
00168         t1 = *tau * v1;
00169         v2 = v[2];
00170         t2 = *tau * v2;
00171         v3 = v[3];
00172         t3 = *tau * v3;
00173         i__1 = *n;
00174         for (j = 1; j <= i__1; ++j) {
00175             sum = v1 * c__[j * c_dim1 + 1] + v2 * c__[j * c_dim1 + 2] + v3 * 
00176                     c__[j * c_dim1 + 3];
00177             c__[j * c_dim1 + 1] -= sum * t1;
00178             c__[j * c_dim1 + 2] -= sum * t2;
00179             c__[j * c_dim1 + 3] -= sum * t3;
00180 /* L60: */
00181         }
00182         goto L410;
00183 L70:
00184 
00185 /*        Special code for 4 x 4 Householder */
00186 
00187         v1 = v[1];
00188         t1 = *tau * v1;
00189         v2 = v[2];
00190         t2 = *tau * v2;
00191         v3 = v[3];
00192         t3 = *tau * v3;
00193         v4 = v[4];
00194         t4 = *tau * v4;
00195         i__1 = *n;
00196         for (j = 1; j <= i__1; ++j) {
00197             sum = v1 * c__[j * c_dim1 + 1] + v2 * c__[j * c_dim1 + 2] + v3 * 
00198                     c__[j * c_dim1 + 3] + v4 * c__[j * c_dim1 + 4];
00199             c__[j * c_dim1 + 1] -= sum * t1;
00200             c__[j * c_dim1 + 2] -= sum * t2;
00201             c__[j * c_dim1 + 3] -= sum * t3;
00202             c__[j * c_dim1 + 4] -= sum * t4;
00203 /* L80: */
00204         }
00205         goto L410;
00206 L90:
00207 
00208 /*        Special code for 5 x 5 Householder */
00209 
00210         v1 = v[1];
00211         t1 = *tau * v1;
00212         v2 = v[2];
00213         t2 = *tau * v2;
00214         v3 = v[3];
00215         t3 = *tau * v3;
00216         v4 = v[4];
00217         t4 = *tau * v4;
00218         v5 = v[5];
00219         t5 = *tau * v5;
00220         i__1 = *n;
00221         for (j = 1; j <= i__1; ++j) {
00222             sum = v1 * c__[j * c_dim1 + 1] + v2 * c__[j * c_dim1 + 2] + v3 * 
00223                     c__[j * c_dim1 + 3] + v4 * c__[j * c_dim1 + 4] + v5 * c__[
00224                     j * c_dim1 + 5];
00225             c__[j * c_dim1 + 1] -= sum * t1;
00226             c__[j * c_dim1 + 2] -= sum * t2;
00227             c__[j * c_dim1 + 3] -= sum * t3;
00228             c__[j * c_dim1 + 4] -= sum * t4;
00229             c__[j * c_dim1 + 5] -= sum * t5;
00230 /* L100: */
00231         }
00232         goto L410;
00233 L110:
00234 
00235 /*        Special code for 6 x 6 Householder */
00236 
00237         v1 = v[1];
00238         t1 = *tau * v1;
00239         v2 = v[2];
00240         t2 = *tau * v2;
00241         v3 = v[3];
00242         t3 = *tau * v3;
00243         v4 = v[4];
00244         t4 = *tau * v4;
00245         v5 = v[5];
00246         t5 = *tau * v5;
00247         v6 = v[6];
00248         t6 = *tau * v6;
00249         i__1 = *n;
00250         for (j = 1; j <= i__1; ++j) {
00251             sum = v1 * c__[j * c_dim1 + 1] + v2 * c__[j * c_dim1 + 2] + v3 * 
00252                     c__[j * c_dim1 + 3] + v4 * c__[j * c_dim1 + 4] + v5 * c__[
00253                     j * c_dim1 + 5] + v6 * c__[j * c_dim1 + 6];
00254             c__[j * c_dim1 + 1] -= sum * t1;
00255             c__[j * c_dim1 + 2] -= sum * t2;
00256             c__[j * c_dim1 + 3] -= sum * t3;
00257             c__[j * c_dim1 + 4] -= sum * t4;
00258             c__[j * c_dim1 + 5] -= sum * t5;
00259             c__[j * c_dim1 + 6] -= sum * t6;
00260 /* L120: */
00261         }
00262         goto L410;
00263 L130:
00264 
00265 /*        Special code for 7 x 7 Householder */
00266 
00267         v1 = v[1];
00268         t1 = *tau * v1;
00269         v2 = v[2];
00270         t2 = *tau * v2;
00271         v3 = v[3];
00272         t3 = *tau * v3;
00273         v4 = v[4];
00274         t4 = *tau * v4;
00275         v5 = v[5];
00276         t5 = *tau * v5;
00277         v6 = v[6];
00278         t6 = *tau * v6;
00279         v7 = v[7];
00280         t7 = *tau * v7;
00281         i__1 = *n;
00282         for (j = 1; j <= i__1; ++j) {
00283             sum = v1 * c__[j * c_dim1 + 1] + v2 * c__[j * c_dim1 + 2] + v3 * 
00284                     c__[j * c_dim1 + 3] + v4 * c__[j * c_dim1 + 4] + v5 * c__[
00285                     j * c_dim1 + 5] + v6 * c__[j * c_dim1 + 6] + v7 * c__[j * 
00286                     c_dim1 + 7];
00287             c__[j * c_dim1 + 1] -= sum * t1;
00288             c__[j * c_dim1 + 2] -= sum * t2;
00289             c__[j * c_dim1 + 3] -= sum * t3;
00290             c__[j * c_dim1 + 4] -= sum * t4;
00291             c__[j * c_dim1 + 5] -= sum * t5;
00292             c__[j * c_dim1 + 6] -= sum * t6;
00293             c__[j * c_dim1 + 7] -= sum * t7;
00294 /* L140: */
00295         }
00296         goto L410;
00297 L150:
00298 
00299 /*        Special code for 8 x 8 Householder */
00300 
00301         v1 = v[1];
00302         t1 = *tau * v1;
00303         v2 = v[2];
00304         t2 = *tau * v2;
00305         v3 = v[3];
00306         t3 = *tau * v3;
00307         v4 = v[4];
00308         t4 = *tau * v4;
00309         v5 = v[5];
00310         t5 = *tau * v5;
00311         v6 = v[6];
00312         t6 = *tau * v6;
00313         v7 = v[7];
00314         t7 = *tau * v7;
00315         v8 = v[8];
00316         t8 = *tau * v8;
00317         i__1 = *n;
00318         for (j = 1; j <= i__1; ++j) {
00319             sum = v1 * c__[j * c_dim1 + 1] + v2 * c__[j * c_dim1 + 2] + v3 * 
00320                     c__[j * c_dim1 + 3] + v4 * c__[j * c_dim1 + 4] + v5 * c__[
00321                     j * c_dim1 + 5] + v6 * c__[j * c_dim1 + 6] + v7 * c__[j * 
00322                     c_dim1 + 7] + v8 * c__[j * c_dim1 + 8];
00323             c__[j * c_dim1 + 1] -= sum * t1;
00324             c__[j * c_dim1 + 2] -= sum * t2;
00325             c__[j * c_dim1 + 3] -= sum * t3;
00326             c__[j * c_dim1 + 4] -= sum * t4;
00327             c__[j * c_dim1 + 5] -= sum * t5;
00328             c__[j * c_dim1 + 6] -= sum * t6;
00329             c__[j * c_dim1 + 7] -= sum * t7;
00330             c__[j * c_dim1 + 8] -= sum * t8;
00331 /* L160: */
00332         }
00333         goto L410;
00334 L170:
00335 
00336 /*        Special code for 9 x 9 Householder */
00337 
00338         v1 = v[1];
00339         t1 = *tau * v1;
00340         v2 = v[2];
00341         t2 = *tau * v2;
00342         v3 = v[3];
00343         t3 = *tau * v3;
00344         v4 = v[4];
00345         t4 = *tau * v4;
00346         v5 = v[5];
00347         t5 = *tau * v5;
00348         v6 = v[6];
00349         t6 = *tau * v6;
00350         v7 = v[7];
00351         t7 = *tau * v7;
00352         v8 = v[8];
00353         t8 = *tau * v8;
00354         v9 = v[9];
00355         t9 = *tau * v9;
00356         i__1 = *n;
00357         for (j = 1; j <= i__1; ++j) {
00358             sum = v1 * c__[j * c_dim1 + 1] + v2 * c__[j * c_dim1 + 2] + v3 * 
00359                     c__[j * c_dim1 + 3] + v4 * c__[j * c_dim1 + 4] + v5 * c__[
00360                     j * c_dim1 + 5] + v6 * c__[j * c_dim1 + 6] + v7 * c__[j * 
00361                     c_dim1 + 7] + v8 * c__[j * c_dim1 + 8] + v9 * c__[j * 
00362                     c_dim1 + 9];
00363             c__[j * c_dim1 + 1] -= sum * t1;
00364             c__[j * c_dim1 + 2] -= sum * t2;
00365             c__[j * c_dim1 + 3] -= sum * t3;
00366             c__[j * c_dim1 + 4] -= sum * t4;
00367             c__[j * c_dim1 + 5] -= sum * t5;
00368             c__[j * c_dim1 + 6] -= sum * t6;
00369             c__[j * c_dim1 + 7] -= sum * t7;
00370             c__[j * c_dim1 + 8] -= sum * t8;
00371             c__[j * c_dim1 + 9] -= sum * t9;
00372 /* L180: */
00373         }
00374         goto L410;
00375 L190:
00376 
00377 /*        Special code for 10 x 10 Householder */
00378 
00379         v1 = v[1];
00380         t1 = *tau * v1;
00381         v2 = v[2];
00382         t2 = *tau * v2;
00383         v3 = v[3];
00384         t3 = *tau * v3;
00385         v4 = v[4];
00386         t4 = *tau * v4;
00387         v5 = v[5];
00388         t5 = *tau * v5;
00389         v6 = v[6];
00390         t6 = *tau * v6;
00391         v7 = v[7];
00392         t7 = *tau * v7;
00393         v8 = v[8];
00394         t8 = *tau * v8;
00395         v9 = v[9];
00396         t9 = *tau * v9;
00397         v10 = v[10];
00398         t10 = *tau * v10;
00399         i__1 = *n;
00400         for (j = 1; j <= i__1; ++j) {
00401             sum = v1 * c__[j * c_dim1 + 1] + v2 * c__[j * c_dim1 + 2] + v3 * 
00402                     c__[j * c_dim1 + 3] + v4 * c__[j * c_dim1 + 4] + v5 * c__[
00403                     j * c_dim1 + 5] + v6 * c__[j * c_dim1 + 6] + v7 * c__[j * 
00404                     c_dim1 + 7] + v8 * c__[j * c_dim1 + 8] + v9 * c__[j * 
00405                     c_dim1 + 9] + v10 * c__[j * c_dim1 + 10];
00406             c__[j * c_dim1 + 1] -= sum * t1;
00407             c__[j * c_dim1 + 2] -= sum * t2;
00408             c__[j * c_dim1 + 3] -= sum * t3;
00409             c__[j * c_dim1 + 4] -= sum * t4;
00410             c__[j * c_dim1 + 5] -= sum * t5;
00411             c__[j * c_dim1 + 6] -= sum * t6;
00412             c__[j * c_dim1 + 7] -= sum * t7;
00413             c__[j * c_dim1 + 8] -= sum * t8;
00414             c__[j * c_dim1 + 9] -= sum * t9;
00415             c__[j * c_dim1 + 10] -= sum * t10;
00416 /* L200: */
00417         }
00418         goto L410;
00419     } else {
00420 
00421 /*        Form  C * H, where H has order n. */
00422 
00423         switch (*n) {
00424             case 1:  goto L210;
00425             case 2:  goto L230;
00426             case 3:  goto L250;
00427             case 4:  goto L270;
00428             case 5:  goto L290;
00429             case 6:  goto L310;
00430             case 7:  goto L330;
00431             case 8:  goto L350;
00432             case 9:  goto L370;
00433             case 10:  goto L390;
00434         }
00435 
00436 /*        Code for general N */
00437 
00438         slarf_(side, m, n, &v[1], &c__1, tau, &c__[c_offset], ldc, &work[1]);
00439         goto L410;
00440 L210:
00441 
00442 /*        Special code for 1 x 1 Householder */
00443 
00444         t1 = 1.f - *tau * v[1] * v[1];
00445         i__1 = *m;
00446         for (j = 1; j <= i__1; ++j) {
00447             c__[j + c_dim1] = t1 * c__[j + c_dim1];
00448 /* L220: */
00449         }
00450         goto L410;
00451 L230:
00452 
00453 /*        Special code for 2 x 2 Householder */
00454 
00455         v1 = v[1];
00456         t1 = *tau * v1;
00457         v2 = v[2];
00458         t2 = *tau * v2;
00459         i__1 = *m;
00460         for (j = 1; j <= i__1; ++j) {
00461             sum = v1 * c__[j + c_dim1] + v2 * c__[j + (c_dim1 << 1)];
00462             c__[j + c_dim1] -= sum * t1;
00463             c__[j + (c_dim1 << 1)] -= sum * t2;
00464 /* L240: */
00465         }
00466         goto L410;
00467 L250:
00468 
00469 /*        Special code for 3 x 3 Householder */
00470 
00471         v1 = v[1];
00472         t1 = *tau * v1;
00473         v2 = v[2];
00474         t2 = *tau * v2;
00475         v3 = v[3];
00476         t3 = *tau * v3;
00477         i__1 = *m;
00478         for (j = 1; j <= i__1; ++j) {
00479             sum = v1 * c__[j + c_dim1] + v2 * c__[j + (c_dim1 << 1)] + v3 * 
00480                     c__[j + c_dim1 * 3];
00481             c__[j + c_dim1] -= sum * t1;
00482             c__[j + (c_dim1 << 1)] -= sum * t2;
00483             c__[j + c_dim1 * 3] -= sum * t3;
00484 /* L260: */
00485         }
00486         goto L410;
00487 L270:
00488 
00489 /*        Special code for 4 x 4 Householder */
00490 
00491         v1 = v[1];
00492         t1 = *tau * v1;
00493         v2 = v[2];
00494         t2 = *tau * v2;
00495         v3 = v[3];
00496         t3 = *tau * v3;
00497         v4 = v[4];
00498         t4 = *tau * v4;
00499         i__1 = *m;
00500         for (j = 1; j <= i__1; ++j) {
00501             sum = v1 * c__[j + c_dim1] + v2 * c__[j + (c_dim1 << 1)] + v3 * 
00502                     c__[j + c_dim1 * 3] + v4 * c__[j + (c_dim1 << 2)];
00503             c__[j + c_dim1] -= sum * t1;
00504             c__[j + (c_dim1 << 1)] -= sum * t2;
00505             c__[j + c_dim1 * 3] -= sum * t3;
00506             c__[j + (c_dim1 << 2)] -= sum * t4;
00507 /* L280: */
00508         }
00509         goto L410;
00510 L290:
00511 
00512 /*        Special code for 5 x 5 Householder */
00513 
00514         v1 = v[1];
00515         t1 = *tau * v1;
00516         v2 = v[2];
00517         t2 = *tau * v2;
00518         v3 = v[3];
00519         t3 = *tau * v3;
00520         v4 = v[4];
00521         t4 = *tau * v4;
00522         v5 = v[5];
00523         t5 = *tau * v5;
00524         i__1 = *m;
00525         for (j = 1; j <= i__1; ++j) {
00526             sum = v1 * c__[j + c_dim1] + v2 * c__[j + (c_dim1 << 1)] + v3 * 
00527                     c__[j + c_dim1 * 3] + v4 * c__[j + (c_dim1 << 2)] + v5 * 
00528                     c__[j + c_dim1 * 5];
00529             c__[j + c_dim1] -= sum * t1;
00530             c__[j + (c_dim1 << 1)] -= sum * t2;
00531             c__[j + c_dim1 * 3] -= sum * t3;
00532             c__[j + (c_dim1 << 2)] -= sum * t4;
00533             c__[j + c_dim1 * 5] -= sum * t5;
00534 /* L300: */
00535         }
00536         goto L410;
00537 L310:
00538 
00539 /*        Special code for 6 x 6 Householder */
00540 
00541         v1 = v[1];
00542         t1 = *tau * v1;
00543         v2 = v[2];
00544         t2 = *tau * v2;
00545         v3 = v[3];
00546         t3 = *tau * v3;
00547         v4 = v[4];
00548         t4 = *tau * v4;
00549         v5 = v[5];
00550         t5 = *tau * v5;
00551         v6 = v[6];
00552         t6 = *tau * v6;
00553         i__1 = *m;
00554         for (j = 1; j <= i__1; ++j) {
00555             sum = v1 * c__[j + c_dim1] + v2 * c__[j + (c_dim1 << 1)] + v3 * 
00556                     c__[j + c_dim1 * 3] + v4 * c__[j + (c_dim1 << 2)] + v5 * 
00557                     c__[j + c_dim1 * 5] + v6 * c__[j + c_dim1 * 6];
00558             c__[j + c_dim1] -= sum * t1;
00559             c__[j + (c_dim1 << 1)] -= sum * t2;
00560             c__[j + c_dim1 * 3] -= sum * t3;
00561             c__[j + (c_dim1 << 2)] -= sum * t4;
00562             c__[j + c_dim1 * 5] -= sum * t5;
00563             c__[j + c_dim1 * 6] -= sum * t6;
00564 /* L320: */
00565         }
00566         goto L410;
00567 L330:
00568 
00569 /*        Special code for 7 x 7 Householder */
00570 
00571         v1 = v[1];
00572         t1 = *tau * v1;
00573         v2 = v[2];
00574         t2 = *tau * v2;
00575         v3 = v[3];
00576         t3 = *tau * v3;
00577         v4 = v[4];
00578         t4 = *tau * v4;
00579         v5 = v[5];
00580         t5 = *tau * v5;
00581         v6 = v[6];
00582         t6 = *tau * v6;
00583         v7 = v[7];
00584         t7 = *tau * v7;
00585         i__1 = *m;
00586         for (j = 1; j <= i__1; ++j) {
00587             sum = v1 * c__[j + c_dim1] + v2 * c__[j + (c_dim1 << 1)] + v3 * 
00588                     c__[j + c_dim1 * 3] + v4 * c__[j + (c_dim1 << 2)] + v5 * 
00589                     c__[j + c_dim1 * 5] + v6 * c__[j + c_dim1 * 6] + v7 * c__[
00590                     j + c_dim1 * 7];
00591             c__[j + c_dim1] -= sum * t1;
00592             c__[j + (c_dim1 << 1)] -= sum * t2;
00593             c__[j + c_dim1 * 3] -= sum * t3;
00594             c__[j + (c_dim1 << 2)] -= sum * t4;
00595             c__[j + c_dim1 * 5] -= sum * t5;
00596             c__[j + c_dim1 * 6] -= sum * t6;
00597             c__[j + c_dim1 * 7] -= sum * t7;
00598 /* L340: */
00599         }
00600         goto L410;
00601 L350:
00602 
00603 /*        Special code for 8 x 8 Householder */
00604 
00605         v1 = v[1];
00606         t1 = *tau * v1;
00607         v2 = v[2];
00608         t2 = *tau * v2;
00609         v3 = v[3];
00610         t3 = *tau * v3;
00611         v4 = v[4];
00612         t4 = *tau * v4;
00613         v5 = v[5];
00614         t5 = *tau * v5;
00615         v6 = v[6];
00616         t6 = *tau * v6;
00617         v7 = v[7];
00618         t7 = *tau * v7;
00619         v8 = v[8];
00620         t8 = *tau * v8;
00621         i__1 = *m;
00622         for (j = 1; j <= i__1; ++j) {
00623             sum = v1 * c__[j + c_dim1] + v2 * c__[j + (c_dim1 << 1)] + v3 * 
00624                     c__[j + c_dim1 * 3] + v4 * c__[j + (c_dim1 << 2)] + v5 * 
00625                     c__[j + c_dim1 * 5] + v6 * c__[j + c_dim1 * 6] + v7 * c__[
00626                     j + c_dim1 * 7] + v8 * c__[j + (c_dim1 << 3)];
00627             c__[j + c_dim1] -= sum * t1;
00628             c__[j + (c_dim1 << 1)] -= sum * t2;
00629             c__[j + c_dim1 * 3] -= sum * t3;
00630             c__[j + (c_dim1 << 2)] -= sum * t4;
00631             c__[j + c_dim1 * 5] -= sum * t5;
00632             c__[j + c_dim1 * 6] -= sum * t6;
00633             c__[j + c_dim1 * 7] -= sum * t7;
00634             c__[j + (c_dim1 << 3)] -= sum * t8;
00635 /* L360: */
00636         }
00637         goto L410;
00638 L370:
00639 
00640 /*        Special code for 9 x 9 Householder */
00641 
00642         v1 = v[1];
00643         t1 = *tau * v1;
00644         v2 = v[2];
00645         t2 = *tau * v2;
00646         v3 = v[3];
00647         t3 = *tau * v3;
00648         v4 = v[4];
00649         t4 = *tau * v4;
00650         v5 = v[5];
00651         t5 = *tau * v5;
00652         v6 = v[6];
00653         t6 = *tau * v6;
00654         v7 = v[7];
00655         t7 = *tau * v7;
00656         v8 = v[8];
00657         t8 = *tau * v8;
00658         v9 = v[9];
00659         t9 = *tau * v9;
00660         i__1 = *m;
00661         for (j = 1; j <= i__1; ++j) {
00662             sum = v1 * c__[j + c_dim1] + v2 * c__[j + (c_dim1 << 1)] + v3 * 
00663                     c__[j + c_dim1 * 3] + v4 * c__[j + (c_dim1 << 2)] + v5 * 
00664                     c__[j + c_dim1 * 5] + v6 * c__[j + c_dim1 * 6] + v7 * c__[
00665                     j + c_dim1 * 7] + v8 * c__[j + (c_dim1 << 3)] + v9 * c__[
00666                     j + c_dim1 * 9];
00667             c__[j + c_dim1] -= sum * t1;
00668             c__[j + (c_dim1 << 1)] -= sum * t2;
00669             c__[j + c_dim1 * 3] -= sum * t3;
00670             c__[j + (c_dim1 << 2)] -= sum * t4;
00671             c__[j + c_dim1 * 5] -= sum * t5;
00672             c__[j + c_dim1 * 6] -= sum * t6;
00673             c__[j + c_dim1 * 7] -= sum * t7;
00674             c__[j + (c_dim1 << 3)] -= sum * t8;
00675             c__[j + c_dim1 * 9] -= sum * t9;
00676 /* L380: */
00677         }
00678         goto L410;
00679 L390:
00680 
00681 /*        Special code for 10 x 10 Householder */
00682 
00683         v1 = v[1];
00684         t1 = *tau * v1;
00685         v2 = v[2];
00686         t2 = *tau * v2;
00687         v3 = v[3];
00688         t3 = *tau * v3;
00689         v4 = v[4];
00690         t4 = *tau * v4;
00691         v5 = v[5];
00692         t5 = *tau * v5;
00693         v6 = v[6];
00694         t6 = *tau * v6;
00695         v7 = v[7];
00696         t7 = *tau * v7;
00697         v8 = v[8];
00698         t8 = *tau * v8;
00699         v9 = v[9];
00700         t9 = *tau * v9;
00701         v10 = v[10];
00702         t10 = *tau * v10;
00703         i__1 = *m;
00704         for (j = 1; j <= i__1; ++j) {
00705             sum = v1 * c__[j + c_dim1] + v2 * c__[j + (c_dim1 << 1)] + v3 * 
00706                     c__[j + c_dim1 * 3] + v4 * c__[j + (c_dim1 << 2)] + v5 * 
00707                     c__[j + c_dim1 * 5] + v6 * c__[j + c_dim1 * 6] + v7 * c__[
00708                     j + c_dim1 * 7] + v8 * c__[j + (c_dim1 << 3)] + v9 * c__[
00709                     j + c_dim1 * 9] + v10 * c__[j + c_dim1 * 10];
00710             c__[j + c_dim1] -= sum * t1;
00711             c__[j + (c_dim1 << 1)] -= sum * t2;
00712             c__[j + c_dim1 * 3] -= sum * t3;
00713             c__[j + (c_dim1 << 2)] -= sum * t4;
00714             c__[j + c_dim1 * 5] -= sum * t5;
00715             c__[j + c_dim1 * 6] -= sum * t6;
00716             c__[j + c_dim1 * 7] -= sum * t7;
00717             c__[j + (c_dim1 << 3)] -= sum * t8;
00718             c__[j + c_dim1 * 9] -= sum * t9;
00719             c__[j + c_dim1 * 10] -= sum * t10;
00720 /* L400: */
00721         }
00722         goto L410;
00723     }
00724 L410:
00725     return 0;
00726 
00727 /*     End of SLARFX */
00728 
00729 } /* slarfx_ */


swiftnav
Author(s):
autogenerated on Sat Jun 8 2019 18:56:11