tatami_chunked
Helpers to create custom chunked tatami matrices
Loading...
Searching...
No Matches
tatami_chunked::CustomDenseChunkedMatrix< Value_, Index_, ChunkValue_, Manager_ > Class Template Reference

Matrix of custom dense chunks. More...

#include <CustomDenseChunkedMatrix.hpp>

Inheritance diagram for tatami_chunked::CustomDenseChunkedMatrix< Value_, Index_, ChunkValue_, Manager_ >:
Collaboration diagram for tatami_chunked::CustomDenseChunkedMatrix< Value_, Index_, ChunkValue_, Manager_ >:

Public Member Functions

 CustomDenseChunkedMatrix (std::shared_ptr< Manager_ > manager, const CustomDenseChunkedMatrixOptions &opt)
 
Index_ nrow () const
 
Index_ ncol () const
 
bool prefer_rows () const
 
bool uses_oracle (bool) const
 
double prefer_rows_proportion () const
 
bool is_sparse () const
 
double is_sparse_proportion () const
 
std::unique_ptr< tatami::MyopicDenseExtractor< Value_, Index_ > > dense (bool row, const tatami::Options &opt) const
 
std::unique_ptr< tatami::MyopicDenseExtractor< Value_, Index_ > > dense (bool row, Index_ block_start, Index_ block_length, const tatami::Options &opt) const
 
std::unique_ptr< tatami::MyopicDenseExtractor< Value_, Index_ > > dense (bool row, tatami::VectorPtr< Index_ > indices_ptr, const tatami::Options &opt) const
 
std::unique_ptr< tatami::OracularDenseExtractor< Value_, Index_ > > dense (bool row, std::shared_ptr< const tatami::Oracle< Index_ > > oracle, const tatami::Options &opt) const
 
std::unique_ptr< tatami::OracularDenseExtractor< Value_, Index_ > > dense (bool row, std::shared_ptr< const tatami::Oracle< Index_ > > oracle, Index_ block_start, Index_ block_length, const tatami::Options &opt) const
 
std::unique_ptr< tatami::OracularDenseExtractor< Value_, Index_ > > dense (bool row, std::shared_ptr< const tatami::Oracle< Index_ > > oracle, tatami::VectorPtr< Index_ > indices_ptr, const tatami::Options &opt) const
 
std::unique_ptr< tatami::MyopicSparseExtractor< Value_, Index_ > > sparse (bool row, const tatami::Options &opt) const
 
std::unique_ptr< tatami::MyopicSparseExtractor< Value_, Index_ > > sparse (bool row, Index_ block_start, Index_ block_length, const tatami::Options &opt) const
 
std::unique_ptr< tatami::MyopicSparseExtractor< Value_, Index_ > > sparse (bool row, tatami::VectorPtr< Index_ > indices_ptr, const tatami::Options &opt) const
 
std::unique_ptr< tatami::OracularSparseExtractor< Value_, Index_ > > sparse (bool row, std::shared_ptr< const tatami::Oracle< Index_ > > oracle, const tatami::Options &opt) const
 
std::unique_ptr< tatami::OracularSparseExtractor< Value_, Index_ > > sparse (bool row, std::shared_ptr< const tatami::Oracle< Index_ > > oracle, Index_ block_start, Index_ block_length, const tatami::Options &opt) const
 
std::unique_ptr< tatami::OracularSparseExtractor< Value_, Index_ > > sparse (bool row, std::shared_ptr< const tatami::Oracle< Index_ > > oracle, tatami::VectorPtr< Index_ > indices_ptr, const tatami::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_, typename ChunkValue_, class Manager_ = CustomDenseChunkedMatrixManager<ChunkValue_, Index_>>
class tatami_chunked::CustomDenseChunkedMatrix< Value_, Index_, ChunkValue_, Manager_ >

Matrix of custom dense chunks.

Template Parameters
Value_Numeric type for the matrix value.
Index_Integer type for the row/column indices.
ChunkValue_Numeric type of the values in each chunk.
Manager_Class that implements the CustomDenseChunkedMatrixManager interface.

Implements a tatami::Matrix subclass where data is contained in dense rectangular chunks. These chunks are typically compressed in some manner to reduce memory usage compared to, e.g., a tatami::DenseMatrix. On access, the relevant chunks are decompressed and the desired values are extracted. Each dimension should be divided into chunk boundaries at regular intervals starting from zero; this partitions the matrix according to a regular grid where each grid entry is a single chunk of the same size. The exception is for chunks at the non-zero boundaries of the matrix dimensions, which may be truncated.

Constructor & Destructor Documentation

◆ CustomDenseChunkedMatrix()

template<typename Value_ , typename Index_ , typename ChunkValue_ , class Manager_ = CustomDenseChunkedMatrixManager<ChunkValue_, Index_>>
tatami_chunked::CustomDenseChunkedMatrix< Value_, Index_, ChunkValue_, Manager_ >::CustomDenseChunkedMatrix ( std::shared_ptr< Manager_ > manager,
const CustomDenseChunkedMatrixOptions & opt )
inline
Parameters
managerPointer to a CustomDenseChunkedMatrixManager instance that manages the chunks for this matrix.
optFurther options for chunked extraction.

Member Function Documentation

◆ nrow()

template<typename Value_ , typename Index_ , typename ChunkValue_ , class Manager_ = CustomDenseChunkedMatrixManager<ChunkValue_, Index_>>
Index_ tatami_chunked::CustomDenseChunkedMatrix< Value_, Index_, ChunkValue_, Manager_ >::nrow ( ) const
inlinevirtual

◆ ncol()

template<typename Value_ , typename Index_ , typename ChunkValue_ , class Manager_ = CustomDenseChunkedMatrixManager<ChunkValue_, Index_>>
Index_ tatami_chunked::CustomDenseChunkedMatrix< Value_, Index_, ChunkValue_, Manager_ >::ncol ( ) const
inlinevirtual

◆ prefer_rows()

template<typename Value_ , typename Index_ , typename ChunkValue_ , class Manager_ = CustomDenseChunkedMatrixManager<ChunkValue_, Index_>>
bool tatami_chunked::CustomDenseChunkedMatrix< Value_, Index_, ChunkValue_, Manager_ >::prefer_rows ( ) const
inlinevirtual

◆ uses_oracle()

template<typename Value_ , typename Index_ , typename ChunkValue_ , class Manager_ = CustomDenseChunkedMatrixManager<ChunkValue_, Index_>>
bool tatami_chunked::CustomDenseChunkedMatrix< Value_, Index_, ChunkValue_, Manager_ >::uses_oracle ( bool ) const
inlinevirtual

◆ prefer_rows_proportion()

template<typename Value_ , typename Index_ , typename ChunkValue_ , class Manager_ = CustomDenseChunkedMatrixManager<ChunkValue_, Index_>>
double tatami_chunked::CustomDenseChunkedMatrix< Value_, Index_, ChunkValue_, Manager_ >::prefer_rows_proportion ( ) const
inlinevirtual

◆ is_sparse()

template<typename Value_ , typename Index_ , typename ChunkValue_ , class Manager_ = CustomDenseChunkedMatrixManager<ChunkValue_, Index_>>
bool tatami_chunked::CustomDenseChunkedMatrix< Value_, Index_, ChunkValue_, Manager_ >::is_sparse ( ) const
inlinevirtual

◆ is_sparse_proportion()

template<typename Value_ , typename Index_ , typename ChunkValue_ , class Manager_ = CustomDenseChunkedMatrixManager<ChunkValue_, Index_>>
double tatami_chunked::CustomDenseChunkedMatrix< Value_, Index_, ChunkValue_, Manager_ >::is_sparse_proportion ( ) const
inlinevirtual

◆ dense() [1/6]

template<typename Value_ , typename Index_ , typename ChunkValue_ , class Manager_ = CustomDenseChunkedMatrixManager<ChunkValue_, Index_>>
std::unique_ptr< tatami::MyopicDenseExtractor< Value_, Index_ > > tatami_chunked::CustomDenseChunkedMatrix< Value_, Index_, ChunkValue_, Manager_ >::dense ( bool row,
const tatami::Options & opt ) const
inlinevirtual

◆ dense() [2/6]

template<typename Value_ , typename Index_ , typename ChunkValue_ , class Manager_ = CustomDenseChunkedMatrixManager<ChunkValue_, Index_>>
std::unique_ptr< tatami::MyopicDenseExtractor< Value_, Index_ > > tatami_chunked::CustomDenseChunkedMatrix< Value_, Index_, ChunkValue_, Manager_ >::dense ( bool row,
Index_ block_start,
Index_ block_length,
const tatami::Options & opt ) const
inlinevirtual

◆ dense() [3/6]

template<typename Value_ , typename Index_ , typename ChunkValue_ , class Manager_ = CustomDenseChunkedMatrixManager<ChunkValue_, Index_>>
std::unique_ptr< tatami::MyopicDenseExtractor< Value_, Index_ > > tatami_chunked::CustomDenseChunkedMatrix< Value_, Index_, ChunkValue_, Manager_ >::dense ( bool row,
tatami::VectorPtr< Index_ > indices_ptr,
const tatami::Options & opt ) const
inlinevirtual

◆ dense() [4/6]

template<typename Value_ , typename Index_ , typename ChunkValue_ , class Manager_ = CustomDenseChunkedMatrixManager<ChunkValue_, Index_>>
std::unique_ptr< tatami::OracularDenseExtractor< Value_, Index_ > > tatami_chunked::CustomDenseChunkedMatrix< Value_, Index_, ChunkValue_, Manager_ >::dense ( bool row,
std::shared_ptr< const tatami::Oracle< Index_ > > oracle,
const tatami::Options & opt ) const
inlinevirtual

◆ dense() [5/6]

template<typename Value_ , typename Index_ , typename ChunkValue_ , class Manager_ = CustomDenseChunkedMatrixManager<ChunkValue_, Index_>>
std::unique_ptr< tatami::OracularDenseExtractor< Value_, Index_ > > tatami_chunked::CustomDenseChunkedMatrix< Value_, Index_, ChunkValue_, Manager_ >::dense ( bool row,
std::shared_ptr< const tatami::Oracle< Index_ > > oracle,
Index_ block_start,
Index_ block_length,
const tatami::Options & opt ) const
inlinevirtual

◆ dense() [6/6]

template<typename Value_ , typename Index_ , typename ChunkValue_ , class Manager_ = CustomDenseChunkedMatrixManager<ChunkValue_, Index_>>
std::unique_ptr< tatami::OracularDenseExtractor< Value_, Index_ > > tatami_chunked::CustomDenseChunkedMatrix< Value_, Index_, ChunkValue_, Manager_ >::dense ( bool row,
std::shared_ptr< const tatami::Oracle< Index_ > > oracle,
tatami::VectorPtr< Index_ > indices_ptr,
const tatami::Options & opt ) const
inlinevirtual

◆ sparse() [1/6]

template<typename Value_ , typename Index_ , typename ChunkValue_ , class Manager_ = CustomDenseChunkedMatrixManager<ChunkValue_, Index_>>
std::unique_ptr< tatami::MyopicSparseExtractor< Value_, Index_ > > tatami_chunked::CustomDenseChunkedMatrix< Value_, Index_, ChunkValue_, Manager_ >::sparse ( bool row,
const tatami::Options & opt ) const
inlinevirtual

◆ sparse() [2/6]

template<typename Value_ , typename Index_ , typename ChunkValue_ , class Manager_ = CustomDenseChunkedMatrixManager<ChunkValue_, Index_>>
std::unique_ptr< tatami::MyopicSparseExtractor< Value_, Index_ > > tatami_chunked::CustomDenseChunkedMatrix< Value_, Index_, ChunkValue_, Manager_ >::sparse ( bool row,
Index_ block_start,
Index_ block_length,
const tatami::Options & opt ) const
inlinevirtual

◆ sparse() [3/6]

template<typename Value_ , typename Index_ , typename ChunkValue_ , class Manager_ = CustomDenseChunkedMatrixManager<ChunkValue_, Index_>>
std::unique_ptr< tatami::MyopicSparseExtractor< Value_, Index_ > > tatami_chunked::CustomDenseChunkedMatrix< Value_, Index_, ChunkValue_, Manager_ >::sparse ( bool row,
tatami::VectorPtr< Index_ > indices_ptr,
const tatami::Options & opt ) const
inlinevirtual

◆ sparse() [4/6]

template<typename Value_ , typename Index_ , typename ChunkValue_ , class Manager_ = CustomDenseChunkedMatrixManager<ChunkValue_, Index_>>
std::unique_ptr< tatami::OracularSparseExtractor< Value_, Index_ > > tatami_chunked::CustomDenseChunkedMatrix< Value_, Index_, ChunkValue_, Manager_ >::sparse ( bool row,
std::shared_ptr< const tatami::Oracle< Index_ > > oracle,
const tatami::Options & opt ) const
inlinevirtual

◆ sparse() [5/6]

template<typename Value_ , typename Index_ , typename ChunkValue_ , class Manager_ = CustomDenseChunkedMatrixManager<ChunkValue_, Index_>>
std::unique_ptr< tatami::OracularSparseExtractor< Value_, Index_ > > tatami_chunked::CustomDenseChunkedMatrix< Value_, Index_, ChunkValue_, Manager_ >::sparse ( bool row,
std::shared_ptr< const tatami::Oracle< Index_ > > oracle,
Index_ block_start,
Index_ block_length,
const tatami::Options & opt ) const
inlinevirtual

◆ sparse() [6/6]

template<typename Value_ , typename Index_ , typename ChunkValue_ , class Manager_ = CustomDenseChunkedMatrixManager<ChunkValue_, Index_>>
std::unique_ptr< tatami::OracularSparseExtractor< Value_, Index_ > > tatami_chunked::CustomDenseChunkedMatrix< Value_, Index_, ChunkValue_, Manager_ >::sparse ( bool row,
std::shared_ptr< const tatami::Oracle< Index_ > > oracle,
tatami::VectorPtr< Index_ > indices_ptr,
const tatami::Options & opt ) const
inlinevirtual

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