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