ViennaCL - The Vienna Computing Library  1.5.2
Public Types | Public Member Functions | Friends
coordinate_matrix< SCALARTYPE, ALIGNMENT > Class Template Reference

A sparse square matrix, where entries are stored as triplets (i,j, val), where i and j are the row and column indices and val denotes the entry. More...

#include <coordinate_matrix.hpp>

Public Types

typedef
viennacl::backend::mem_handle 
handle_type
typedef scalar< typename
viennacl::tools::CHECK_SCALAR_TEMPLATE_ARGUMENT
< SCALARTYPE >::ResultType > 
value_type
typedef vcl_size_t size_type

Public Member Functions

 coordinate_matrix ()
 Default construction of a coordinate matrix. No memory is allocated.
 coordinate_matrix (viennacl::context ctx)
 coordinate_matrix (vcl_size_t rows, vcl_size_t cols, vcl_size_t nonzeros=0, viennacl::context ctx=viennacl::context())
 Construction of a coordinate matrix with the supplied number of rows and columns. If the number of nonzeros is positive, memory is allocated.
 coordinate_matrix (vcl_size_t rows, vcl_size_t cols, viennacl::context ctx)
 Construction of a coordinate matrix with the supplied number of rows and columns in the supplied context. Does not yet allocate memory.
void reserve (vcl_size_t new_nonzeros)
 Allocate memory for the supplied number of nonzeros in the matrix. Old values are preserved.
void resize (vcl_size_t new_size1, vcl_size_t new_size2, bool preserve=true)
 Resize the matrix.
vcl_size_t size1 () const
 Returns the number of rows.
vcl_size_t size2 () const
 Returns the number of columns.
vcl_size_t nnz () const
 Returns the number of nonzero entries.
vcl_size_t internal_nnz () const
 Returns the number of internal nonzero entries.
const handle_typehandle12 () const
 Returns the OpenCL handle to the (row, column) index array.
const handle_typehandle () const
 Returns the OpenCL handle to the matrix entry array.
const handle_typehandle3 () const
 Returns the OpenCL handle to the group start index array.
vcl_size_t groups () const

Friends

template<typename CPU_MATRIX , typename SCALARTYPE2 , unsigned int ALIGNMENT2>
void copy (const CPU_MATRIX &cpu_matrix, coordinate_matrix< SCALARTYPE2, ALIGNMENT2 > &gpu_matrix)

Detailed Description

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

A sparse square matrix, where entries are stored as triplets (i,j, val), where i and j are the row and column indices and val denotes the entry.

The present implementation of coordinate_matrix suffers from poor runtime efficiency. Users are adviced to use compressed_matrix in the meanwhile.

Template Parameters:
SCALARTYPEThe floating point type (either float or double, checked at compile time)
ALIGNMENTThe internal memory size for the arrays, given by (size()/ALIGNMENT + 1) * ALIGNMENT. ALIGNMENT must be a power of two.

Member Typedef Documentation

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

Constructor & Destructor Documentation

coordinate_matrix ( ) [inline]

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

coordinate_matrix ( viennacl::context  ctx) [inline, explicit]
coordinate_matrix ( vcl_size_t  rows,
vcl_size_t  cols,
vcl_size_t  nonzeros = 0,
viennacl::context  ctx = viennacl::context() 
) [inline]

Construction of a coordinate matrix with the supplied number of rows and columns. If the number of nonzeros is positive, memory is allocated.

Parameters:
rowsNumber of rows
colsNumber of columns
nonzerosOptional number of nonzeros for memory preallocation
ctxOptional context in which the matrix is created (one out of multiple OpenCL contexts, CUDA, host)
coordinate_matrix ( vcl_size_t  rows,
vcl_size_t  cols,
viennacl::context  ctx 
) [inline, explicit]

Construction of a coordinate matrix with the supplied number of rows and columns in the supplied context. Does not yet allocate memory.

Parameters:
rowsNumber of rows
colsNumber of columns
ctxContext in which to create the matrix

Member Function Documentation

vcl_size_t groups ( ) const [inline]
const handle_type& handle ( ) const [inline]

Returns the OpenCL handle to the matrix entry array.

const handle_type& handle12 ( ) const [inline]

Returns the OpenCL handle to the (row, column) index array.

const handle_type& handle3 ( ) const [inline]

Returns the OpenCL handle to the group start index array.

vcl_size_t internal_nnz ( ) const [inline]

Returns the number of internal nonzero entries.

vcl_size_t nnz ( ) const [inline]

Returns the number of nonzero entries.

void reserve ( vcl_size_t  new_nonzeros) [inline]

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

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

Resize the matrix.

Parameters:
new_size1New number of rows
new_size2New number of columns
preserveIf true, the old values are preserved. At present, old values are always discarded.
vcl_size_t size1 ( ) const [inline]

Returns the number of rows.

vcl_size_t size2 ( ) const [inline]

Returns the number of columns.


Friends And Related Function Documentation

void copy ( const CPU_MATRIX &  cpu_matrix,
coordinate_matrix< SCALARTYPE2, ALIGNMENT2 > &  gpu_matrix 
) [friend]

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