77 std::shared_ptr<const tatami::Matrix<Value_, Index_> > my_matrix;
81 return my_matrix->nrow();
85 return my_matrix->ncol();
88 bool is_sparse()
const {
89 return my_matrix->is_sparse();
92 double is_sparse_proportion()
const {
93 return my_matrix->is_sparse_proportion();
96 bool prefer_rows()
const {
97 return my_matrix->prefer_rows();
100 double prefer_rows_proportion()
const {
101 return my_matrix->prefer_rows_proportion();
104 bool uses_oracle(
bool row)
const {
105 return my_matrix->uses_oracle(row);
109 std::unique_ptr<tatami::MyopicDenseExtractor<Value_, Index_> > dense(
bool row,
const tatami::Options& opt)
const {
110 return my_matrix->dense(row, opt);
113 std::unique_ptr<tatami::MyopicDenseExtractor<Value_, Index_> > dense(
bool row, Index_ bs, Index_ bl,
const tatami::Options& opt)
const {
114 return my_matrix->dense(row, bs, bl, opt);
118 return my_matrix->dense(row, std::move(idx), opt);
122 std::unique_ptr<tatami::MyopicSparseExtractor<Value_, Index_> > sparse(
bool row,
const tatami::Options& opt)
const {
123 return std::make_unique<internal::ReversedIndicesExtractor<false, Value_, Index_> >(my_matrix->sparse(row, opt), opt.
sparse_ordered_index);
126 std::unique_ptr<tatami::MyopicSparseExtractor<Value_, Index_> > sparse(
bool row, Index_ bs, Index_ bl,
const tatami::Options& opt)
const {
127 return std::make_unique<internal::ReversedIndicesExtractor<false, Value_, Index_> >(my_matrix->sparse(row, bs, bl, opt), opt.
sparse_ordered_index);
131 return std::make_unique<internal::ReversedIndicesExtractor<false, Value_, Index_> >(my_matrix->sparse(row, std::move(idx), opt), opt.
sparse_ordered_index);
136 return my_matrix->dense(row, std::move(ora), opt);
139 std::unique_ptr<tatami::OracularDenseExtractor<Value_, Index_> > dense(
bool row, std::shared_ptr<
const tatami::Oracle<Index_> > ora, Index_ bs, Index_ bl,
const tatami::Options& opt)
const {
140 return my_matrix->dense(row, std::move(ora), bs, bl, opt);
144 return my_matrix->dense(row, std::move(ora), std::move(idx), opt);
149 return std::make_unique<internal::ReversedIndicesExtractor<true, Value_, Index_> >(my_matrix->sparse(row, std::move(ora), opt), opt.
sparse_ordered_index);
152 std::unique_ptr<tatami::OracularSparseExtractor<Value_, Index_> > sparse(
bool row, std::shared_ptr<
const tatami::Oracle<Index_> > ora, Index_ bs, Index_ bl,
const tatami::Options& opt)
const {
153 return std::make_unique<internal::ReversedIndicesExtractor<true, Value_, Index_> >(my_matrix->sparse(row, std::move(ora), bs, bl, opt), opt.
sparse_ordered_index);
157 return std::make_unique<internal::ReversedIndicesExtractor<true, Value_, Index_> >(my_matrix->sparse(row, std::move(ora), std::move(idx), opt), opt.
sparse_ordered_index);