001:       SUBROUTINE DLARFX( SIDE, M, N, V, TAU, C, LDC, WORK )
002:       IMPLICIT NONE
003: *
004: *  -- LAPACK auxiliary routine (version 3.2) --
005: *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
006: *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
007: *     November 2006
008: *
009: *     .. Scalar Arguments ..
010:       CHARACTER          SIDE
011:       INTEGER            LDC, M, N
012:       DOUBLE PRECISION   TAU
013: *     ..
014: *     .. Array Arguments ..
015:       DOUBLE PRECISION   C( LDC, * ), V( * ), WORK( * )
016: *     ..
017: *
018: *  Purpose
019: *  =======
020: *
021: *  DLARFX applies a real elementary reflector H to a real m by n
022: *  matrix C, from either the left or the right. H is represented in the
023: *  form
024: *
025: *        H = I - tau * v * v'
026: *
027: *  where tau is a real scalar and v is a real vector.
028: *
029: *  If tau = 0, then H is taken to be the unit matrix
030: *
031: *  This version uses inline code if H has order < 11.
032: *
033: *  Arguments
034: *  =========
035: *
036: *  SIDE    (input) CHARACTER*1
037: *          = 'L': form  H * C
038: *          = 'R': form  C * H
039: *
040: *  M       (input) INTEGER
041: *          The number of rows of the matrix C.
042: *
043: *  N       (input) INTEGER
044: *          The number of columns of the matrix C.
045: *
046: *  V       (input) DOUBLE PRECISION array, dimension (M) if SIDE = 'L'
047: *                                     or (N) if SIDE = 'R'
048: *          The vector v in the representation of H.
049: *
050: *  TAU     (input) DOUBLE PRECISION
051: *          The value tau in the representation of H.
052: *
053: *  C       (input/output) DOUBLE PRECISION array, dimension (LDC,N)
054: *          On entry, the m by n matrix C.
055: *          On exit, C is overwritten by the matrix H * C if SIDE = 'L',
056: *          or C * H if SIDE = 'R'.
057: *
058: *  LDC     (input) INTEGER
059: *          The leading dimension of the array C. LDA >= (1,M).
060: *
061: *  WORK    (workspace) DOUBLE PRECISION array, dimension
062: *                      (N) if SIDE = 'L'
063: *                      or (M) if SIDE = 'R'
064: *          WORK is not referenced if H has order < 11.
065: *
066: *  =====================================================================
067: *
068: *     .. Parameters ..
069:       DOUBLE PRECISION   ZERO, ONE
070:       PARAMETER          ( ZERO = 0.0D+0, ONE = 1.0D+0 )
071: *     ..
072: *     .. Local Scalars ..
073:       INTEGER            J
074:       DOUBLE PRECISION   SUM, T1, T10, T2, T3, T4, T5, T6, T7, T8, T9,
075:      $                   V1, V10, V2, V3, V4, V5, V6, V7, V8, V9
076: *     ..
077: *     .. External Functions ..
078:       LOGICAL            LSAME
079:       EXTERNAL           LSAME
080: *     ..
081: *     .. External Subroutines ..
082:       EXTERNAL           DLARF
083: *     ..
084: *     .. Executable Statements ..
085: *
086:       IF( TAU.EQ.ZERO )
087:      $   RETURN
088:       IF( LSAME( SIDE, 'L' ) ) THEN
089: *
090: *        Form  H * C, where H has order m.
091: *
092:          GO TO ( 10, 30, 50, 70, 90, 110, 130, 150,
093:      $           170, 190 )M
094: *
095: *        Code for general M
096: *
097:          CALL DLARF( SIDE, M, N, V, 1, TAU, C, LDC, WORK )
098:          GO TO 410
099:    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
627: