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