1 SUBROUTINE DLARFX( 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 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**T
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
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 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**T
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