MAGMA  2.0.0
Matrix Algebra for GPU and Multicore Architectures
double-complex precision

Functions

magma_int_t magma_zcuspaxpy (magmaDoubleComplex *alpha, magma_z_matrix A, magmaDoubleComplex *beta, magma_z_matrix B, magma_z_matrix *AB, magma_queue_t queue)
 This is an interface to the cuSPARSE routine csrgeam computing the sum of two sparse matrices stored in csr format: More...
 
magma_int_t magma_zcuspmm (magma_z_matrix A, magma_z_matrix B, magma_z_matrix *AB, magma_queue_t queue)
 This is an interface to the cuSPARSE routine csrmm computing the product of two sparse matrices stored in csr format. More...
 
magma_int_t magma_zcustomspmv (magmaDoubleComplex alpha, magma_z_matrix x, magmaDoubleComplex beta, magma_z_matrix y, magma_queue_t queue)
 This is an interface to any custom sparse matrix vector product. More...
 
magma_int_t magma_z_spmv (magmaDoubleComplex alpha, magma_z_matrix A, magma_z_matrix x, magmaDoubleComplex beta, magma_z_matrix y, magma_queue_t queue)
 For a given input matrix A and vectors x, y and scalars alpha, beta the wrapper determines the suitable SpMV computing y = alpha * A * x + beta * y. More...
 
magma_int_t magma_z_spmv_shift (magmaDoubleComplex alpha, magma_z_matrix A, magmaDoubleComplex lambda, magma_z_matrix x, magmaDoubleComplex beta, magma_int_t offset, magma_int_t blocksize, magma_index_t *add_rows, magma_z_matrix y, magma_queue_t queue)
 For a given input matrix A and vectors x, y and scalars alpha, beta the wrapper determines the suitable SpMV computing y = alpha * ( A - lambda I ) * x + beta * y. More...
 
magma_int_t magma_z_spmm (magmaDoubleComplex alpha, magma_z_matrix A, magma_z_matrix B, magma_z_matrix *C, magma_queue_t queue)
 For a given input matrix A and B and scalar alpha, the wrapper determines the suitable SpMV computing C = alpha * A * B. More...
 

Detailed Description

Function Documentation

magma_int_t magma_z_spmm ( magmaDoubleComplex  alpha,
magma_z_matrix  A,
magma_z_matrix  B,
magma_z_matrix *  C,
magma_queue_t  queue 
)

For a given input matrix A and B and scalar alpha, the wrapper determines the suitable SpMV computing C = alpha * A * B.

Parameters
[in]alphamagmaDoubleComplex scalar alpha
[in]Amagma_z_matrix sparse matrix A
[in]Bmagma_z_matrix sparse matrix C
[out]Cmagma_z_matrix * outpur sparse matrix C
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_z_spmv ( magmaDoubleComplex  alpha,
magma_z_matrix  A,
magma_z_matrix  x,
magmaDoubleComplex  beta,
magma_z_matrix  y,
magma_queue_t  queue 
)

For a given input matrix A and vectors x, y and scalars alpha, beta the wrapper determines the suitable SpMV computing y = alpha * A * x + beta * y.

Parameters
[in]alphamagmaDoubleComplex scalar alpha
[in]Amagma_z_matrix sparse matrix A
[in]xmagma_z_matrix input vector x
[in]betamagmaDoubleComplex scalar beta
[out]ymagma_z_matrix output vector y
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_z_spmv_shift ( magmaDoubleComplex  alpha,
magma_z_matrix  A,
magmaDoubleComplex  lambda,
magma_z_matrix  x,
magmaDoubleComplex  beta,
magma_int_t  offset,
magma_int_t  blocksize,
magma_index_t *  add_rows,
magma_z_matrix  y,
magma_queue_t  queue 
)

For a given input matrix A and vectors x, y and scalars alpha, beta the wrapper determines the suitable SpMV computing y = alpha * ( A - lambda I ) * x + beta * y.

Parameters
alphamagmaDoubleComplex scalar alpha
Amagma_z_matrix sparse matrix A
lambdamagmaDoubleComplex scalar lambda
xmagma_z_matrix input vector x
betamagmaDoubleComplex scalar beta
offsetmagma_int_t in case not the main diagonal is scaled
blocksizemagma_int_t in case of processing multiple vectors
add_rowsmagma_int_t* in case the matrixpowerskernel is used
ymagma_z_matrix output vector y
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_zcuspaxpy ( magmaDoubleComplex *  alpha,
magma_z_matrix  A,
magmaDoubleComplex *  beta,
magma_z_matrix  B,
magma_z_matrix *  AB,
magma_queue_t  queue 
)

This is an interface to the cuSPARSE routine csrgeam computing the sum of two sparse matrices stored in csr format:

C = alpha * A + beta * B

Parameters
[in]alphamagmaDoubleComplex* scalar
[in]Amagma_z_matrix input matrix
[in]betamagmaDoubleComplex* scalar
[in]Bmagma_z_matrix input matrix
[out]ABmagma_z_matrix* output matrix AB = alpha * A + beta * B
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_zcuspmm ( magma_z_matrix  A,
magma_z_matrix  B,
magma_z_matrix *  AB,
magma_queue_t  queue 
)

This is an interface to the cuSPARSE routine csrmm computing the product of two sparse matrices stored in csr format.

Parameters
[in]Amagma_z_matrix input matrix
[in]Bmagma_z_matrix input matrix
[out]ABmagma_z_matrix* output matrix AB = A * B
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_zcustomspmv ( magmaDoubleComplex  alpha,
magma_z_matrix  x,
magmaDoubleComplex  beta,
magma_z_matrix  y,
magma_queue_t  queue 
)

This is an interface to any custom sparse matrix vector product.

It should compute y = alpha*FUNCTION(x) + beta*y The vectors are located on the device, the scalars on the CPU.

Parameters
[in]alphamagmaDoubleComplex scalar alpha
[in]xmagma_z_matrix input vector x
[in]betamagmaDoubleComplex scalar beta
[out]ymagma_z_matrix output vector y
[in]queuemagma_queue_t Queue to execute in.