LAMA
lama::ELLUtilsInterface::Mult< ValueType > Struct Template Reference

Define structure for multiplication routines. More...

#include <LAMAInterface.hpp>

Public Types

typedef void(* normalGEMV )(ValueType result[], const ValueType alpha, const ValueType x[], const ValueType beta, const ValueType y[], const IndexType numRows, const IndexType numNonZerosPerRows, const IndexType ellIA[], const IndexType ellJA[], const ValueType ellValues[], class SyncToken *syncToken)
 result = alpha * ELL-Matrix * x + b * y.
typedef void(* sparseGEMV )(ValueType result[], const IndexType numRows, const IndexType numNonZerosPerRows, const ValueType alpha, const ValueType x[], const IndexType numNonZeroRows, const IndexType rowIndexes[], const IndexType ellIA[], const IndexType ellJA[], const ValueType ellValues[], class SyncToken *syncToken)
 result = alpha * ELL-Matrix * x, CSR matrix has only some non-zero rows

Detailed Description

template<typename ValueType>
struct lama::ELLUtilsInterface::Mult< ValueType >

Define structure for multiplication routines.


Member Typedef Documentation

template<typename ValueType >
typedef void( * lama::ELLUtilsInterface::Mult< ValueType >::normalGEMV)(ValueType result[], const ValueType alpha, const ValueType x[], const ValueType beta, const ValueType y[], const IndexType numRows, const IndexType numNonZerosPerRows, const IndexType ellIA[], const IndexType ellJA[], const ValueType ellValues[], class SyncToken *syncToken)

result = alpha * ELL-Matrix * x + b * y.

Parameters:
resultis the result vector
alphais scaling factor for matrix x vector
xis input vector for matrix multiplication
betais scaling factor for additional vector
yis additional input vector to add
numRowsis number of elements for all vectors and rows of matrix
ellIA,ellJA,csrValuesare arrays of ELL storage
syncTokenoptional, if available starts asynchronous computation
template<typename ValueType >
typedef void( * lama::ELLUtilsInterface::Mult< ValueType >::sparseGEMV)(ValueType result[], const IndexType numRows, const IndexType numNonZerosPerRows, const ValueType alpha, const ValueType x[], const IndexType numNonZeroRows, const IndexType rowIndexes[], const IndexType ellIA[], const IndexType ellJA[], const ValueType ellValues[], class SyncToken *syncToken)

result = alpha * ELL-Matrix * x, CSR matrix has only some non-zero rows

Parameters:
resultis the result vector
alphais scaling factor for matrix x vector
xis input vector for matrix multiplication
numNonZeroRowsis size of rowIndexes
rowIndexesare indexes of non-empty rows in matrix
ellIA,ellJA,csrValuesare arrays of ELL storage
syncTokenoptional, if available starts asynchronous computation

Note: this routine does not provide the term 'beta * y' as it would require to run over the full result vector


The documentation for this struct was generated from the following file: