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

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>