39 std::shared_ptr<const tatami::Matrix<Value_, Index_> > my_matrix;
43 return my_matrix->nrow();
47 return my_matrix->ncol();
50 bool is_sparse()
const {
51 return my_matrix->is_sparse();
54 double is_sparse_proportion()
const {
55 return my_matrix->is_sparse_proportion();
58 bool prefer_rows()
const {
59 return my_matrix->prefer_rows();
62 double prefer_rows_proportion()
const {
63 return my_matrix->prefer_rows_proportion();
66 bool uses_oracle(
bool)
const {
71 std::unique_ptr<tatami::MyopicDenseExtractor<Value_, Index_> > dense(
75 return my_matrix->dense(row, opt);
78 std::unique_ptr<tatami::MyopicDenseExtractor<Value_, Index_> > dense(
84 return my_matrix->dense(row, bs, bl, opt);
87 std::unique_ptr<tatami::MyopicDenseExtractor<Value_, Index_> > dense(
92 return my_matrix->dense(row, std::move(idx), opt);
96 std::unique_ptr<tatami::MyopicSparseExtractor<Value_, Index_> > sparse(
100 return my_matrix->sparse(row, opt);
103 std::unique_ptr<tatami::MyopicSparseExtractor<Value_, Index_> > sparse(
109 return my_matrix->sparse(row, bs, bl, opt);
112 std::unique_ptr<tatami::MyopicSparseExtractor<Value_, Index_> > sparse(
117 return my_matrix->sparse(row, std::move(idx), opt);
121 std::unique_ptr<tatami::OracularDenseExtractor<Value_, Index_> > dense(
126 return my_matrix->dense(row, std::move(ora), opt);
129 std::unique_ptr<tatami::OracularDenseExtractor<Value_, Index_> > dense(
136 return my_matrix->dense(row, std::move(ora), bs, bl, opt);
139 std::unique_ptr<tatami::OracularDenseExtractor<Value_, Index_> > dense(
145 return my_matrix->dense(row, std::move(ora), std::move(idx), opt);
149 std::unique_ptr<tatami::OracularSparseExtractor<Value_, Index_> > sparse(
154 return my_matrix->sparse(row, std::move(ora), opt);
157 std::unique_ptr<tatami::OracularSparseExtractor<Value_, Index_> > sparse(
164 return my_matrix->sparse(row, std::move(ora), bs, bl, opt);
167 std::unique_ptr<tatami::OracularSparseExtractor<Value_, Index_> > sparse(
173 return my_matrix->sparse(row, std::move(ora), std::move(idx), opt);