File:  [local] / rpl / lapack / lapack / dlarfx.f
Revision 1.3: download - view: text, annotated - select for diffs - revision graph
Fri Aug 6 15:28:42 2010 UTC (13 years, 9 months ago) by bertrand
Branches: MAIN
CVS tags: HEAD
Cohérence

    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

CVSweb interface <joel.bertrand@systella.fr>