1*> \brief \b DLARFX applies an elementary reflector to a general rectangular matrix, with loop unrolling when the reflector has order ≤ 10. 2* 3* =========== DOCUMENTATION =========== 4* 5* Online html documentation available at 6* http://www.netlib.org/lapack/explore-html/ 7* 8*> \htmlonly 9*> Download DLARFX + dependencies 10*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dlarfx.f"> 11*> [TGZ]</a> 12*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dlarfx.f"> 13*> [ZIP]</a> 14*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlarfx.f"> 15*> [TXT]</a> 16*> \endhtmlonly 17* 18* Definition: 19* =========== 20* 21* SUBROUTINE DLARFX( SIDE, M, N, V, TAU, C, LDC, WORK ) 22* 23* .. Scalar Arguments .. 24* CHARACTER SIDE 25* INTEGER LDC, M, N 26* DOUBLE PRECISION TAU 27* .. 28* .. Array Arguments .. 29* DOUBLE PRECISION C( LDC, * ), V( * ), WORK( * ) 30* .. 31* 32* 33*> \par Purpose: 34* ============= 35*> 36*> \verbatim 37*> 38*> DLARFX applies a real elementary reflector H to a real m by n 39*> matrix C, from either the left or the right. H is represented in the 40*> form 41*> 42*> H = I - tau * v * v**T 43*> 44*> where tau is a real scalar and v is a real vector. 45*> 46*> If tau = 0, then H is taken to be the unit matrix 47*> 48*> This version uses inline code if H has order < 11. 49*> \endverbatim 50* 51* Arguments: 52* ========== 53* 54*> \param[in] SIDE 55*> \verbatim 56*> SIDE is CHARACTER*1 57*> = 'L': form H * C 58*> = 'R': form C * H 59*> \endverbatim 60*> 61*> \param[in] M 62*> \verbatim 63*> M is INTEGER 64*> The number of rows of the matrix C. 65*> \endverbatim 66*> 67*> \param[in] N 68*> \verbatim 69*> N is INTEGER 70*> The number of columns of the matrix C. 71*> \endverbatim 72*> 73*> \param[in] V 74*> \verbatim 75*> V is DOUBLE PRECISION array, dimension (M) if SIDE = 'L' 76*> or (N) if SIDE = 'R' 77*> The vector v in the representation of H. 78*> \endverbatim 79*> 80*> \param[in] TAU 81*> \verbatim 82*> TAU is DOUBLE PRECISION 83*> The value tau in the representation of H. 84*> \endverbatim 85*> 86*> \param[in,out] C 87*> \verbatim 88*> C is DOUBLE PRECISION array, dimension (LDC,N) 89*> On entry, the m by n matrix C. 90*> On exit, C is overwritten by the matrix H * C if SIDE = 'L', 91*> or C * H if SIDE = 'R'. 92*> \endverbatim 93*> 94*> \param[in] LDC 95*> \verbatim 96*> LDC is INTEGER 97*> The leading dimension of the array C. LDC >= (1,M). 98*> \endverbatim 99*> 100*> \param[out] WORK 101*> \verbatim 102*> WORK is DOUBLE PRECISION array, dimension 103*> (N) if SIDE = 'L' 104*> or (M) if SIDE = 'R' 105*> WORK is not referenced if H has order < 11. 106*> \endverbatim 107* 108* Authors: 109* ======== 110* 111*> \author Univ. of Tennessee 112*> \author Univ. of California Berkeley 113*> \author Univ. of Colorado Denver 114*> \author NAG Ltd. 115* 116*> \ingroup doubleOTHERauxiliary 117* 118* ===================================================================== 119 SUBROUTINE DLARFX( SIDE, M, N, V, TAU, C, LDC, WORK ) 120* 121* -- LAPACK auxiliary routine -- 122* -- LAPACK is a software package provided by Univ. of Tennessee, -- 123* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- 124* 125* .. Scalar Arguments .. 126 CHARACTER SIDE 127 INTEGER LDC, M, N 128 DOUBLE PRECISION TAU 129* .. 130* .. Array Arguments .. 131 DOUBLE PRECISION C( LDC, * ), V( * ), WORK( * ) 132* .. 133* 134* ===================================================================== 135* 136* .. Parameters .. 137 DOUBLE PRECISION ZERO, ONE 138 PARAMETER ( ZERO = 0.0D+0, ONE = 1.0D+0 ) 139* .. 140* .. Local Scalars .. 141 INTEGER J 142 DOUBLE PRECISION SUM, T1, T10, T2, T3, T4, T5, T6, T7, T8, T9, 143 $ V1, V10, V2, V3, V4, V5, V6, V7, V8, V9 144* .. 145* .. External Functions .. 146 LOGICAL LSAME 147 EXTERNAL LSAME 148* .. 149* .. External Subroutines .. 150 EXTERNAL DLARF 151* .. 152* .. Executable Statements .. 153* 154 IF( TAU.EQ.ZERO ) 155 $ RETURN 156 IF( LSAME( SIDE, 'L' ) ) THEN 157* 158* Form H * C, where H has order m. 159* 160 GO TO ( 10, 30, 50, 70, 90, 110, 130, 150, 161 $ 170, 190 )M 162* 163* Code for general M 164* 165 CALL DLARF( SIDE, M, N, V, 1, TAU, C, LDC, WORK ) 166 GO TO 410 167 10 CONTINUE 168* 169* Special code for 1 x 1 Householder 170* 171 T1 = ONE - TAU*V( 1 )*V( 1 ) 172 DO 20 J = 1, N 173 C( 1, J ) = T1*C( 1, J ) 174 20 CONTINUE 175 GO TO 410 176 30 CONTINUE 177* 178* Special code for 2 x 2 Householder 179* 180 V1 = V( 1 ) 181 T1 = TAU*V1 182 V2 = V( 2 ) 183 T2 = TAU*V2 184 DO 40 J = 1, N 185 SUM = V1*C( 1, J ) + V2*C( 2, J ) 186 C( 1, J ) = C( 1, J ) - SUM*T1 187 C( 2, J ) = C( 2, J ) - SUM*T2 188 40 CONTINUE 189 GO TO 410 190 50 CONTINUE 191* 192* Special code for 3 x 3 Householder 193* 194 V1 = V( 1 ) 195 T1 = TAU*V1 196 V2 = V( 2 ) 197 T2 = TAU*V2 198 V3 = V( 3 ) 199 T3 = TAU*V3 200 DO 60 J = 1, N 201 SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) 202 C( 1, J ) = C( 1, J ) - SUM*T1 203 C( 2, J ) = C( 2, J ) - SUM*T2 204 C( 3, J ) = C( 3, J ) - SUM*T3 205 60 CONTINUE 206 GO TO 410 207 70 CONTINUE 208* 209* Special code for 4 x 4 Householder 210* 211 V1 = V( 1 ) 212 T1 = TAU*V1 213 V2 = V( 2 ) 214 T2 = TAU*V2 215 V3 = V( 3 ) 216 T3 = TAU*V3 217 V4 = V( 4 ) 218 T4 = TAU*V4 219 DO 80 J = 1, N 220 SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) + 221 $ V4*C( 4, J ) 222 C( 1, J ) = C( 1, J ) - SUM*T1 223 C( 2, J ) = C( 2, J ) - SUM*T2 224 C( 3, J ) = C( 3, J ) - SUM*T3 225 C( 4, J ) = C( 4, J ) - SUM*T4 226 80 CONTINUE 227 GO TO 410 228 90 CONTINUE 229* 230* Special code for 5 x 5 Householder 231* 232 V1 = V( 1 ) 233 T1 = TAU*V1 234 V2 = V( 2 ) 235 T2 = TAU*V2 236 V3 = V( 3 ) 237 T3 = TAU*V3 238 V4 = V( 4 ) 239 T4 = TAU*V4 240 V5 = V( 5 ) 241 T5 = TAU*V5 242 DO 100 J = 1, N 243 SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) + 244 $ V4*C( 4, J ) + V5*C( 5, J ) 245 C( 1, J ) = C( 1, J ) - SUM*T1 246 C( 2, J ) = C( 2, J ) - SUM*T2 247 C( 3, J ) = C( 3, J ) - SUM*T3 248 C( 4, J ) = C( 4, J ) - SUM*T4 249 C( 5, J ) = C( 5, J ) - SUM*T5 250 100 CONTINUE 251 GO TO 410 252 110 CONTINUE 253* 254* Special code for 6 x 6 Householder 255* 256 V1 = V( 1 ) 257 T1 = TAU*V1 258 V2 = V( 2 ) 259 T2 = TAU*V2 260 V3 = V( 3 ) 261 T3 = TAU*V3 262 V4 = V( 4 ) 263 T4 = TAU*V4 264 V5 = V( 5 ) 265 T5 = TAU*V5 266 V6 = V( 6 ) 267 T6 = TAU*V6 268 DO 120 J = 1, N 269 SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) + 270 $ V4*C( 4, J ) + V5*C( 5, J ) + V6*C( 6, J ) 271 C( 1, J ) = C( 1, J ) - SUM*T1 272 C( 2, J ) = C( 2, J ) - SUM*T2 273 C( 3, J ) = C( 3, J ) - SUM*T3 274 C( 4, J ) = C( 4, J ) - SUM*T4 275 C( 5, J ) = C( 5, J ) - SUM*T5 276 C( 6, J ) = C( 6, J ) - SUM*T6 277 120 CONTINUE 278 GO TO 410 279 130 CONTINUE 280* 281* Special code for 7 x 7 Householder 282* 283 V1 = V( 1 ) 284 T1 = TAU*V1 285 V2 = V( 2 ) 286 T2 = TAU*V2 287 V3 = V( 3 ) 288 T3 = TAU*V3 289 V4 = V( 4 ) 290 T4 = TAU*V4 291 V5 = V( 5 ) 292 T5 = TAU*V5 293 V6 = V( 6 ) 294 T6 = TAU*V6 295 V7 = V( 7 ) 296 T7 = TAU*V7 297 DO 140 J = 1, N 298 SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) + 299 $ V4*C( 4, J ) + V5*C( 5, J ) + V6*C( 6, J ) + 300 $ V7*C( 7, J ) 301 C( 1, J ) = C( 1, J ) - SUM*T1 302 C( 2, J ) = C( 2, J ) - SUM*T2 303 C( 3, J ) = C( 3, J ) - SUM*T3 304 C( 4, J ) = C( 4, J ) - SUM*T4 305 C( 5, J ) = C( 5, J ) - SUM*T5 306 C( 6, J ) = C( 6, J ) - SUM*T6 307 C( 7, J ) = C( 7, J ) - SUM*T7 308 140 CONTINUE 309 GO TO 410 310 150 CONTINUE 311* 312* Special code for 8 x 8 Householder 313* 314 V1 = V( 1 ) 315 T1 = TAU*V1 316 V2 = V( 2 ) 317 T2 = TAU*V2 318 V3 = V( 3 ) 319 T3 = TAU*V3 320 V4 = V( 4 ) 321 T4 = TAU*V4 322 V5 = V( 5 ) 323 T5 = TAU*V5 324 V6 = V( 6 ) 325 T6 = TAU*V6 326 V7 = V( 7 ) 327 T7 = TAU*V7 328 V8 = V( 8 ) 329 T8 = TAU*V8 330 DO 160 J = 1, N 331 SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) + 332 $ V4*C( 4, J ) + V5*C( 5, J ) + V6*C( 6, J ) + 333 $ V7*C( 7, J ) + V8*C( 8, J ) 334 C( 1, J ) = C( 1, J ) - SUM*T1 335 C( 2, J ) = C( 2, J ) - SUM*T2 336 C( 3, J ) = C( 3, J ) - SUM*T3 337 C( 4, J ) = C( 4, J ) - SUM*T4 338 C( 5, J ) = C( 5, J ) - SUM*T5 339 C( 6, J ) = C( 6, J ) - SUM*T6 340 C( 7, J ) = C( 7, J ) - SUM*T7 341 C( 8, J ) = C( 8, J ) - SUM*T8 342 160 CONTINUE 343 GO TO 410 344 170 CONTINUE 345* 346* Special code for 9 x 9 Householder 347* 348 V1 = V( 1 ) 349 T1 = TAU*V1 350 V2 = V( 2 ) 351 T2 = TAU*V2 352 V3 = V( 3 ) 353 T3 = TAU*V3 354 V4 = V( 4 ) 355 T4 = TAU*V4 356 V5 = V( 5 ) 357 T5 = TAU*V5 358 V6 = V( 6 ) 359 T6 = TAU*V6 360 V7 = V( 7 ) 361 T7 = TAU*V7 362 V8 = V( 8 ) 363 T8 = TAU*V8 364 V9 = V( 9 ) 365 T9 = TAU*V9 366 DO 180 J = 1, N 367 SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) + 368 $ V4*C( 4, J ) + V5*C( 5, J ) + V6*C( 6, J ) + 369 $ V7*C( 7, J ) + V8*C( 8, J ) + V9*C( 9, J ) 370 C( 1, J ) = C( 1, J ) - SUM*T1 371 C( 2, J ) = C( 2, J ) - SUM*T2 372 C( 3, J ) = C( 3, J ) - SUM*T3 373 C( 4, J ) = C( 4, J ) - SUM*T4 374 C( 5, J ) = C( 5, J ) - SUM*T5 375 C( 6, J ) = C( 6, J ) - SUM*T6 376 C( 7, J ) = C( 7, J ) - SUM*T7 377 C( 8, J ) = C( 8, J ) - SUM*T8 378 C( 9, J ) = C( 9, J ) - SUM*T9 379 180 CONTINUE 380 GO TO 410 381 190 CONTINUE 382* 383* Special code for 10 x 10 Householder 384* 385 V1 = V( 1 ) 386 T1 = TAU*V1 387 V2 = V( 2 ) 388 T2 = TAU*V2 389 V3 = V( 3 ) 390 T3 = TAU*V3 391 V4 = V( 4 ) 392 T4 = TAU*V4 393 V5 = V( 5 ) 394 T5 = TAU*V5 395 V6 = V( 6 ) 396 T6 = TAU*V6 397 V7 = V( 7 ) 398 T7 = TAU*V7 399 V8 = V( 8 ) 400 T8 = TAU*V8 401 V9 = V( 9 ) 402 T9 = TAU*V9 403 V10 = V( 10 ) 404 T10 = TAU*V10 405 DO 200 J = 1, N 406 SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) + 407 $ V4*C( 4, J ) + V5*C( 5, J ) + V6*C( 6, J ) + 408 $ V7*C( 7, J ) + V8*C( 8, J ) + V9*C( 9, J ) + 409 $ V10*C( 10, J ) 410 C( 1, J ) = C( 1, J ) - SUM*T1 411 C( 2, J ) = C( 2, J ) - SUM*T2 412 C( 3, J ) = C( 3, J ) - SUM*T3 413 C( 4, J ) = C( 4, J ) - SUM*T4 414 C( 5, J ) = C( 5, J ) - SUM*T5 415 C( 6, J ) = C( 6, J ) - SUM*T6 416 C( 7, J ) = C( 7, J ) - SUM*T7 417 C( 8, J ) = C( 8, J ) - SUM*T8 418 C( 9, J ) = C( 9, J ) - SUM*T9 419 C( 10, J ) = C( 10, J ) - SUM*T10 420 200 CONTINUE 421 GO TO 410 422 ELSE 423* 424* Form C * H, where H has order n. 425* 426 GO TO ( 210, 230, 250, 270, 290, 310, 330, 350, 427 $ 370, 390 )N 428* 429* Code for general N 430* 431 CALL DLARF( SIDE, M, N, V, 1, TAU, C, LDC, WORK ) 432 GO TO 410 433 210 CONTINUE 434* 435* Special code for 1 x 1 Householder 436* 437 T1 = ONE - TAU*V( 1 )*V( 1 ) 438 DO 220 J = 1, M 439 C( J, 1 ) = T1*C( J, 1 ) 440 220 CONTINUE 441 GO TO 410 442 230 CONTINUE 443* 444* Special code for 2 x 2 Householder 445* 446 V1 = V( 1 ) 447 T1 = TAU*V1 448 V2 = V( 2 ) 449 T2 = TAU*V2 450 DO 240 J = 1, M 451 SUM = V1*C( J, 1 ) + V2*C( J, 2 ) 452 C( J, 1 ) = C( J, 1 ) - SUM*T1 453 C( J, 2 ) = C( J, 2 ) - SUM*T2 454 240 CONTINUE 455 GO TO 410 456 250 CONTINUE 457* 458* Special code for 3 x 3 Householder 459* 460 V1 = V( 1 ) 461 T1 = TAU*V1 462 V2 = V( 2 ) 463 T2 = TAU*V2 464 V3 = V( 3 ) 465 T3 = TAU*V3 466 DO 260 J = 1, M 467 SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 ) 468 C( J, 1 ) = C( J, 1 ) - SUM*T1 469 C( J, 2 ) = C( J, 2 ) - SUM*T2 470 C( J, 3 ) = C( J, 3 ) - SUM*T3 471 260 CONTINUE 472 GO TO 410 473 270 CONTINUE 474* 475* Special code for 4 x 4 Householder 476* 477 V1 = V( 1 ) 478 T1 = TAU*V1 479 V2 = V( 2 ) 480 T2 = TAU*V2 481 V3 = V( 3 ) 482 T3 = TAU*V3 483 V4 = V( 4 ) 484 T4 = TAU*V4 485 DO 280 J = 1, M 486 SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 ) + 487 $ V4*C( J, 4 ) 488 C( J, 1 ) = C( J, 1 ) - SUM*T1 489 C( J, 2 ) = C( J, 2 ) - SUM*T2 490 C( J, 3 ) = C( J, 3 ) - SUM*T3 491 C( J, 4 ) = C( J, 4 ) - SUM*T4 492 280 CONTINUE 493 GO TO 410 494 290 CONTINUE 495* 496* Special code for 5 x 5 Householder 497* 498 V1 = V( 1 ) 499 T1 = TAU*V1 500 V2 = V( 2 ) 501 T2 = TAU*V2 502 V3 = V( 3 ) 503 T3 = TAU*V3 504 V4 = V( 4 ) 505 T4 = TAU*V4 506 V5 = V( 5 ) 507 T5 = TAU*V5 508 DO 300 J = 1, M 509 SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 ) + 510 $ V4*C( J, 4 ) + V5*C( J, 5 ) 511 C( J, 1 ) = C( J, 1 ) - SUM*T1 512 C( J, 2 ) = C( J, 2 ) - SUM*T2 513 C( J, 3 ) = C( J, 3 ) - SUM*T3 514 C( J, 4 ) = C( J, 4 ) - SUM*T4 515 C( J, 5 ) = C( J, 5 ) - SUM*T5 516 300 CONTINUE 517 GO TO 410 518 310 CONTINUE 519* 520* Special code for 6 x 6 Householder 521* 522 V1 = V( 1 ) 523 T1 = TAU*V1 524 V2 = V( 2 ) 525 T2 = TAU*V2 526 V3 = V( 3 ) 527 T3 = TAU*V3 528 V4 = V( 4 ) 529 T4 = TAU*V4 530 V5 = V( 5 ) 531 T5 = TAU*V5 532 V6 = V( 6 ) 533 T6 = TAU*V6 534 DO 320 J = 1, M 535 SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 ) + 536 $ V4*C( J, 4 ) + V5*C( J, 5 ) + V6*C( J, 6 ) 537 C( J, 1 ) = C( J, 1 ) - SUM*T1 538 C( J, 2 ) = C( J, 2 ) - SUM*T2 539 C( J, 3 ) = C( J, 3 ) - SUM*T3 540 C( J, 4 ) = C( J, 4 ) - SUM*T4 541 C( J, 5 ) = C( J, 5 ) - SUM*T5 542 C( J, 6 ) = C( J, 6 ) - SUM*T6 543 320 CONTINUE 544 GO TO 410 545 330 CONTINUE 546* 547* Special code for 7 x 7 Householder 548* 549 V1 = V( 1 ) 550 T1 = TAU*V1 551 V2 = V( 2 ) 552 T2 = TAU*V2 553 V3 = V( 3 ) 554 T3 = TAU*V3 555 V4 = V( 4 ) 556 T4 = TAU*V4 557 V5 = V( 5 ) 558 T5 = TAU*V5 559 V6 = V( 6 ) 560 T6 = TAU*V6 561 V7 = V( 7 ) 562 T7 = TAU*V7 563 DO 340 J = 1, M 564 SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 ) + 565 $ V4*C( J, 4 ) + V5*C( J, 5 ) + V6*C( J, 6 ) + 566 $ V7*C( J, 7 ) 567 C( J, 1 ) = C( J, 1 ) - SUM*T1 568 C( J, 2 ) = C( J, 2 ) - SUM*T2 569 C( J, 3 ) = C( J, 3 ) - SUM*T3 570 C( J, 4 ) = C( J, 4 ) - SUM*T4 571 C( J, 5 ) = C( J, 5 ) - SUM*T5 572 C( J, 6 ) = C( J, 6 ) - SUM*T6 573 C( J, 7 ) = C( J, 7 ) - SUM*T7 574 340 CONTINUE 575 GO TO 410 576 350 CONTINUE 577* 578* Special code for 8 x 8 Householder 579* 580 V1 = V( 1 ) 581 T1 = TAU*V1 582 V2 = V( 2 ) 583 T2 = TAU*V2 584 V3 = V( 3 ) 585 T3 = TAU*V3 586 V4 = V( 4 ) 587 T4 = TAU*V4 588 V5 = V( 5 ) 589 T5 = TAU*V5 590 V6 = V( 6 ) 591 T6 = TAU*V6 592 V7 = V( 7 ) 593 T7 = TAU*V7 594 V8 = V( 8 ) 595 T8 = TAU*V8 596 DO 360 J = 1, M 597 SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 ) + 598 $ V4*C( J, 4 ) + V5*C( J, 5 ) + V6*C( J, 6 ) + 599 $ V7*C( J, 7 ) + V8*C( J, 8 ) 600 C( J, 1 ) = C( J, 1 ) - SUM*T1 601 C( J, 2 ) = C( J, 2 ) - SUM*T2 602 C( J, 3 ) = C( J, 3 ) - SUM*T3 603 C( J, 4 ) = C( J, 4 ) - SUM*T4 604 C( J, 5 ) = C( J, 5 ) - SUM*T5 605 C( J, 6 ) = C( J, 6 ) - SUM*T6 606 C( J, 7 ) = C( J, 7 ) - SUM*T7 607 C( J, 8 ) = C( J, 8 ) - SUM*T8 608 360 CONTINUE 609 GO TO 410 610 370 CONTINUE 611* 612* Special code for 9 x 9 Householder 613* 614 V1 = V( 1 ) 615 T1 = TAU*V1 616 V2 = V( 2 ) 617 T2 = TAU*V2 618 V3 = V( 3 ) 619 T3 = TAU*V3 620 V4 = V( 4 ) 621 T4 = TAU*V4 622 V5 = V( 5 ) 623 T5 = TAU*V5 624 V6 = V( 6 ) 625 T6 = TAU*V6 626 V7 = V( 7 ) 627 T7 = TAU*V7 628 V8 = V( 8 ) 629 T8 = TAU*V8 630 V9 = V( 9 ) 631 T9 = TAU*V9 632 DO 380 J = 1, M 633 SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 ) + 634 $ V4*C( J, 4 ) + V5*C( J, 5 ) + V6*C( J, 6 ) + 635 $ V7*C( J, 7 ) + V8*C( J, 8 ) + V9*C( J, 9 ) 636 C( J, 1 ) = C( J, 1 ) - SUM*T1 637 C( J, 2 ) = C( J, 2 ) - SUM*T2 638 C( J, 3 ) = C( J, 3 ) - SUM*T3 639 C( J, 4 ) = C( J, 4 ) - SUM*T4 640 C( J, 5 ) = C( J, 5 ) - SUM*T5 641 C( J, 6 ) = C( J, 6 ) - SUM*T6 642 C( J, 7 ) = C( J, 7 ) - SUM*T7 643 C( J, 8 ) = C( J, 8 ) - SUM*T8 644 C( J, 9 ) = C( J, 9 ) - SUM*T9 645 380 CONTINUE 646 GO TO 410 647 390 CONTINUE 648* 649* Special code for 10 x 10 Householder 650* 651 V1 = V( 1 ) 652 T1 = TAU*V1 653 V2 = V( 2 ) 654 T2 = TAU*V2 655 V3 = V( 3 ) 656 T3 = TAU*V3 657 V4 = V( 4 ) 658 T4 = TAU*V4 659 V5 = V( 5 ) 660 T5 = TAU*V5 661 V6 = V( 6 ) 662 T6 = TAU*V6 663 V7 = V( 7 ) 664 T7 = TAU*V7 665 V8 = V( 8 ) 666 T8 = TAU*V8 667 V9 = V( 9 ) 668 T9 = TAU*V9 669 V10 = V( 10 ) 670 T10 = TAU*V10 671 DO 400 J = 1, M 672 SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 ) + 673 $ V4*C( J, 4 ) + V5*C( J, 5 ) + V6*C( J, 6 ) + 674 $ V7*C( J, 7 ) + V8*C( J, 8 ) + V9*C( J, 9 ) + 675 $ V10*C( J, 10 ) 676 C( J, 1 ) = C( J, 1 ) - SUM*T1 677 C( J, 2 ) = C( J, 2 ) - SUM*T2 678 C( J, 3 ) = C( J, 3 ) - SUM*T3 679 C( J, 4 ) = C( J, 4 ) - SUM*T4 680 C( J, 5 ) = C( J, 5 ) - SUM*T5 681 C( J, 6 ) = C( J, 6 ) - SUM*T6 682 C( J, 7 ) = C( J, 7 ) - SUM*T7 683 C( J, 8 ) = C( J, 8 ) - SUM*T8 684 C( J, 9 ) = C( J, 9 ) - SUM*T9 685 C( J, 10 ) = C( J, 10 ) - SUM*T10 686 400 CONTINUE 687 GO TO 410 688 END IF 689 410 CONTINUE 690 RETURN 691* 692* End of DLARFX 693* 694 END 695