1: *> \brief \b DLARFX
2: *
3: * =========== DOCUMENTATION ===========
4: *
5: * Online html documentation available at
6: * http://www.netlib.org/lapack/explore-html/
7: *
8: *> \htmlonly
9: *> Download DLARFX + dependencies
10: *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dlarfx.f">
11: *> [TGZ]</a>
12: *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dlarfx.f">
13: *> [ZIP]</a>
14: *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlarfx.f">
15: *> [TXT]</a>
16: *> \endhtmlonly
17: *
18: * Definition:
19: * ===========
20: *
21: * SUBROUTINE DLARFX( SIDE, M, N, V, TAU, C, LDC, WORK )
22: *
23: * .. Scalar Arguments ..
24: * CHARACTER SIDE
25: * INTEGER LDC, M, N
26: * DOUBLE PRECISION TAU
27: * ..
28: * .. Array Arguments ..
29: * DOUBLE PRECISION C( LDC, * ), V( * ), WORK( * )
30: * ..
31: *
32: *
33: *> \par Purpose:
34: * =============
35: *>
36: *> \verbatim
37: *>
38: *> DLARFX applies a real elementary reflector H to a real m by n
39: *> matrix C, from either the left or the right. H is represented in the
40: *> form
41: *>
42: *> H = I - tau * v * v**T
43: *>
44: *> where tau is a real scalar and v is a real vector.
45: *>
46: *> If tau = 0, then H is taken to be the unit matrix
47: *>
48: *> This version uses inline code if H has order < 11.
49: *> \endverbatim
50: *
51: * Arguments:
52: * ==========
53: *
54: *> \param[in] SIDE
55: *> \verbatim
56: *> SIDE is CHARACTER*1
57: *> = 'L': form H * C
58: *> = 'R': form C * H
59: *> \endverbatim
60: *>
61: *> \param[in] M
62: *> \verbatim
63: *> M is INTEGER
64: *> The number of rows of the matrix C.
65: *> \endverbatim
66: *>
67: *> \param[in] N
68: *> \verbatim
69: *> N is INTEGER
70: *> The number of columns of the matrix C.
71: *> \endverbatim
72: *>
73: *> \param[in] V
74: *> \verbatim
75: *> V is DOUBLE PRECISION array, dimension (M) if SIDE = 'L'
76: *> or (N) if SIDE = 'R'
77: *> The vector v in the representation of H.
78: *> \endverbatim
79: *>
80: *> \param[in] TAU
81: *> \verbatim
82: *> TAU is DOUBLE PRECISION
83: *> The value tau in the representation of H.
84: *> \endverbatim
85: *>
86: *> \param[in,out] C
87: *> \verbatim
88: *> C is DOUBLE PRECISION array, dimension (LDC,N)
89: *> On entry, the m by n matrix C.
90: *> On exit, C is overwritten by the matrix H * C if SIDE = 'L',
91: *> or C * H if SIDE = 'R'.
92: *> \endverbatim
93: *>
94: *> \param[in] LDC
95: *> \verbatim
96: *> LDC is INTEGER
97: *> The leading dimension of the array C. LDA >= (1,M).
98: *> \endverbatim
99: *>
100: *> \param[out] WORK
101: *> \verbatim
102: *> WORK is DOUBLE PRECISION array, dimension
103: *> (N) if SIDE = 'L'
104: *> or (M) if SIDE = 'R'
105: *> WORK is not referenced if H has order < 11.
106: *> \endverbatim
107: *
108: * Authors:
109: * ========
110: *
111: *> \author Univ. of Tennessee
112: *> \author Univ. of California Berkeley
113: *> \author Univ. of Colorado Denver
114: *> \author NAG Ltd.
115: *
116: *> \date November 2011
117: *
118: *> \ingroup doubleOTHERauxiliary
119: *
120: * =====================================================================
121: SUBROUTINE DLARFX( SIDE, M, N, V, TAU, C, LDC, WORK )
122: *
123: * -- LAPACK auxiliary routine (version 3.4.0) --
124: * -- LAPACK is a software package provided by Univ. of Tennessee, --
125: * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
126: * November 2011
127: *
128: * .. Scalar Arguments ..
129: CHARACTER SIDE
130: INTEGER LDC, M, N
131: DOUBLE PRECISION TAU
132: * ..
133: * .. Array Arguments ..
134: DOUBLE PRECISION C( LDC, * ), V( * ), WORK( * )
135: * ..
136: *
137: * =====================================================================
138: *
139: * .. Parameters ..
140: DOUBLE PRECISION ZERO, ONE
141: PARAMETER ( ZERO = 0.0D+0, ONE = 1.0D+0 )
142: * ..
143: * .. Local Scalars ..
144: INTEGER J
145: DOUBLE PRECISION SUM, T1, T10, T2, T3, T4, T5, T6, T7, T8, T9,
146: $ V1, V10, V2, V3, V4, V5, V6, V7, V8, V9
147: * ..
148: * .. External Functions ..
149: LOGICAL LSAME
150: EXTERNAL LSAME
151: * ..
152: * .. External Subroutines ..
153: EXTERNAL DLARF
154: * ..
155: * .. Executable Statements ..
156: *
157: IF( TAU.EQ.ZERO )
158: $ RETURN
159: IF( LSAME( SIDE, 'L' ) ) THEN
160: *
161: * Form H * C, where H has order m.
162: *
163: GO TO ( 10, 30, 50, 70, 90, 110, 130, 150,
164: $ 170, 190 )M
165: *
166: * Code for general M
167: *
168: CALL DLARF( SIDE, M, N, V, 1, TAU, C, LDC, WORK )
169: GO TO 410
170: 10 CONTINUE
171: *
172: * Special code for 1 x 1 Householder
173: *
174: T1 = ONE - TAU*V( 1 )*V( 1 )
175: DO 20 J = 1, N
176: C( 1, J ) = T1*C( 1, J )
177: 20 CONTINUE
178: GO TO 410
179: 30 CONTINUE
180: *
181: * Special code for 2 x 2 Householder
182: *
183: V1 = V( 1 )
184: T1 = TAU*V1
185: V2 = V( 2 )
186: T2 = TAU*V2
187: DO 40 J = 1, N
188: SUM = V1*C( 1, J ) + V2*C( 2, J )
189: C( 1, J ) = C( 1, J ) - SUM*T1
190: C( 2, J ) = C( 2, J ) - SUM*T2
191: 40 CONTINUE
192: GO TO 410
193: 50 CONTINUE
194: *
195: * Special code for 3 x 3 Householder
196: *
197: V1 = V( 1 )
198: T1 = TAU*V1
199: V2 = V( 2 )
200: T2 = TAU*V2
201: V3 = V( 3 )
202: T3 = TAU*V3
203: DO 60 J = 1, N
204: SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, 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: 60 CONTINUE
209: GO TO 410
210: 70 CONTINUE
211: *
212: * Special code for 4 x 4 Householder
213: *
214: V1 = V( 1 )
215: T1 = TAU*V1
216: V2 = V( 2 )
217: T2 = TAU*V2
218: V3 = V( 3 )
219: T3 = TAU*V3
220: V4 = V( 4 )
221: T4 = TAU*V4
222: DO 80 J = 1, N
223: SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) +
224: $ V4*C( 4, J )
225: C( 1, J ) = C( 1, J ) - SUM*T1
226: C( 2, J ) = C( 2, J ) - SUM*T2
227: C( 3, J ) = C( 3, J ) - SUM*T3
228: C( 4, J ) = C( 4, J ) - SUM*T4
229: 80 CONTINUE
230: GO TO 410
231: 90 CONTINUE
232: *
233: * Special code for 5 x 5 Householder
234: *
235: V1 = V( 1 )
236: T1 = TAU*V1
237: V2 = V( 2 )
238: T2 = TAU*V2
239: V3 = V( 3 )
240: T3 = TAU*V3
241: V4 = V( 4 )
242: T4 = TAU*V4
243: V5 = V( 5 )
244: T5 = TAU*V5
245: DO 100 J = 1, N
246: SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) +
247: $ V4*C( 4, J ) + V5*C( 5, J )
248: C( 1, J ) = C( 1, J ) - SUM*T1
249: C( 2, J ) = C( 2, J ) - SUM*T2
250: C( 3, J ) = C( 3, J ) - SUM*T3
251: C( 4, J ) = C( 4, J ) - SUM*T4
252: C( 5, J ) = C( 5, J ) - SUM*T5
253: 100 CONTINUE
254: GO TO 410
255: 110 CONTINUE
256: *
257: * Special code for 6 x 6 Householder
258: *
259: V1 = V( 1 )
260: T1 = TAU*V1
261: V2 = V( 2 )
262: T2 = TAU*V2
263: V3 = V( 3 )
264: T3 = TAU*V3
265: V4 = V( 4 )
266: T4 = TAU*V4
267: V5 = V( 5 )
268: T5 = TAU*V5
269: V6 = V( 6 )
270: T6 = TAU*V6
271: DO 120 J = 1, N
272: SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) +
273: $ V4*C( 4, J ) + V5*C( 5, J ) + V6*C( 6, J )
274: C( 1, J ) = C( 1, J ) - SUM*T1
275: C( 2, J ) = C( 2, J ) - SUM*T2
276: C( 3, J ) = C( 3, J ) - SUM*T3
277: C( 4, J ) = C( 4, J ) - SUM*T4
278: C( 5, J ) = C( 5, J ) - SUM*T5
279: C( 6, J ) = C( 6, J ) - SUM*T6
280: 120 CONTINUE
281: GO TO 410
282: 130 CONTINUE
283: *
284: * Special code for 7 x 7 Householder
285: *
286: V1 = V( 1 )
287: T1 = TAU*V1
288: V2 = V( 2 )
289: T2 = TAU*V2
290: V3 = V( 3 )
291: T3 = TAU*V3
292: V4 = V( 4 )
293: T4 = TAU*V4
294: V5 = V( 5 )
295: T5 = TAU*V5
296: V6 = V( 6 )
297: T6 = TAU*V6
298: V7 = V( 7 )
299: T7 = TAU*V7
300: DO 140 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 )
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: 140 CONTINUE
312: GO TO 410
313: 150 CONTINUE
314: *
315: * Special code for 8 x 8 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: DO 160 J = 1, N
334: SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) +
335: $ V4*C( 4, J ) + V5*C( 5, J ) + V6*C( 6, J ) +
336: $ V7*C( 7, J ) + V8*C( 8, J )
337: C( 1, J ) = C( 1, J ) - SUM*T1
338: C( 2, J ) = C( 2, J ) - SUM*T2
339: C( 3, J ) = C( 3, J ) - SUM*T3
340: C( 4, J ) = C( 4, J ) - SUM*T4
341: C( 5, J ) = C( 5, J ) - SUM*T5
342: C( 6, J ) = C( 6, J ) - SUM*T6
343: C( 7, J ) = C( 7, J ) - SUM*T7
344: C( 8, J ) = C( 8, J ) - SUM*T8
345: 160 CONTINUE
346: GO TO 410
347: 170 CONTINUE
348: *
349: * Special code for 9 x 9 Householder
350: *
351: V1 = V( 1 )
352: T1 = TAU*V1
353: V2 = V( 2 )
354: T2 = TAU*V2
355: V3 = V( 3 )
356: T3 = TAU*V3
357: V4 = V( 4 )
358: T4 = TAU*V4
359: V5 = V( 5 )
360: T5 = TAU*V5
361: V6 = V( 6 )
362: T6 = TAU*V6
363: V7 = V( 7 )
364: T7 = TAU*V7
365: V8 = V( 8 )
366: T8 = TAU*V8
367: V9 = V( 9 )
368: T9 = TAU*V9
369: DO 180 J = 1, N
370: SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) +
371: $ V4*C( 4, J ) + V5*C( 5, J ) + V6*C( 6, J ) +
372: $ V7*C( 7, J ) + V8*C( 8, J ) + V9*C( 9, J )
373: C( 1, J ) = C( 1, J ) - SUM*T1
374: C( 2, J ) = C( 2, J ) - SUM*T2
375: C( 3, J ) = C( 3, J ) - SUM*T3
376: C( 4, J ) = C( 4, J ) - SUM*T4
377: C( 5, J ) = C( 5, J ) - SUM*T5
378: C( 6, J ) = C( 6, J ) - SUM*T6
379: C( 7, J ) = C( 7, J ) - SUM*T7
380: C( 8, J ) = C( 8, J ) - SUM*T8
381: C( 9, J ) = C( 9, J ) - SUM*T9
382: 180 CONTINUE
383: GO TO 410
384: 190 CONTINUE
385: *
386: * Special code for 10 x 10 Householder
387: *
388: V1 = V( 1 )
389: T1 = TAU*V1
390: V2 = V( 2 )
391: T2 = TAU*V2
392: V3 = V( 3 )
393: T3 = TAU*V3
394: V4 = V( 4 )
395: T4 = TAU*V4
396: V5 = V( 5 )
397: T5 = TAU*V5
398: V6 = V( 6 )
399: T6 = TAU*V6
400: V7 = V( 7 )
401: T7 = TAU*V7
402: V8 = V( 8 )
403: T8 = TAU*V8
404: V9 = V( 9 )
405: T9 = TAU*V9
406: V10 = V( 10 )
407: T10 = TAU*V10
408: DO 200 J = 1, N
409: SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) +
410: $ V4*C( 4, J ) + V5*C( 5, J ) + V6*C( 6, J ) +
411: $ V7*C( 7, J ) + V8*C( 8, J ) + V9*C( 9, J ) +
412: $ V10*C( 10, J )
413: C( 1, J ) = C( 1, J ) - SUM*T1
414: C( 2, J ) = C( 2, J ) - SUM*T2
415: C( 3, J ) = C( 3, J ) - SUM*T3
416: C( 4, J ) = C( 4, J ) - SUM*T4
417: C( 5, J ) = C( 5, J ) - SUM*T5
418: C( 6, J ) = C( 6, J ) - SUM*T6
419: C( 7, J ) = C( 7, J ) - SUM*T7
420: C( 8, J ) = C( 8, J ) - SUM*T8
421: C( 9, J ) = C( 9, J ) - SUM*T9
422: C( 10, J ) = C( 10, J ) - SUM*T10
423: 200 CONTINUE
424: GO TO 410
425: ELSE
426: *
427: * Form C * H, where H has order n.
428: *
429: GO TO ( 210, 230, 250, 270, 290, 310, 330, 350,
430: $ 370, 390 )N
431: *
432: * Code for general N
433: *
434: CALL DLARF( SIDE, M, N, V, 1, TAU, C, LDC, WORK )
435: GO TO 410
436: 210 CONTINUE
437: *
438: * Special code for 1 x 1 Householder
439: *
440: T1 = ONE - TAU*V( 1 )*V( 1 )
441: DO 220 J = 1, M
442: C( J, 1 ) = T1*C( J, 1 )
443: 220 CONTINUE
444: GO TO 410
445: 230 CONTINUE
446: *
447: * Special code for 2 x 2 Householder
448: *
449: V1 = V( 1 )
450: T1 = TAU*V1
451: V2 = V( 2 )
452: T2 = TAU*V2
453: DO 240 J = 1, M
454: SUM = V1*C( J, 1 ) + V2*C( J, 2 )
455: C( J, 1 ) = C( J, 1 ) - SUM*T1
456: C( J, 2 ) = C( J, 2 ) - SUM*T2
457: 240 CONTINUE
458: GO TO 410
459: 250 CONTINUE
460: *
461: * Special code for 3 x 3 Householder
462: *
463: V1 = V( 1 )
464: T1 = TAU*V1
465: V2 = V( 2 )
466: T2 = TAU*V2
467: V3 = V( 3 )
468: T3 = TAU*V3
469: DO 260 J = 1, M
470: SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 )
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: 260 CONTINUE
475: GO TO 410
476: 270 CONTINUE
477: *
478: * Special code for 4 x 4 Householder
479: *
480: V1 = V( 1 )
481: T1 = TAU*V1
482: V2 = V( 2 )
483: T2 = TAU*V2
484: V3 = V( 3 )
485: T3 = TAU*V3
486: V4 = V( 4 )
487: T4 = TAU*V4
488: DO 280 J = 1, M
489: SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 ) +
490: $ V4*C( J, 4 )
491: C( J, 1 ) = C( J, 1 ) - SUM*T1
492: C( J, 2 ) = C( J, 2 ) - SUM*T2
493: C( J, 3 ) = C( J, 3 ) - SUM*T3
494: C( J, 4 ) = C( J, 4 ) - SUM*T4
495: 280 CONTINUE
496: GO TO 410
497: 290 CONTINUE
498: *
499: * Special code for 5 x 5 Householder
500: *
501: V1 = V( 1 )
502: T1 = TAU*V1
503: V2 = V( 2 )
504: T2 = TAU*V2
505: V3 = V( 3 )
506: T3 = TAU*V3
507: V4 = V( 4 )
508: T4 = TAU*V4
509: V5 = V( 5 )
510: T5 = TAU*V5
511: DO 300 J = 1, M
512: SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 ) +
513: $ V4*C( J, 4 ) + V5*C( J, 5 )
514: C( J, 1 ) = C( J, 1 ) - SUM*T1
515: C( J, 2 ) = C( J, 2 ) - SUM*T2
516: C( J, 3 ) = C( J, 3 ) - SUM*T3
517: C( J, 4 ) = C( J, 4 ) - SUM*T4
518: C( J, 5 ) = C( J, 5 ) - SUM*T5
519: 300 CONTINUE
520: GO TO 410
521: 310 CONTINUE
522: *
523: * Special code for 6 x 6 Householder
524: *
525: V1 = V( 1 )
526: T1 = TAU*V1
527: V2 = V( 2 )
528: T2 = TAU*V2
529: V3 = V( 3 )
530: T3 = TAU*V3
531: V4 = V( 4 )
532: T4 = TAU*V4
533: V5 = V( 5 )
534: T5 = TAU*V5
535: V6 = V( 6 )
536: T6 = TAU*V6
537: DO 320 J = 1, M
538: SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 ) +
539: $ V4*C( J, 4 ) + V5*C( J, 5 ) + V6*C( J, 6 )
540: C( J, 1 ) = C( J, 1 ) - SUM*T1
541: C( J, 2 ) = C( J, 2 ) - SUM*T2
542: C( J, 3 ) = C( J, 3 ) - SUM*T3
543: C( J, 4 ) = C( J, 4 ) - SUM*T4
544: C( J, 5 ) = C( J, 5 ) - SUM*T5
545: C( J, 6 ) = C( J, 6 ) - SUM*T6
546: 320 CONTINUE
547: GO TO 410
548: 330 CONTINUE
549: *
550: * Special code for 7 x 7 Householder
551: *
552: V1 = V( 1 )
553: T1 = TAU*V1
554: V2 = V( 2 )
555: T2 = TAU*V2
556: V3 = V( 3 )
557: T3 = TAU*V3
558: V4 = V( 4 )
559: T4 = TAU*V4
560: V5 = V( 5 )
561: T5 = TAU*V5
562: V6 = V( 6 )
563: T6 = TAU*V6
564: V7 = V( 7 )
565: T7 = TAU*V7
566: DO 340 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 )
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: 340 CONTINUE
578: GO TO 410
579: 350 CONTINUE
580: *
581: * Special code for 8 x 8 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: DO 360 J = 1, M
600: SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 ) +
601: $ V4*C( J, 4 ) + V5*C( J, 5 ) + V6*C( J, 6 ) +
602: $ V7*C( J, 7 ) + V8*C( J, 8 )
603: C( J, 1 ) = C( J, 1 ) - SUM*T1
604: C( J, 2 ) = C( J, 2 ) - SUM*T2
605: C( J, 3 ) = C( J, 3 ) - SUM*T3
606: C( J, 4 ) = C( J, 4 ) - SUM*T4
607: C( J, 5 ) = C( J, 5 ) - SUM*T5
608: C( J, 6 ) = C( J, 6 ) - SUM*T6
609: C( J, 7 ) = C( J, 7 ) - SUM*T7
610: C( J, 8 ) = C( J, 8 ) - SUM*T8
611: 360 CONTINUE
612: GO TO 410
613: 370 CONTINUE
614: *
615: * Special code for 9 x 9 Householder
616: *
617: V1 = V( 1 )
618: T1 = TAU*V1
619: V2 = V( 2 )
620: T2 = TAU*V2
621: V3 = V( 3 )
622: T3 = TAU*V3
623: V4 = V( 4 )
624: T4 = TAU*V4
625: V5 = V( 5 )
626: T5 = TAU*V5
627: V6 = V( 6 )
628: T6 = TAU*V6
629: V7 = V( 7 )
630: T7 = TAU*V7
631: V8 = V( 8 )
632: T8 = TAU*V8
633: V9 = V( 9 )
634: T9 = TAU*V9
635: DO 380 J = 1, M
636: SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 ) +
637: $ V4*C( J, 4 ) + V5*C( J, 5 ) + V6*C( J, 6 ) +
638: $ V7*C( J, 7 ) + V8*C( J, 8 ) + V9*C( J, 9 )
639: C( J, 1 ) = C( J, 1 ) - SUM*T1
640: C( J, 2 ) = C( J, 2 ) - SUM*T2
641: C( J, 3 ) = C( J, 3 ) - SUM*T3
642: C( J, 4 ) = C( J, 4 ) - SUM*T4
643: C( J, 5 ) = C( J, 5 ) - SUM*T5
644: C( J, 6 ) = C( J, 6 ) - SUM*T6
645: C( J, 7 ) = C( J, 7 ) - SUM*T7
646: C( J, 8 ) = C( J, 8 ) - SUM*T8
647: C( J, 9 ) = C( J, 9 ) - SUM*T9
648: 380 CONTINUE
649: GO TO 410
650: 390 CONTINUE
651: *
652: * Special code for 10 x 10 Householder
653: *
654: V1 = V( 1 )
655: T1 = TAU*V1
656: V2 = V( 2 )
657: T2 = TAU*V2
658: V3 = V( 3 )
659: T3 = TAU*V3
660: V4 = V( 4 )
661: T4 = TAU*V4
662: V5 = V( 5 )
663: T5 = TAU*V5
664: V6 = V( 6 )
665: T6 = TAU*V6
666: V7 = V( 7 )
667: T7 = TAU*V7
668: V8 = V( 8 )
669: T8 = TAU*V8
670: V9 = V( 9 )
671: T9 = TAU*V9
672: V10 = V( 10 )
673: T10 = TAU*V10
674: DO 400 J = 1, M
675: SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 ) +
676: $ V4*C( J, 4 ) + V5*C( J, 5 ) + V6*C( J, 6 ) +
677: $ V7*C( J, 7 ) + V8*C( J, 8 ) + V9*C( J, 9 ) +
678: $ V10*C( J, 10 )
679: C( J, 1 ) = C( J, 1 ) - SUM*T1
680: C( J, 2 ) = C( J, 2 ) - SUM*T2
681: C( J, 3 ) = C( J, 3 ) - SUM*T3
682: C( J, 4 ) = C( J, 4 ) - SUM*T4
683: C( J, 5 ) = C( J, 5 ) - SUM*T5
684: C( J, 6 ) = C( J, 6 ) - SUM*T6
685: C( J, 7 ) = C( J, 7 ) - SUM*T7
686: C( J, 8 ) = C( J, 8 ) - SUM*T8
687: C( J, 9 ) = C( J, 9 ) - SUM*T9
688: C( J, 10 ) = C( J, 10 ) - SUM*T10
689: 400 CONTINUE
690: GO TO 410
691: END IF
692: 410 CONTINUE
693: RETURN
694: *
695: * End of DLARFX
696: *
697: END
CVSweb interface <joel.bertrand@systella.fr>