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

◆ pbstr2at()

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

Definition at line 612 of file pbstran.f.

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