001:       SUBROUTINE ZLARFX( SIDE, M, N, V, TAU, C, LDC, WORK )
002:       IMPLICIT NONE
003: *
004: *  -- LAPACK auxiliary routine (version 3.2) --
005: *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
006: *     November 2006
007: *
008: *     .. Scalar Arguments ..
009:       CHARACTER          SIDE
010:       INTEGER            LDC, M, N
011:       COMPLEX*16         TAU
012: *     ..
013: *     .. Array Arguments ..
014:       COMPLEX*16         C( LDC, * ), V( * ), WORK( * )
015: *     ..
016: *
017: *  Purpose
018: *  =======
019: *
020: *  ZLARFX applies a complex elementary reflector H to a complex m by n
021: *  matrix C, from either the left or the right. H is represented in the
022: *  form
023: *
024: *        H = I - tau * v * v'
025: *
026: *  where tau is a complex scalar and v is a complex vector.
027: *
028: *  If tau = 0, then H is taken to be the unit matrix
029: *
030: *  This version uses inline code if H has order < 11.
031: *
032: *  Arguments
033: *  =========
034: *
035: *  SIDE    (input) CHARACTER*1
036: *          = 'L': form  H * C
037: *          = 'R': form  C * H
038: *
039: *  M       (input) INTEGER
040: *          The number of rows of the matrix C.
041: *
042: *  N       (input) INTEGER
043: *          The number of columns of the matrix C.
044: *
045: *  V       (input) COMPLEX*16 array, dimension (M) if SIDE = 'L'
046: *                                        or (N) if SIDE = 'R'
047: *          The vector v in the representation of H.
048: *
049: *  TAU     (input) COMPLEX*16
050: *          The value tau in the representation of H.
051: *
052: *  C       (input/output) COMPLEX*16 array, dimension (LDC,N)
053: *          On entry, the m by n matrix C.
054: *          On exit, C is overwritten by the matrix H * C if SIDE = 'L',
055: *          or C * H if SIDE = 'R'.
056: *
057: *  LDC     (input) INTEGER
058: *          The leading dimension of the array C. LDA >= max(1,M).
059: *
060: *  WORK    (workspace) COMPLEX*16 array, dimension (N) if SIDE = 'L'
061: *                                            or (M) if SIDE = 'R'
062: *          WORK is not referenced if H has order < 11.
063: *
064: *  =====================================================================
065: *
066: *     .. Parameters ..
067:       COMPLEX*16         ZERO, ONE
068:       PARAMETER          ( ZERO = ( 0.0D+0, 0.0D+0 ),
069:      $                   ONE = ( 1.0D+0, 0.0D+0 ) )
070: *     ..
071: *     .. Local Scalars ..
072:       INTEGER            J
073:       COMPLEX*16         SUM, T1, T10, T2, T3, T4, T5, T6, T7, T8, T9,
074:      $                   V1, V10, V2, V3, V4, V5, V6, V7, V8, V9
075: *     ..
076: *     .. External Functions ..
077:       LOGICAL            LSAME
078:       EXTERNAL           LSAME
079: *     ..
080: *     .. External Subroutines ..
081:       EXTERNAL           ZLARF
082: *     ..
083: *     .. Intrinsic Functions ..
084:       INTRINSIC          DCONJG
085: *     ..
086: *     .. Executable Statements ..
087: *
088:       IF( TAU.EQ.ZERO )
089:      $   RETURN
090:       IF( LSAME( SIDE, 'L' ) ) THEN
091: *
092: *        Form  H * C, where H has order m.
093: *
094:          GO TO ( 10, 30, 50, 70, 90, 110, 130, 150,
095:      $           170, 190 )M
096: *
097: *        Code for general M
098: *
099:          CALL ZLARF( SIDE, M, N, V, 1, TAU, C, LDC, WORK )
100:          GO TO 410
101:    10    CONTINUE
102: *
103: *        Special code for 1 x 1 Householder
104: *
105:          T1 = ONE - TAU*V( 1 )*DCONJG( V( 1 ) )
106:          DO 20 J = 1, N
107:             C( 1, J ) = T1*C( 1, J )
108:    20    CONTINUE
109:          GO TO 410
110:    30    CONTINUE
111: *
112: *        Special code for 2 x 2 Householder
113: *
114:          V1 = DCONJG( V( 1 ) )
115:          T1 = TAU*DCONJG( V1 )
116:          V2 = DCONJG( V( 2 ) )
117:          T2 = TAU*DCONJG( V2 )
118:          DO 40 J = 1, N
119:             SUM = V1*C( 1, J ) + V2*C( 2, J )
120:             C( 1, J ) = C( 1, J ) - SUM*T1
121:             C( 2, J ) = C( 2, J ) - SUM*T2
122:    40    CONTINUE
123:          GO TO 410
124:    50    CONTINUE
125: *
126: *        Special code for 3 x 3 Householder
127: *
128:          V1 = DCONJG( V( 1 ) )
129:          T1 = TAU*DCONJG( V1 )
130:          V2 = DCONJG( V( 2 ) )
131:          T2 = TAU*DCONJG( V2 )
132:          V3 = DCONJG( V( 3 ) )
133:          T3 = TAU*DCONJG( V3 )
134:          DO 60 J = 1, N
135:             SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J )
136:             C( 1, J ) = C( 1, J ) - SUM*T1
137:             C( 2, J ) = C( 2, J ) - SUM*T2
138:             C( 3, J ) = C( 3, J ) - SUM*T3
139:    60    CONTINUE
140:          GO TO 410
141:    70    CONTINUE
142: *
143: *        Special code for 4 x 4 Householder
144: *
145:          V1 = DCONJG( V( 1 ) )
146:          T1 = TAU*DCONJG( V1 )
147:          V2 = DCONJG( V( 2 ) )
148:          T2 = TAU*DCONJG( V2 )
149:          V3 = DCONJG( V( 3 ) )
150:          T3 = TAU*DCONJG( V3 )
151:          V4 = DCONJG( V( 4 ) )
152:          T4 = TAU*DCONJG( V4 )
153:          DO 80 J = 1, N
154:             SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) +
155:      $            V4*C( 4, J )
156:             C( 1, J ) = C( 1, J ) - SUM*T1
157:             C( 2, J ) = C( 2, J ) - SUM*T2
158:             C( 3, J ) = C( 3, J ) - SUM*T3
159:             C( 4, J ) = C( 4, J ) - SUM*T4
160:    80    CONTINUE
161:          GO TO 410
162:    90    CONTINUE
163: *
164: *        Special code for 5 x 5 Householder
165: *
166:          V1 = DCONJG( V( 1 ) )
167:          T1 = TAU*DCONJG( V1 )
168:          V2 = DCONJG( V( 2 ) )
169:          T2 = TAU*DCONJG( V2 )
170:          V3 = DCONJG( V( 3 ) )
171:          T3 = TAU*DCONJG( V3 )
172:          V4 = DCONJG( V( 4 ) )
173:          T4 = TAU*DCONJG( V4 )
174:          V5 = DCONJG( V( 5 ) )
175:          T5 = TAU*DCONJG( V5 )
176:          DO 100 J = 1, N
177:             SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) +
178:      $            V4*C( 4, J ) + V5*C( 5, J )
179:             C( 1, J ) = C( 1, J ) - SUM*T1
180:             C( 2, J ) = C( 2, J ) - SUM*T2
181:             C( 3, J ) = C( 3, J ) - SUM*T3
182:             C( 4, J ) = C( 4, J ) - SUM*T4
183:             C( 5, J ) = C( 5, J ) - SUM*T5
184:   100    CONTINUE
185:          GO TO 410
186:   110    CONTINUE
187: *
188: *        Special code for 6 x 6 Householder
189: *
190:          V1 = DCONJG( V( 1 ) )
191:          T1 = TAU*DCONJG( V1 )
192:          V2 = DCONJG( V( 2 ) )
193:          T2 = TAU*DCONJG( V2 )
194:          V3 = DCONJG( V( 3 ) )
195:          T3 = TAU*DCONJG( V3 )
196:          V4 = DCONJG( V( 4 ) )
197:          T4 = TAU*DCONJG( V4 )
198:          V5 = DCONJG( V( 5 ) )
199:          T5 = TAU*DCONJG( V5 )
200:          V6 = DCONJG( V( 6 ) )
201:          T6 = TAU*DCONJG( V6 )
202:          DO 120 J = 1, N
203:             SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) +
204:      $            V4*C( 4, J ) + V5*C( 5, J ) + V6*C( 6, 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:             C( 4, J ) = C( 4, J ) - SUM*T4
209:             C( 5, J ) = C( 5, J ) - SUM*T5
210:             C( 6, J ) = C( 6, J ) - SUM*T6
211:   120    CONTINUE
212:          GO TO 410
213:   130    CONTINUE
214: *
215: *        Special code for 7 x 7 Householder
216: *
217:          V1 = DCONJG( V( 1 ) )
218:          T1 = TAU*DCONJG( V1 )
219:          V2 = DCONJG( V( 2 ) )
220:          T2 = TAU*DCONJG( V2 )
221:          V3 = DCONJG( V( 3 ) )
222:          T3 = TAU*DCONJG( V3 )
223:          V4 = DCONJG( V( 4 ) )
224:          T4 = TAU*DCONJG( V4 )
225:          V5 = DCONJG( V( 5 ) )
226:          T5 = TAU*DCONJG( V5 )
227:          V6 = DCONJG( V( 6 ) )
228:          T6 = TAU*DCONJG( V6 )
229:          V7 = DCONJG( V( 7 ) )
230:          T7 = TAU*DCONJG( V7 )
231:          DO 140 J = 1, N
232:             SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) +
233:      $            V4*C( 4, J ) + V5*C( 5, J ) + V6*C( 6, J ) +
234:      $            V7*C( 7, J )
235:             C( 1, J ) = C( 1, J ) - SUM*T1
236:             C( 2, J ) = C( 2, J ) - SUM*T2
237:             C( 3, J ) = C( 3, J ) - SUM*T3
238:             C( 4, J ) = C( 4, J ) - SUM*T4
239:             C( 5, J ) = C( 5, J ) - SUM*T5
240:             C( 6, J ) = C( 6, J ) - SUM*T6
241:             C( 7, J ) = C( 7, J ) - SUM*T7
242:   140    CONTINUE
243:          GO TO 410
244:   150    CONTINUE
245: *
246: *        Special code for 8 x 8 Householder
247: *
248:          V1 = DCONJG( V( 1 ) )
249:          T1 = TAU*DCONJG( V1 )
250:          V2 = DCONJG( V( 2 ) )
251:          T2 = TAU*DCONJG( V2 )
252:          V3 = DCONJG( V( 3 ) )
253:          T3 = TAU*DCONJG( V3 )
254:          V4 = DCONJG( V( 4 ) )
255:          T4 = TAU*DCONJG( V4 )
256:          V5 = DCONJG( V( 5 ) )
257:          T5 = TAU*DCONJG( V5 )
258:          V6 = DCONJG( V( 6 ) )
259:          T6 = TAU*DCONJG( V6 )
260:          V7 = DCONJG( V( 7 ) )
261:          T7 = TAU*DCONJG( V7 )
262:          V8 = DCONJG( V( 8 ) )
263:          T8 = TAU*DCONJG( V8 )
264:          DO 160 J = 1, N
265:             SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) +
266:      $            V4*C( 4, J ) + V5*C( 5, J ) + V6*C( 6, J ) +
267:      $            V7*C( 7, J ) + V8*C( 8, J )
268:             C( 1, J ) = C( 1, J ) - SUM*T1
269:             C( 2, J ) = C( 2, J ) - SUM*T2
270:             C( 3, J ) = C( 3, J ) - SUM*T3
271:             C( 4, J ) = C( 4, J ) - SUM*T4
272:             C( 5, J ) = C( 5, J ) - SUM*T5
273:             C( 6, J ) = C( 6, J ) - SUM*T6
274:             C( 7, J ) = C( 7, J ) - SUM*T7
275:             C( 8, J ) = C( 8, J ) - SUM*T8
276:   160    CONTINUE
277:          GO TO 410
278:   170    CONTINUE
279: *
280: *        Special code for 9 x 9 Householder
281: *
282:          V1 = DCONJG( V( 1 ) )
283:          T1 = TAU*DCONJG( V1 )
284:          V2 = DCONJG( V( 2 ) )
285:          T2 = TAU*DCONJG( V2 )
286:          V3 = DCONJG( V( 3 ) )
287:          T3 = TAU*DCONJG( V3 )
288:          V4 = DCONJG( V( 4 ) )
289:          T4 = TAU*DCONJG( V4 )
290:          V5 = DCONJG( V( 5 ) )
291:          T5 = TAU*DCONJG( V5 )
292:          V6 = DCONJG( V( 6 ) )
293:          T6 = TAU*DCONJG( V6 )
294:          V7 = DCONJG( V( 7 ) )
295:          T7 = TAU*DCONJG( V7 )
296:          V8 = DCONJG( V( 8 ) )
297:          T8 = TAU*DCONJG( V8 )
298:          V9 = DCONJG( V( 9 ) )
299:          T9 = TAU*DCONJG( V9 )
300:          DO 180 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 ) + V8*C( 8, J ) + V9*C( 9, 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:             C( 8, J ) = C( 8, J ) - SUM*T8
312:             C( 9, J ) = C( 9, J ) - SUM*T9
313:   180    CONTINUE
314:          GO TO 410
315:   190    CONTINUE
316: *
317: *        Special code for 10 x 10 Householder
318: *
319:          V1 = DCONJG( V( 1 ) )
320:          T1 = TAU*DCONJG( V1 )
321:          V2 = DCONJG( V( 2 ) )
322:          T2 = TAU*DCONJG( V2 )
323:          V3 = DCONJG( V( 3 ) )
324:          T3 = TAU*DCONJG( V3 )
325:          V4 = DCONJG( V( 4 ) )
326:          T4 = TAU*DCONJG( V4 )
327:          V5 = DCONJG( V( 5 ) )
328:          T5 = TAU*DCONJG( V5 )
329:          V6 = DCONJG( V( 6 ) )
330:          T6 = TAU*DCONJG( V6 )
331:          V7 = DCONJG( V( 7 ) )
332:          T7 = TAU*DCONJG( V7 )
333:          V8 = DCONJG( V( 8 ) )
334:          T8 = TAU*DCONJG( V8 )
335:          V9 = DCONJG( V( 9 ) )
336:          T9 = TAU*DCONJG( V9 )
337:          V10 = DCONJG( V( 10 ) )
338:          T10 = TAU*DCONJG( V10 )
339:          DO 200 J = 1, N
340:             SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) +
341:      $            V4*C( 4, J ) + V5*C( 5, J ) + V6*C( 6, J ) +
342:      $            V7*C( 7, J ) + V8*C( 8, J ) + V9*C( 9, J ) +
343:      $            V10*C( 10, J )
344:             C( 1, J ) = C( 1, J ) - SUM*T1
345:             C( 2, J ) = C( 2, J ) - SUM*T2
346:             C( 3, J ) = C( 3, J ) - SUM*T3
347:             C( 4, J ) = C( 4, J ) - SUM*T4
348:             C( 5, J ) = C( 5, J ) - SUM*T5
349:             C( 6, J ) = C( 6, J ) - SUM*T6
350:             C( 7, J ) = C( 7, J ) - SUM*T7
351:             C( 8, J ) = C( 8, J ) - SUM*T8
352:             C( 9, J ) = C( 9, J ) - SUM*T9
353:             C( 10, J ) = C( 10, J ) - SUM*T10
354:   200    CONTINUE
355:          GO TO 410
356:       ELSE
357: *
358: *        Form  C * H, where H has order n.
359: *
360:          GO TO ( 210, 230, 250, 270, 290, 310, 330, 350,
361:      $           370, 390 )N
362: *
363: *        Code for general N
364: *
365:          CALL ZLARF( SIDE, M, N, V, 1, TAU, C, LDC, WORK )
366:          GO TO 410
367:   210    CONTINUE
368: *
369: *        Special code for 1 x 1 Householder
370: *
371:          T1 = ONE - TAU*V( 1 )*DCONJG( V( 1 ) )
372:          DO 220 J = 1, M
373:             C( J, 1 ) = T1*C( J, 1 )
374:   220    CONTINUE
375:          GO TO 410
376:   230    CONTINUE
377: *
378: *        Special code for 2 x 2 Householder
379: *
380:          V1 = V( 1 )
381:          T1 = TAU*DCONJG( V1 )
382:          V2 = V( 2 )
383:          T2 = TAU*DCONJG( V2 )
384:          DO 240 J = 1, M
385:             SUM = V1*C( J, 1 ) + V2*C( J, 2 )
386:             C( J, 1 ) = C( J, 1 ) - SUM*T1
387:             C( J, 2 ) = C( J, 2 ) - SUM*T2
388:   240    CONTINUE
389:          GO TO 410
390:   250    CONTINUE
391: *
392: *        Special code for 3 x 3 Householder
393: *
394:          V1 = V( 1 )
395:          T1 = TAU*DCONJG( V1 )
396:          V2 = V( 2 )
397:          T2 = TAU*DCONJG( V2 )
398:          V3 = V( 3 )
399:          T3 = TAU*DCONJG( V3 )
400:          DO 260 J = 1, M
401:             SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 )
402:             C( J, 1 ) = C( J, 1 ) - SUM*T1
403:             C( J, 2 ) = C( J, 2 ) - SUM*T2
404:             C( J, 3 ) = C( J, 3 ) - SUM*T3
405:   260    CONTINUE
406:          GO TO 410
407:   270    CONTINUE
408: *
409: *        Special code for 4 x 4 Householder
410: *
411:          V1 = V( 1 )
412:          T1 = TAU*DCONJG( V1 )
413:          V2 = V( 2 )
414:          T2 = TAU*DCONJG( V2 )
415:          V3 = V( 3 )
416:          T3 = TAU*DCONJG( V3 )
417:          V4 = V( 4 )
418:          T4 = TAU*DCONJG( V4 )
419:          DO 280 J = 1, M
420:             SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 ) +
421:      $            V4*C( J, 4 )
422:             C( J, 1 ) = C( J, 1 ) - SUM*T1
423:             C( J, 2 ) = C( J, 2 ) - SUM*T2
424:             C( J, 3 ) = C( J, 3 ) - SUM*T3
425:             C( J, 4 ) = C( J, 4 ) - SUM*T4
426:   280    CONTINUE
427:          GO TO 410
428:   290    CONTINUE
429: *
430: *        Special code for 5 x 5 Householder
431: *
432:          V1 = V( 1 )
433:          T1 = TAU*DCONJG( V1 )
434:          V2 = V( 2 )
435:          T2 = TAU*DCONJG( V2 )
436:          V3 = V( 3 )
437:          T3 = TAU*DCONJG( V3 )
438:          V4 = V( 4 )
439:          T4 = TAU*DCONJG( V4 )
440:          V5 = V( 5 )
441:          T5 = TAU*DCONJG( V5 )
442:          DO 300 J = 1, M
443:             SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 ) +
444:      $            V4*C( J, 4 ) + V5*C( J, 5 )
445:             C( J, 1 ) = C( J, 1 ) - SUM*T1
446:             C( J, 2 ) = C( J, 2 ) - SUM*T2
447:             C( J, 3 ) = C( J, 3 ) - SUM*T3
448:             C( J, 4 ) = C( J, 4 ) - SUM*T4
449:             C( J, 5 ) = C( J, 5 ) - SUM*T5
450:   300    CONTINUE
451:          GO TO 410
452:   310    CONTINUE
453: *
454: *        Special code for 6 x 6 Householder
455: *
456:          V1 = V( 1 )
457:          T1 = TAU*DCONJG( V1 )
458:          V2 = V( 2 )
459:          T2 = TAU*DCONJG( V2 )
460:          V3 = V( 3 )
461:          T3 = TAU*DCONJG( V3 )
462:          V4 = V( 4 )
463:          T4 = TAU*DCONJG( V4 )
464:          V5 = V( 5 )
465:          T5 = TAU*DCONJG( V5 )
466:          V6 = V( 6 )
467:          T6 = TAU*DCONJG( V6 )
468:          DO 320 J = 1, M
469:             SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 ) +
470:      $            V4*C( J, 4 ) + V5*C( J, 5 ) + V6*C( J, 6 )
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:             C( J, 4 ) = C( J, 4 ) - SUM*T4
475:             C( J, 5 ) = C( J, 5 ) - SUM*T5
476:             C( J, 6 ) = C( J, 6 ) - SUM*T6
477:   320    CONTINUE
478:          GO TO 410
479:   330    CONTINUE
480: *
481: *        Special code for 7 x 7 Householder
482: *
483:          V1 = V( 1 )
484:          T1 = TAU*DCONJG( V1 )
485:          V2 = V( 2 )
486:          T2 = TAU*DCONJG( V2 )
487:          V3 = V( 3 )
488:          T3 = TAU*DCONJG( V3 )
489:          V4 = V( 4 )
490:          T4 = TAU*DCONJG( V4 )
491:          V5 = V( 5 )
492:          T5 = TAU*DCONJG( V5 )
493:          V6 = V( 6 )
494:          T6 = TAU*DCONJG( V6 )
495:          V7 = V( 7 )
496:          T7 = TAU*DCONJG( V7 )
497:          DO 340 J = 1, M
498:             SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 ) +
499:      $            V4*C( J, 4 ) + V5*C( J, 5 ) + V6*C( J, 6 ) +
500:      $            V7*C( J, 7 )
501:             C( J, 1 ) = C( J, 1 ) - SUM*T1
502:             C( J, 2 ) = C( J, 2 ) - SUM*T2
503:             C( J, 3 ) = C( J, 3 ) - SUM*T3
504:             C( J, 4 ) = C( J, 4 ) - SUM*T4
505:             C( J, 5 ) = C( J, 5 ) - SUM*T5
506:             C( J, 6 ) = C( J, 6 ) - SUM*T6
507:             C( J, 7 ) = C( J, 7 ) - SUM*T7
508:   340    CONTINUE
509:          GO TO 410
510:   350    CONTINUE
511: *
512: *        Special code for 8 x 8 Householder
513: *
514:          V1 = V( 1 )
515:          T1 = TAU*DCONJG( V1 )
516:          V2 = V( 2 )
517:          T2 = TAU*DCONJG( V2 )
518:          V3 = V( 3 )
519:          T3 = TAU*DCONJG( V3 )
520:          V4 = V( 4 )
521:          T4 = TAU*DCONJG( V4 )
522:          V5 = V( 5 )
523:          T5 = TAU*DCONJG( V5 )
524:          V6 = V( 6 )
525:          T6 = TAU*DCONJG( V6 )
526:          V7 = V( 7 )
527:          T7 = TAU*DCONJG( V7 )
528:          V8 = V( 8 )
529:          T8 = TAU*DCONJG( V8 )
530:          DO 360 J = 1, M
531:             SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 ) +
532:      $            V4*C( J, 4 ) + V5*C( J, 5 ) + V6*C( J, 6 ) +
533:      $            V7*C( J, 7 ) + V8*C( J, 8 )
534:             C( J, 1 ) = C( J, 1 ) - SUM*T1
535:             C( J, 2 ) = C( J, 2 ) - SUM*T2
536:             C( J, 3 ) = C( J, 3 ) - SUM*T3
537:             C( J, 4 ) = C( J, 4 ) - SUM*T4
538:             C( J, 5 ) = C( J, 5 ) - SUM*T5
539:             C( J, 6 ) = C( J, 6 ) - SUM*T6
540:             C( J, 7 ) = C( J, 7 ) - SUM*T7
541:             C( J, 8 ) = C( J, 8 ) - SUM*T8
542:   360    CONTINUE
543:          GO TO 410
544:   370    CONTINUE
545: *
546: *        Special code for 9 x 9 Householder
547: *
548:          V1 = V( 1 )
549:          T1 = TAU*DCONJG( V1 )
550:          V2 = V( 2 )
551:          T2 = TAU*DCONJG( V2 )
552:          V3 = V( 3 )
553:          T3 = TAU*DCONJG( V3 )
554:          V4 = V( 4 )
555:          T4 = TAU*DCONJG( V4 )
556:          V5 = V( 5 )
557:          T5 = TAU*DCONJG( V5 )
558:          V6 = V( 6 )
559:          T6 = TAU*DCONJG( V6 )
560:          V7 = V( 7 )
561:          T7 = TAU*DCONJG( V7 )
562:          V8 = V( 8 )
563:          T8 = TAU*DCONJG( V8 )
564:          V9 = V( 9 )
565:          T9 = TAU*DCONJG( V9 )
566:          DO 380 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 ) + V8*C( J, 8 ) + V9*C( J, 9 )
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:             C( J, 8 ) = C( J, 8 ) - SUM*T8
578:             C( J, 9 ) = C( J, 9 ) - SUM*T9
579:   380    CONTINUE
580:          GO TO 410
581:   390    CONTINUE
582: *
583: *        Special code for 10 x 10 Householder
584: *
585:          V1 = V( 1 )
586:          T1 = TAU*DCONJG( V1 )
587:          V2 = V( 2 )
588:          T2 = TAU*DCONJG( V2 )
589:          V3 = V( 3 )
590:          T3 = TAU*DCONJG( V3 )
591:          V4 = V( 4 )
592:          T4 = TAU*DCONJG( V4 )
593:          V5 = V( 5 )
594:          T5 = TAU*DCONJG( V5 )
595:          V6 = V( 6 )
596:          T6 = TAU*DCONJG( V6 )
597:          V7 = V( 7 )
598:          T7 = TAU*DCONJG( V7 )
599:          V8 = V( 8 )
600:          T8 = TAU*DCONJG( V8 )
601:          V9 = V( 9 )
602:          T9 = TAU*DCONJG( V9 )
603:          V10 = V( 10 )
604:          T10 = TAU*DCONJG( V10 )
605:          DO 400 J = 1, M
606:             SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 ) +
607:      $            V4*C( J, 4 ) + V5*C( J, 5 ) + V6*C( J, 6 ) +
608:      $            V7*C( J, 7 ) + V8*C( J, 8 ) + V9*C( J, 9 ) +
609:      $            V10*C( J, 10 )
610:             C( J, 1 ) = C( J, 1 ) - SUM*T1
611:             C( J, 2 ) = C( J, 2 ) - SUM*T2
612:             C( J, 3 ) = C( J, 3 ) - SUM*T3
613:             C( J, 4 ) = C( J, 4 ) - SUM*T4
614:             C( J, 5 ) = C( J, 5 ) - SUM*T5
615:             C( J, 6 ) = C( J, 6 ) - SUM*T6
616:             C( J, 7 ) = C( J, 7 ) - SUM*T7
617:             C( J, 8 ) = C( J, 8 ) - SUM*T8
618:             C( J, 9 ) = C( J, 9 ) - SUM*T9
619:             C( J, 10 ) = C( J, 10 ) - SUM*T10
620:   400    CONTINUE
621:          GO TO 410
622:       END IF
623:   410 CONTINUE
624:       RETURN
625: *
626: *     End of ZLARFX
627: *
628:       END
629: