1#ifndef TATAMI_NEW_EXTRACTOR_HPP
2#define TATAMI_NEW_EXTRACTOR_HPP
4#include "../base/Matrix.hpp"
19template<
bool oracle_,
typename Index_>
20using MaybeOracle =
typename std::conditional<oracle_, std::shared_ptr<const Oracle<Index_> >,
bool>
::type;
50 return ptr->sparse_row(std::move(
oracle), std::forward<Args_>(
args)...);
52 return ptr->sparse_column(std::move(
oracle), std::forward<Args_>(
args)...);
56 return ptr->sparse_row(std::forward<Args_>(
args)...);
58 return ptr->sparse_column(std::forward<Args_>(
args)...);
64 return ptr->dense_row(std::move(
oracle), std::forward<Args_>(
args)...);
66 return ptr->dense_column(std::move(
oracle), std::forward<Args_>(
args)...);
70 return ptr->dense_row(std::forward<Args_>(
args)...);
72 return ptr->dense_column(std::forward<Args_>(
args)...);
82template<
bool row_,
bool sparse_,
typename Value_,
typename Index_>
87template<
bool row_,
bool sparse_,
typename Value_,
typename Index_>
Virtual class for a matrix.
Definition Matrix.hpp:59
Flexible representations for matrix data.
Definition Extractor.hpp:15
typename std::conditional< oracle_, std::shared_ptr< const Oracle< Index_ > >, bool >::type MaybeOracle
Definition new_extractor.hpp:20
auto new_extractor(const Matrix< Value_, Index_ > *ptr, bool row, MaybeOracle< oracle_, Index_ > oracle, Args_ &&... args)
Definition new_extractor.hpp:42
auto consecutive_extractor(const Matrix< Value_, Index_ > *mat, bool row, Index_ iter_start, Index_ iter_length, Args_ &&... args)
Definition consecutive_extractor.hpp:35