LAPACK 3.3.1 Linear Algebra PACKage

# dlarfx.f

Go to the documentation of this file.
```00001       SUBROUTINE DLARFX( SIDE, M, N, V, TAU, C, LDC, WORK )
00002       IMPLICIT NONE
00003 *
00004 *  -- LAPACK auxiliary routine (version 3.3.1) --
00005 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
00006 *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
00007 *  -- April 2011                                                      --
00008 *
00009 *     .. Scalar Arguments ..
00010       CHARACTER          SIDE
00011       INTEGER            LDC, M, N
00012       DOUBLE PRECISION   TAU
00013 *     ..
00014 *     .. Array Arguments ..
00015       DOUBLE PRECISION   C( LDC, * ), V( * ), WORK( * )
00016 *     ..
00017 *
00018 *  Purpose
00019 *  =======
00020 *
00021 *  DLARFX applies a real elementary reflector H to a real m by n
00022 *  matrix C, from either the left or the right. H is represented in the
00023 *  form
00024 *
00025 *        H = I - tau * v * v**T
00026 *
00027 *  where tau is a real scalar and v is a real vector.
00028 *
00029 *  If tau = 0, then H is taken to be the unit matrix
00030 *
00031 *  This version uses inline code if H has order < 11.
00032 *
00033 *  Arguments
00034 *  =========
00035 *
00036 *  SIDE    (input) CHARACTER*1
00037 *          = 'L': form  H * C
00038 *          = 'R': form  C * H
00039 *
00040 *  M       (input) INTEGER
00041 *          The number of rows of the matrix C.
00042 *
00043 *  N       (input) INTEGER
00044 *          The number of columns of the matrix C.
00045 *
00046 *  V       (input) DOUBLE PRECISION array, dimension (M) if SIDE = 'L'
00047 *                                     or (N) if SIDE = 'R'
00048 *          The vector v in the representation of H.
00049 *
00050 *  TAU     (input) DOUBLE PRECISION
00051 *          The value tau in the representation of H.
00052 *
00053 *  C       (input/output) DOUBLE PRECISION array, dimension (LDC,N)
00054 *          On entry, the m by n matrix C.
00055 *          On exit, C is overwritten by the matrix H * C if SIDE = 'L',
00056 *          or C * H if SIDE = 'R'.
00057 *
00058 *  LDC     (input) INTEGER
00059 *          The leading dimension of the array C. LDA >= (1,M).
00060 *
00061 *  WORK    (workspace) DOUBLE PRECISION array, dimension
00062 *                      (N) if SIDE = 'L'
00063 *                      or (M) if SIDE = 'R'
00064 *          WORK is not referenced if H has order < 11.
00065 *
00066 *  =====================================================================
00067 *
00068 *     .. Parameters ..
00069       DOUBLE PRECISION   ZERO, ONE
00070       PARAMETER          ( ZERO = 0.0D+0, ONE = 1.0D+0 )
00071 *     ..
00072 *     .. Local Scalars ..
00073       INTEGER            J
00074       DOUBLE PRECISION   SUM, T1, T10, T2, T3, T4, T5, T6, T7, T8, T9,
00075      \$                   V1, V10, V2, V3, V4, V5, V6, V7, V8, V9
00076 *     ..
00077 *     .. External Functions ..
00078       LOGICAL            LSAME
00079       EXTERNAL           LSAME
00080 *     ..
00081 *     .. External Subroutines ..
00082       EXTERNAL           DLARF
00083 *     ..
00084 *     .. Executable Statements ..
00085 *
00086       IF( TAU.EQ.ZERO )
00087      \$   RETURN
00088       IF( LSAME( SIDE, 'L' ) ) THEN
00089 *
00090 *        Form  H * C, where H has order m.
00091 *
00092          GO TO ( 10, 30, 50, 70, 90, 110, 130, 150,
00093      \$           170, 190 )M
00094 *
00095 *        Code for general M
00096 *
00097          CALL DLARF( SIDE, M, N, V, 1, TAU, C, LDC, WORK )
00098          GO TO 410
00099    10    CONTINUE
00100 *
00101 *        Special code for 1 x 1 Householder
00102 *
00103          T1 = ONE - TAU*V( 1 )*V( 1 )
00104          DO 20 J = 1, N
00105             C( 1, J ) = T1*C( 1, J )
00106    20    CONTINUE
00107          GO TO 410
00108    30    CONTINUE
00109 *
00110 *        Special code for 2 x 2 Householder
00111 *
00112          V1 = V( 1 )
00113          T1 = TAU*V1
00114          V2 = V( 2 )
00115          T2 = TAU*V2
00116          DO 40 J = 1, N
00117             SUM = V1*C( 1, J ) + V2*C( 2, J )
00118             C( 1, J ) = C( 1, J ) - SUM*T1
00119             C( 2, J ) = C( 2, J ) - SUM*T2
00120    40    CONTINUE
00121          GO TO 410
00122    50    CONTINUE
00123 *
00124 *        Special code for 3 x 3 Householder
00125 *
00126          V1 = V( 1 )
00127          T1 = TAU*V1
00128          V2 = V( 2 )
00129          T2 = TAU*V2
00130          V3 = V( 3 )
00131          T3 = TAU*V3
00132          DO 60 J = 1, N
00133             SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J )
00134             C( 1, J ) = C( 1, J ) - SUM*T1
00135             C( 2, J ) = C( 2, J ) - SUM*T2
00136             C( 3, J ) = C( 3, J ) - SUM*T3
00137    60    CONTINUE
00138          GO TO 410
00139    70    CONTINUE
00140 *
00141 *        Special code for 4 x 4 Householder
00142 *
00143          V1 = V( 1 )
00144          T1 = TAU*V1
00145          V2 = V( 2 )
00146          T2 = TAU*V2
00147          V3 = V( 3 )
00148          T3 = TAU*V3
00149          V4 = V( 4 )
00150          T4 = TAU*V4
00151          DO 80 J = 1, N
00152             SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) +
00153      \$            V4*C( 4, J )
00154             C( 1, J ) = C( 1, J ) - SUM*T1
00155             C( 2, J ) = C( 2, J ) - SUM*T2
00156             C( 3, J ) = C( 3, J ) - SUM*T3
00157             C( 4, J ) = C( 4, J ) - SUM*T4
00158    80    CONTINUE
00159          GO TO 410
00160    90    CONTINUE
00161 *
00162 *        Special code for 5 x 5 Householder
00163 *
00164          V1 = V( 1 )
00165          T1 = TAU*V1
00166          V2 = V( 2 )
00167          T2 = TAU*V2
00168          V3 = V( 3 )
00169          T3 = TAU*V3
00170          V4 = V( 4 )
00171          T4 = TAU*V4
00172          V5 = V( 5 )
00173          T5 = TAU*V5
00174          DO 100 J = 1, N
00175             SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) +
00176      \$            V4*C( 4, J ) + V5*C( 5, J )
00177             C( 1, J ) = C( 1, J ) - SUM*T1
00178             C( 2, J ) = C( 2, J ) - SUM*T2
00179             C( 3, J ) = C( 3, J ) - SUM*T3
00180             C( 4, J ) = C( 4, J ) - SUM*T4
00181             C( 5, J ) = C( 5, J ) - SUM*T5
00182   100    CONTINUE
00183          GO TO 410
00184   110    CONTINUE
00185 *
00186 *        Special code for 6 x 6 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          V5 = V( 5 )
00197          T5 = TAU*V5
00198          V6 = V( 6 )
00199          T6 = TAU*V6
00200          DO 120 J = 1, N
00201             SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) +
00202      \$            V4*C( 4, J ) + V5*C( 5, J ) + V6*C( 6, J )
00203             C( 1, J ) = C( 1, J ) - SUM*T1
00204             C( 2, J ) = C( 2, J ) - SUM*T2
00205             C( 3, J ) = C( 3, J ) - SUM*T3
00206             C( 4, J ) = C( 4, J ) - SUM*T4
00207             C( 5, J ) = C( 5, J ) - SUM*T5
00208             C( 6, J ) = C( 6, J ) - SUM*T6
00209   120    CONTINUE
00210          GO TO 410
00211   130    CONTINUE
00212 *
00213 *        Special code for 7 x 7 Householder
00214 *
00215          V1 = V( 1 )
00216          T1 = TAU*V1
00217          V2 = V( 2 )
00218          T2 = TAU*V2
00219          V3 = V( 3 )
00220          T3 = TAU*V3
00221          V4 = V( 4 )
00222          T4 = TAU*V4
00223          V5 = V( 5 )
00224          T5 = TAU*V5
00225          V6 = V( 6 )
00226          T6 = TAU*V6
00227          V7 = V( 7 )
00228          T7 = TAU*V7
00229          DO 140 J = 1, N
00230             SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) +
00231      \$            V4*C( 4, J ) + V5*C( 5, J ) + V6*C( 6, J ) +
00232      \$            V7*C( 7, J )
00233             C( 1, J ) = C( 1, J ) - SUM*T1
00234             C( 2, J ) = C( 2, J ) - SUM*T2
00235             C( 3, J ) = C( 3, J ) - SUM*T3
00236             C( 4, J ) = C( 4, J ) - SUM*T4
00237             C( 5, J ) = C( 5, J ) - SUM*T5
00238             C( 6, J ) = C( 6, J ) - SUM*T6
00239             C( 7, J ) = C( 7, J ) - SUM*T7
00240   140    CONTINUE
00241          GO TO 410
00242   150    CONTINUE
00243 *
00244 *        Special code for 8 x 8 Householder
00245 *
00246          V1 = V( 1 )
00247          T1 = TAU*V1
00248          V2 = V( 2 )
00249          T2 = TAU*V2
00250          V3 = V( 3 )
00251          T3 = TAU*V3
00252          V4 = V( 4 )
00253          T4 = TAU*V4
00254          V5 = V( 5 )
00255          T5 = TAU*V5
00256          V6 = V( 6 )
00257          T6 = TAU*V6
00258          V7 = V( 7 )
00259          T7 = TAU*V7
00260          V8 = V( 8 )
00261          T8 = TAU*V8
00262          DO 160 J = 1, N
00263             SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) +
00264      \$            V4*C( 4, J ) + V5*C( 5, J ) + V6*C( 6, J ) +
00265      \$            V7*C( 7, J ) + V8*C( 8, J )
00266             C( 1, J ) = C( 1, J ) - SUM*T1
00267             C( 2, J ) = C( 2, J ) - SUM*T2
00268             C( 3, J ) = C( 3, J ) - SUM*T3
00269             C( 4, J ) = C( 4, J ) - SUM*T4
00270             C( 5, J ) = C( 5, J ) - SUM*T5
00271             C( 6, J ) = C( 6, J ) - SUM*T6
00272             C( 7, J ) = C( 7, J ) - SUM*T7
00273             C( 8, J ) = C( 8, J ) - SUM*T8
00274   160    CONTINUE
00275          GO TO 410
00276   170    CONTINUE
00277 *
00278 *        Special code for 9 x 9 Householder
00279 *
00280          V1 = V( 1 )
00281          T1 = TAU*V1
00282          V2 = V( 2 )
00283          T2 = TAU*V2
00284          V3 = V( 3 )
00285          T3 = TAU*V3
00286          V4 = V( 4 )
00287          T4 = TAU*V4
00288          V5 = V( 5 )
00289          T5 = TAU*V5
00290          V6 = V( 6 )
00291          T6 = TAU*V6
00292          V7 = V( 7 )
00293          T7 = TAU*V7
00294          V8 = V( 8 )
00295          T8 = TAU*V8
00296          V9 = V( 9 )
00297          T9 = TAU*V9
00298          DO 180 J = 1, N
00299             SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) +
00300      \$            V4*C( 4, J ) + V5*C( 5, J ) + V6*C( 6, J ) +
00301      \$            V7*C( 7, J ) + V8*C( 8, J ) + V9*C( 9, J )
00302             C( 1, J ) = C( 1, J ) - SUM*T1
00303             C( 2, J ) = C( 2, J ) - SUM*T2
00304             C( 3, J ) = C( 3, J ) - SUM*T3
00305             C( 4, J ) = C( 4, J ) - SUM*T4
00306             C( 5, J ) = C( 5, J ) - SUM*T5
00307             C( 6, J ) = C( 6, J ) - SUM*T6
00308             C( 7, J ) = C( 7, J ) - SUM*T7
00309             C( 8, J ) = C( 8, J ) - SUM*T8
00310             C( 9, J ) = C( 9, J ) - SUM*T9
00311   180    CONTINUE
00312          GO TO 410
00313   190    CONTINUE
00314 *
00315 *        Special code for 10 x 10 Householder
00316 *
00317          V1 = V( 1 )
00318          T1 = TAU*V1
00319          V2 = V( 2 )
00320          T2 = TAU*V2
00321          V3 = V( 3 )
00322          T3 = TAU*V3
00323          V4 = V( 4 )
00324          T4 = TAU*V4
00325          V5 = V( 5 )
00326          T5 = TAU*V5
00327          V6 = V( 6 )
00328          T6 = TAU*V6
00329          V7 = V( 7 )
00330          T7 = TAU*V7
00331          V8 = V( 8 )
00332          T8 = TAU*V8
00333          V9 = V( 9 )
00334          T9 = TAU*V9
00335          V10 = V( 10 )
00336          T10 = TAU*V10
00337          DO 200 J = 1, N
00338             SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) +
00339      \$            V4*C( 4, J ) + V5*C( 5, J ) + V6*C( 6, J ) +
00340      \$            V7*C( 7, J ) + V8*C( 8, J ) + V9*C( 9, J ) +
00341      \$            V10*C( 10, J )
00342             C( 1, J ) = C( 1, J ) - SUM*T1
00343             C( 2, J ) = C( 2, J ) - SUM*T2
00344             C( 3, J ) = C( 3, J ) - SUM*T3
00345             C( 4, J ) = C( 4, J ) - SUM*T4
00346             C( 5, J ) = C( 5, J ) - SUM*T5
00347             C( 6, J ) = C( 6, J ) - SUM*T6
00348             C( 7, J ) = C( 7, J ) - SUM*T7
00349             C( 8, J ) = C( 8, J ) - SUM*T8
00350             C( 9, J ) = C( 9, J ) - SUM*T9
00351             C( 10, J ) = C( 10, J ) - SUM*T10
00352   200    CONTINUE
00353          GO TO 410
00354       ELSE
00355 *
00356 *        Form  C * H, where H has order n.
00357 *
00358          GO TO ( 210, 230, 250, 270, 290, 310, 330, 350,
00359      \$           370, 390 )N
00360 *
00361 *        Code for general N
00362 *
00363          CALL DLARF( SIDE, M, N, V, 1, TAU, C, LDC, WORK )
00364          GO TO 410
00365   210    CONTINUE
00366 *
00367 *        Special code for 1 x 1 Householder
00368 *
00369          T1 = ONE - TAU*V( 1 )*V( 1 )
00370          DO 220 J = 1, M
00371             C( J, 1 ) = T1*C( J, 1 )
00372   220    CONTINUE
00373          GO TO 410
00374   230    CONTINUE
00375 *
00376 *        Special code for 2 x 2 Householder
00377 *
00378          V1 = V( 1 )
00379          T1 = TAU*V1
00380          V2 = V( 2 )
00381          T2 = TAU*V2
00382          DO 240 J = 1, M
00383             SUM = V1*C( J, 1 ) + V2*C( J, 2 )
00384             C( J, 1 ) = C( J, 1 ) - SUM*T1
00385             C( J, 2 ) = C( J, 2 ) - SUM*T2
00386   240    CONTINUE
00387          GO TO 410
00388   250    CONTINUE
00389 *
00390 *        Special code for 3 x 3 Householder
00391 *
00392          V1 = V( 1 )
00393          T1 = TAU*V1
00394          V2 = V( 2 )
00395          T2 = TAU*V2
00396          V3 = V( 3 )
00397          T3 = TAU*V3
00398          DO 260 J = 1, M
00399             SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 )
00400             C( J, 1 ) = C( J, 1 ) - SUM*T1
00401             C( J, 2 ) = C( J, 2 ) - SUM*T2
00402             C( J, 3 ) = C( J, 3 ) - SUM*T3
00403   260    CONTINUE
00404          GO TO 410
00405   270    CONTINUE
00406 *
00407 *        Special code for 4 x 4 Householder
00408 *
00409          V1 = V( 1 )
00410          T1 = TAU*V1
00411          V2 = V( 2 )
00412          T2 = TAU*V2
00413          V3 = V( 3 )
00414          T3 = TAU*V3
00415          V4 = V( 4 )
00416          T4 = TAU*V4
00417          DO 280 J = 1, M
00418             SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 ) +
00419      \$            V4*C( J, 4 )
00420             C( J, 1 ) = C( J, 1 ) - SUM*T1
00421             C( J, 2 ) = C( J, 2 ) - SUM*T2
00422             C( J, 3 ) = C( J, 3 ) - SUM*T3
00423             C( J, 4 ) = C( J, 4 ) - SUM*T4
00424   280    CONTINUE
00425          GO TO 410
00426   290    CONTINUE
00427 *
00428 *        Special code for 5 x 5 Householder
00429 *
00430          V1 = V( 1 )
00431          T1 = TAU*V1
00432          V2 = V( 2 )
00433          T2 = TAU*V2
00434          V3 = V( 3 )
00435          T3 = TAU*V3
00436          V4 = V( 4 )
00437          T4 = TAU*V4
00438          V5 = V( 5 )
00439          T5 = TAU*V5
00440          DO 300 J = 1, M
00441             SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 ) +
00442      \$            V4*C( J, 4 ) + V5*C( J, 5 )
00443             C( J, 1 ) = C( J, 1 ) - SUM*T1
00444             C( J, 2 ) = C( J, 2 ) - SUM*T2
00445             C( J, 3 ) = C( J, 3 ) - SUM*T3
00446             C( J, 4 ) = C( J, 4 ) - SUM*T4
00447             C( J, 5 ) = C( J, 5 ) - SUM*T5
00448   300    CONTINUE
00449          GO TO 410
00450   310    CONTINUE
00451 *
00452 *        Special code for 6 x 6 Householder
00453 *
00454          V1 = V( 1 )
00455          T1 = TAU*V1
00456          V2 = V( 2 )
00457          T2 = TAU*V2
00458          V3 = V( 3 )
00459          T3 = TAU*V3
00460          V4 = V( 4 )
00461          T4 = TAU*V4
00462          V5 = V( 5 )
00463          T5 = TAU*V5
00464          V6 = V( 6 )
00465          T6 = TAU*V6
00466          DO 320 J = 1, M
00467             SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 ) +
00468      \$            V4*C( J, 4 ) + V5*C( J, 5 ) + V6*C( J, 6 )
00469             C( J, 1 ) = C( J, 1 ) - SUM*T1
00470             C( J, 2 ) = C( J, 2 ) - SUM*T2
00471             C( J, 3 ) = C( J, 3 ) - SUM*T3
00472             C( J, 4 ) = C( J, 4 ) - SUM*T4
00473             C( J, 5 ) = C( J, 5 ) - SUM*T5
00474             C( J, 6 ) = C( J, 6 ) - SUM*T6
00475   320    CONTINUE
00476          GO TO 410
00477   330    CONTINUE
00478 *
00479 *        Special code for 7 x 7 Householder
00480 *
00481          V1 = V( 1 )
00482          T1 = TAU*V1
00483          V2 = V( 2 )
00484          T2 = TAU*V2
00485          V3 = V( 3 )
00486          T3 = TAU*V3
00487          V4 = V( 4 )
00488          T4 = TAU*V4
00489          V5 = V( 5 )
00490          T5 = TAU*V5
00491          V6 = V( 6 )
00492          T6 = TAU*V6
00493          V7 = V( 7 )
00494          T7 = TAU*V7
00495          DO 340 J = 1, M
00496             SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 ) +
00497      \$            V4*C( J, 4 ) + V5*C( J, 5 ) + V6*C( J, 6 ) +
00498      \$            V7*C( J, 7 )
00499             C( J, 1 ) = C( J, 1 ) - SUM*T1
00500             C( J, 2 ) = C( J, 2 ) - SUM*T2
00501             C( J, 3 ) = C( J, 3 ) - SUM*T3
00502             C( J, 4 ) = C( J, 4 ) - SUM*T4
00503             C( J, 5 ) = C( J, 5 ) - SUM*T5
00504             C( J, 6 ) = C( J, 6 ) - SUM*T6
00505             C( J, 7 ) = C( J, 7 ) - SUM*T7
00506   340    CONTINUE
00507          GO TO 410
00508   350    CONTINUE
00509 *
00510 *        Special code for 8 x 8 Householder
00511 *
00512          V1 = V( 1 )
00513          T1 = TAU*V1
00514          V2 = V( 2 )
00515          T2 = TAU*V2
00516          V3 = V( 3 )
00517          T3 = TAU*V3
00518          V4 = V( 4 )
00519          T4 = TAU*V4
00520          V5 = V( 5 )
00521          T5 = TAU*V5
00522          V6 = V( 6 )
00523          T6 = TAU*V6
00524          V7 = V( 7 )
00525          T7 = TAU*V7
00526          V8 = V( 8 )
00527          T8 = TAU*V8
00528          DO 360 J = 1, M
00529             SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 ) +
00530      \$            V4*C( J, 4 ) + V5*C( J, 5 ) + V6*C( J, 6 ) +
00531      \$            V7*C( J, 7 ) + V8*C( J, 8 )
00532             C( J, 1 ) = C( J, 1 ) - SUM*T1
00533             C( J, 2 ) = C( J, 2 ) - SUM*T2
00534             C( J, 3 ) = C( J, 3 ) - SUM*T3
00535             C( J, 4 ) = C( J, 4 ) - SUM*T4
00536             C( J, 5 ) = C( J, 5 ) - SUM*T5
00537             C( J, 6 ) = C( J, 6 ) - SUM*T6
00538             C( J, 7 ) = C( J, 7 ) - SUM*T7
00539             C( J, 8 ) = C( J, 8 ) - SUM*T8
00540   360    CONTINUE
00541          GO TO 410
00542   370    CONTINUE
00543 *
00544 *        Special code for 9 x 9 Householder
00545 *
00546          V1 = V( 1 )
00547          T1 = TAU*V1
00548          V2 = V( 2 )
00549          T2 = TAU*V2
00550          V3 = V( 3 )
00551          T3 = TAU*V3
00552          V4 = V( 4 )
00553          T4 = TAU*V4
00554          V5 = V( 5 )
00555          T5 = TAU*V5
00556          V6 = V( 6 )
00557          T6 = TAU*V6
00558          V7 = V( 7 )
00559          T7 = TAU*V7
00560          V8 = V( 8 )
00561          T8 = TAU*V8
00562          V9 = V( 9 )
00563          T9 = TAU*V9
00564          DO 380 J = 1, M
00565             SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 ) +
00566      \$            V4*C( J, 4 ) + V5*C( J, 5 ) + V6*C( J, 6 ) +
00567      \$            V7*C( J, 7 ) + V8*C( J, 8 ) + V9*C( J, 9 )
00568             C( J, 1 ) = C( J, 1 ) - SUM*T1
00569             C( J, 2 ) = C( J, 2 ) - SUM*T2
00570             C( J, 3 ) = C( J, 3 ) - SUM*T3
00571             C( J, 4 ) = C( J, 4 ) - SUM*T4
00572             C( J, 5 ) = C( J, 5 ) - SUM*T5
00573             C( J, 6 ) = C( J, 6 ) - SUM*T6
00574             C( J, 7 ) = C( J, 7 ) - SUM*T7
00575             C( J, 8 ) = C( J, 8 ) - SUM*T8
00576             C( J, 9 ) = C( J, 9 ) - SUM*T9
00577   380    CONTINUE
00578          GO TO 410
00579   390    CONTINUE
00580 *
00581 *        Special code for 10 x 10 Householder
00582 *
00583          V1 = V( 1 )
00584          T1 = TAU*V1
00585          V2 = V( 2 )
00586          T2 = TAU*V2
00587          V3 = V( 3 )
00588          T3 = TAU*V3
00589          V4 = V( 4 )
00590          T4 = TAU*V4
00591          V5 = V( 5 )
00592          T5 = TAU*V5
00593          V6 = V( 6 )
00594          T6 = TAU*V6
00595          V7 = V( 7 )
00596          T7 = TAU*V7
00597          V8 = V( 8 )
00598          T8 = TAU*V8
00599          V9 = V( 9 )
00600          T9 = TAU*V9
00601          V10 = V( 10 )
00602          T10 = TAU*V10
00603          DO 400 J = 1, M
00604             SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 ) +
00605      \$            V4*C( J, 4 ) + V5*C( J, 5 ) + V6*C( J, 6 ) +
00606      \$            V7*C( J, 7 ) + V8*C( J, 8 ) + V9*C( J, 9 ) +
00607      \$            V10*C( J, 10 )
00608             C( J, 1 ) = C( J, 1 ) - SUM*T1
00609             C( J, 2 ) = C( J, 2 ) - SUM*T2
00610             C( J, 3 ) = C( J, 3 ) - SUM*T3
00611             C( J, 4 ) = C( J, 4 ) - SUM*T4
00612             C( J, 5 ) = C( J, 5 ) - SUM*T5
00613             C( J, 6 ) = C( J, 6 ) - SUM*T6
00614             C( J, 7 ) = C( J, 7 ) - SUM*T7
00615             C( J, 8 ) = C( J, 8 ) - SUM*T8
00616             C( J, 9 ) = C( J, 9 ) - SUM*T9
00617             C( J, 10 ) = C( J, 10 ) - SUM*T10
00618   400    CONTINUE
00619          GO TO 410
00620       END IF
00621   410 CONTINUE
00622       RETURN
00623 *
00624 *     End of DLARFX
00625 *
00626       END
```