A sparse square matrix in compressed sparse rows format. More...
#include <compressed_matrix.hpp>
Public Types | |
typedef scalar< typename viennacl::tools::CHECK_SCALAR_TEMPLATE_ARGUMENT < SCALARTYPE >::ResultType > | value_type |
Public Member Functions | |
compressed_matrix () | |
Default construction of a compressed matrix. No memory is allocated. | |
compressed_matrix (std::size_t rows, std::size_t cols, std::size_t nonzeros=0) | |
Construction of a compressed matrix with the supplied number of rows and columns. If the number of nonzeros is positive, memory is allocated. | |
compressed_matrix (cl_mem mem_row_buffer, cl_mem mem_col_buffer, cl_mem mem_elements, std::size_t rows, std::size_t cols, std::size_t nonzeros) | |
void | set (cl_uint *row_jumper, cl_uint *col_buffer, SCALARTYPE *elements, std::size_t rows, std::size_t cols, std::size_t nonzeros) |
Sets the row, column and value arrays of the compressed matrix. | |
void | reserve (std::size_t new_nonzeros) |
Allocate memory for the supplied number of nonzeros in the matrix. Old values are preserved. | |
void | resize (std::size_t new_size1, std::size_t new_size2, bool preserve=true) |
Resize the matrix. | |
const std::size_t & | size1 () const |
Returns the number of rows. | |
const std::size_t & | size2 () const |
Returns the number of columns. | |
const std::size_t & | nnz () const |
Returns the number of nonzero entries. | |
const viennacl::ocl::handle < cl_mem > & | handle1 () const |
Returns the OpenCL handle to the row index array. | |
const viennacl::ocl::handle < cl_mem > & | handle2 () const |
Returns the OpenCL handle to the column index array. | |
const viennacl::ocl::handle < cl_mem > & | handle () const |
Returns the OpenCL handle to the matrix entry array. |
A sparse square matrix in compressed sparse rows format.
SCALARTYPE | The floating point type (either float or double, checked at compile time) | |
ALIGNMENT | The internal memory size for the entries in each row is given by (size()/ALIGNMENT + 1) * ALIGNMENT. ALIGNMENT must be a power of two. Best values or usually 4, 8 or 16, higher values are usually a waste of memory. |
typedef scalar<typename viennacl::tools::CHECK_SCALAR_TEMPLATE_ARGUMENT<SCALARTYPE>::ResultType> value_type |
compressed_matrix | ( | ) | [inline] |
Default construction of a compressed matrix. No memory is allocated.
compressed_matrix | ( | std::size_t | rows, | |
std::size_t | cols, | |||
std::size_t | nonzeros = 0 | |||
) | [inline, explicit] |
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 |
compressed_matrix | ( | cl_mem | mem_row_buffer, | |
cl_mem | mem_col_buffer, | |||
cl_mem | mem_elements, | |||
std::size_t | rows, | |||
std::size_t | cols, | |||
std::size_t | nonzeros | |||
) | [inline, explicit] |
const viennacl::ocl::handle<cl_mem>& handle | ( | ) | const [inline] |
Returns the OpenCL handle to the matrix entry array.
const viennacl::ocl::handle<cl_mem>& handle1 | ( | ) | const [inline] |
Returns the OpenCL handle to the row index array.
const viennacl::ocl::handle<cl_mem>& handle2 | ( | ) | const [inline] |
Returns the OpenCL handle to the column index array.
const std::size_t& nnz | ( | ) | const [inline] |
Returns the number of nonzero entries.
void reserve | ( | std::size_t | new_nonzeros | ) | [inline] |
Allocate memory for the supplied number of nonzeros in the matrix. Old values are preserved.
void resize | ( | std::size_t | new_size1, | |
std::size_t | new_size2, | |||
bool | preserve = true | |||
) | [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. |
void set | ( | cl_uint * | row_jumper, | |
cl_uint * | col_buffer, | |||
SCALARTYPE * | elements, | |||
std::size_t | rows, | |||
std::size_t | cols, | |||
std::size_t | nonzeros | |||
) | [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 |
const std::size_t& size1 | ( | ) | const [inline] |
Returns the number of rows.
const std::size_t& size2 | ( | ) | const [inline] |
Returns the number of columns.