SuperLU_DIST  4.0
superlu_dist on CPU and GPU clusters
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Functions
zsp_blas3.c File Reference

Sparse BLAS3, using some dense BLAS3 operations. More...

#include "superlu_zdefs.h"

Functions

int sp_zgemm_dist (char *transa, int n, doublecomplex alpha, SuperMatrix *A, doublecomplex *b, int ldb, doublecomplex beta, doublecomplex *c, int ldc)
 

Detailed Description

Sparse BLAS3, using some dense BLAS3 operations.

– Distributed SuperLU routine (version 1.0) –
Lawrence Berkeley National Lab, Univ. of California Berkeley.
September 1, 1999

Function Documentation

int sp_zgemm_dist ( char *  transa,
int  n,
doublecomplex  alpha,
SuperMatrix A,
doublecomplex b,
int  ldb,
doublecomplex  beta,
doublecomplex c,
int  ldc 
)
  Purpose   
    =======
    sp_z performs one of the matrix-matrix operations
       C := alpha*op( A )*op( B ) + beta*C,
    where  op( X ) is one of
       op( X ) = X   or   op( X ) = X'   or   op( X ) = conjg( X' ),
    alpha and beta are scalars, and A, B and C are matrices, with op( A ) 
    an m by k matrix,  op( B )  a  k by n matrix and  C an m by n matrix.
    Parameters   
    ==========
    TRANSA - (input) char*
             On entry, TRANSA specifies the form of op( A ) to be used in 
             the matrix multiplication as follows:   
                TRANSA = 'N' or 'n',  op( A ) = A.   
                TRANSA = 'T' or 't',  op( A ) = A'.   
                TRANSA = 'C' or 'c',  op( A ) = conjg( A' ).   
             Unchanged on exit.
    TRANSB - (input) char*
             On entry, TRANSB specifies the form of op( B ) to be used in 
             the matrix multiplication as follows:   
                TRANSB = 'N' or 'n',  op( B ) = B.   
                TRANSB = 'T' or 't',  op( B ) = B'.   
                TRANSB = 'C' or 'c',  op( B ) = conjg( B' ).   
             Unchanged on exit.
    M      - (input) int   
             On entry,  M  specifies  the number of rows of the matrix 
         op( A ) and of the matrix C.  M must be at least zero. 
         Unchanged on exit.
    N      - (input) int
             On entry,  N specifies the number of columns of the matrix 
         op( B ) and the number of columns of the matrix C. N must be 
         at least zero.
         Unchanged on exit.
    K      - (input) int
             On entry, K specifies the number of columns of the matrix 
         op( A ) and the number of rows of the matrix op( B ). K must 
         be at least  zero.   
             Unchanged on exit.
    ALPHA  - (input) doublecomplex
             On entry, ALPHA specifies the scalar alpha.
    A      - (input) SuperMatrix*
             Matrix A with a sparse format, of dimension (A->nrow, A->ncol).
             Currently, the type of A can be:
                 Stype = NC or NCP; Dtype = Z; Mtype = GE. 
             In the future, more general A can be handled.
    B      - DOUBLE COMPLEX PRECISION array of DIMENSION ( LDB, kb ), where kb is 
             n when TRANSB = 'N' or 'n',  and is  k otherwise.   
             Before entry with  TRANSB = 'N' or 'n',  the leading k by n 
             part of the array B must contain the matrix B, otherwise 
             the leading n by k part of the array B must contain the 
             matrix B.   
             Unchanged on exit.
    LDB    - (input) int
             On entry, LDB specifies the first dimension of B as declared 
             in the calling (sub) program. LDB must be at least max( 1, n ).  
             Unchanged on exit.
    BETA   - (input) doublecomplex
             On entry, BETA specifies the scalar beta. When BETA is   
             supplied as zero then C need not be set on input.
    C      - DOUBLE COMPLEX PRECISION array of DIMENSION ( LDC, n ).   
             Before entry, the leading m by n part of the array C must 
             contain the matrix C,  except when beta is zero, in which 
             case C need not be set on entry.   
             On exit, the array C is overwritten by the m by n matrix 
         ( alpha*op( A )*B + beta*C ).
    LDC    - (input) int
             On entry, LDC specifies the first dimension of C as declared 
             in the calling (sub)program. LDC must be at least max(1,m).   
             Unchanged on exit.
    ==== Sparse Level 3 Blas routine.