ViennaCL - The Vienna Computing Library  1.5.2
Public Types | Public Member Functions | Friends
coordinate_matrix< SCALARTYPE, ALIGNMENT > Singleton 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. More...
 
 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. More...
 
 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. 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...
 
vcl_size_t size1 () const
 Returns the number of rows. More...
 
vcl_size_t size2 () const
 Returns the number of columns. More...
 
vcl_size_t nnz () const
 Returns the number of nonzero entries. More...
 
vcl_size_t internal_nnz () const
 Returns the number of internal nonzero entries. More...
 
const handle_typehandle12 () const
 Returns the OpenCL handle to the (row, column) index array. More...
 
const handle_typehandle () const
 Returns the OpenCL handle to the matrix entry array. More...
 
const handle_typehandle3 () const
 Returns the OpenCL handle to the group start index array. More...
 
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>
singleton 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)
inlineexplicit
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 
)
inlineexplicit

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 singleton was generated from the following file: