double precision
[Sparse BLAS]

Functions

magma_int_t magma_dgecsrmv (magma_trans_t transA, magma_int_t m, magma_int_t n, double alpha, double *d_val, magma_index_t *d_rowptr, magma_index_t *d_colind, double *d_x, double beta, double *d_y)
 This routine computes y = alpha * A * x + beta * y on the GPU.
magma_int_t magma_dgecsrmv_shift (magma_trans_t transA, magma_int_t m, magma_int_t n, double alpha, double lambda, double *d_val, magma_index_t *d_rowptr, magma_index_t *d_colind, double *d_x, double beta, int offset, int blocksize, magma_index_t *add_rows, double *d_y)
 This routine computes y = alpha * ( A -lambda I ) * x + beta * y on the GPU.
magma_int_t magma_dgeellmv (magma_trans_t transA, magma_int_t m, magma_int_t n, magma_int_t nnz_per_row, double alpha, double *d_val, magma_index_t *d_colind, double *d_x, double beta, double *d_y)
 This routine computes y = alpha * A * x + beta * y on the GPU.
magma_int_t magma_dgeellmv_shift (magma_trans_t transA, magma_int_t m, magma_int_t n, magma_int_t nnz_per_row, double alpha, double lambda, double *d_val, magma_index_t *d_colind, double *d_x, double beta, int offset, int blocksize, magma_index_t *add_rows, double *d_y)
 This routine computes y = alpha *( A - lambda I ) * x + beta * y on the GPU.
magma_int_t magma_dgeellrtmv (magma_trans_t transA, magma_int_t m, magma_int_t n, magma_int_t nnz_per_row, double alpha, double *d_val, magma_index_t *d_colind, magma_index_t *d_rowlength, double *d_x, double beta, double *d_y, magma_int_t alignment, magma_int_t blocksize)
 This routine computes y = alpha * A * x + beta * y on the GPU.
magma_int_t magma_dgeelltmv_shift (magma_trans_t transA, magma_int_t m, magma_int_t n, magma_int_t nnz_per_row, double alpha, double lambda, double *d_val, magma_index_t *d_colind, double *d_x, double beta, int offset, int blocksize, magma_index_t *add_rows, double *d_y)
 This routine computes y = alpha *( A - lambda I ) * x + beta * y on the GPU.
magma_int_t magma_dgesellpmv (magma_trans_t transA, magma_int_t m, magma_int_t n, magma_int_t blocksize, magma_int_t slices, magma_int_t alignment, double alpha, double *d_val, magma_index_t *d_colind, magma_index_t *d_rowptr, double *d_x, double beta, double *d_y)
 This routine computes y = alpha * A^t * x + beta * y on the GPU.
magma_int_t magma_dgesellcmv (magma_trans_t transA, magma_int_t m, magma_int_t n, magma_int_t blocksize, magma_int_t slices, magma_int_t alignment, double alpha, double *d_val, magma_index_t *d_colind, magma_index_t *d_rowptr, double *d_x, double beta, double *d_y)
 This routine computes y = alpha * A^t * x + beta * y on the GPU.
magma_int_t magma_dmdotc (int n, int k, double *v, double *r, double *d1, double *d2, double *skp)
 Computes the scalar product of a set of vectors v_i such that.
magma_int_t magma_dmgecsrmv (magma_trans_t transA, magma_int_t m, magma_int_t n, magma_int_t num_vecs, double alpha, double *d_val, magma_index_t *d_rowptr, magma_index_t *d_colind, double *d_x, double beta, double *d_y)
 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_dmgeellmv (magma_trans_t transA, magma_int_t m, magma_int_t n, magma_int_t num_vecs, magma_int_t nnz_per_row, double alpha, double *d_val, magma_index_t *d_colind, double *d_x, double beta, double *d_y)
 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_dmgeelltmv (magma_trans_t transA, magma_int_t m, magma_int_t n, magma_int_t num_vecs, magma_int_t nnz_per_row, double alpha, double *d_val, magma_index_t *d_colind, double *d_x, double beta, double *d_y)
 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_dmgesellpmv (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, double alpha, double *d_val, magma_index_t *d_colind, magma_index_t *d_rowptr, double *d_x, double beta, double *d_y)
 This routine computes Y = alpha * A^t * X + beta * Y on the GPU.

Function Documentation

magma_int_t magma_dgecsrmv ( magma_trans_t  transA,
magma_int_t  m,
magma_int_t  n,
double  alpha,
double *  d_val,
magma_index_t *  d_rowptr,
magma_index_t *  d_colind,
double *  d_x,
double  beta,
double *  d_y 
)

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

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

Parameters:
transA magma_trans_t transposition parameter for A
m magma_int_t number of rows in A
n magma_int_t number of columns in A
alpha double scalar multiplier
d_val double* array containing values of A in CSR
d_rowptr magma_int_t* rowpointer of A in CSR
d_colind magma_int_t* columnindices of A in CSR
d_x double* input vector x
beta double scalar multiplier
d_y double* input/output vector y
magma_int_t magma_dgecsrmv_shift ( magma_trans_t  transA,
magma_int_t  m,
magma_int_t  n,
double  alpha,
double  lambda,
double *  d_val,
magma_index_t *  d_rowptr,
magma_index_t *  d_colind,
double *  d_x,
double  beta,
int  offset,
int  blocksize,
magma_index_t *  add_rows,
double *  d_y 
)

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

It is a shifted version of the CSR-SpMV.

Parameters:
transA magma_trans_t transposition parameter for A
m magma_int_t number of rows in A
n magma_int_t number of columns in A
alpha double scalar multiplier
lambda double scalar multiplier
d_val double* array containing values of A in CSR
d_rowptr magma_int_t* rowpointer of A in CSR
d_colind magma_int_t* columnindices of A in CSR
d_x double* input vector x
beta double scalar multiplier
offset magma_int_t in case not the main diagonal is scaled
blocksize magma_int_t in case of processing multiple vectors
add_rows magma_int_t* in case the matrixpowerskernel is used
d_y double* output vector y
magma_int_t magma_dgeellmv ( magma_trans_t  transA,
magma_int_t  m,
magma_int_t  n,
magma_int_t  nnz_per_row,
double  alpha,
double *  d_val,
magma_index_t *  d_colind,
double *  d_x,
double  beta,
double *  d_y 
)

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

Input format is ELLPACK.

Parameters:
transA magma_trans_t transposition parameter for A
m magma_int_t number of rows in A
n magma_int_t number of columns in A
nnz_per_row magma_int_t number of elements in the longest row
alpha double scalar multiplier
d_val double* array containing values of A in ELLPACK
d_colind magma_int_t* columnindices of A in ELLPACK
d_x double* input vector x
beta double scalar multiplier
d_y double* input/output vector y
magma_int_t magma_dgeellmv_shift ( magma_trans_t  transA,
magma_int_t  m,
magma_int_t  n,
magma_int_t  nnz_per_row,
double  alpha,
double  lambda,
double *  d_val,
magma_index_t *  d_colind,
double *  d_x,
double  beta,
int  offset,
int  blocksize,
magma_index_t *  add_rows,
double *  d_y 
)

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:
transA magma_trans_t transposition parameter for A
m magma_int_t number of rows in A
n magma_int_t number of columns in A
nnz_per_row magma_int_t number of elements in the longest row
alpha double scalar multiplier
lambda double scalar multiplier
d_val double* array containing values of A in ELLPACK
d_colind magma_int_t* columnindices of A in ELLPACK
d_x double* input vector x
beta double scalar multiplier
offset magma_int_t in case not the main diagonal is scaled
blocksize magma_int_t in case of processing multiple vectors
add_rows magma_int_t* in case the matrixpowerskernel is used
d_y double* input/output vector y
magma_int_t magma_dgeellrtmv ( magma_trans_t  transA,
magma_int_t  m,
magma_int_t  n,
magma_int_t  nnz_per_row,
double  alpha,
double *  d_val,
magma_index_t *  d_colind,
magma_index_t *  d_rowlength,
double *  d_x,
double  beta,
double *  d_y,
magma_int_t  alignment,
magma_int_t  blocksize 
)

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:
transA magma_trans_t transposition parameter for A
m magma_int_t number of rows
n magma_int_t number of columns
nnz_per_row magma_int_t max number of nonzeros in a row
alpha double scalar alpha
d_val double* val array
d_colind magma_int_t* col indices
d_rowlength magma_int_t* number of elements in each row
d_x double* input vector x
beta double scalar beta
d_y double* output vector y
blocksize magma_int_t threads per block
alignment magma_int_t threads assigned to each row
magma_int_t magma_dgeelltmv_shift ( magma_trans_t  transA,
magma_int_t  m,
magma_int_t  n,
magma_int_t  nnz_per_row,
double  alpha,
double  lambda,
double *  d_val,
magma_index_t *  d_colind,
double *  d_x,
double  beta,
int  offset,
int  blocksize,
magma_index_t *  add_rows,
double *  d_y 
)

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

Input format is ELL.

Parameters:
transA magma_trans_t transposition parameter for A
m magma_int_t number of rows in A
n magma_int_t number of columns in A
nnz_per_row magma_int_t number of elements in the longest row
alpha double scalar multiplier
lambda double scalar multiplier
d_val double* array containing values of A in ELL
d_colind magma_int_t* columnindices of A in ELL
d_x double* input vector x
beta double scalar multiplier
offset magma_int_t in case not the main diagonal is scaled
blocksize magma_int_t in case of processing multiple vectors
add_rows magma_int_t* in case the matrixpowerskernel is used
d_y double* input/output vector y
magma_int_t magma_dgesellcmv ( magma_trans_t  transA,
magma_int_t  m,
magma_int_t  n,
magma_int_t  blocksize,
magma_int_t  slices,
magma_int_t  alignment,
double  alpha,
double *  d_val,
magma_index_t *  d_colind,
magma_index_t *  d_rowptr,
double *  d_x,
double  beta,
double *  d_y 
)

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

Input format is SELLC/SELLP.

Parameters:
transA magma_trans_t transposition parameter for A
m magma_int_t number of rows in A
n magma_int_t number of columns in A
blocksize magma_int_t number of rows in one ELL-slice
slices magma_int_t number of slices in matrix
alignment magma_int_t number of threads assigned to one row (=1)
alpha double scalar multiplier
d_val double* array containing values of A in SELLC/P
d_colind magma_int_t* columnindices of A in SELLC/P
d_rowptr magma_int_t* rowpointer of SELLP
d_x double* input vector x
beta double scalar multiplier
d_y double* input/output vector y
magma_int_t magma_dgesellpmv ( magma_trans_t  transA,
magma_int_t  m,
magma_int_t  n,
magma_int_t  blocksize,
magma_int_t  slices,
magma_int_t  alignment,
double  alpha,
double *  d_val,
magma_index_t *  d_colind,
magma_index_t *  d_rowptr,
double *  d_x,
double  beta,
double *  d_y 
)

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

Input format is SELLP.

Parameters:
transA magma_trans_t transposition parameter for A
m magma_int_t number of rows in A
n magma_int_t number of columns in A
blocksize magma_int_t number of rows in one ELL-slice
slices magma_int_t number of slices in matrix
alignment magma_int_t number of threads assigned to one row
alpha double scalar multiplier
d_val double* array containing values of A in SELLP
d_colind magma_int_t* columnindices of A in SELLP
d_rowptr magma_int_t* rowpointer of SELLP
d_x double* input vector x
beta double scalar multiplier
d_y double* input/output vector y
magma_int_t magma_dmdotc ( int  n,
int  k,
double *  v,
double *  r,
double *  d1,
double *  d2,
double *  skp 
)

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:
n int length of v_i and r
k int # vectors v_i
v double* v = (v_0 .. v_i.. v_k)
r double* r
d1 double* workspace
d2 double* workspace
skp double* vector[k] of scalar products (<v_i,r>...)
magma_int_t magma_dmgecsrmv ( magma_trans_t  transA,
magma_int_t  m,
magma_int_t  n,
magma_int_t  num_vecs,
double  alpha,
double *  d_val,
magma_index_t *  d_rowptr,
magma_index_t *  d_colind,
double *  d_x,
double  beta,
double *  d_y 
)

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:
transA magma_trans_t transposition parameter for A
m magma_int_t number of rows in A
n magma_int_t number of columns in A
num_vecs mama_int_t number of vectors
alpha double scalar multiplier
d_val double* array containing values of A in CSR
d_rowptr magma_int_t* rowpointer of A in CSR
d_colind magma_int_t* columnindices of A in CSR
d_x double* input vector x
beta double scalar multiplier
d_y double* input/output vector y
magma_int_t magma_dmgeellmv ( magma_trans_t  transA,
magma_int_t  m,
magma_int_t  n,
magma_int_t  num_vecs,
magma_int_t  nnz_per_row,
double  alpha,
double *  d_val,
magma_index_t *  d_colind,
double *  d_x,
double  beta,
double *  d_y 
)

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:
transA magma_trans_t transposition parameter for A
m magma_int_t number of rows in A
n magma_int_t number of columns in A
num_vecs mama_int_t number of vectors
nnz_per_row magma_int_t number of elements in the longest row
alpha double scalar multiplier
d_val double* array containing values of A in ELLPACK
d_colind magma_int_t* columnindices of A in ELLPACK
d_x double* input vector x
beta double scalar multiplier
d_y double* input/output vector y
magma_int_t magma_dmgeelltmv ( magma_trans_t  transA,
magma_int_t  m,
magma_int_t  n,
magma_int_t  num_vecs,
magma_int_t  nnz_per_row,
double  alpha,
double *  d_val,
magma_index_t *  d_colind,
double *  d_x,
double  beta,
double *  d_y 
)

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:
transA magma_trans_t transposition parameter for A
m magma_int_t number of rows in A
n magma_int_t number of columns in A
num_vecs mama_int_t number of vectors
nnz_per_row magma_int_t number of elements in the longest row
alpha double scalar multiplier
d_val double* array containing values of A in ELL
d_colind magma_int_t* columnindices of A in ELL
d_x double* input vector x
beta double scalar multiplier
d_y double* input/output vector y
magma_int_t magma_dmgesellpmv ( 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,
double  alpha,
double *  d_val,
magma_index_t *  d_colind,
magma_index_t *  d_rowptr,
double *  d_x,
double  beta,
double *  d_y 
)

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:
transA magma_trans_t transpose A?
m magma_int_t number of rows in A
n magma_int_t number of columns in A
num_vecs magma_int_t number of columns in X and Y
blocksize magma_int_t number of rows in one ELL-slice
slices magma_int_t number of slices in matrix
alignment magma_int_t number of threads assigned to one row
alpha double scalar multiplier
d_val double* array containing values of A in SELLP
d_colind magma_int_t* columnindices of A in SELLP
d_rowptr magma_int_t* rowpointer of SELLP
d_x double* input vector x
beta double scalar multiplier
d_y double* input/output vector y

Generated on 17 Sep 2014 for MAGMA by  doxygen 1.6.1