tatami
C++ API for different matrix representations
|
Extract an element of the target dimension in dense form with an oracle. More...
#include <Extractor.hpp>
Public Member Functions | |
const Value_ * | fetch (Value_ *buffer) |
virtual const Value_ * | fetch (Index_ i, Value_ *buffer)=0 |
Extract an element of the target dimension in dense form with an oracle.
Value_ | Data value type, should be numeric. |
Index_ | Row/column index type, should be integer. |
buffer
may not necessarily be filled upon extraction if a pointer can be returned to the underlying data store. This can be checked by comparing the returned pointer to buffer
; if they are the same, buffer
has been filled.
[out] | buffer | Pointer to an array of length no less than N , where N is defined as described for MyopicDenseExtractor::fetch() . |
Oracle
used to construct this instance. This is guaranteed to have N
values.
|
pure virtual |
This overload is intended for developers only. It introduces the i
argument so that the signature is the same as that of MyopicDenseExtractor::fetch()
. This makes it easier to define MyopicDenseExtractor
and OracularDenseExtractor
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 MyopicDenseExtractor::fetch() , | |
[out] | buffer | Pointer to an array of length no less than N , where N is defined as described for MyopicDenseExtractor::fetch() . |
Oracle
used to construct this instance. This is guaranteed to have N
values. Implemented in tatami::PseudoOracularDenseExtractor< Value_, Index_ >.