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>
129 IndexedView<EIGEN_INDEXED_VIEW_METHOD_CONST Derived,const RowIndicesT (&)[RowIndicesN], const ColIndicesT (&)[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,
185 IndexedView<EIGEN_INDEXED_VIEW_METHOD_CONST Derived,IvcIndex,const IndicesT (&)[IndicesN]> >
::type 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,
195 IndexedView<EIGEN_INDEXED_VIEW_METHOD_CONST Derived,const IndicesT (&)[IndicesN],IvcIndex> >
::type 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
internal::IndexedViewCompatibleType< Index, 1 >::type IvcIndex
IvcColType< Indices >::type ivcSize(const Indices &indices) const
Index eval_expr_given_size(Index x, Index)
IndexedView< EIGEN_INDEXED_VIEW_METHOD_CONST Derived, typename IvcRowType< RowIndices >::type, typename IvcColType< ColIndices >::type > type
IvcColType< Indices >::type ivcCol(const Indices &indices) const
#define EIGEN_INDEXED_VIEW_METHOD_CONST
std::vector< size_t > Indices
IvcRowType< Indices >::type ivcRow(const Indices &indices) const
ArithmeticSequence< Index, typename make_size_type< SizeType >::type, IncrType > makeIndexedViewCompatible(const ArithmeticSequence< FirstType, SizeType, IncrType > &ids, Index size, SpecializedType)
internal::enable_if< internal::valid_indexed_view_overload< RowIndices, ColIndices >::value &&internal::traits< typename EIGEN_INDEXED_VIEW_METHOD_TYPE< RowIndices, ColIndices >::type >::ReturnAsIndexedView, typename EIGEN_INDEXED_VIEW_METHOD_TYPE< RowIndices, ColIndices >::type >::type operator()(const RowIndices &rowIndices, const ColIndices &colIndices) EIGEN_INDEXED_VIEW_METHOD_CONST
#define EIGEN_STATIC_ASSERT_VECTOR_ONLY(TYPE)