Public Types | Public Member Functions

compressed_matrix< SCALARTYPE, ALIGNMENT > Class Template Reference

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 (unsigned int rows, unsigned int cols, unsigned int 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, unsigned int rows, unsigned int cols, unsigned int nonzeros)
void set (unsigned int *row_jumper, unsigned int *col_buffer, SCALARTYPE *elements, unsigned int cols, unsigned int nonzeros)
 Sets the row, column and value arrays of the compressed matrix.
void reserve (unsigned int new_nonzeros)
 Allocate memory for the supplied number of nonzeros in the matrix. Old values are preserved.
void resize (unsigned int new_size1, unsigned int new_size2, bool preserve=true)
 Resize the matrix.
const unsigned int & size1 () const
 Returns the number of rows.
const unsigned int & size2 () const
 Returns the number of columns.
const unsigned int & 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.

Detailed Description

template<class SCALARTYPE, unsigned int ALIGNMENT>
class viennacl::compressed_matrix< SCALARTYPE, ALIGNMENT >

A sparse square matrix in compressed sparse rows format.

Template Parameters:
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.

Member Typedef Documentation

typedef scalar<typename viennacl::tools::CHECK_SCALAR_TEMPLATE_ARGUMENT<SCALARTYPE>::ResultType> value_type

Constructor & Destructor Documentation

compressed_matrix (  )  [inline]

Default construction of a compressed matrix. No memory is allocated.

compressed_matrix ( unsigned int  rows,
unsigned int  cols,
unsigned int  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.

Parameters:
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,
unsigned int  rows,
unsigned int  cols,
unsigned int  nonzeros 
) [inline, explicit]

Member Function Documentation

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 unsigned int& nnz (  )  const [inline]

Returns the number of nonzero entries.

void reserve ( unsigned int  new_nonzeros  )  [inline]

Allocate memory for the supplied number of nonzeros in the matrix. Old values are preserved.

void resize ( unsigned int  new_size1,
unsigned int  new_size2,
bool  preserve = true 
) [inline]

Resize the matrix.

Parameters:
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 ( unsigned int *  row_jumper,
unsigned int *  col_buffer,
SCALARTYPE *  elements,
unsigned int  cols,
unsigned int  nonzeros 
) [inline]

Sets the row, column and value arrays of the compressed matrix.

Parameters:
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'
cols Number of columns (and rows) of the sparse matrix
nonzeros Number of nonzeros
const unsigned int& size1 (  )  const [inline]

Returns the number of rows.

const unsigned int& size2 (  )  const [inline]

Returns the number of columns.


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