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