LAPACK 3.3.0
|
00001 SUBROUTINE DLARFX( SIDE, M, N, V, TAU, C, LDC, WORK ) 00002 IMPLICIT NONE 00003 * 00004 * -- LAPACK auxiliary routine (version 3.2) -- 00005 * -- LAPACK is a software package provided by Univ. of Tennessee, -- 00006 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- 00007 * November 2006 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' 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