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:.
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.
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.
magma_int_t magma_zgecsrmv (magma_trans_t transA, magma_int_t m, magma_int_t n, magmaDoubleComplex alpha, magmaDoubleComplex_ptr dval, magmaIndex_ptr drowptr, magmaIndex_ptr dcolind, magmaDoubleComplex_ptr dx, magmaDoubleComplex beta, magmaDoubleComplex_ptr dy, magma_queue_t queue)
 This routine computes y = alpha * A * x + beta * y on the GPU.
magma_int_t magma_zgecsrmv_shift (magma_trans_t transA, magma_int_t m, magma_int_t n, magmaDoubleComplex alpha, magmaDoubleComplex lambda, magmaDoubleComplex_ptr dval, magmaIndex_ptr drowptr, magmaIndex_ptr dcolind, magmaDoubleComplex_ptr dx, magmaDoubleComplex beta, int offset, int blocksize, magma_index_t *addrows, magmaDoubleComplex_ptr dy, magma_queue_t queue)
 This routine computes y = alpha * ( A -lambda I ) * x + beta * y on the GPU.
magma_int_t magma_zgeellmv (magma_trans_t transA, magma_int_t m, magma_int_t n, magma_int_t nnz_per_row, magmaDoubleComplex alpha, magmaDoubleComplex_ptr dval, magmaIndex_ptr dcolind, magmaDoubleComplex_ptr dx, magmaDoubleComplex beta, magmaDoubleComplex_ptr dy, magma_queue_t queue)
 This routine computes y = alpha * A * x + beta * y on the GPU.
magma_int_t magma_zgeellmv_shift (magma_trans_t transA, magma_int_t m, magma_int_t n, magma_int_t nnz_per_row, magmaDoubleComplex alpha, magmaDoubleComplex lambda, magmaDoubleComplex_ptr dval, magmaIndex_ptr dcolind, magmaDoubleComplex_ptr dx, magmaDoubleComplex beta, int offset, int blocksize, magmaIndex_ptr addrows, magmaDoubleComplex_ptr dy, magma_queue_t queue)
 This routine computes y = alpha *( A - lambda I ) * x + beta * y on the GPU.
magma_int_t magma_zgeellrtmv (magma_trans_t transA, magma_int_t m, magma_int_t n, magma_int_t nnz_per_row, magmaDoubleComplex alpha, magmaDoubleComplex_ptr dval, magmaIndex_ptr dcolind, magmaIndex_ptr drowlength, magmaDoubleComplex_ptr dx, magmaDoubleComplex beta, magmaDoubleComplex_ptr dy, magma_int_t alignment, magma_int_t blocksize, magma_queue_t queue)
 This routine computes y = alpha * A * x + beta * y on the GPU.
magma_int_t magma_zgeelltmv_shift (magma_trans_t transA, magma_int_t m, magma_int_t n, magma_int_t nnz_per_row, magmaDoubleComplex alpha, magmaDoubleComplex lambda, magmaDoubleComplex_ptr dval, magmaIndex_ptr dcolind, magmaDoubleComplex_ptr dx, magmaDoubleComplex beta, int offset, int blocksize, magmaIndex_ptr addrows, magmaDoubleComplex_ptr dy, magma_queue_t queue)
 This routine computes y = alpha *( A - lambda I ) * x + beta * y on the GPU.
magma_int_t magma_zgesellpmv (magma_trans_t transA, magma_int_t m, magma_int_t n, magma_int_t blocksize, magma_int_t slices, magma_int_t alignment, magmaDoubleComplex alpha, magmaDoubleComplex_ptr dval, magmaIndex_ptr dcolind, magmaIndex_ptr drowptr, magmaDoubleComplex_ptr dx, magmaDoubleComplex beta, magmaDoubleComplex_ptr dy, magma_queue_t queue)
 This routine computes y = alpha * A^t * x + beta * y on the GPU.
magma_int_t magma_zgesellcmv (magma_trans_t transA, magma_int_t m, magma_int_t n, magma_int_t blocksize, magma_int_t slices, magma_int_t alignment, magmaDoubleComplex alpha, magmaDoubleComplex_ptr dval, magmaIndex_ptr dcolind, magmaIndex_ptr drowptr, magmaDoubleComplex_ptr dx, magmaDoubleComplex beta, magmaDoubleComplex_ptr dy, magma_queue_t queue)
 This routine computes y = alpha * A^t * x + beta * y on the GPU.
magma_int_t magma_zmdotc (int n, int k, magmaDoubleComplex_ptr v, magmaDoubleComplex_ptr r, magmaDoubleComplex_ptr d1, magmaDoubleComplex_ptr d2, magmaDoubleComplex_ptr skp, magma_queue_t queue)
 Computes the scalar product of a set of vectors v_i such that.
magma_int_t magma_zmgecsrmv (magma_trans_t transA, magma_int_t m, magma_int_t n, magma_int_t num_vecs, magmaDoubleComplex alpha, magmaDoubleComplex_ptr dval, magmaIndex_ptr drowptr, magmaIndex_ptr dcolind, magmaDoubleComplex_ptr dx, magmaDoubleComplex beta, magmaDoubleComplex_ptr dy, magma_queue_t queue)
 This routine computes Y = alpha * A * X + beta * Y for X and Y sets of num_vec vectors on the GPU.
magma_int_t magma_zmgeellmv (magma_trans_t transA, magma_int_t m, magma_int_t n, magma_int_t num_vecs, magma_int_t nnz_per_row, magmaDoubleComplex alpha, magmaDoubleComplex_ptr dval, magmaIndex_ptr dcolind, magmaDoubleComplex_ptr dx, magmaDoubleComplex beta, magmaDoubleComplex_ptr dy, magma_queue_t queue)
 This routine computes Y = alpha * A * X + beta * Y for X and Y sets of num_vec vectors on the GPU.
magma_int_t magma_zmgeelltmv (magma_trans_t transA, magma_int_t m, magma_int_t n, magma_int_t num_vecs, magma_int_t nnz_per_row, magmaDoubleComplex alpha, magmaDoubleComplex_ptr dval, magmaIndex_ptr dcolind, magmaDoubleComplex_ptr dx, magmaDoubleComplex beta, magmaDoubleComplex_ptr dy, magma_queue_t queue)
 This routine computes Y = alpha * A * X + beta * Y for X and Y sets of num_vec vectors on the GPU.
magma_int_t magma_zmgesellpmv (magma_trans_t transA, magma_int_t m, magma_int_t n, magma_int_t num_vecs, magma_int_t blocksize, magma_int_t slices, magma_int_t alignment, magmaDoubleComplex alpha, magmaDoubleComplex_ptr dval, magmaIndex_ptr dcolind, magmaIndex_ptr drowptr, magmaDoubleComplex_ptr dx, magmaDoubleComplex beta, magmaDoubleComplex_ptr dy, magma_queue_t queue)
 This routine computes Y = alpha * A^t * X + beta * Y on the GPU.

Function Documentation

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] alpha magmaDoubleComplex* scalar
[in] A magma_z_matrix input matrix
[in] beta magmaDoubleComplex* scalar
[in] B magma_z_matrix input matrix
[out] AB magma_z_matrix* output matrix AB = alpha * A + beta * B
[in] queue magma_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] A magma_z_matrix input matrix
[in] B magma_z_matrix input matrix
[out] AB magma_z_matrix* output matrix AB = A * B
[in] queue magma_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] alpha magmaDoubleComplex scalar alpha
[in] x magma_z_matrix input vector x
[in] beta magmaDoubleComplex scalar beta
[out] y magma_z_matrix output vector y
[in] queue magma_queue_t Queue to execute in.
magma_int_t magma_zgecsrmv ( magma_trans_t  transA,
magma_int_t  m,
magma_int_t  n,
magmaDoubleComplex  alpha,
magmaDoubleComplex_ptr  dval,
magmaIndex_ptr  drowptr,
magmaIndex_ptr  dcolind,
magmaDoubleComplex_ptr  dx,
magmaDoubleComplex  beta,
magmaDoubleComplex_ptr  dy,
magma_queue_t  queue 
)

This routine computes y = alpha * A * x + beta * y on the GPU.

The input format is CSR (val, row, col).

Parameters:
[in] transA magma_trans_t transposition parameter for A
[in] m magma_int_t number of rows in A
[in] n magma_int_t number of columns in A
[in] alpha magmaDoubleComplex scalar multiplier
[in] dval magmaDoubleComplex_ptr array containing values of A in CSR
[in] drowptr magmaIndex_ptr rowpointer of A in CSR
[in] dcolind magmaIndex_ptr columnindices of A in CSR
[in] dx magmaDoubleComplex_ptr input vector x
[in] beta magmaDoubleComplex scalar multiplier
[out] dy magmaDoubleComplex_ptr input/output vector y
[in] queue magma_queue_t Queue to execute in.
magma_int_t magma_zgecsrmv_shift ( magma_trans_t  transA,
magma_int_t  m,
magma_int_t  n,
magmaDoubleComplex  alpha,
magmaDoubleComplex  lambda,
magmaDoubleComplex_ptr  dval,
magmaIndex_ptr  drowptr,
magmaIndex_ptr  dcolind,
magmaDoubleComplex_ptr  dx,
magmaDoubleComplex  beta,
int  offset,
int  blocksize,
magma_index_t *  addrows,
magmaDoubleComplex_ptr  dy,
magma_queue_t  queue 
)

This routine computes y = alpha * ( A -lambda I ) * x + beta * y on the GPU.

It is a shifted version of the CSR-SpMV.

Parameters:
[in] transA magma_trans_t transposition parameter for A
[in] m magma_int_t number of rows in A
[in] n magma_int_t number of columns in A
[in] alpha magmaDoubleComplex scalar multiplier
[in] lambda magmaDoubleComplex scalar multiplier
[in] dval magmaDoubleComplex_ptr array containing values of A in CSR
[in] drowptr magmaIndex_ptr rowpointer of A in CSR
[in] dcolind magmaIndex_ptr columnindices of A in CSR
[in] dx magmaDoubleComplex_ptr input vector x
[in] beta magmaDoubleComplex scalar multiplier
[in] offset magma_int_t in case not the main diagonal is scaled
[in] blocksize magma_int_t in case of processing multiple vectors
[in] addrows magmaIndex_ptr in case the matrixpowerskernel is used
[out] dy magmaDoubleComplex_ptr output vector y
[in] queue magma_queue_t Queue to execute in.
magma_int_t magma_zgeellmv ( magma_trans_t  transA,
magma_int_t  m,
magma_int_t  n,
magma_int_t  nnz_per_row,
magmaDoubleComplex  alpha,
magmaDoubleComplex_ptr  dval,
magmaIndex_ptr  dcolind,
magmaDoubleComplex_ptr  dx,
magmaDoubleComplex  beta,
magmaDoubleComplex_ptr  dy,
magma_queue_t  queue 
)

This routine computes y = alpha * A * x + beta * y on the GPU.

Input format is ELLPACK.

Parameters:
[in] transA magma_trans_t transposition parameter for A
[in] m magma_int_t number of rows in A
[in] n magma_int_t number of columns in A
[in] nnz_per_row magma_int_t number of elements in the longest row
[in] alpha magmaDoubleComplex scalar multiplier
[in] dval magmaDoubleComplex_ptr array containing values of A in ELLPACK
[in] dcolind magmaIndex_ptr columnindices of A in ELLPACK
[in] dx magmaDoubleComplex_ptr input vector x
[in] beta magmaDoubleComplex scalar multiplier
[out] dy magmaDoubleComplex_ptr input/output vector y
[in] queue magma_queue_t Queue to execute in.
magma_int_t magma_zgeellmv_shift ( magma_trans_t  transA,
magma_int_t  m,
magma_int_t  n,
magma_int_t  nnz_per_row,
magmaDoubleComplex  alpha,
magmaDoubleComplex  lambda,
magmaDoubleComplex_ptr  dval,
magmaIndex_ptr  dcolind,
magmaDoubleComplex_ptr  dx,
magmaDoubleComplex  beta,
int  offset,
int  blocksize,
magmaIndex_ptr  addrows,
magmaDoubleComplex_ptr  dy,
magma_queue_t  queue 
)

This routine computes y = alpha *( A - lambda I ) * x + beta * y on the GPU.

Input format is ELLPACK. It is the shifted version of the ELLPACK SpMV.

Parameters:
[in] transA magma_trans_t transposition parameter for A
[in] m magma_int_t number of rows in A
[in] n magma_int_t number of columns in A
[in] nnz_per_row magma_int_t number of elements in the longest row
[in] alpha magmaDoubleComplex scalar multiplier
[in] lambda magmaDoubleComplex scalar multiplier
[in] dval magmaDoubleComplex_ptr array containing values of A in ELLPACK
[in] dcolind magmaIndex_ptr columnindices of A in ELLPACK
[in] dx magmaDoubleComplex_ptr input vector x
[in] beta magmaDoubleComplex scalar multiplier
[in] offset magma_int_t in case not the main diagonal is scaled
[in] blocksize magma_int_t in case of processing multiple vectors
[in] addrows magmaIndex_ptr in case the matrixpowerskernel is used
[out] dy magmaDoubleComplex_ptr input/output vector y
[in] queue magma_queue_t Queue to execute in.
magma_int_t magma_zgeellrtmv ( magma_trans_t  transA,
magma_int_t  m,
magma_int_t  n,
magma_int_t  nnz_per_row,
magmaDoubleComplex  alpha,
magmaDoubleComplex_ptr  dval,
magmaIndex_ptr  dcolind,
magmaIndex_ptr  drowlength,
magmaDoubleComplex_ptr  dx,
magmaDoubleComplex  beta,
magmaDoubleComplex_ptr  dy,
magma_int_t  alignment,
magma_int_t  blocksize,
magma_queue_t  queue 
)

This routine computes y = alpha * A * x + beta * y on the GPU.

Input format is ELLRT. The ideas are taken from "Improving the performance of the sparse matrix vector product with GPUs", (CIT 2010), and modified to provide correct values.

Parameters:
[in] transA magma_trans_t transposition parameter for A
[in] m magma_int_t number of rows
[in] n magma_int_t number of columns
[in] nnz_per_row magma_int_t max number of nonzeros in a row
[in] alpha magmaDoubleComplex scalar alpha
[in] dval magmaDoubleComplex_ptr val array
[in] dcolind magmaIndex_ptr col indices
[in] drowlength magmaIndex_ptr number of elements in each row
[in] dx magmaDoubleComplex_ptr input vector x
[in] beta magmaDoubleComplex scalar beta
[out] dy magmaDoubleComplex_ptr output vector y
[in] blocksize magma_int_t threads per block
[in] alignment magma_int_t threads assigned to each row
[in] queue magma_queue_t Queue to execute in.
magma_int_t magma_zgeelltmv_shift ( magma_trans_t  transA,
magma_int_t  m,
magma_int_t  n,
magma_int_t  nnz_per_row,
magmaDoubleComplex  alpha,
magmaDoubleComplex  lambda,
magmaDoubleComplex_ptr  dval,
magmaIndex_ptr  dcolind,
magmaDoubleComplex_ptr  dx,
magmaDoubleComplex  beta,
int  offset,
int  blocksize,
magmaIndex_ptr  addrows,
magmaDoubleComplex_ptr  dy,
magma_queue_t  queue 
)

This routine computes y = alpha *( A - lambda I ) * x + beta * y on the GPU.

Input format is ELL.

Parameters:
[in] transA magma_trans_t transposition parameter for A
[in] m magma_int_t number of rows in A
[in] n magma_int_t number of columns in A
[in] nnz_per_row magma_int_t number of elements in the longest row
[in] alpha magmaDoubleComplex scalar multiplier
[in] lambda magmaDoubleComplex scalar multiplier
[in] dval magmaDoubleComplex_ptr array containing values of A in ELL
[in] dcolind magmaIndex_ptr columnindices of A in ELL
[in] dx magmaDoubleComplex_ptr input vector x
[in] beta magmaDoubleComplex scalar multiplier
[in] offset magma_int_t in case not the main diagonal is scaled
[in] blocksize magma_int_t in case of processing multiple vectors
[in] addrows magmaIndex_ptr in case the matrixpowerskernel is used
[out] dy magmaDoubleComplex_ptr input/output vector y
[in] queue magma_queue_t Queue to execute in.
magma_int_t magma_zgesellcmv ( magma_trans_t  transA,
magma_int_t  m,
magma_int_t  n,
magma_int_t  blocksize,
magma_int_t  slices,
magma_int_t  alignment,
magmaDoubleComplex  alpha,
magmaDoubleComplex_ptr  dval,
magmaIndex_ptr  dcolind,
magmaIndex_ptr  drowptr,
magmaDoubleComplex_ptr  dx,
magmaDoubleComplex  beta,
magmaDoubleComplex_ptr  dy,
magma_queue_t  queue 
)

This routine computes y = alpha * A^t * x + beta * y on the GPU.

Input format is SELLC/SELLP.

Parameters:
[in] transA magma_trans_t transposition parameter for A
[in] m magma_int_t number of rows in A
[in] n magma_int_t number of columns in A
[in] blocksize magma_int_t number of rows in one ELL-slice
[in] slices magma_int_t number of slices in matrix
[in] alignment magma_int_t number of threads assigned to one row (=1)
[in] alpha magmaDoubleComplex scalar multiplier
[in] dval magmaDoubleComplex_ptr array containing values of A in SELLC/P
[in] dcolind magmaIndex_ptr columnindices of A in SELLC/P
[in] drowptr magmaIndex_ptr rowpointer of SELLP
[in] dx magmaDoubleComplex_ptr input vector x
[in] beta magmaDoubleComplex scalar multiplier
[out] dy magmaDoubleComplex_ptr input/output vector y
[in] queue magma_queue_t Queue to execute in.
magma_int_t magma_zgesellpmv ( magma_trans_t  transA,
magma_int_t  m,
magma_int_t  n,
magma_int_t  blocksize,
magma_int_t  slices,
magma_int_t  alignment,
magmaDoubleComplex  alpha,
magmaDoubleComplex_ptr  dval,
magmaIndex_ptr  dcolind,
magmaIndex_ptr  drowptr,
magmaDoubleComplex_ptr  dx,
magmaDoubleComplex  beta,
magmaDoubleComplex_ptr  dy,
magma_queue_t  queue 
)

This routine computes y = alpha * A^t * x + beta * y on the GPU.

Input format is SELLP.

Parameters:
[in] transA magma_trans_t transposition parameter for A
[in] m magma_int_t number of rows in A
[in] n magma_int_t number of columns in A
[in] blocksize magma_int_t number of rows in one ELL-slice
[in] slices magma_int_t number of slices in matrix
[in] alignment magma_int_t number of threads assigned to one row
[in] alpha magmaDoubleComplex scalar multiplier
[in] dval magmaDoubleComplex_ptr array containing values of A in SELLP
[in] dcolind magmaIndex_ptr columnindices of A in SELLP
[in] drowptr magmaIndex_ptr rowpointer of SELLP
[in] dx magmaDoubleComplex_ptr input vector x
[in] beta magmaDoubleComplex scalar multiplier
[out] dy magmaDoubleComplex_ptr input/output vector y
[in] queue magma_queue_t Queue to execute in.
magma_int_t magma_zmdotc ( int  n,
int  k,
magmaDoubleComplex_ptr  v,
magmaDoubleComplex_ptr  r,
magmaDoubleComplex_ptr  d1,
magmaDoubleComplex_ptr  d2,
magmaDoubleComplex_ptr  skp,
magma_queue_t  queue 
)

Computes the scalar product of a set of vectors v_i such that.

skp = ( <v_0,r>, <v_1,r>, .. )

Returns the vector skp.

Parameters:
[in] n int length of v_i and r
[in] k int # vectors v_i
[in] v magmaDoubleComplex_ptr v = (v_0 .. v_i.. v_k)
[in] r magmaDoubleComplex_ptr r
[in] d1 magmaDoubleComplex_ptr workspace
[in] d2 magmaDoubleComplex_ptr workspace
[out] skp magmaDoubleComplex_ptr vector[k] of scalar products (<v_i,r>...)
[in] queue magma_queue_t Queue to execute in.
magma_int_t magma_zmgecsrmv ( magma_trans_t  transA,
magma_int_t  m,
magma_int_t  n,
magma_int_t  num_vecs,
magmaDoubleComplex  alpha,
magmaDoubleComplex_ptr  dval,
magmaIndex_ptr  drowptr,
magmaIndex_ptr  dcolind,
magmaDoubleComplex_ptr  dx,
magmaDoubleComplex  beta,
magmaDoubleComplex_ptr  dy,
magma_queue_t  queue 
)

This routine computes Y = alpha * A * X + beta * Y for X and Y sets of num_vec vectors on the GPU.

Input format is CSR.

Parameters:
[in] transA magma_trans_t transposition parameter for A
[in] m magma_int_t number of rows in A
[in] n magma_int_t number of columns in A
[in] num_vecs mama_int_t number of vectors
[in] alpha magmaDoubleComplex scalar multiplier
[in] dval magmaDoubleComplex_ptr array containing values of A in CSR
[in] drowptr magmaIndex_ptr rowpointer of A in CSR
[in] dcolind magmaIndex_ptr columnindices of A in CSR
[in] dx magmaDoubleComplex_ptr input vector x
[in] beta magmaDoubleComplex scalar multiplier
[out] dy magmaDoubleComplex_ptr input/output vector y
[in] queue magma_queue_t Queue to execute in.
magma_int_t magma_zmgeellmv ( magma_trans_t  transA,
magma_int_t  m,
magma_int_t  n,
magma_int_t  num_vecs,
magma_int_t  nnz_per_row,
magmaDoubleComplex  alpha,
magmaDoubleComplex_ptr  dval,
magmaIndex_ptr  dcolind,
magmaDoubleComplex_ptr  dx,
magmaDoubleComplex  beta,
magmaDoubleComplex_ptr  dy,
magma_queue_t  queue 
)

This routine computes Y = alpha * A * X + beta * Y for X and Y sets of num_vec vectors on the GPU.

Input format is ELLPACK.

Parameters:
[in] transA magma_trans_t transposition parameter for A
[in] m magma_int_t number of rows in A
[in] n magma_int_t number of columns in A
[in] num_vecs mama_int_t number of vectors
[in] nnz_per_row magma_int_t number of elements in the longest row
[in] alpha magmaDoubleComplex scalar multiplier
[in] dval magmaDoubleComplex_ptr array containing values of A in ELLPACK
[in] dcolind magmaIndex_ptr columnindices of A in ELLPACK
[in] dx magmaDoubleComplex_ptr input vector x
[in] beta magmaDoubleComplex scalar multiplier
[out] dy magmaDoubleComplex_ptr input/output vector y
[in] queue magma_queue_t Queue to execute in.
magma_int_t magma_zmgeelltmv ( magma_trans_t  transA,
magma_int_t  m,
magma_int_t  n,
magma_int_t  num_vecs,
magma_int_t  nnz_per_row,
magmaDoubleComplex  alpha,
magmaDoubleComplex_ptr  dval,
magmaIndex_ptr  dcolind,
magmaDoubleComplex_ptr  dx,
magmaDoubleComplex  beta,
magmaDoubleComplex_ptr  dy,
magma_queue_t  queue 
)

This routine computes Y = alpha * A * X + beta * Y for X and Y sets of num_vec vectors on the GPU.

Input format is ELL.

Parameters:
[in] transA magma_trans_t transposition parameter for A
[in] m magma_int_t number of rows in A
[in] n magma_int_t number of columns in A
[in] num_vecs mama_int_t number of vectors
[in] nnz_per_row magma_int_t number of elements in the longest row
[in] alpha magmaDoubleComplex scalar multiplier
[in] dval magmaDoubleComplex_ptr array containing values of A in ELL
[in] dcolind magmaIndex_ptr columnindices of A in ELL
[in] dx magmaDoubleComplex_ptr input vector x
[in] beta magmaDoubleComplex scalar multiplier
[out] dy magmaDoubleComplex_ptr input/output vector y
[in] queue magma_queue_t Queue to execute in.
magma_int_t magma_zmgesellpmv ( magma_trans_t  transA,
magma_int_t  m,
magma_int_t  n,
magma_int_t  num_vecs,
magma_int_t  blocksize,
magma_int_t  slices,
magma_int_t  alignment,
magmaDoubleComplex  alpha,
magmaDoubleComplex_ptr  dval,
magmaIndex_ptr  dcolind,
magmaIndex_ptr  drowptr,
magmaDoubleComplex_ptr  dx,
magmaDoubleComplex  beta,
magmaDoubleComplex_ptr  dy,
magma_queue_t  queue 
)

This routine computes Y = alpha * A^t * X + beta * Y on the GPU.

Input format is SELLP. Note, that the input format for X is row-major while the output format for Y is column major!

Parameters:
[in] transA magma_trans_t transpose A?
[in] m magma_int_t number of rows in A
[in] n magma_int_t number of columns in A
[in] num_vecs magma_int_t number of columns in X and Y
[in] blocksize magma_int_t number of rows in one ELL-slice
[in] slices magma_int_t number of slices in matrix
[in] alignment magma_int_t number of threads assigned to one row
[in] alpha magmaDoubleComplex scalar multiplier
[in] dval magmaDoubleComplex_ptr array containing values of A in SELLP
[in] dcolind magmaIndex_ptr columnindices of A in SELLP
[in] drowptr magmaIndex_ptr rowpointer of SELLP
[in] dx magmaDoubleComplex_ptr input vector x
[in] beta magmaDoubleComplex scalar multiplier
[out] dy magmaDoubleComplex_ptr input/output vector y
[in] queue magma_queue_t Queue to execute in.

Generated on 3 May 2015 for MAGMA by  doxygen 1.6.1