118 SUBROUTINE zlarfx( SIDE, M, N, V, TAU, C, LDC, WORK )
130 COMPLEX*16 C( LDC, * ), V( * ), WORK( * )
137 parameter( zero = ( 0.0d+0, 0.0d+0 ),
138 $ one = ( 1.0d+0, 0.0d+0 ) )
142 COMPLEX*16 SUM, T1, T10, T2, T3, T4, T5, T6, T7, T8, T9,
143 $ V1, V10, V2, V3, V4, V5, V6, V7, V8, V9
159 IF( lsame( side,
'L' ) )
THEN
163 GO TO ( 10, 30, 50, 70, 90, 110, 130, 150,
168 CALL zlarf( side, m, n, v, 1, tau, c, ldc, work )
174 t1 = one - tau*v( 1 )*dconjg( v( 1 ) )
176 c( 1, j ) = t1*c( 1, j )
183 v1 = dconjg( v( 1 ) )
184 t1 = tau*dconjg( v1 )
185 v2 = dconjg( v( 2 ) )
186 t2 = tau*dconjg( v2 )
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
197 v1 = dconjg( v( 1 ) )
198 t1 = tau*dconjg( v1 )
199 v2 = dconjg( v( 2 ) )
200 t2 = tau*dconjg( v2 )
201 v3 = dconjg( v( 3 ) )
202 t3 = tau*dconjg( v3 )
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
214 v1 = dconjg( v( 1 ) )
215 t1 = tau*dconjg( v1 )
216 v2 = dconjg( v( 2 ) )
217 t2 = tau*dconjg( v2 )
218 v3 = dconjg( v( 3 ) )
219 t3 = tau*dconjg( v3 )
220 v4 = dconjg( v( 4 ) )
221 t4 = tau*dconjg( v4 )
223 sum = v1*c( 1, j ) + v2*c( 2, j ) + v3*c( 3, 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
235 v1 = dconjg( v( 1 ) )
236 t1 = tau*dconjg( v1 )
237 v2 = dconjg( v( 2 ) )
238 t2 = tau*dconjg( v2 )
239 v3 = dconjg( v( 3 ) )
240 t3 = tau*dconjg( v3 )
241 v4 = dconjg( v( 4 ) )
242 t4 = tau*dconjg( v4 )
243 v5 = dconjg( v( 5 ) )
244 t5 = tau*dconjg( v5 )
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
259 v1 = dconjg( v( 1 ) )
260 t1 = tau*dconjg( v1 )
261 v2 = dconjg( v( 2 ) )
262 t2 = tau*dconjg( v2 )
263 v3 = dconjg( v( 3 ) )
264 t3 = tau*dconjg( v3 )
265 v4 = dconjg( v( 4 ) )
266 t4 = tau*dconjg( v4 )
267 v5 = dconjg( v( 5 ) )
268 t5 = tau*dconjg( v5 )
269 v6 = dconjg( v( 6 ) )
270 t6 = tau*dconjg( v6 )
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
286 v1 = dconjg( v( 1 ) )
287 t1 = tau*dconjg( v1 )
288 v2 = dconjg( v( 2 ) )
289 t2 = tau*dconjg( v2 )
290 v3 = dconjg( v( 3 ) )
291 t3 = tau*dconjg( v3 )
292 v4 = dconjg( v( 4 ) )
293 t4 = tau*dconjg( v4 )
294 v5 = dconjg( v( 5 ) )
295 t5 = tau*dconjg( v5 )
296 v6 = dconjg( v( 6 ) )
297 t6 = tau*dconjg( v6 )
298 v7 = dconjg( v( 7 ) )
299 t7 = tau*dconjg( v7 )
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 ) +
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
317 v1 = dconjg( v( 1 ) )
318 t1 = tau*dconjg( v1 )
319 v2 = dconjg( v( 2 ) )
320 t2 = tau*dconjg( v2 )
321 v3 = dconjg( v( 3 ) )
322 t3 = tau*dconjg( v3 )
323 v4 = dconjg( v( 4 ) )
324 t4 = tau*dconjg( v4 )
325 v5 = dconjg( v( 5 ) )
326 t5 = tau*dconjg( v5 )
327 v6 = dconjg( v( 6 ) )
328 t6 = tau*dconjg( v6 )
329 v7 = dconjg( v( 7 ) )
330 t7 = tau*dconjg( v7 )
331 v8 = dconjg( v( 8 ) )
332 t8 = tau*dconjg( v8 )
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
351 v1 = dconjg( v( 1 ) )
352 t1 = tau*dconjg( v1 )
353 v2 = dconjg( v( 2 ) )
354 t2 = tau*dconjg( v2 )
355 v3 = dconjg( v( 3 ) )
356 t3 = tau*dconjg( v3 )
357 v4 = dconjg( v( 4 ) )
358 t4 = tau*dconjg( v4 )
359 v5 = dconjg( v( 5 ) )
360 t5 = tau*dconjg( v5 )
361 v6 = dconjg( v( 6 ) )
362 t6 = tau*dconjg( v6 )
363 v7 = dconjg( v( 7 ) )
364 t7 = tau*dconjg( v7 )
365 v8 = dconjg( v( 8 ) )
366 t8 = tau*dconjg( v8 )
367 v9 = dconjg( v( 9 ) )
368 t9 = tau*dconjg( v9 )
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
388 v1 = dconjg( v( 1 ) )
389 t1 = tau*dconjg( v1 )
390 v2 = dconjg( v( 2 ) )
391 t2 = tau*dconjg( v2 )
392 v3 = dconjg( v( 3 ) )
393 t3 = tau*dconjg( v3 )
394 v4 = dconjg( v( 4 ) )
395 t4 = tau*dconjg( v4 )
396 v5 = dconjg( v( 5 ) )
397 t5 = tau*dconjg( v5 )
398 v6 = dconjg( v( 6 ) )
399 t6 = tau*dconjg( v6 )
400 v7 = dconjg( v( 7 ) )
401 t7 = tau*dconjg( v7 )
402 v8 = dconjg( v( 8 ) )
403 t8 = tau*dconjg( v8 )
404 v9 = dconjg( v( 9 ) )
405 t9 = tau*dconjg( v9 )
406 v10 = dconjg( v( 10 ) )
407 t10 = tau*dconjg( v10 )
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 ) +
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
429 GO TO ( 210, 230, 250, 270, 290, 310, 330, 350,
434 CALL zlarf( side, m, n, v, 1, tau, c, ldc, work )
440 t1 = one - tau*v( 1 )*dconjg( v( 1 ) )
442 c( j, 1 ) = t1*c( j, 1 )
450 t1 = tau*dconjg( v1 )
452 t2 = tau*dconjg( v2 )
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
464 t1 = tau*dconjg( v1 )
466 t2 = tau*dconjg( v2 )
468 t3 = tau*dconjg( v3 )
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
481 t1 = tau*dconjg( v1 )
483 t2 = tau*dconjg( v2 )
485 t3 = tau*dconjg( v3 )
487 t4 = tau*dconjg( v4 )
489 sum = v1*c( j, 1 ) + v2*c( j, 2 ) + v3*c( j, 3 ) +
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
502 t1 = tau*dconjg( v1 )
504 t2 = tau*dconjg( v2 )
506 t3 = tau*dconjg( v3 )
508 t4 = tau*dconjg( v4 )
510 t5 = tau*dconjg( v5 )
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
526 t1 = tau*dconjg( v1 )
528 t2 = tau*dconjg( v2 )
530 t3 = tau*dconjg( v3 )
532 t4 = tau*dconjg( v4 )
534 t5 = tau*dconjg( v5 )
536 t6 = tau*dconjg( v6 )
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
553 t1 = tau*dconjg( v1 )
555 t2 = tau*dconjg( v2 )
557 t3 = tau*dconjg( v3 )
559 t4 = tau*dconjg( v4 )
561 t5 = tau*dconjg( v5 )
563 t6 = tau*dconjg( v6 )
565 t7 = tau*dconjg( v7 )
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 ) +
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
584 t1 = tau*dconjg( v1 )
586 t2 = tau*dconjg( v2 )
588 t3 = tau*dconjg( v3 )
590 t4 = tau*dconjg( v4 )
592 t5 = tau*dconjg( v5 )
594 t6 = tau*dconjg( v6 )
596 t7 = tau*dconjg( v7 )
598 t8 = tau*dconjg( v8 )
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
618 t1 = tau*dconjg( v1 )
620 t2 = tau*dconjg( v2 )
622 t3 = tau*dconjg( v3 )
624 t4 = tau*dconjg( v4 )
626 t5 = tau*dconjg( v5 )
628 t6 = tau*dconjg( v6 )
630 t7 = tau*dconjg( v7 )
632 t8 = tau*dconjg( v8 )
634 t9 = tau*dconjg( v9 )
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
655 t1 = tau*dconjg( v1 )
657 t2 = tau*dconjg( v2 )
659 t3 = tau*dconjg( v3 )
661 t4 = tau*dconjg( v4 )
663 t5 = tau*dconjg( v5 )
665 t6 = tau*dconjg( v6 )
667 t7 = tau*dconjg( v7 )
669 t8 = tau*dconjg( v8 )
671 t9 = tau*dconjg( v9 )
673 t10 = tau*dconjg( v10 )
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 ) +
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
subroutine zlarf(side, m, n, v, incv, tau, c, ldc, work)
ZLARF applies an elementary reflector to a general rectangular matrix.
subroutine zlarfx(side, m, n, v, tau, c, ldc, work)
ZLARFX applies an elementary reflector to a general rectangular matrix, with loop unrolling when the ...