1       SUBROUTINE ZLARFX( SIDE, M, N, V, TAU, C, LDC, WORK )
  2       IMPLICIT NONE
  3 *
  4 *  -- LAPACK auxiliary routine (version 3.3.1) --
  5 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
  6 *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
  7 *  -- April 2011                                                      --
  8 *
  9 *     .. Scalar Arguments ..
 10       CHARACTER          SIDE
 11       INTEGER            LDC, M, N
 12       COMPLEX*16         TAU
 13 *     ..
 14 *     .. Array Arguments ..
 15       COMPLEX*16         C( LDC, * ), V( * ), WORK( * )
 16 *     ..
 17 *
 18 *  Purpose
 19 *  =======
 20 *
 21 *  ZLARFX applies a complex elementary reflector H to a complex 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**H
 26 *
 27 *  where tau is a complex scalar and v is a complex 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) COMPLEX*16 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) COMPLEX*16
 51 *          The value tau in the representation of H.
 52 *
 53 *  C       (input/output) COMPLEX*16 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 >= max(1,M).
 60 *
 61 *  WORK    (workspace) COMPLEX*16 array, dimension (N) if SIDE = 'L'
 62 *                                            or (M) if SIDE = 'R'
 63 *          WORK is not referenced if H has order < 11.
 64 *
 65 *  =====================================================================
 66 *
 67 *     .. Parameters ..
 68       COMPLEX*16         ZERO, ONE
 69       PARAMETER          ( ZERO = ( 0.0D+00.0D+0 ),
 70      $                   ONE = ( 1.0D+00.0D+0 ) )
 71 *     ..
 72 *     .. Local Scalars ..
 73       INTEGER            J
 74       COMPLEX*16         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           ZLARF
 83 *     ..
 84 *     .. Intrinsic Functions ..
 85       INTRINSIC          DCONJG
 86 *     ..
 87 *     .. Executable Statements ..
 88 *
 89       IF( TAU.EQ.ZERO )
 90      $   RETURN
 91       IF( LSAME( SIDE, 'L' ) ) THEN
 92 *
 93 *        Form  H * C, where H has order m.
 94 *
 95          GO TO ( 1030507090110130150,
 96      $           170190 )M
 97 *
 98 *        Code for general M
 99 *
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 ( 210230250270290310330350,
362      $           370390 )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