SCALAPACK 2.2.2
LAPACK: Linear Algebra PACKage
Loading...
Searching...
No Matches

◆ pbztr2at()

subroutine pbztr2at ( integer  icontxt,
character*1  adist,
character*1  trans,
integer  m,
integer  n,
integer  nb,
complex*16, dimension( lda, * )  a,
integer  lda,
complex*16  beta,
complex*16, dimension( ldb, * )  b,
integer  ldb,
integer  lcmp,
integer  lcmq 
)

Definition at line 613 of file pbztran.f.

615*
616* -- PB-BLAS routine (version 2.1) --
617* University of Tennessee, Knoxville, Oak Ridge National Laboratory.
618* April 28, 1996
619*
620* .. Scalar Arguments ..
621 CHARACTER*1 ADIST, TRANS
622 INTEGER ICONTXT, LCMP, LCMQ, LDA, LDB, M, N, NB
623 COMPLEX*16 BETA
624* ..
625* .. Array Arguments ..
626 COMPLEX*16 A( LDA, * ), B( LDB, * )
627* ..
628*
629* Purpose
630* =======
631*
632* PBZTR2AT forms B <== A^T + beta*B, or A^C + beta*B
633* B is a ((conjugate) transposed) scattered block row (or column),
634* copied from a scattered block column (or row) of A
635*
636* =====================================================================
637*
638* .. Parameters ..
639 COMPLEX*16 ONE
640 parameter( one = ( 1.0d+0, 0.0d+0 ) )
641* ..
642* .. Local Scalars ..
643 INTEGER IA, IB, K, INTV, JNTV
644* ..
645* .. External Subroutines ..
646 EXTERNAL pbzmatadd
647* ..
648* .. External Functions ..
649 LOGICAL LSAME
650 INTEGER ICEIL
651 EXTERNAL lsame, iceil
652* ..
653* .. Intrinsic Functions ..
654 INTRINSIC min
655* ..
656* .. Excutable Statements ..
657*
658 IF( lcmp.EQ.lcmq ) THEN
659 CALL pbzmatadd( icontxt, trans, n, m, one, a, lda, beta, b,
660 $ ldb )
661*
662 ELSE
663*
664* If A is a column block ( ADIST = 'C' ),
665*
666 IF( lsame( adist, 'C' ) ) THEN
667 intv = lcmp * nb
668 jntv = lcmq * nb
669 ia = 1
670 ib = 1
671 DO 10 k = 1, iceil( m, intv )
672 CALL pbzmatadd( icontxt, trans, n, min( m-ia+1, nb ),
673 $ one, a(ia,1), lda, beta, b(1,ib), ldb )
674 ia = ia + intv
675 ib = ib + jntv
676 10 CONTINUE
677*
678* If A is a row block ( ADIST = 'R' ),
679*
680 ELSE
681 intv = lcmp * nb
682 jntv = lcmq * nb
683 ia = 1
684 ib = 1
685 DO 20 k = 1, iceil( n, jntv )
686 CALL pbzmatadd( icontxt, trans, min( n-ia+1, nb ), m,
687 $ one, a(1,ia), lda, beta, b(ib,1), ldb )
688 ia = ia + jntv
689 ib = ib + intv
690 20 CONTINUE
691 END IF
692 END IF
693*
694 RETURN
695*
696* End of PBZTR2AT
697*
integer function iceil(inum, idenom)
Definition iceil.f:2
subroutine pbzmatadd(icontxt, mode, m, n, alpha, a, lda, beta, b, ldb)
Definition pbzmatadd.f:3
#define min(A, B)
Definition pcgemr.c:181
logical function lsame(ca, cb)
Definition tools.f:1724
Here is the call graph for this function:
Here is the caller graph for this function: