Annotation of rpl/lapack/lapack/dlarfx.f, revision 1.11

1.9       bertrand    1: *> \brief \b DLARFX
                      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. LDA >= (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: *> \date November 2011
                    117: *
                    118: *> \ingroup doubleOTHERauxiliary
                    119: *
                    120: *  =====================================================================
1.1       bertrand  121:       SUBROUTINE DLARFX( SIDE, M, N, V, TAU, C, LDC, WORK )
                    122: *
1.9       bertrand  123: *  -- LAPACK auxiliary routine (version 3.4.0) --
1.1       bertrand  124: *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
                    125: *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
1.9       bertrand  126: *     November 2011
1.1       bertrand  127: *
                    128: *     .. Scalar Arguments ..
                    129:       CHARACTER          SIDE
                    130:       INTEGER            LDC, M, N
                    131:       DOUBLE PRECISION   TAU
                    132: *     ..
                    133: *     .. Array Arguments ..
                    134:       DOUBLE PRECISION   C( LDC, * ), V( * ), WORK( * )
                    135: *     ..
                    136: *
                    137: *  =====================================================================
                    138: *
                    139: *     .. Parameters ..
                    140:       DOUBLE PRECISION   ZERO, ONE
                    141:       PARAMETER          ( ZERO = 0.0D+0, ONE = 1.0D+0 )
                    142: *     ..
                    143: *     .. Local Scalars ..
                    144:       INTEGER            J
                    145:       DOUBLE PRECISION   SUM, T1, T10, T2, T3, T4, T5, T6, T7, T8, T9,
                    146:      $                   V1, V10, V2, V3, V4, V5, V6, V7, V8, V9
                    147: *     ..
                    148: *     .. External Functions ..
                    149:       LOGICAL            LSAME
                    150:       EXTERNAL           LSAME
                    151: *     ..
                    152: *     .. External Subroutines ..
                    153:       EXTERNAL           DLARF
                    154: *     ..
                    155: *     .. Executable Statements ..
                    156: *
                    157:       IF( TAU.EQ.ZERO )
                    158:      $   RETURN
                    159:       IF( LSAME( SIDE, 'L' ) ) THEN
                    160: *
                    161: *        Form  H * C, where H has order m.
                    162: *
                    163:          GO TO ( 10, 30, 50, 70, 90, 110, 130, 150,
                    164:      $           170, 190 )M
                    165: *
                    166: *        Code for general M
                    167: *
                    168:          CALL DLARF( SIDE, M, N, V, 1, TAU, C, LDC, WORK )
                    169:          GO TO 410
                    170:    10    CONTINUE
                    171: *
                    172: *        Special code for 1 x 1 Householder
                    173: *
                    174:          T1 = ONE - TAU*V( 1 )*V( 1 )
                    175:          DO 20 J = 1, N
                    176:             C( 1, J ) = T1*C( 1, J )
                    177:    20    CONTINUE
                    178:          GO TO 410
                    179:    30    CONTINUE
                    180: *
                    181: *        Special code for 2 x 2 Householder
                    182: *
                    183:          V1 = V( 1 )
                    184:          T1 = TAU*V1
                    185:          V2 = V( 2 )
                    186:          T2 = TAU*V2
                    187:          DO 40 J = 1, N
                    188:             SUM = V1*C( 1, J ) + V2*C( 2, J )
                    189:             C( 1, J ) = C( 1, J ) - SUM*T1
                    190:             C( 2, J ) = C( 2, J ) - SUM*T2
                    191:    40    CONTINUE
                    192:          GO TO 410
                    193:    50    CONTINUE
                    194: *
                    195: *        Special code for 3 x 3 Householder
                    196: *
                    197:          V1 = V( 1 )
                    198:          T1 = TAU*V1
                    199:          V2 = V( 2 )
                    200:          T2 = TAU*V2
                    201:          V3 = V( 3 )
                    202:          T3 = TAU*V3
                    203:          DO 60 J = 1, N
                    204:             SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J )
                    205:             C( 1, J ) = C( 1, J ) - SUM*T1
                    206:             C( 2, J ) = C( 2, J ) - SUM*T2
                    207:             C( 3, J ) = C( 3, J ) - SUM*T3
                    208:    60    CONTINUE
                    209:          GO TO 410
                    210:    70    CONTINUE
                    211: *
                    212: *        Special code for 4 x 4 Householder
                    213: *
                    214:          V1 = V( 1 )
                    215:          T1 = TAU*V1
                    216:          V2 = V( 2 )
                    217:          T2 = TAU*V2
                    218:          V3 = V( 3 )
                    219:          T3 = TAU*V3
                    220:          V4 = V( 4 )
                    221:          T4 = TAU*V4
                    222:          DO 80 J = 1, N
                    223:             SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) +
                    224:      $            V4*C( 4, J )
                    225:             C( 1, J ) = C( 1, J ) - SUM*T1
                    226:             C( 2, J ) = C( 2, J ) - SUM*T2
                    227:             C( 3, J ) = C( 3, J ) - SUM*T3
                    228:             C( 4, J ) = C( 4, J ) - SUM*T4
                    229:    80    CONTINUE
                    230:          GO TO 410
                    231:    90    CONTINUE
                    232: *
                    233: *        Special code for 5 x 5 Householder
                    234: *
                    235:          V1 = V( 1 )
                    236:          T1 = TAU*V1
                    237:          V2 = V( 2 )
                    238:          T2 = TAU*V2
                    239:          V3 = V( 3 )
                    240:          T3 = TAU*V3
                    241:          V4 = V( 4 )
                    242:          T4 = TAU*V4
                    243:          V5 = V( 5 )
                    244:          T5 = TAU*V5
                    245:          DO 100 J = 1, N
                    246:             SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) +
                    247:      $            V4*C( 4, J ) + V5*C( 5, J )
                    248:             C( 1, J ) = C( 1, J ) - SUM*T1
                    249:             C( 2, J ) = C( 2, J ) - SUM*T2
                    250:             C( 3, J ) = C( 3, J ) - SUM*T3
                    251:             C( 4, J ) = C( 4, J ) - SUM*T4
                    252:             C( 5, J ) = C( 5, J ) - SUM*T5
                    253:   100    CONTINUE
                    254:          GO TO 410
                    255:   110    CONTINUE
                    256: *
                    257: *        Special code for 6 x 6 Householder
                    258: *
                    259:          V1 = V( 1 )
                    260:          T1 = TAU*V1
                    261:          V2 = V( 2 )
                    262:          T2 = TAU*V2
                    263:          V3 = V( 3 )
                    264:          T3 = TAU*V3
                    265:          V4 = V( 4 )
                    266:          T4 = TAU*V4
                    267:          V5 = V( 5 )
                    268:          T5 = TAU*V5
                    269:          V6 = V( 6 )
                    270:          T6 = TAU*V6
                    271:          DO 120 J = 1, N
                    272:             SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) +
                    273:      $            V4*C( 4, J ) + V5*C( 5, J ) + V6*C( 6, J )
                    274:             C( 1, J ) = C( 1, J ) - SUM*T1
                    275:             C( 2, J ) = C( 2, J ) - SUM*T2
                    276:             C( 3, J ) = C( 3, J ) - SUM*T3
                    277:             C( 4, J ) = C( 4, J ) - SUM*T4
                    278:             C( 5, J ) = C( 5, J ) - SUM*T5
                    279:             C( 6, J ) = C( 6, J ) - SUM*T6
                    280:   120    CONTINUE
                    281:          GO TO 410
                    282:   130    CONTINUE
                    283: *
                    284: *        Special code for 7 x 7 Householder
                    285: *
                    286:          V1 = V( 1 )
                    287:          T1 = TAU*V1
                    288:          V2 = V( 2 )
                    289:          T2 = TAU*V2
                    290:          V3 = V( 3 )
                    291:          T3 = TAU*V3
                    292:          V4 = V( 4 )
                    293:          T4 = TAU*V4
                    294:          V5 = V( 5 )
                    295:          T5 = TAU*V5
                    296:          V6 = V( 6 )
                    297:          T6 = TAU*V6
                    298:          V7 = V( 7 )
                    299:          T7 = TAU*V7
                    300:          DO 140 J = 1, N
                    301:             SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) +
                    302:      $            V4*C( 4, J ) + V5*C( 5, J ) + V6*C( 6, J ) +
                    303:      $            V7*C( 7, J )
                    304:             C( 1, J ) = C( 1, J ) - SUM*T1
                    305:             C( 2, J ) = C( 2, J ) - SUM*T2
                    306:             C( 3, J ) = C( 3, J ) - SUM*T3
                    307:             C( 4, J ) = C( 4, J ) - SUM*T4
                    308:             C( 5, J ) = C( 5, J ) - SUM*T5
                    309:             C( 6, J ) = C( 6, J ) - SUM*T6
                    310:             C( 7, J ) = C( 7, J ) - SUM*T7
                    311:   140    CONTINUE
                    312:          GO TO 410
                    313:   150    CONTINUE
                    314: *
                    315: *        Special code for 8 x 8 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:          DO 160 J = 1, N
                    334:             SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) +
                    335:      $            V4*C( 4, J ) + V5*C( 5, J ) + V6*C( 6, J ) +
                    336:      $            V7*C( 7, J ) + V8*C( 8, J )
                    337:             C( 1, J ) = C( 1, J ) - SUM*T1
                    338:             C( 2, J ) = C( 2, J ) - SUM*T2
                    339:             C( 3, J ) = C( 3, J ) - SUM*T3
                    340:             C( 4, J ) = C( 4, J ) - SUM*T4
                    341:             C( 5, J ) = C( 5, J ) - SUM*T5
                    342:             C( 6, J ) = C( 6, J ) - SUM*T6
                    343:             C( 7, J ) = C( 7, J ) - SUM*T7
                    344:             C( 8, J ) = C( 8, J ) - SUM*T8
                    345:   160    CONTINUE
                    346:          GO TO 410
                    347:   170    CONTINUE
                    348: *
                    349: *        Special code for 9 x 9 Householder
                    350: *
                    351:          V1 = V( 1 )
                    352:          T1 = TAU*V1
                    353:          V2 = V( 2 )
                    354:          T2 = TAU*V2
                    355:          V3 = V( 3 )
                    356:          T3 = TAU*V3
                    357:          V4 = V( 4 )
                    358:          T4 = TAU*V4
                    359:          V5 = V( 5 )
                    360:          T5 = TAU*V5
                    361:          V6 = V( 6 )
                    362:          T6 = TAU*V6
                    363:          V7 = V( 7 )
                    364:          T7 = TAU*V7
                    365:          V8 = V( 8 )
                    366:          T8 = TAU*V8
                    367:          V9 = V( 9 )
                    368:          T9 = TAU*V9
                    369:          DO 180 J = 1, N
                    370:             SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) +
                    371:      $            V4*C( 4, J ) + V5*C( 5, J ) + V6*C( 6, J ) +
                    372:      $            V7*C( 7, J ) + V8*C( 8, J ) + V9*C( 9, J )
                    373:             C( 1, J ) = C( 1, J ) - SUM*T1
                    374:             C( 2, J ) = C( 2, J ) - SUM*T2
                    375:             C( 3, J ) = C( 3, J ) - SUM*T3
                    376:             C( 4, J ) = C( 4, J ) - SUM*T4
                    377:             C( 5, J ) = C( 5, J ) - SUM*T5
                    378:             C( 6, J ) = C( 6, J ) - SUM*T6
                    379:             C( 7, J ) = C( 7, J ) - SUM*T7
                    380:             C( 8, J ) = C( 8, J ) - SUM*T8
                    381:             C( 9, J ) = C( 9, J ) - SUM*T9
                    382:   180    CONTINUE
                    383:          GO TO 410
                    384:   190    CONTINUE
                    385: *
                    386: *        Special code for 10 x 10 Householder
                    387: *
                    388:          V1 = V( 1 )
                    389:          T1 = TAU*V1
                    390:          V2 = V( 2 )
                    391:          T2 = TAU*V2
                    392:          V3 = V( 3 )
                    393:          T3 = TAU*V3
                    394:          V4 = V( 4 )
                    395:          T4 = TAU*V4
                    396:          V5 = V( 5 )
                    397:          T5 = TAU*V5
                    398:          V6 = V( 6 )
                    399:          T6 = TAU*V6
                    400:          V7 = V( 7 )
                    401:          T7 = TAU*V7
                    402:          V8 = V( 8 )
                    403:          T8 = TAU*V8
                    404:          V9 = V( 9 )
                    405:          T9 = TAU*V9
                    406:          V10 = V( 10 )
                    407:          T10 = TAU*V10
                    408:          DO 200 J = 1, N
                    409:             SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) +
                    410:      $            V4*C( 4, J ) + V5*C( 5, J ) + V6*C( 6, J ) +
                    411:      $            V7*C( 7, J ) + V8*C( 8, J ) + V9*C( 9, J ) +
                    412:      $            V10*C( 10, J )
                    413:             C( 1, J ) = C( 1, J ) - SUM*T1
                    414:             C( 2, J ) = C( 2, J ) - SUM*T2
                    415:             C( 3, J ) = C( 3, J ) - SUM*T3
                    416:             C( 4, J ) = C( 4, J ) - SUM*T4
                    417:             C( 5, J ) = C( 5, J ) - SUM*T5
                    418:             C( 6, J ) = C( 6, J ) - SUM*T6
                    419:             C( 7, J ) = C( 7, J ) - SUM*T7
                    420:             C( 8, J ) = C( 8, J ) - SUM*T8
                    421:             C( 9, J ) = C( 9, J ) - SUM*T9
                    422:             C( 10, J ) = C( 10, J ) - SUM*T10
                    423:   200    CONTINUE
                    424:          GO TO 410
                    425:       ELSE
                    426: *
                    427: *        Form  C * H, where H has order n.
                    428: *
                    429:          GO TO ( 210, 230, 250, 270, 290, 310, 330, 350,
                    430:      $           370, 390 )N
                    431: *
                    432: *        Code for general N
                    433: *
                    434:          CALL DLARF( SIDE, M, N, V, 1, TAU, C, LDC, WORK )
                    435:          GO TO 410
                    436:   210    CONTINUE
                    437: *
                    438: *        Special code for 1 x 1 Householder
                    439: *
                    440:          T1 = ONE - TAU*V( 1 )*V( 1 )
                    441:          DO 220 J = 1, M
                    442:             C( J, 1 ) = T1*C( J, 1 )
                    443:   220    CONTINUE
                    444:          GO TO 410
                    445:   230    CONTINUE
                    446: *
                    447: *        Special code for 2 x 2 Householder
                    448: *
                    449:          V1 = V( 1 )
                    450:          T1 = TAU*V1
                    451:          V2 = V( 2 )
                    452:          T2 = TAU*V2
                    453:          DO 240 J = 1, M
                    454:             SUM = V1*C( J, 1 ) + V2*C( J, 2 )
                    455:             C( J, 1 ) = C( J, 1 ) - SUM*T1
                    456:             C( J, 2 ) = C( J, 2 ) - SUM*T2
                    457:   240    CONTINUE
                    458:          GO TO 410
                    459:   250    CONTINUE
                    460: *
                    461: *        Special code for 3 x 3 Householder
                    462: *
                    463:          V1 = V( 1 )
                    464:          T1 = TAU*V1
                    465:          V2 = V( 2 )
                    466:          T2 = TAU*V2
                    467:          V3 = V( 3 )
                    468:          T3 = TAU*V3
                    469:          DO 260 J = 1, M
                    470:             SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 )
                    471:             C( J, 1 ) = C( J, 1 ) - SUM*T1
                    472:             C( J, 2 ) = C( J, 2 ) - SUM*T2
                    473:             C( J, 3 ) = C( J, 3 ) - SUM*T3
                    474:   260    CONTINUE
                    475:          GO TO 410
                    476:   270    CONTINUE
                    477: *
                    478: *        Special code for 4 x 4 Householder
                    479: *
                    480:          V1 = V( 1 )
                    481:          T1 = TAU*V1
                    482:          V2 = V( 2 )
                    483:          T2 = TAU*V2
                    484:          V3 = V( 3 )
                    485:          T3 = TAU*V3
                    486:          V4 = V( 4 )
                    487:          T4 = TAU*V4
                    488:          DO 280 J = 1, M
                    489:             SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 ) +
                    490:      $            V4*C( J, 4 )
                    491:             C( J, 1 ) = C( J, 1 ) - SUM*T1
                    492:             C( J, 2 ) = C( J, 2 ) - SUM*T2
                    493:             C( J, 3 ) = C( J, 3 ) - SUM*T3
                    494:             C( J, 4 ) = C( J, 4 ) - SUM*T4
                    495:   280    CONTINUE
                    496:          GO TO 410
                    497:   290    CONTINUE
                    498: *
                    499: *        Special code for 5 x 5 Householder
                    500: *
                    501:          V1 = V( 1 )
                    502:          T1 = TAU*V1
                    503:          V2 = V( 2 )
                    504:          T2 = TAU*V2
                    505:          V3 = V( 3 )
                    506:          T3 = TAU*V3
                    507:          V4 = V( 4 )
                    508:          T4 = TAU*V4
                    509:          V5 = V( 5 )
                    510:          T5 = TAU*V5
                    511:          DO 300 J = 1, M
                    512:             SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 ) +
                    513:      $            V4*C( J, 4 ) + V5*C( J, 5 )
                    514:             C( J, 1 ) = C( J, 1 ) - SUM*T1
                    515:             C( J, 2 ) = C( J, 2 ) - SUM*T2
                    516:             C( J, 3 ) = C( J, 3 ) - SUM*T3
                    517:             C( J, 4 ) = C( J, 4 ) - SUM*T4
                    518:             C( J, 5 ) = C( J, 5 ) - SUM*T5
                    519:   300    CONTINUE
                    520:          GO TO 410
                    521:   310    CONTINUE
                    522: *
                    523: *        Special code for 6 x 6 Householder
                    524: *
                    525:          V1 = V( 1 )
                    526:          T1 = TAU*V1
                    527:          V2 = V( 2 )
                    528:          T2 = TAU*V2
                    529:          V3 = V( 3 )
                    530:          T3 = TAU*V3
                    531:          V4 = V( 4 )
                    532:          T4 = TAU*V4
                    533:          V5 = V( 5 )
                    534:          T5 = TAU*V5
                    535:          V6 = V( 6 )
                    536:          T6 = TAU*V6
                    537:          DO 320 J = 1, M
                    538:             SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 ) +
                    539:      $            V4*C( J, 4 ) + V5*C( J, 5 ) + V6*C( J, 6 )
                    540:             C( J, 1 ) = C( J, 1 ) - SUM*T1
                    541:             C( J, 2 ) = C( J, 2 ) - SUM*T2
                    542:             C( J, 3 ) = C( J, 3 ) - SUM*T3
                    543:             C( J, 4 ) = C( J, 4 ) - SUM*T4
                    544:             C( J, 5 ) = C( J, 5 ) - SUM*T5
                    545:             C( J, 6 ) = C( J, 6 ) - SUM*T6
                    546:   320    CONTINUE
                    547:          GO TO 410
                    548:   330    CONTINUE
                    549: *
                    550: *        Special code for 7 x 7 Householder
                    551: *
                    552:          V1 = V( 1 )
                    553:          T1 = TAU*V1
                    554:          V2 = V( 2 )
                    555:          T2 = TAU*V2
                    556:          V3 = V( 3 )
                    557:          T3 = TAU*V3
                    558:          V4 = V( 4 )
                    559:          T4 = TAU*V4
                    560:          V5 = V( 5 )
                    561:          T5 = TAU*V5
                    562:          V6 = V( 6 )
                    563:          T6 = TAU*V6
                    564:          V7 = V( 7 )
                    565:          T7 = TAU*V7
                    566:          DO 340 J = 1, M
                    567:             SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 ) +
                    568:      $            V4*C( J, 4 ) + V5*C( J, 5 ) + V6*C( J, 6 ) +
                    569:      $            V7*C( J, 7 )
                    570:             C( J, 1 ) = C( J, 1 ) - SUM*T1
                    571:             C( J, 2 ) = C( J, 2 ) - SUM*T2
                    572:             C( J, 3 ) = C( J, 3 ) - SUM*T3
                    573:             C( J, 4 ) = C( J, 4 ) - SUM*T4
                    574:             C( J, 5 ) = C( J, 5 ) - SUM*T5
                    575:             C( J, 6 ) = C( J, 6 ) - SUM*T6
                    576:             C( J, 7 ) = C( J, 7 ) - SUM*T7
                    577:   340    CONTINUE
                    578:          GO TO 410
                    579:   350    CONTINUE
                    580: *
                    581: *        Special code for 8 x 8 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:          DO 360 J = 1, M
                    600:             SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 ) +
                    601:      $            V4*C( J, 4 ) + V5*C( J, 5 ) + V6*C( J, 6 ) +
                    602:      $            V7*C( J, 7 ) + V8*C( J, 8 )
                    603:             C( J, 1 ) = C( J, 1 ) - SUM*T1
                    604:             C( J, 2 ) = C( J, 2 ) - SUM*T2
                    605:             C( J, 3 ) = C( J, 3 ) - SUM*T3
                    606:             C( J, 4 ) = C( J, 4 ) - SUM*T4
                    607:             C( J, 5 ) = C( J, 5 ) - SUM*T5
                    608:             C( J, 6 ) = C( J, 6 ) - SUM*T6
                    609:             C( J, 7 ) = C( J, 7 ) - SUM*T7
                    610:             C( J, 8 ) = C( J, 8 ) - SUM*T8
                    611:   360    CONTINUE
                    612:          GO TO 410
                    613:   370    CONTINUE
                    614: *
                    615: *        Special code for 9 x 9 Householder
                    616: *
                    617:          V1 = V( 1 )
                    618:          T1 = TAU*V1
                    619:          V2 = V( 2 )
                    620:          T2 = TAU*V2
                    621:          V3 = V( 3 )
                    622:          T3 = TAU*V3
                    623:          V4 = V( 4 )
                    624:          T4 = TAU*V4
                    625:          V5 = V( 5 )
                    626:          T5 = TAU*V5
                    627:          V6 = V( 6 )
                    628:          T6 = TAU*V6
                    629:          V7 = V( 7 )
                    630:          T7 = TAU*V7
                    631:          V8 = V( 8 )
                    632:          T8 = TAU*V8
                    633:          V9 = V( 9 )
                    634:          T9 = TAU*V9
                    635:          DO 380 J = 1, M
                    636:             SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 ) +
                    637:      $            V4*C( J, 4 ) + V5*C( J, 5 ) + V6*C( J, 6 ) +
                    638:      $            V7*C( J, 7 ) + V8*C( J, 8 ) + V9*C( J, 9 )
                    639:             C( J, 1 ) = C( J, 1 ) - SUM*T1
                    640:             C( J, 2 ) = C( J, 2 ) - SUM*T2
                    641:             C( J, 3 ) = C( J, 3 ) - SUM*T3
                    642:             C( J, 4 ) = C( J, 4 ) - SUM*T4
                    643:             C( J, 5 ) = C( J, 5 ) - SUM*T5
                    644:             C( J, 6 ) = C( J, 6 ) - SUM*T6
                    645:             C( J, 7 ) = C( J, 7 ) - SUM*T7
                    646:             C( J, 8 ) = C( J, 8 ) - SUM*T8
                    647:             C( J, 9 ) = C( J, 9 ) - SUM*T9
                    648:   380    CONTINUE
                    649:          GO TO 410
                    650:   390    CONTINUE
                    651: *
                    652: *        Special code for 10 x 10 Householder
                    653: *
                    654:          V1 = V( 1 )
                    655:          T1 = TAU*V1
                    656:          V2 = V( 2 )
                    657:          T2 = TAU*V2
                    658:          V3 = V( 3 )
                    659:          T3 = TAU*V3
                    660:          V4 = V( 4 )
                    661:          T4 = TAU*V4
                    662:          V5 = V( 5 )
                    663:          T5 = TAU*V5
                    664:          V6 = V( 6 )
                    665:          T6 = TAU*V6
                    666:          V7 = V( 7 )
                    667:          T7 = TAU*V7
                    668:          V8 = V( 8 )
                    669:          T8 = TAU*V8
                    670:          V9 = V( 9 )
                    671:          T9 = TAU*V9
                    672:          V10 = V( 10 )
                    673:          T10 = TAU*V10
                    674:          DO 400 J = 1, M
                    675:             SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 ) +
                    676:      $            V4*C( J, 4 ) + V5*C( J, 5 ) + V6*C( J, 6 ) +
                    677:      $            V7*C( J, 7 ) + V8*C( J, 8 ) + V9*C( J, 9 ) +
                    678:      $            V10*C( J, 10 )
                    679:             C( J, 1 ) = C( J, 1 ) - SUM*T1
                    680:             C( J, 2 ) = C( J, 2 ) - SUM*T2
                    681:             C( J, 3 ) = C( J, 3 ) - SUM*T3
                    682:             C( J, 4 ) = C( J, 4 ) - SUM*T4
                    683:             C( J, 5 ) = C( J, 5 ) - SUM*T5
                    684:             C( J, 6 ) = C( J, 6 ) - SUM*T6
                    685:             C( J, 7 ) = C( J, 7 ) - SUM*T7
                    686:             C( J, 8 ) = C( J, 8 ) - SUM*T8
                    687:             C( J, 9 ) = C( J, 9 ) - SUM*T9
                    688:             C( J, 10 ) = C( J, 10 ) - SUM*T10
                    689:   400    CONTINUE
                    690:          GO TO 410
                    691:       END IF
                    692:   410 CONTINUE
                    693:       RETURN
                    694: *
                    695: *     End of DLARFX
                    696: *
                    697:       END

CVSweb interface <joel.bertrand@systella.fr>