LAPACK 3.3.0
|
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