LAPACK 3.3.0

slarfx.f

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