50 class BlockVectorReaderT
53 using ValueType = ValueT;
56 using Indexer =
typename Parameters::Indexer;
59 explicit BlockVectorReaderT(
const IVector& vector);
61 virtual ~BlockVectorReaderT() =
default;
63 ConstArrayView<ValueT> operator[](Integer iIndex)
const
65 const Integer
id = Indexer::index(iIndex, m_local_offset);
67 return this->m_values.subConstView(
68 id * this->m_block->size(), this->m_block->size());
69 else if (this->m_vblock) {
70 const VBlock* block_sizes = this->m_vblock;
71 const Integer size = block_sizes->
size(
id);
72 const Integer offset = this->m_vector_impl->vblockImpl().offset(
id);
73 return this->m_values.subConstView(offset, size);
76 throw FatalErrorException(A_FUNCINFO,
"No block info");
80 ConstArrayView<ValueT> m_values;
84 Integer m_local_offset;