10 #if !defined(EIGEN_PARSED_BY_DOXYGEN)
14 #ifndef EIGEN_INDEXED_VIEW_METHOD_2ND_PASS
15 #define EIGEN_INDEXED_VIEW_METHOD_CONST const
16 #define EIGEN_INDEXED_VIEW_METHOD_TYPE ConstIndexedViewType
18 #define EIGEN_INDEXED_VIEW_METHOD_CONST
19 #define EIGEN_INDEXED_VIEW_METHOD_TYPE IndexedViewType
22 #ifndef EIGEN_INDEXED_VIEW_METHOD_2ND_PASS
27 template<
typename Indices>
28 struct IvcRowType :
public internal::IndexedViewCompatibleType<Indices,RowsAtCompileTime> {};
30 template<
typename Indices>
31 struct IvcColType :
public internal::IndexedViewCompatibleType<Indices,ColsAtCompileTime> {};
33 template<
typename Indices>
34 struct IvcType :
public internal::IndexedViewCompatibleType<Indices,SizeAtCompileTime> {};
38 template<
typename Indices>
44 template<
typename Indices>
50 template<
typename Indices>
60 template<
typename RowIndices,
typename ColIndices>
69 template<
typename RowIndices,
typename ColIndices>
81 template<
typename RowIndices,
typename ColIndices>
90 return BlockType(derived(),
91 internal::first(actualRowIndices),
92 internal::first(actualColIndices),
99 template<
typename RowIndices,
typename ColIndices>
108 #if EIGEN_HAS_STATIC_ARRAY_TEMPLATE
112 template<
typename RowIndicesT, std::
size_t RowIndicesN,
typename ColIndices>
117 (derived(), rowIndices,
ivcCol(colIndices));
120 template<
typename RowIndices,
typename ColIndicesT, std::
size_t ColIndicesN>
125 (derived(),
ivcRow(rowIndices), colIndices);
128 template<
typename RowIndicesT, std::
size_t RowIndicesN,
typename ColIndicesT, std::
size_t ColIndicesN>
132 return IndexedView<EIGEN_INDEXED_VIEW_METHOD_CONST Derived,const RowIndicesT (&)[RowIndicesN],const ColIndicesT (&)[ColIndicesN]>
133 (derived(), rowIndices, colIndices);
136 #endif // EIGEN_HAS_STATIC_ARRAY_TEMPLATE
140 template<
typename Indices>
141 typename internal::enable_if<
151 template<
typename Indices>
152 typename internal::enable_if<
162 template<
typename Indices>
163 typename internal::enable_if<
171 (derived(), internal::first(actualIndices),
internal::size(actualIndices));
174 template<
typename IndexType>
181 #if EIGEN_HAS_STATIC_ARRAY_TEMPLATE
183 template<
typename IndicesT, std::
size_t IndicesN>
184 typename internal::enable_if<IsRowMajor,
189 return IndexedView<EIGEN_INDEXED_VIEW_METHOD_CONST Derived,IvcIndex,const IndicesT (&)[IndicesN]>
193 template<
typename IndicesT, std::
size_t IndicesN>
194 typename internal::enable_if<!IsRowMajor,
199 return IndexedView<EIGEN_INDEXED_VIEW_METHOD_CONST Derived,const IndicesT (&)[IndicesN],IvcIndex>
203 #endif // EIGEN_HAS_STATIC_ARRAY_TEMPLATE
205 #undef EIGEN_INDEXED_VIEW_METHOD_CONST
206 #undef EIGEN_INDEXED_VIEW_METHOD_TYPE
208 #ifndef EIGEN_INDEXED_VIEW_METHOD_2ND_PASS
209 #define EIGEN_INDEXED_VIEW_METHOD_2ND_PASS
211 #undef EIGEN_INDEXED_VIEW_METHOD_2ND_PASS
214 #else // EIGEN_PARSED_BY_DOXYGEN
250 template<
typename RowIndices,
typename ColIndices>
252 operator()(
const RowIndices& rowIndices,
const ColIndices& colIndices);
258 template<
typename Indices>
259 IndexedView_or_VectorBlock
262 #endif // EIGEN_PARSED_BY_DOXYGEN