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


swiftnav
Author(s):
autogenerated on Sat Jun 8 2019 18:55:46