Annotation of rpl/lapack/lapack/zlarfx.f, revision 1.1
1.1 ! bertrand 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
CVSweb interface <joel.bertrand@systella.fr>