37 std::shared_ptr<const tatami::Matrix<Value_, Index_> > my_matrix;
41 return my_matrix->nrow();
45 return my_matrix->ncol();
48 bool is_sparse()
const {
49 return my_matrix->is_sparse();
52 double is_sparse_proportion()
const {
53 return my_matrix->is_sparse_proportion();
56 bool prefer_rows()
const {
57 return my_matrix->prefer_rows();
60 double prefer_rows_proportion()
const {
61 return my_matrix->prefer_rows_proportion();
64 bool uses_oracle(
bool)
const {
69 std::unique_ptr<tatami::MyopicDenseExtractor<Value_, Index_> > dense(
bool row,
const tatami::Options& opt)
const {
70 return my_matrix->dense(row, opt);
73 std::unique_ptr<tatami::MyopicDenseExtractor<Value_, Index_> > dense(
bool row, Index_ bs, Index_ bl,
const tatami::Options& opt)
const {
74 return my_matrix->dense(row, bs, bl, opt);
78 return my_matrix->dense(row, std::move(idx), opt);
82 std::unique_ptr<tatami::MyopicSparseExtractor<Value_, Index_> > sparse(
bool row,
const tatami::Options& opt)
const {
83 return my_matrix->sparse(row, opt);
86 std::unique_ptr<tatami::MyopicSparseExtractor<Value_, Index_> > sparse(
bool row, Index_ bs, Index_ bl,
const tatami::Options& opt)
const {
87 return my_matrix->sparse(row, bs, bl, opt);
91 return my_matrix->sparse(row, std::move(idx), opt);
96 return my_matrix->dense(row, std::move(ora), opt);
99 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 {
100 return my_matrix->dense(row, std::move(ora), bs, bl, opt);
104 return my_matrix->dense(row, std::move(ora), std::move(idx), opt);
109 return my_matrix->sparse(row, std::move(ora), opt);
112 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 {
113 return my_matrix->sparse(row, std::move(ora), bs, bl, opt);
117 return my_matrix->sparse(row, std::move(ora), std::move(idx), opt);