Variable block row matrix-matrix multiply

SVBRMM/DVBRMM/CVBRMM/ZVBRMM

Name SVBRMM/DVBRMM/CVBRMM/ZVBRMM

Variable block row matrix-matrix multiply

Purpose Variable block row matrix-matrix multiply. These subprograms compute the matrix-matrix product AB, where A is a m-by-ksparse matrix, and B is a k-by-n

matrix with m=mb x lb and k=kb x lb. Optionally, A may be replaced by AT or

A*, where AT or A* is a k-by-mmatrix, and B is a m-by-nmatrix. Here AT is the transpose and A* is the conjugate-transpose of A. The product may be stored in the result matrix C or optionally may be added to or subtracted from it. This is handled in a convenient, but general way by two scalar arguments, α and β, which are used as multipliers of the matrix product and the result matrix. Specifically, these subprograms compute matrix products of the form

C ← αAB + βC C ← αATB + βC C ← αAB + βC

Usage

VECLIB:

 

 

SUBROUTINE

SVBRMM

 

INTEGER*4

transa, mb, n, kb, ldb, ldc, lwork

 

INTEGER*4

descra(*), indx(*), bindx(*), rpntr(*), cpntr(*),

 

 

bpntrb(*), bpntre(*)

 

REAL*4

alpha, beta

 

REAL*4

val(*), b(ldb,*), c(ldc,*), work(*)

CALL SVBRMM (transa, mb, n, kb, alpha, descra, val, indx, bindx, rpntr, cpntr, bpntrb, bpntre, b, ldb, beta, c, ldc, work, lwork)

SUBROUTINE

DVBRMM

INTEGER*4

transa, mb, n, kb, ldb, ldc, lwork

INTEGER*4

descra(*), indx(*), bindx(*), rpntr(*), cpntr(*),

 

bpntrb(*), bpntre(*)

REAL*8

alpha, beta

REAL*8

val(*), b(ldb,*), c(ldc,*), work(*)

CALL DVBRMM (transa, mb, n, kb, alpha, descra, val, indx, bindx, rpntr, cpntr, bpntrb, bpntre, b, ldb, beta, c, ldc, work, lwork)

SUBROUTINE

CVBRMM

INTEGER*4

transa, mb, n, kb, ldb, ldc, lwork

INTEGER*4

descra(*), indx(*), bindx(*), rpntr(*), cpntr(*),

 

bpntrb(*), bpntre(*)

COMPLEX*8

alpha, beta

COMPLEX*8

val(*), b(ldb,*), c(ldc,*), work(*)

CALL CVBRMM (transa, mb, n, kb, alpha, descra, val, indx, bindx, rpntr, cpntr, bpntrb, bpntre, b, ldb, beta, c, ldc, work, lwork)

Chapter 4 Sparse BLAS Operations 529