A sparse square matrix in compressed sparse rows format. More...
#include <compressed_matrix.hpp>
Public Types | |
typedef viennacl::backend::mem_handle | handle_type |
typedef scalar< typename viennacl::tools::CHECK_SCALAR_TEMPLATE_ARGUMENT < NumericT >::ResultType > | value_type |
typedef vcl_size_t | size_type |
Public Member Functions | |
compressed_matrix () | |
Default construction of a compressed matrix. No memory is allocated. More... | |
compressed_matrix (vcl_size_t rows, vcl_size_t cols, vcl_size_t nonzeros=0, viennacl::context ctx=viennacl::context()) | |
Construction of a compressed matrix with the supplied number of rows and columns. If the number of nonzeros is positive, memory is allocated. More... | |
compressed_matrix (vcl_size_t rows, vcl_size_t cols, viennacl::context ctx) | |
Construction of a compressed matrix with the supplied number of rows and columns. If the number of nonzeros is positive, memory is allocated. More... | |
compressed_matrix (viennacl::context ctx) | |
compressed_matrix & | operator= (compressed_matrix const &other) |
Assignment a compressed matrix from possibly another memory domain. More... | |
void | set (const void *row_jumper, const void *col_buffer, const NumericT *elements, vcl_size_t rows, vcl_size_t cols, vcl_size_t nonzeros) |
Sets the row, column and value arrays of the compressed matrix. More... | |
void | reserve (vcl_size_t new_nonzeros) |
Allocate memory for the supplied number of nonzeros in the matrix. Old values are preserved. More... | |
void | resize (vcl_size_t new_size1, vcl_size_t new_size2, bool preserve=true) |
Resize the matrix. More... | |
void | clear () |
Resets all entries in the matrix back to zero without changing the matrix size. Resets the sparsity pattern. More... | |
entry_proxy< NumericT > | operator() (vcl_size_t i, vcl_size_t j) |
Returns a reference to the (i,j)-th entry of the sparse matrix. If (i,j) does not exist (zero), it is inserted (slow!) More... | |
const vcl_size_t & | size1 () const |
Returns the number of rows. More... | |
const vcl_size_t & | size2 () const |
Returns the number of columns. More... | |
const vcl_size_t & | nnz () const |
Returns the number of nonzero entries. More... | |
const handle_type & | handle1 () const |
Returns the OpenCL handle to the row index array. More... | |
const handle_type & | handle2 () const |
Returns the OpenCL handle to the column index array. More... | |
const handle_type & | handle () const |
Returns the OpenCL handle to the matrix entry array. More... | |
handle_type & | handle1 () |
Returns the OpenCL handle to the row index array. More... | |
handle_type & | handle2 () |
Returns the OpenCL handle to the column index array. More... | |
handle_type & | handle () |
Returns the OpenCL handle to the matrix entry array. More... | |
void | switch_memory_context (viennacl::context new_ctx) |
viennacl::memory_types | memory_context () const |
A sparse square matrix in compressed sparse rows format.
NumericT | The floating point type (either float or double, checked at compile time) |
AlignmentV | The internal memory size for the entries in each row is given by (size()/AlignmentV + 1) * AlignmentV. AlignmentV must be a power of two. Best values or usually 4, 8 or 16, higher values are usually a waste of memory. |
Definition at line 433 of file compressed_matrix.hpp.
typedef viennacl::backend::mem_handle viennacl::compressed_matrix< NumericT, AlignmentV >::handle_type |
Definition at line 436 of file compressed_matrix.hpp.
typedef vcl_size_t viennacl::compressed_matrix< NumericT, AlignmentV >::size_type |
Definition at line 438 of file compressed_matrix.hpp.
typedef scalar<typename viennacl::tools::CHECK_SCALAR_TEMPLATE_ARGUMENT<NumericT>::ResultType> viennacl::compressed_matrix< NumericT, AlignmentV >::value_type |
Definition at line 437 of file compressed_matrix.hpp.
|
inline |
Default construction of a compressed matrix. No memory is allocated.
Definition at line 441 of file compressed_matrix.hpp.
|
inlineexplicit |
Construction of a compressed matrix with the supplied number of rows and columns. If the number of nonzeros is positive, memory is allocated.
rows | Number of rows |
cols | Number of columns |
nonzeros | Optional number of nonzeros for memory preallocation |
ctx | Optional context in which the matrix is created (one out of multiple OpenCL contexts, CUDA, host) |
Definition at line 450 of file compressed_matrix.hpp.
|
inlineexplicit |
Construction of a compressed matrix with the supplied number of rows and columns. If the number of nonzeros is positive, memory is allocated.
rows | Number of rows |
cols | Number of columns |
ctx | Context in which to create the matrix |
Definition at line 482 of file compressed_matrix.hpp.
|
inlineexplicit |
Definition at line 503 of file compressed_matrix.hpp.
|
inline |
Resets all entries in the matrix back to zero without changing the matrix size. Resets the sparsity pattern.
Definition at line 672 of file compressed_matrix.hpp.
|
inline |
Returns the OpenCL handle to the matrix entry array.
Definition at line 722 of file compressed_matrix.hpp.
|
inline |
Returns the OpenCL handle to the matrix entry array.
Definition at line 729 of file compressed_matrix.hpp.
|
inline |
Returns the OpenCL handle to the row index array.
Definition at line 718 of file compressed_matrix.hpp.
|
inline |
Returns the OpenCL handle to the row index array.
Definition at line 725 of file compressed_matrix.hpp.
|
inline |
Returns the OpenCL handle to the column index array.
Definition at line 720 of file compressed_matrix.hpp.
|
inline |
Returns the OpenCL handle to the column index array.
Definition at line 727 of file compressed_matrix.hpp.
|
inline |
Definition at line 738 of file compressed_matrix.hpp.
|
inline |
Returns the number of nonzero entries.
Definition at line 715 of file compressed_matrix.hpp.
|
inline |
Returns a reference to the (i,j)-th entry of the sparse matrix. If (i,j) does not exist (zero), it is inserted (slow!)
Definition at line 686 of file compressed_matrix.hpp.
|
inline |
Assignment a compressed matrix from possibly another memory domain.
Definition at line 544 of file compressed_matrix.hpp.
|
inline |
Allocate memory for the supplied number of nonzeros in the matrix. Old values are preserved.
Definition at line 597 of file compressed_matrix.hpp.
|
inline |
Resize the matrix.
new_size1 | New number of rows |
new_size2 | New number of columns |
preserve | If true, the old values are preserved. At present, old values are always discarded. |
Definition at line 623 of file compressed_matrix.hpp.
|
inline |
Sets the row, column and value arrays of the compressed matrix.
row_jumper | Pointer to an array holding the indices of the first element of each row (starting with zero). E.g. row_jumper[10] returns the index of the first entry of the 11th row. The array length is 'cols + 1' |
col_buffer | Pointer to an array holding the column index of each entry. The array length is 'nonzeros' |
elements | Pointer to an array holding the entries of the sparse matrix. The array length is 'elements' |
rows | Number of rows of the sparse matrix |
cols | Number of columns of the sparse matrix |
nonzeros | Number of nonzeros |
Definition at line 570 of file compressed_matrix.hpp.
|
inline |
Returns the number of rows.
Definition at line 711 of file compressed_matrix.hpp.
|
inline |
Returns the number of columns.
Definition at line 713 of file compressed_matrix.hpp.
|
inline |
Definition at line 731 of file compressed_matrix.hpp.