Defines operations common to all matrices, which are implemented in this library.
More...
|
| Matrix () |
| Base constructor. More...
|
|
virtual | ~Matrix () |
| Base deconstructor. More...
|
|
virtual unsigned long int | m ()=0 |
|
virtual unsigned long int | n ()=0 |
|
virtual unsigned long int | nzs () |
|
virtual T * | mv (const T *x)=0 |
| Calculates z=Ax (where A is this matrix). More...
|
|
virtual void | zax (const T *__restrict__ x, T *__restrict__ z)=0 |
| In-place z=Ax function. More...
|
|
virtual void | zax (const T *__restrict__ x, T *__restrict__ z, const size_t k, const clockid_t clock_id=0, double *elapsed_time=NULL) |
| Wrapper function to call the zax kernel multiple times successively, while timing the duration of the operation. More...
|
|
template<size_t k> |
void | ZaX (const T *__restrict__ const *__restrict__ const X, T *__restrict__ const *__restrict__ const Z) |
| In-place Z=AX function, where A is m x n, Z = m x k, and X is n x k. More...
|
|
virtual void | zxa (const T *__restrict__ x, T *__restrict__ z)=0 |
| In-place z=xA function. More...
|
|
template<size_t k> |
void | ZXa (const T *__restrict__ const *__restrict__ const X, T *__restrict__ const *__restrict__ const Z) |
| In-place Z=XA function, where A is m x n, Z = k x n, and X is k x m. More...
|
|
virtual void | zxa (const T *__restrict__ x, T *__restrict__ z, const unsigned long int repeat, const clockid_t clock_id=0, double *elapsed_time=NULL) |
| Wrapper function to call the zxa kernel multiple times successively, while timing the operation duration. More...
|
|
virtual size_t | bytesUsed ()=0 |
| Function to query the amount of storage required by this sparse matrix. More...
|
|
template<typename T>
class Matrix< T >
Defines operations common to all matrices, which are implemented in this library.
template<typename T>
virtual void Matrix< T >::zax |
( |
const T *__restrict__ |
x, |
|
|
T *__restrict__ |
z |
|
) |
| |
|
pure virtual |
In-place z=Ax function.
- Parameters
-
x | The x vector to multiply current matrix with. |
z | The result vector. Must be pre-allocated and its elements should be initialised to zero. |
Implemented in vecBICRS< T, block_length_row, block_length_column, _i_value >, FBICRS< _t_value, _i_value, _sub_ds, logBeta >, CBICRS< _t_value, _master_i_value, _master_j_value, _i_value, _j_value >, HBICRS< _t_value >, HBICRS< T >, ICRS< T, _i_value >, ZZ_ICRS< T >, McCRS< T >, BICRS< _t_value, _i_value >, SVM< T >, CRS< T >, MKLCRS< T >, SparseMatrix< T, IND >, SparseMatrix< _t_value, ULI >, SparseMatrix< _t_value, LI >, SparseMatrix< _t_value, _i_value >, SparseMatrix< T, LI >, SparseMatrix< T, unsigned long int >, SparseMatrix< T, ULI >, SparseMatrix< double, size_t >, CCSWrapper< T, SparseMatrixType, IND >, and CuHyb.
Referenced by Matrix< _t_value >::zax(), and Matrix< _t_value >::ZaX().
template<typename T>
virtual void Matrix< T >::zxa |
( |
const T *__restrict__ |
x, |
|
|
T *__restrict__ |
z |
|
) |
| |
|
pure virtual |
In-place z=xA function.
- Parameters
-
x | The input vector to left-multiply to the current matrix. |
z | The output vector. Must be pre-allocated and initialised to zero for correct results. |
Implemented in vecBICRS< T, block_length_row, block_length_column, _i_value >, CBICRS< _t_value, _master_i_value, _master_j_value, _i_value, _j_value >, FBICRS< _t_value, _i_value, _sub_ds, logBeta >, ICRS< T, _i_value >, HBICRS< _t_value >, HBICRS< T >, McCRS< T >, ZZ_ICRS< T >, SVM< T >, CRS< T >, BICRS< _t_value, _i_value >, MKLCRS< T >, SparseMatrix< T, IND >, SparseMatrix< _t_value, ULI >, SparseMatrix< _t_value, LI >, SparseMatrix< _t_value, _i_value >, SparseMatrix< T, LI >, SparseMatrix< T, unsigned long int >, SparseMatrix< T, ULI >, SparseMatrix< double, size_t >, CCSWrapper< T, SparseMatrixType, IND >, and CuHyb.
Referenced by Matrix< _t_value >::ZXa(), and Matrix< _t_value >::zxa().