tatami
C++ API for different matrix representations
|
Mimic the OracularSparseExtractor
interface.
More...
#include <PseudoOracularExtractor.hpp>
Public Member Functions | |
PseudoOracularSparseExtractor (std::shared_ptr< const Oracle< Index_ > > oracle, std::unique_ptr< MyopicSparseExtractor< Value_, Index_ > > ext) | |
SparseRange< Value_, Index_ > | fetch (Index_, Value_ *value_buffer, Index_ *index_buffer) |
Public Member Functions inherited from tatami::OracularSparseExtractor< Value_, Index_ > | |
SparseRange< Value_, Index_ > | fetch (Value_ *value_buffer, Index_ *index_buffer) |
Mimic the OracularSparseExtractor
interface.
Value_ | Data value type, should be numeric. |
Index_ | Row/column index type, should be integer. |
This is used to quickly implement the sparse extraction methods for a Matrix
subclass that does not benefit from an Oracle
. Specifically, the oracle is used to generate a prediction that is passed to an oracle-unaware MyopicSparseExtractor
. This allows Matrix
subclasses to satisfy the sparse oracle-aware extraction interface without much effort.
|
inline |
oracle | The oracle. |
ext | A sparse extractor to extract dimension elements according to ora . |
|
inlinevirtual |
This overload is intended for developers only. It introduces the i
argument so that the signature is the same as that of MyopicSparseExtractor::fetch()
. This makes it easier to define MyopicSparseExtractor
and OracularSparseExtractor
subclasses from a single template, avoiding code duplication that would otherwise occur when defining methods with and without i
. Of course, implementations are expected to ignore i
in oracle-aware extraction.
Other than the extra i
argument, all other behaviors of the two overloads are the same. To avoid confusion, most users should just use the fetch()
overload that does not accept i
, given that the value of i
is never actually used.
i | Ignored, only provided for consistency with MyopicSparseExtractor::fetch() . | |
[out] | value_buffer | Pointer to an array with enough space for at least N values, where N is defined as described for MyopicDenseExtractor::fetch() . |
[out] | index_buffer | Pointer to an array with enough space for at least N indices, where N is defined as described for MyopicDenseExtractor::fetch() . |
SparseRange
object describing the contents of the next dimension element, as predicted by the Oracle
used to construct this instance. Implements tatami::OracularSparseExtractor< Value_, Index_ >.