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