|
| | ForcedDense (std::shared_ptr< const Matrix< Value_, Index_ > > matrix) |
| |
| Index_ | nrow () const |
| |
| Index_ | ncol () const |
| |
| bool | prefer_rows () const |
| |
| bool | uses_oracle (const bool row) const |
| |
| bool | is_sparse () const |
| |
| double | is_sparse_proportion () const |
| |
| double | prefer_rows_proportion () const |
| |
| std::unique_ptr< MyopicDenseExtractor< Value_, Index_ > > | dense (const bool row, const Options &opt) const |
| |
| std::unique_ptr< MyopicDenseExtractor< Value_, Index_ > > | dense (const bool row, const Index_ block_start, const Index_ block_length, const Options &opt) const |
| |
| std::unique_ptr< MyopicDenseExtractor< Value_, Index_ > > | dense (const bool row, VectorPtr< Index_ > indices_ptr, const Options &opt) const |
| |
| std::unique_ptr< MyopicSparseExtractor< Value_, Index_ > > | sparse (const bool row, const Options &opt) const |
| |
| std::unique_ptr< MyopicSparseExtractor< Value_, Index_ > > | sparse (const bool row, const Index_ block_start, const Index_ block_length, const Options &opt) const |
| |
| std::unique_ptr< MyopicSparseExtractor< Value_, Index_ > > | sparse (const bool row, VectorPtr< Index_ > indices_ptr, const Options &opt) const |
| |
| std::unique_ptr< OracularDenseExtractor< Value_, Index_ > > | dense (const bool row, std::shared_ptr< const Oracle< Index_ > > oracle, const Options &opt) const |
| |
| std::unique_ptr< OracularDenseExtractor< Value_, Index_ > > | dense (const bool row, std::shared_ptr< const Oracle< Index_ > > oracle, const Index_ block_start, const Index_ block_length, const Options &opt) const |
| |
| std::unique_ptr< OracularDenseExtractor< Value_, Index_ > > | dense (const bool row, std::shared_ptr< const Oracle< Index_ > > oracle, VectorPtr< Index_ > indices_ptr, const Options &opt) const |
| |
| std::unique_ptr< OracularSparseExtractor< Value_, Index_ > > | sparse (const bool row, std::shared_ptr< const Oracle< Index_ > > oracle, const Options &opt) const |
| |
| std::unique_ptr< OracularSparseExtractor< Value_, Index_ > > | sparse (const bool row, std::shared_ptr< const Oracle< Index_ > > oracle, const Index_ block_start, const Index_ block_length, const Options &opt) const |
| |
| std::unique_ptr< OracularSparseExtractor< Value_, Index_ > > | sparse (const bool row, std::shared_ptr< const Oracle< Index_ > > oracle, VectorPtr< Index_ > indices_ptr, const Options &opt) const |
| |
| 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_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_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< 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< 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_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_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< 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< 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_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_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< 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< 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_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_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< 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 |
| |
template<typename Value_, typename Index_>
class tatami::ForcedDense< Value_, Index_ >
Forced dense representation.
- Template Parameters
-
| Value_ | Type of the matrix values. |
| Index_ | Type of the row/column indices. |
Override Matrix::is_sparse() to always return false. Similarly, Matrix::is_sparse_proportion() will always return zero. This is occasionally helpful to indicate that downstream applications should ignore structural sparsity in the input Matrix.
To illustrate, consider a structurally sparse matrix like a CompressedSparseMatrix. When performing calculations on such a matrix, we can take advantage of sparsity and only process its non-zero elements for greater efficiency. However, if the CompressedSparseMatrix has a high density of non-zero values, the sparsity-aware algorithm may be less efficient than its dense counterpart, e.g., due to non-contiguous and unpredictable memory look-ups based on the index of the non-zero element. In such cases, it may be better to ignore the sparsity and treat it as a dense matrix, which can be achieved by wrapping the CompressedSparseMatrix in a ForcedDense layer.
Aside from is_sparse() and is_sparse_proportion(), calls to any other method are simply forwarded to the corresponding method of the input Matrix. In particular, calls to ForcedDense::sparse() may return a SparseRange where the number of non-zero elements is not equal to the non-target extraction length.