CUSP
Loading...
Searching...
No Matches
cusp::coo_matrix_view< ArrayType1, ArrayType2, ArrayType3, IndexType, ValueType, MemorySpace > Class Template Reference

#include <coo_matrix.h>

Inheritance diagram for cusp::coo_matrix_view< ArrayType1, ArrayType2, ArrayType3, IndexType, ValueType, MemorySpace >:

Public Methods

 coo_matrix_view (void)
 
 coo_matrix_view (const size_t num_rows, const size_t num_cols, const size_t num_entries, ArrayType1 row_indices, ArrayType2 column_indices, ArrayType3 values)
 
 coo_matrix_view (coo_matrix< IndexType, ValueType, MemorySpace > &matrix)
 
 coo_matrix_view (const coo_matrix< IndexType, ValueType, MemorySpace > &matrix)
 
 coo_matrix_view (view &matrix)
 
 coo_matrix_view (const view &matrix)
 
template<typename MatrixType >
 coo_matrix_view (MatrixType &matrix)
 
template<typename MatrixType >
 coo_matrix_view (const MatrixType &matrix)
 
void resize (const size_t num_rows, const size_t num_cols, const size_t num_entries)
 
void sort_by_row (void)
 
void sort_by_row_and_column (void)
 
bool is_sorted_by_row (void)
 
bool is_sorted_by_row_and_column (void)
 

Public Members

row_indices_array_type row_indices
 
column_indices_array_type column_indices
 
values_array_type values
 
cusp::array1d< typename ::cuda::std::remove_const< IndexType >::type, MemorySpace > indices
 

Protected Methods

template<typename MatrixType >
void construct_from (MatrixType &matrix, csr_format)
 
template<typename MatrixType >
void construct_from (MatrixType &matrix, dia_format)
 
template<typename MatrixType >
void construct_from (MatrixType &matrix, ell_format)
 
template<typename MatrixType >
void construct_from (MatrixType &matrix, hyb_format)
 

Detailed description

template<typename ArrayType1, typename ArrayType2, typename ArrayType3, typename IndexType = typename ArrayType2::value_type, typename ValueType = typename ArrayType3::value_type, typename MemorySpace = typename cusp::minimum_space< typename ArrayType1::memory_space, typename ArrayType2::memory_space, typename ArrayType3::memory_space>::type>
class cusp::coo_matrix_view< ArrayType1, ArrayType2, ArrayType3, IndexType, ValueType, MemorySpace >

View of a coo_matrix.

Template Parameters
ArrayType1Type of row_indices array view
ArrayType2Type of column_indices array view
ArrayType3Type of values array view
IndexTypeType used for matrix indices (e.g. int).
ValueTypeType used for matrix values (e.g. float).
MemorySpaceA memory space (e.g. cusp::host_memory or cusp::device_memory)
Overview
Note
The matrix entries must be sorted by row index.
The matrix should not contain duplicate entries.

A coo_matrix_view is a sparse matrix view of a matrix in COO format constructed from existing data or iterators. All entries in the coo_matrix are sorted according to row indices and internally within each row sorted by column indices.

Example
The following code snippet demonstrates how to create a 4-by-3 coo_matrix_view on the host with 6 nonzeros.
// include coo_matrix header file
#include <cusp/print.h>
int main()
{
typedef typename IndexArray::view IndexArrayView;
typedef typename ValueArray::view ValueArrayView;
// initialize rows, columns, and values
IndexArray row_indices(6);
IndexArray column_indices(6);
ValueArray values(6);
row_indices[0] = 0; column_indices[0] = 0; values[0] = 10;
row_indices[1] = 0; column_indices[1] = 2; values[1] = 20;
row_indices[2] = 2; column_indices[2] = 2; values[2] = 30;
row_indices[3] = 3; column_indices[3] = 0; values[3] = 40;
row_indices[4] = 3; column_indices[4] = 1; values[4] = 50;
row_indices[5] = 3; column_indices[5] = 2; values[5] = 60;
// allocate storage for (4,3) matrix with 6 nonzeros
4,3,6,
// A now represents the following matrix
// [10 0 20]
// [ 0 0 0]
// [ 0 0 30]
// [40 50 60]
// print the constructed coo_matrix
// change first entry in values array
values[0] = -1;
// print the updated matrix view
}
The array1d class is a 1D vector container that may contain elements stored in "host" or "device" mem...
Definition array1d.h:99
View of a coo_matrix.
Definition coo_matrix.h:318
row_indices_array_type row_indices
Definition coo_matrix.h:341
values_array_type values
Definition coo_matrix.h:351
column_indices_array_type column_indices
Definition coo_matrix.h:346
Coordinate matrix format.
array1d_view< Iterator > make_array1d_view(Iterator first, Iterator last)
Definition array1d.h:695
void print(const Printable &p)
print a textual representation of an object
Print textual representation of an object.

Definition at line 317 of file coo_matrix.h.

Constructor & Destructor Documentation

◆ coo_matrix_view() [1/8]

template<typename ArrayType1 , typename ArrayType2 , typename ArrayType3 , typename IndexType = typename ArrayType2::value_type, typename ValueType = typename ArrayType3::value_type, typename MemorySpace = typename cusp::minimum_space< typename ArrayType1::memory_space, typename ArrayType2::memory_space, typename ArrayType3::memory_space>::type>
cusp::coo_matrix_view< ArrayType1, ArrayType2, ArrayType3, IndexType, ValueType, MemorySpace >::coo_matrix_view ( void  )
inline

Construct an empty coo_matrix_view.

Definition at line 361 of file coo_matrix.h.

◆ coo_matrix_view() [2/8]

template<typename ArrayType1 , typename ArrayType2 , typename ArrayType3 , typename IndexType = typename ArrayType2::value_type, typename ValueType = typename ArrayType3::value_type, typename MemorySpace = typename cusp::minimum_space< typename ArrayType1::memory_space, typename ArrayType2::memory_space, typename ArrayType3::memory_space>::type>
cusp::coo_matrix_view< ArrayType1, ArrayType2, ArrayType3, IndexType, ValueType, MemorySpace >::coo_matrix_view ( const size_t  num_rows,
const size_t  num_cols,
const size_t  num_entries,
ArrayType1  row_indices,
ArrayType2  column_indices,
ArrayType3  values 
)
inline

Construct a coo_matrix_view with a specific shape and number of nonzero entries from existing arrays denoting the row indices, column indices, and values.

Parameters
num_rowsNumber of rows.
num_colsNumber of columns.
num_entriesNumber of nonzero matrix entries.
row_indicesArray containing the row indices.
column_indicesArray containing the column indices.
valuesArray containing the values.

Definition at line 375 of file coo_matrix.h.

◆ coo_matrix_view() [3/8]

template<typename ArrayType1 , typename ArrayType2 , typename ArrayType3 , typename IndexType = typename ArrayType2::value_type, typename ValueType = typename ArrayType3::value_type, typename MemorySpace = typename cusp::minimum_space< typename ArrayType1::memory_space, typename ArrayType2::memory_space, typename ArrayType3::memory_space>::type>
cusp::coo_matrix_view< ArrayType1, ArrayType2, ArrayType3, IndexType, ValueType, MemorySpace >::coo_matrix_view ( coo_matrix< IndexType, ValueType, MemorySpace > &  matrix)
inline

Construct a coo_matrix_view from a existing coo_matrix.

Parameters
matrixcoo_matrix used to create view.

Definition at line 390 of file coo_matrix.h.

◆ coo_matrix_view() [4/8]

template<typename ArrayType1 , typename ArrayType2 , typename ArrayType3 , typename IndexType = typename ArrayType2::value_type, typename ValueType = typename ArrayType3::value_type, typename MemorySpace = typename cusp::minimum_space< typename ArrayType1::memory_space, typename ArrayType2::memory_space, typename ArrayType3::memory_space>::type>
cusp::coo_matrix_view< ArrayType1, ArrayType2, ArrayType3, IndexType, ValueType, MemorySpace >::coo_matrix_view ( const coo_matrix< IndexType, ValueType, MemorySpace > &  matrix)
inline

Construct a coo_matrix_view from a existing const coo_matrix.

Parameters
matrixcoo_matrix used to create view.

Definition at line 400 of file coo_matrix.h.

◆ coo_matrix_view() [5/8]

template<typename ArrayType1 , typename ArrayType2 , typename ArrayType3 , typename IndexType = typename ArrayType2::value_type, typename ValueType = typename ArrayType3::value_type, typename MemorySpace = typename cusp::minimum_space< typename ArrayType1::memory_space, typename ArrayType2::memory_space, typename ArrayType3::memory_space>::type>
cusp::coo_matrix_view< ArrayType1, ArrayType2, ArrayType3, IndexType, ValueType, MemorySpace >::coo_matrix_view ( view &  matrix)
inline

Construct a coo_matrix_view from a existing coo_matrix_view.

Parameters
matrixcoo_matrix_view used to create view.

Definition at line 410 of file coo_matrix.h.

◆ coo_matrix_view() [6/8]

template<typename ArrayType1 , typename ArrayType2 , typename ArrayType3 , typename IndexType = typename ArrayType2::value_type, typename ValueType = typename ArrayType3::value_type, typename MemorySpace = typename cusp::minimum_space< typename ArrayType1::memory_space, typename ArrayType2::memory_space, typename ArrayType3::memory_space>::type>
cusp::coo_matrix_view< ArrayType1, ArrayType2, ArrayType3, IndexType, ValueType, MemorySpace >::coo_matrix_view ( const view &  matrix)
inline

Construct a coo_matrix_view from a existing const coo_matrix.

Parameters
matrixcoo_matrix used to create view.

Definition at line 421 of file coo_matrix.h.

◆ coo_matrix_view() [7/8]

template<typename ArrayType1 , typename ArrayType2 , typename ArrayType3 , typename IndexType = typename ArrayType2::value_type, typename ValueType = typename ArrayType3::value_type, typename MemorySpace = typename cusp::minimum_space< typename ArrayType1::memory_space, typename ArrayType2::memory_space, typename ArrayType3::memory_space>::type>
template<typename MatrixType >
cusp::coo_matrix_view< ArrayType1, ArrayType2, ArrayType3, IndexType, ValueType, MemorySpace >::coo_matrix_view ( MatrixType &  matrix)

Construct a coo_matrix_view from a existing matrix in another format.

Parameters
matrixused to create view.

◆ coo_matrix_view() [8/8]

template<typename ArrayType1 , typename ArrayType2 , typename ArrayType3 , typename IndexType = typename ArrayType2::value_type, typename ValueType = typename ArrayType3::value_type, typename MemorySpace = typename cusp::minimum_space< typename ArrayType1::memory_space, typename ArrayType2::memory_space, typename ArrayType3::memory_space>::type>
template<typename MatrixType >
cusp::coo_matrix_view< ArrayType1, ArrayType2, ArrayType3, IndexType, ValueType, MemorySpace >::coo_matrix_view ( const MatrixType &  matrix)

Construct a coo_matrix_view from a existing const matrix in another format.

Parameters
matrixused to create view.

Member Function Documentation

◆ construct_from() [1/4]

template<typename ArrayType1 , typename ArrayType2 , typename ArrayType3 , typename IndexType = typename ArrayType2::value_type, typename ValueType = typename ArrayType3::value_type, typename MemorySpace = typename cusp::minimum_space< typename ArrayType1::memory_space, typename ArrayType2::memory_space, typename ArrayType3::memory_space>::type>
template<typename MatrixType >
void cusp::coo_matrix_view< ArrayType1, ArrayType2, ArrayType3, IndexType, ValueType, MemorySpace >::construct_from ( MatrixType &  matrix,
csr_format   
)
protected

Initialize coo_matrix_view from csr_matrix.

Parameters
matrixAnother matrix in csr_format.

◆ construct_from() [2/4]

template<typename ArrayType1 , typename ArrayType2 , typename ArrayType3 , typename IndexType = typename ArrayType2::value_type, typename ValueType = typename ArrayType3::value_type, typename MemorySpace = typename cusp::minimum_space< typename ArrayType1::memory_space, typename ArrayType2::memory_space, typename ArrayType3::memory_space>::type>
template<typename MatrixType >
void cusp::coo_matrix_view< ArrayType1, ArrayType2, ArrayType3, IndexType, ValueType, MemorySpace >::construct_from ( MatrixType &  matrix,
dia_format   
)
protected

Construct coo_matrix_view from dia_matrix.

Parameters
matrixAnother matrix in dia_format.

◆ construct_from() [3/4]

template<typename ArrayType1 , typename ArrayType2 , typename ArrayType3 , typename IndexType = typename ArrayType2::value_type, typename ValueType = typename ArrayType3::value_type, typename MemorySpace = typename cusp::minimum_space< typename ArrayType1::memory_space, typename ArrayType2::memory_space, typename ArrayType3::memory_space>::type>
template<typename MatrixType >
void cusp::coo_matrix_view< ArrayType1, ArrayType2, ArrayType3, IndexType, ValueType, MemorySpace >::construct_from ( MatrixType &  matrix,
ell_format   
)
protected

Construct coo_matrix_view from ell_matrix.

Parameters
matrixAnother matrix in ell_format.

◆ construct_from() [4/4]

template<typename ArrayType1 , typename ArrayType2 , typename ArrayType3 , typename IndexType = typename ArrayType2::value_type, typename ValueType = typename ArrayType3::value_type, typename MemorySpace = typename cusp::minimum_space< typename ArrayType1::memory_space, typename ArrayType2::memory_space, typename ArrayType3::memory_space>::type>
template<typename MatrixType >
void cusp::coo_matrix_view< ArrayType1, ArrayType2, ArrayType3, IndexType, ValueType, MemorySpace >::construct_from ( MatrixType &  matrix,
hyb_format   
)
protected

Construct coo_matrix_view from hyb_matrix.

Parameters
matrixAnother matrix in hyb_format.

◆ is_sorted_by_row()

template<typename ArrayType1 , typename ArrayType2 , typename ArrayType3 , typename IndexType = typename ArrayType2::value_type, typename ValueType = typename ArrayType3::value_type, typename MemorySpace = typename cusp::minimum_space< typename ArrayType1::memory_space, typename ArrayType2::memory_space, typename ArrayType3::memory_space>::type>
bool cusp::coo_matrix_view< ArrayType1, ArrayType2, ArrayType3, IndexType, ValueType, MemorySpace >::is_sorted_by_row ( void  )

Determine whether matrix elements are sorted by row index

Returns
false, if the row indices are unsorted; true, otherwise.

◆ is_sorted_by_row_and_column()

template<typename ArrayType1 , typename ArrayType2 , typename ArrayType3 , typename IndexType = typename ArrayType2::value_type, typename ValueType = typename ArrayType3::value_type, typename MemorySpace = typename cusp::minimum_space< typename ArrayType1::memory_space, typename ArrayType2::memory_space, typename ArrayType3::memory_space>::type>
bool cusp::coo_matrix_view< ArrayType1, ArrayType2, ArrayType3, IndexType, ValueType, MemorySpace >::is_sorted_by_row_and_column ( void  )

Determine whether matrix elements are sorted by row and column index

Returns
false, if the row and column indices are unsorted; true, otherwise.

◆ resize()

template<typename ArrayType1 , typename ArrayType2 , typename ArrayType3 , typename IndexType = typename ArrayType2::value_type, typename ValueType = typename ArrayType3::value_type, typename MemorySpace = typename cusp::minimum_space< typename ArrayType1::memory_space, typename ArrayType2::memory_space, typename ArrayType3::memory_space>::type>
void cusp::coo_matrix_view< ArrayType1, ArrayType2, ArrayType3, IndexType, ValueType, MemorySpace >::resize ( const size_t  num_rows,
const size_t  num_cols,
const size_t  num_entries 
)

Resize matrix dimensions and underlying storage

Parameters
num_rowsNumber of rows.
num_colsNumber of columns.
num_entriesNumber of nonzero matrix entries.

◆ sort_by_row()

template<typename ArrayType1 , typename ArrayType2 , typename ArrayType3 , typename IndexType = typename ArrayType2::value_type, typename ValueType = typename ArrayType3::value_type, typename MemorySpace = typename cusp::minimum_space< typename ArrayType1::memory_space, typename ArrayType2::memory_space, typename ArrayType3::memory_space>::type>
void cusp::coo_matrix_view< ArrayType1, ArrayType2, ArrayType3, IndexType, ValueType, MemorySpace >::sort_by_row ( void  )

Sort matrix elements by row index

◆ sort_by_row_and_column()

template<typename ArrayType1 , typename ArrayType2 , typename ArrayType3 , typename IndexType = typename ArrayType2::value_type, typename ValueType = typename ArrayType3::value_type, typename MemorySpace = typename cusp::minimum_space< typename ArrayType1::memory_space, typename ArrayType2::memory_space, typename ArrayType3::memory_space>::type>
void cusp::coo_matrix_view< ArrayType1, ArrayType2, ArrayType3, IndexType, ValueType, MemorySpace >::sort_by_row_and_column ( void  )

Sort matrix elements by row and column index

Member Data Documentation

◆ column_indices

template<typename ArrayType1 , typename ArrayType2 , typename ArrayType3 , typename IndexType = typename ArrayType2::value_type, typename ValueType = typename ArrayType3::value_type, typename MemorySpace = typename cusp::minimum_space< typename ArrayType1::memory_space, typename ArrayType2::memory_space, typename ArrayType3::memory_space>::type>
column_indices_array_type cusp::coo_matrix_view< ArrayType1, ArrayType2, ArrayType3, IndexType, ValueType, MemorySpace >::column_indices

View of the column indices of the COO data structure.

Definition at line 346 of file coo_matrix.h.

◆ indices

template<typename ArrayType1 , typename ArrayType2 , typename ArrayType3 , typename IndexType = typename ArrayType2::value_type, typename ValueType = typename ArrayType3::value_type, typename MemorySpace = typename cusp::minimum_space< typename ArrayType1::memory_space, typename ArrayType2::memory_space, typename ArrayType3::memory_space>::type>
cusp::array1d<typename ::cuda::std::remove_const<IndexType>::type,MemorySpace> cusp::coo_matrix_view< ArrayType1, ArrayType2, ArrayType3, IndexType, ValueType, MemorySpace >::indices

Storage for indices used to generate COO view.

Definition at line 356 of file coo_matrix.h.

◆ row_indices

template<typename ArrayType1 , typename ArrayType2 , typename ArrayType3 , typename IndexType = typename ArrayType2::value_type, typename ValueType = typename ArrayType3::value_type, typename MemorySpace = typename cusp::minimum_space< typename ArrayType1::memory_space, typename ArrayType2::memory_space, typename ArrayType3::memory_space>::type>
row_indices_array_type cusp::coo_matrix_view< ArrayType1, ArrayType2, ArrayType3, IndexType, ValueType, MemorySpace >::row_indices

View of the row indices of the COO data structure. Also called the "row pointer" array.

Definition at line 341 of file coo_matrix.h.

◆ values

template<typename ArrayType1 , typename ArrayType2 , typename ArrayType3 , typename IndexType = typename ArrayType2::value_type, typename ValueType = typename ArrayType3::value_type, typename MemorySpace = typename cusp::minimum_space< typename ArrayType1::memory_space, typename ArrayType2::memory_space, typename ArrayType3::memory_space>::type>
values_array_type cusp::coo_matrix_view< ArrayType1, ArrayType2, ArrayType3, IndexType, ValueType, MemorySpace >::values

View for the nonzero entries of the COO data structure.

Definition at line 351 of file coo_matrix.h.