tatami
C++ API for different matrix representations
Loading...
Searching...
No Matches
Public Member Functions | List of all members
tatami::CompressedSparseMatrix< Value_, Index_, ValueStorage_, IndexStorage_, PointerStorage_ > Class Template Reference

Compressed sparse matrix representation. More...

#include <CompressedSparseMatrix.hpp>

Inheritance diagram for tatami::CompressedSparseMatrix< Value_, Index_, ValueStorage_, IndexStorage_, PointerStorage_ >:
Inheritance graph
[legend]
Collaboration diagram for tatami::CompressedSparseMatrix< Value_, Index_, ValueStorage_, IndexStorage_, PointerStorage_ >:
Collaboration graph
[legend]

Public Member Functions

 CompressedSparseMatrix (Index_ nrow, Index_ ncol, ValueStorage_ values, IndexStorage_ indices, PointerStorage_ pointers, bool csr, bool check=true)
 
Index_ nrow () const
 
Index_ ncol () const
 
bool is_sparse () const
 
double is_sparse_proportion () const
 
bool prefer_rows () const
 
double prefer_rows_proportion () const
 
bool uses_oracle (bool) const
 
std::unique_ptr< MyopicDenseExtractor< Value_, Index_ > > dense (bool row, const Options &) const
 
std::unique_ptr< MyopicDenseExtractor< Value_, Index_ > > dense (bool row, Index_ block_start, Index_ block_end, const Options &) const
 
std::unique_ptr< MyopicDenseExtractor< Value_, Index_ > > dense (bool row, VectorPtr< Index_ > indices_ptr, const Options &) const
 
std::unique_ptr< MyopicSparseExtractor< Value_, Index_ > > sparse (bool row, const Options &opt) const
 
std::unique_ptr< MyopicSparseExtractor< Value_, Index_ > > sparse (bool row, Index_ block_start, Index_ block_end, const Options &opt) const
 
std::unique_ptr< MyopicSparseExtractor< Value_, Index_ > > sparse (bool row, VectorPtr< Index_ > indices_ptr, const Options &opt) const
 
std::unique_ptr< OracularDenseExtractor< Value_, Index_ > > dense (bool row, std::shared_ptr< const Oracle< Index_ > > oracle, const Options &opt) const
 
std::unique_ptr< OracularDenseExtractor< Value_, Index_ > > dense (bool row, std::shared_ptr< const Oracle< Index_ > > oracle, Index_ block_start, Index_ block_end, const Options &opt) const
 
std::unique_ptr< OracularDenseExtractor< Value_, Index_ > > dense (bool row, std::shared_ptr< const Oracle< Index_ > > oracle, VectorPtr< Index_ > my_indices_ptr, const Options &opt) const
 
std::unique_ptr< OracularSparseExtractor< Value_, Index_ > > sparse (bool row, std::shared_ptr< const Oracle< Index_ > > oracle, const Options &opt) const
 
std::unique_ptr< OracularSparseExtractor< Value_, Index_ > > sparse (bool row, std::shared_ptr< const Oracle< Index_ > > oracle, Index_ block_start, Index_ block_end, const Options &opt) const
 
std::unique_ptr< OracularSparseExtractor< Value_, Index_ > > sparse (bool row, std::shared_ptr< const Oracle< Index_ > > oracle, VectorPtr< Index_ > my_indices_ptr, const Options &opt) const
 
- Public Member Functions inherited from tatami::Matrix< Value_, Index_ >
std::unique_ptr< MyopicDenseExtractor< Value_, Index_ > > dense_row (const Options &opt) const
 
std::unique_ptr< MyopicDenseExtractor< Value_, Index_ > > dense_row (Index_ block_start, Index_ block_length, const Options &opt) const
 
std::unique_ptr< MyopicDenseExtractor< Value_, Index_ > > dense_row (VectorPtr< Index_ > indices_ptr, const Options &opt) const
 
std::unique_ptr< MyopicDenseExtractor< Value_, Index_ > > dense_row (std::vector< Index_ > indices, const Options &opt) const
 
std::unique_ptr< MyopicDenseExtractor< Value_, Index_ > > dense_row () const
 
std::unique_ptr< MyopicDenseExtractor< Value_, Index_ > > dense_row (Index_ block_start, Index_ block_length) const
 
std::unique_ptr< MyopicDenseExtractor< Value_, Index_ > > dense_row (VectorPtr< Index_ > indices_ptr) const
 
std::unique_ptr< MyopicDenseExtractor< Value_, Index_ > > dense_row (std::vector< Index_ > indices) const
 
std::unique_ptr< OracularDenseExtractor< Value_, Index_ > > dense_row (std::shared_ptr< const Oracle< Index_ > > oracle, const Options &opt) const
 
std::unique_ptr< OracularDenseExtractor< Value_, Index_ > > dense_row (std::shared_ptr< const Oracle< Index_ > > oracle, Index_ block_start, Index_ block_length, const Options &opt) const
 
std::unique_ptr< OracularDenseExtractor< Value_, Index_ > > dense_row (std::shared_ptr< const Oracle< Index_ > > oracle, VectorPtr< Index_ > indices_ptr, const Options &opt) const
 
std::unique_ptr< OracularDenseExtractor< Value_, Index_ > > dense_row (std::shared_ptr< const Oracle< Index_ > > oracle, std::vector< Index_ > indices, const Options &opt) const
 
std::unique_ptr< OracularDenseExtractor< Value_, Index_ > > dense_row (std::shared_ptr< const Oracle< Index_ > > oracle) const
 
std::unique_ptr< OracularDenseExtractor< Value_, Index_ > > dense_row (std::shared_ptr< const Oracle< Index_ > > oracle, Index_ block_start, Index_ block_length) const
 
std::unique_ptr< OracularDenseExtractor< Value_, Index_ > > dense_row (std::shared_ptr< const Oracle< Index_ > > oracle, VectorPtr< Index_ > indices_ptr) const
 
std::unique_ptr< OracularDenseExtractor< Value_, Index_ > > dense_row (std::shared_ptr< const Oracle< Index_ > > oracle, std::vector< Index_ > indices) const
 
std::unique_ptr< MyopicDenseExtractor< Value_, Index_ > > dense_column (const Options &opt) const
 
std::unique_ptr< MyopicDenseExtractor< Value_, Index_ > > dense_column (Index_ block_start, Index_ block_length, const Options &opt) const
 
std::unique_ptr< MyopicDenseExtractor< Value_, Index_ > > dense_column (VectorPtr< Index_ > indices_ptr, const Options &opt) const
 
std::unique_ptr< MyopicDenseExtractor< Value_, Index_ > > dense_column (std::vector< Index_ > indices, const Options &opt) const
 
std::unique_ptr< MyopicDenseExtractor< Value_, Index_ > > dense_column () const
 
std::unique_ptr< MyopicDenseExtractor< Value_, Index_ > > dense_column (Index_ block_start, Index_ block_length) const
 
std::unique_ptr< MyopicDenseExtractor< Value_, Index_ > > dense_column (VectorPtr< Index_ > indices_ptr) const
 
std::unique_ptr< MyopicDenseExtractor< Value_, Index_ > > dense_column (std::vector< Index_ > indices) const
 
std::unique_ptr< OracularDenseExtractor< Value_, Index_ > > dense_column (std::shared_ptr< const Oracle< Index_ > > oracle, const Options &opt) const
 
std::unique_ptr< OracularDenseExtractor< Value_, Index_ > > dense_column (std::shared_ptr< const Oracle< Index_ > > oracle, Index_ block_start, Index_ block_length, const Options &opt) const
 
std::unique_ptr< OracularDenseExtractor< Value_, Index_ > > dense_column (std::shared_ptr< const Oracle< Index_ > > oracle, VectorPtr< Index_ > indices_ptr, const Options &opt) const
 
std::unique_ptr< OracularDenseExtractor< Value_, Index_ > > dense_column (std::shared_ptr< const Oracle< Index_ > > oracle, std::vector< Index_ > indices, const Options &opt) const
 
std::unique_ptr< OracularDenseExtractor< Value_, Index_ > > dense_column (std::shared_ptr< const Oracle< Index_ > > oracle) const
 
std::unique_ptr< OracularDenseExtractor< Value_, Index_ > > dense_column (std::shared_ptr< const Oracle< Index_ > > oracle, Index_ block_start, Index_ block_length) const
 
std::unique_ptr< OracularDenseExtractor< Value_, Index_ > > dense_column (std::shared_ptr< const Oracle< Index_ > > oracle, VectorPtr< Index_ > indices_ptr) const
 
std::unique_ptr< OracularDenseExtractor< Value_, Index_ > > dense_column (std::shared_ptr< const Oracle< Index_ > > oracle, std::vector< Index_ > indices) const
 
std::unique_ptr< MyopicSparseExtractor< Value_, Index_ > > sparse_row (const Options &opt) const
 
std::unique_ptr< MyopicSparseExtractor< Value_, Index_ > > sparse_row (Index_ block_start, Index_ block_length, const Options &opt) const
 
std::unique_ptr< MyopicSparseExtractor< Value_, Index_ > > sparse_row (VectorPtr< Index_ > indices_ptr, const Options &opt) const
 
std::unique_ptr< MyopicSparseExtractor< Value_, Index_ > > sparse_row (std::vector< Index_ > indices, const Options &opt) const
 
std::unique_ptr< MyopicSparseExtractor< Value_, Index_ > > sparse_row () const
 
std::unique_ptr< MyopicSparseExtractor< Value_, Index_ > > sparse_row (Index_ block_start, Index_ block_length) const
 
std::unique_ptr< MyopicSparseExtractor< Value_, Index_ > > sparse_row (VectorPtr< Index_ > indices_ptr) const
 
std::unique_ptr< MyopicSparseExtractor< Value_, Index_ > > sparse_row (std::vector< Index_ > indices) const
 
std::unique_ptr< OracularSparseExtractor< Value_, Index_ > > sparse_row (std::shared_ptr< const Oracle< Index_ > > oracle, const Options &opt) const
 
std::unique_ptr< OracularSparseExtractor< Value_, Index_ > > sparse_row (std::shared_ptr< const Oracle< Index_ > > oracle, Index_ block_start, Index_ block_length, const Options &opt) const
 
std::unique_ptr< OracularSparseExtractor< Value_, Index_ > > sparse_row (std::shared_ptr< const Oracle< Index_ > > oracle, VectorPtr< Index_ > indices_ptr, const Options &opt) const
 
std::unique_ptr< OracularSparseExtractor< Value_, Index_ > > sparse_row (std::shared_ptr< const Oracle< Index_ > > oracle, std::vector< Index_ > indices, const Options &opt) const
 
std::unique_ptr< OracularSparseExtractor< Value_, Index_ > > sparse_row (std::shared_ptr< const Oracle< Index_ > > oracle) const
 
std::unique_ptr< OracularSparseExtractor< Value_, Index_ > > sparse_row (std::shared_ptr< const Oracle< Index_ > > oracle, Index_ block_start, Index_ block_length) const
 
std::unique_ptr< OracularSparseExtractor< Value_, Index_ > > sparse_row (std::shared_ptr< const Oracle< Index_ > > oracle, VectorPtr< Index_ > indices_ptr) const
 
std::unique_ptr< OracularSparseExtractor< Value_, Index_ > > sparse_row (std::shared_ptr< const Oracle< Index_ > > oracle, std::vector< Index_ > indices) const
 
std::unique_ptr< MyopicSparseExtractor< Value_, Index_ > > sparse_column (const Options &opt) const
 
std::unique_ptr< MyopicSparseExtractor< Value_, Index_ > > sparse_column (Index_ block_start, Index_ block_length, const Options &opt) const
 
std::unique_ptr< MyopicSparseExtractor< Value_, Index_ > > sparse_column (VectorPtr< Index_ > indices_ptr, const Options &opt) const
 
std::unique_ptr< MyopicSparseExtractor< Value_, Index_ > > sparse_column (std::vector< Index_ > indices, const Options &opt) const
 
std::unique_ptr< MyopicSparseExtractor< Value_, Index_ > > sparse_column () const
 
std::unique_ptr< MyopicSparseExtractor< Value_, Index_ > > sparse_column (Index_ block_start, Index_ block_length) const
 
std::unique_ptr< MyopicSparseExtractor< Value_, Index_ > > sparse_column (VectorPtr< Index_ > indices_ptr) const
 
std::unique_ptr< MyopicSparseExtractor< Value_, Index_ > > sparse_column (std::vector< Index_ > indices) const
 
std::unique_ptr< OracularSparseExtractor< Value_, Index_ > > sparse_column (std::shared_ptr< const Oracle< Index_ > > oracle, const Options &opt) const
 
std::unique_ptr< OracularSparseExtractor< Value_, Index_ > > sparse_column (std::shared_ptr< const Oracle< Index_ > > oracle, Index_ block_start, Index_ block_length, const Options &opt) const
 
std::unique_ptr< OracularSparseExtractor< Value_, Index_ > > sparse_column (std::shared_ptr< const Oracle< Index_ > > oracle, VectorPtr< Index_ > indices_ptr, const Options &opt) const
 
std::unique_ptr< OracularSparseExtractor< Value_, Index_ > > sparse_column (std::shared_ptr< const Oracle< Index_ > > oracle, std::vector< Index_ > indices, const Options &opt) const
 
std::unique_ptr< OracularSparseExtractor< Value_, Index_ > > sparse_column (std::shared_ptr< const Oracle< Index_ > > oracle) const
 
std::unique_ptr< OracularSparseExtractor< Value_, Index_ > > sparse_column (std::shared_ptr< const Oracle< Index_ > > oracle, Index_ block_start, Index_ block_length) const
 
std::unique_ptr< OracularSparseExtractor< Value_, Index_ > > sparse_column (std::shared_ptr< const Oracle< Index_ > > oracle, VectorPtr< Index_ > indices_ptr) const
 
std::unique_ptr< OracularSparseExtractor< Value_, Index_ > > sparse_column (std::shared_ptr< const Oracle< Index_ > > oracle, std::vector< Index_ > indices) const
 

Additional Inherited Members

- Public Types inherited from tatami::Matrix< Value_, Index_ >
typedef Value_ value_type
 
typedef Index_ index_type
 

Detailed Description

template<typename Value_, typename Index_, class ValueStorage_ = std::vector<Value_>, class IndexStorage_ = std::vector<Index_>, class PointerStorage_ = std::vector<size_t>>
class tatami::CompressedSparseMatrix< Value_, Index_, ValueStorage_, IndexStorage_, PointerStorage_ >

Compressed sparse matrix representation.

Template Parameters
Value_Type of the matrix values.
Index_Type of the row/column indices.
ValueStorage_Vector class used to store the matrix values internally. This does not necessarily have to contain Value_, as long as the type is convertible to Value_. Methods should be available for size(), begin(), end() and []. If a method is available for data() that returns a const Value_*, it will also be used.
IndexStorage_Vector class used to store the row/column indices internally. This does not necessarily have to contain Index_, as long as the type is convertible to Index_. Methods should be available for size(), begin(), end() and []. If a method is available for data() that returns a const Index_*, it will also be used.
PointerStorage_Vector class used to store the column/row index pointers. Methods should be available for size(), begin(), end() and [].

Constructor & Destructor Documentation

◆ CompressedSparseMatrix()

template<typename Value_ , typename Index_ , class ValueStorage_ = std::vector<Value_>, class IndexStorage_ = std::vector<Index_>, class PointerStorage_ = std::vector<size_t>>
tatami::CompressedSparseMatrix< Value_, Index_, ValueStorage_, IndexStorage_, PointerStorage_ >::CompressedSparseMatrix ( Index_  nrow,
Index_  ncol,
ValueStorage_  values,
IndexStorage_  indices,
PointerStorage_  pointers,
bool  csr,
bool  check = true 
)
inline
Parameters
nrowNumber of rows.
ncolNumber of columns.
valuesVector of non-zero elements.
indicesVector of row indices (if csr = false) or column indices (if csr = true) for the non-zero elements.
pointersVector of index pointers.
csrWhether this is a compressed sparse row representation.
checkShould the input vectors be checked for validity?

If check=true, the constructor will check that values and indices have the same length, equal to the number of structural non-zero elements; pointers has length equal to the number of rows (if csr = true) or columns (otherwise) plus one; pointers is non-decreasing with first and last values set to 0 and the number of structural non-zeroes, respectively; indices is strictly increasing within each interval defined by successive elements of pointers; and all values of indices are non-negative and less than the number of columns (if csr = true) or rows (otherwise).

Member Function Documentation

◆ nrow()

template<typename Value_ , typename Index_ , class ValueStorage_ = std::vector<Value_>, class IndexStorage_ = std::vector<Index_>, class PointerStorage_ = std::vector<size_t>>
Index_ tatami::CompressedSparseMatrix< Value_, Index_, ValueStorage_, IndexStorage_, PointerStorage_ >::nrow ( ) const
inlinevirtual
Returns
Number of rows.

Implements tatami::Matrix< Value_, Index_ >.

◆ ncol()

template<typename Value_ , typename Index_ , class ValueStorage_ = std::vector<Value_>, class IndexStorage_ = std::vector<Index_>, class PointerStorage_ = std::vector<size_t>>
Index_ tatami::CompressedSparseMatrix< Value_, Index_, ValueStorage_, IndexStorage_, PointerStorage_ >::ncol ( ) const
inlinevirtual
Returns
Number of columns.

Implements tatami::Matrix< Value_, Index_ >.

◆ is_sparse()

template<typename Value_ , typename Index_ , class ValueStorage_ = std::vector<Value_>, class IndexStorage_ = std::vector<Index_>, class PointerStorage_ = std::vector<size_t>>
bool tatami::CompressedSparseMatrix< Value_, Index_, ValueStorage_, IndexStorage_, PointerStorage_ >::is_sparse ( ) const
inlinevirtual
Returns
Boolean indicating whether this matrix is sparse.

This can be used to choose between dense and sparse outputs.

Implements tatami::Matrix< Value_, Index_ >.

◆ is_sparse_proportion()

template<typename Value_ , typename Index_ , class ValueStorage_ = std::vector<Value_>, class IndexStorage_ = std::vector<Index_>, class PointerStorage_ = std::vector<size_t>>
double tatami::CompressedSparseMatrix< Value_, Index_, ValueStorage_, IndexStorage_, PointerStorage_ >::is_sparse_proportion ( ) const
inlinevirtual
Returns
Approximate proportion of the matrix that is sparse.

This is defined as the proportion of matrix elements that lie within sparse submatrices. It is intended for use in Matrix representations that consist of combinations of multiple submatrices (e.g., DelayedBind), allowing them to derive a suitable value for is_sparse() based on whether most of its submatrices are sparse. (A more granular approach would be to report the density of structural non-zero elements, but this may not be known by all representations at construction time.)

Implements tatami::Matrix< Value_, Index_ >.

◆ prefer_rows()

template<typename Value_ , typename Index_ , class ValueStorage_ = std::vector<Value_>, class IndexStorage_ = std::vector<Index_>, class PointerStorage_ = std::vector<size_t>>
bool tatami::CompressedSparseMatrix< Value_, Index_, ValueStorage_, IndexStorage_, PointerStorage_ >::prefer_rows ( ) const
inlinevirtual
Returns
The preferred dimension for extracting values. If true, row-wise extraction is preferred; if false, column-wise extraction is preferred.

Implements tatami::Matrix< Value_, Index_ >.

◆ prefer_rows_proportion()

template<typename Value_ , typename Index_ , class ValueStorage_ = std::vector<Value_>, class IndexStorage_ = std::vector<Index_>, class PointerStorage_ = std::vector<size_t>>
double tatami::CompressedSparseMatrix< Value_, Index_, ValueStorage_, IndexStorage_, PointerStorage_ >::prefer_rows_proportion ( ) const
inlinevirtual
Returns
Approximate proportion of the matrix that prefers row-level access.

This is defined as the proportion of matrix elements that lie within submatrices that prefer row-level access. It is useful for determining the return value of prefer_rows() in combined matrices consisting of both row- and column-preferred submatrices. In such cases, the net preference can be determined based on the combined size of the submatrices for each preference. (A more granular approach would be to report the iteration cost on each dimension, but this is difficult to estimate.)

Implements tatami::Matrix< Value_, Index_ >.

◆ uses_oracle()

template<typename Value_ , typename Index_ , class ValueStorage_ = std::vector<Value_>, class IndexStorage_ = std::vector<Index_>, class PointerStorage_ = std::vector<size_t>>
bool tatami::CompressedSparseMatrix< Value_, Index_, ValueStorage_, IndexStorage_, PointerStorage_ >::uses_oracle ( bool  row) const
inlinevirtual
Parameters
rowRow access if true, column access otherwise.
Returns
Whether this matrix's tatami::Extractor classes make use of oracle predictions for row (if row = true) or column access (otherwise).

The output of this method indicates whether callers should construct an oracle for use in ExtractorBase::set_oracle(). If false, callers should not bother to pass an oracle as it will be ignored.

Implements tatami::Matrix< Value_, Index_ >.

◆ dense() [1/6]

template<typename Value_ , typename Index_ , class ValueStorage_ = std::vector<Value_>, class IndexStorage_ = std::vector<Index_>, class PointerStorage_ = std::vector<size_t>>
std::unique_ptr< MyopicDenseExtractor< Value_, Index_ > > tatami::CompressedSparseMatrix< Value_, Index_, ValueStorage_, IndexStorage_, PointerStorage_ >::dense ( bool  row,
const Options opt 
) const
inlinevirtual

Create an extractor that retrieves the full extent of the non-target dimension in dense form.

Parameters
rowWhether to create a row-wise extractor, i.e., the rows are the target dimension.
optOptions for extraction.
Returns
Object for extracting each row (if row = true) or column (otherwise) in dense form. This should not outlive the parent Matrix from which it was created.

Implements tatami::Matrix< Value_, Index_ >.

◆ dense() [2/6]

template<typename Value_ , typename Index_ , class ValueStorage_ = std::vector<Value_>, class IndexStorage_ = std::vector<Index_>, class PointerStorage_ = std::vector<size_t>>
std::unique_ptr< MyopicDenseExtractor< Value_, Index_ > > tatami::CompressedSparseMatrix< Value_, Index_, ValueStorage_, IndexStorage_, PointerStorage_ >::dense ( bool  row,
Index_  block_start,
Index_  block_length,
const Options opt 
) const
inlinevirtual

Create an extractor that retrieves a contiguous block of the non-target dimension in dense form.

Parameters
rowWhether to create a row-wise extractor, i.e., the rows are the target dimension.
block_startIndex of the column (if row = true) or row (otherwise) at the start of the block.
block_lengthNumber of columns (if row = true) or rows (otherwise) in the block.
optOptions for extraction.
Returns
Object for extracting a contiguous block from each row (if row = true) or column (otherwise) in dense form. This should not outlive the parent Matrix from which it was created.

Implements tatami::Matrix< Value_, Index_ >.

◆ dense() [3/6]

template<typename Value_ , typename Index_ , class ValueStorage_ = std::vector<Value_>, class IndexStorage_ = std::vector<Index_>, class PointerStorage_ = std::vector<size_t>>
std::unique_ptr< MyopicDenseExtractor< Value_, Index_ > > tatami::CompressedSparseMatrix< Value_, Index_, ValueStorage_, IndexStorage_, PointerStorage_ >::dense ( bool  row,
VectorPtr< Index_ indices_ptr,
const Options opt 
) const
inlinevirtual

Create an extractor that retrieves an indexed subset of the non-target dimension in dense form.

Parameters
rowWhether to create a row-wise extractor, i.e., the rows are the target dimension.
indices_ptrPointer to a vector of sorted and unique column indices (if row = true) or row indices (otherwise). This should be non-NULL.
optOptions for extraction.
Returns
Object for extracting an indexed subset from each row (if row = true) or column (otherwise) in dense form. This should not outlive the parent Matrix from which it was created.

Implements tatami::Matrix< Value_, Index_ >.

◆ sparse() [1/6]

template<typename Value_ , typename Index_ , class ValueStorage_ = std::vector<Value_>, class IndexStorage_ = std::vector<Index_>, class PointerStorage_ = std::vector<size_t>>
std::unique_ptr< MyopicSparseExtractor< Value_, Index_ > > tatami::CompressedSparseMatrix< Value_, Index_, ValueStorage_, IndexStorage_, PointerStorage_ >::sparse ( bool  row,
const Options opt 
) const
inlinevirtual

Create an extractor that retrieves the full extent of the non-target dimension in sparse form.

Parameters
rowWhether to create a row-wise extractor, i.e., the rows are the target dimension.
optOptions for extraction.
Returns
Object for extracting each row (if row = true) or columns (otherwise) in sparse form. This should not outlive the parent Matrix from which it was created.

Implements tatami::Matrix< Value_, Index_ >.

◆ sparse() [2/6]

template<typename Value_ , typename Index_ , class ValueStorage_ = std::vector<Value_>, class IndexStorage_ = std::vector<Index_>, class PointerStorage_ = std::vector<size_t>>
std::unique_ptr< MyopicSparseExtractor< Value_, Index_ > > tatami::CompressedSparseMatrix< Value_, Index_, ValueStorage_, IndexStorage_, PointerStorage_ >::sparse ( bool  row,
Index_  block_start,
Index_  block_length,
const Options opt 
) const
inlinevirtual

Create an extractor that retrieves a contiguous block of the non-target dimension in sparse form.

Parameters
rowWhether to create a row-wise extractor, i.e., the rows are the target dimension.
block_startIndex of the column (if row = true) or row (otherwise) at the start of the block.
block_lengthNumber of columns (if row = true) or rows (otherwise) in the block.
optOptions for extraction.
Returns
Object for extracting a contiguous block from each row (if row = true) or column (otherwise) in sparse form. This should not outlive the parent Matrix from which it was created.

Implements tatami::Matrix< Value_, Index_ >.

◆ sparse() [3/6]

template<typename Value_ , typename Index_ , class ValueStorage_ = std::vector<Value_>, class IndexStorage_ = std::vector<Index_>, class PointerStorage_ = std::vector<size_t>>
std::unique_ptr< MyopicSparseExtractor< Value_, Index_ > > tatami::CompressedSparseMatrix< Value_, Index_, ValueStorage_, IndexStorage_, PointerStorage_ >::sparse ( bool  row,
VectorPtr< Index_ indices_ptr,
const Options opt 
) const
inlinevirtual

Create an extractor that retrieves an indexed subset of the non-target dimension in sparse form.

Parameters
rowWhether to create a row-wise extractor, i.e., the rows are the target dimension.
indices_ptrPointer to a vector of sorted and unique column indices (if row = true) or row indices (otherwise). This should be non-NULL.
optOptions for extraction.
Returns
Object for extracting an indexed subset from each row (if row = true) or column (otherwise) in sparse form. This should not outlive the parent Matrix from which it was created.

Implements tatami::Matrix< Value_, Index_ >.

◆ dense() [4/6]

template<typename Value_ , typename Index_ , class ValueStorage_ = std::vector<Value_>, class IndexStorage_ = std::vector<Index_>, class PointerStorage_ = std::vector<size_t>>
std::unique_ptr< OracularDenseExtractor< Value_, Index_ > > tatami::CompressedSparseMatrix< Value_, Index_, ValueStorage_, IndexStorage_, PointerStorage_ >::dense ( bool  row,
std::shared_ptr< const Oracle< Index_ > >  oracle,
const Options opt 
) const
inlinevirtual

Create an oracle-aware extractor that retrieves the full extent of the non-target dimension in dense form.

Parameters
rowWhether to create a row-wise extractor, i.e., the rows are the target dimension.
oracleAn oracle supplying predictions of the next requested row (if row = true) or column (otherwise).
optOptions for extraction.
Returns
Object for extracting each row (if row = true) or columns (otherwise) in dense form. This should not outlive the parent Matrix from which it was created.

Implements tatami::Matrix< Value_, Index_ >.

◆ dense() [5/6]

template<typename Value_ , typename Index_ , class ValueStorage_ = std::vector<Value_>, class IndexStorage_ = std::vector<Index_>, class PointerStorage_ = std::vector<size_t>>
std::unique_ptr< OracularDenseExtractor< Value_, Index_ > > tatami::CompressedSparseMatrix< Value_, Index_, ValueStorage_, IndexStorage_, PointerStorage_ >::dense ( bool  row,
std::shared_ptr< const Oracle< Index_ > >  oracle,
Index_  block_start,
Index_  block_length,
const Options opt 
) const
inlinevirtual

Create an oracle-aware extractor that retrieves a contiguous block of the non-target dimension in dense form.

Parameters
rowWhether to create a row-wise extractor, i.e., the rows are the target dimension.
oracleAn oracle supplying predictions of the next requested row (if row = true) or column (otherwise).
block_startIndex of the column (if row = true) or row (otherwise) at the start of the block.
block_lengthNumber of columns (if row = true) or rows (otherwise) in the block.
optOptions for extraction.
Returns
Object for extracting a contiguous block from each row (if row = true) or column (otherwise) in dense form. This should not outlive the parent Matrix from which it was created.

Implements tatami::Matrix< Value_, Index_ >.

◆ dense() [6/6]

template<typename Value_ , typename Index_ , class ValueStorage_ = std::vector<Value_>, class IndexStorage_ = std::vector<Index_>, class PointerStorage_ = std::vector<size_t>>
std::unique_ptr< OracularDenseExtractor< Value_, Index_ > > tatami::CompressedSparseMatrix< Value_, Index_, ValueStorage_, IndexStorage_, PointerStorage_ >::dense ( bool  row,
std::shared_ptr< const Oracle< Index_ > >  oracle,
VectorPtr< Index_ indices_ptr,
const Options opt 
) const
inlinevirtual

Create an oracle-aware extractor that retrieves an indexed subset of the non-target dimension in dense form.

Parameters
rowWhether to create a row-wise extractor, i.e., the rows are the target dimension.
oracleAn oracle supplying predictions of the next requested row (if row = true) or column (otherwise).
indices_ptrPointer to a vector of sorted and unique column indices (if row = true) or row indices (otherwise). This should not be NULL.
optOptions for extraction.
Returns
Object for extracting an indexed subset from each row (if row = true) or column (otherwise) in dense form. This should not outlive the parent Matrix from which it was created.

Implements tatami::Matrix< Value_, Index_ >.

◆ sparse() [4/6]

template<typename Value_ , typename Index_ , class ValueStorage_ = std::vector<Value_>, class IndexStorage_ = std::vector<Index_>, class PointerStorage_ = std::vector<size_t>>
std::unique_ptr< OracularSparseExtractor< Value_, Index_ > > tatami::CompressedSparseMatrix< Value_, Index_, ValueStorage_, IndexStorage_, PointerStorage_ >::sparse ( bool  row,
std::shared_ptr< const Oracle< Index_ > >  oracle,
const Options opt 
) const
inlinevirtual

Create an oracle-aware extractor that retrieves the full extent of the non-target dimension in sparse form.

Parameters
rowWhether to create a row-wise extractor, i.e., the rows are the target dimension.
oracleAn oracle supplying predictions of the next requested row (if row = true) or column (otherwise).
optOptions for extraction.
Returns
Object for extracting each row (if row = true) or columns (otherwise) in sparse form. This should not outlive the parent Matrix from which it was created.

Implements tatami::Matrix< Value_, Index_ >.

◆ sparse() [5/6]

template<typename Value_ , typename Index_ , class ValueStorage_ = std::vector<Value_>, class IndexStorage_ = std::vector<Index_>, class PointerStorage_ = std::vector<size_t>>
std::unique_ptr< OracularSparseExtractor< Value_, Index_ > > tatami::CompressedSparseMatrix< Value_, Index_, ValueStorage_, IndexStorage_, PointerStorage_ >::sparse ( bool  row,
std::shared_ptr< const Oracle< Index_ > >  oracle,
Index_  block_start,
Index_  block_length,
const Options opt 
) const
inlinevirtual

Create an oracle-aware extractor that retrieves a contiguous block of the non-target dimension in sparse form.

Parameters
rowWhether to create a row-wise extractor, i.e., the rows are the target dimension.
oracleAn oracle supplying predictions of the next requested row (if row = true) or column (otherwise).
block_startIndex of the column (if row = true) or row (otherwise) at the start of the block.
block_lengthNumber of columns (if row = true) or rows (otherwise) in the block.
optOptions for extraction.
Returns
Object for extracting a contiguous block from each row (if row = true) or column (otherwise) in dense form. This should not outlive the parent Matrix from which it was created.

Implements tatami::Matrix< Value_, Index_ >.

◆ sparse() [6/6]

template<typename Value_ , typename Index_ , class ValueStorage_ = std::vector<Value_>, class IndexStorage_ = std::vector<Index_>, class PointerStorage_ = std::vector<size_t>>
std::unique_ptr< OracularSparseExtractor< Value_, Index_ > > tatami::CompressedSparseMatrix< Value_, Index_, ValueStorage_, IndexStorage_, PointerStorage_ >::sparse ( bool  row,
std::shared_ptr< const Oracle< Index_ > >  oracle,
VectorPtr< Index_ indices_ptr,
const Options opt 
) const
inlinevirtual

Create an oracle-aware extractor that retrieves an indexed subset of the non-target dimension in sparse form.

Parameters
rowWhether to create a row-wise extractor, i.e., the rows are the target dimension.
oracleAn oracle supplying predictions of the next requested row (if row = true) or column (otherwise).
indices_ptrPointer to a vector of sorted and unique column indices (if row = true) or row indices (otherwise). This should not be NULL.
optOptions for extraction.
Returns
Object for extracting an indexed subset from each row (if row = true) or column (otherwise) in sparse form. This should not outlive the parent Matrix from which it was created.

Implements tatami::Matrix< Value_, Index_ >.


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