11 #ifndef EIGEN_INDEXED_VIEW_HELPER_H
12 #define EIGEN_INDEXED_VIEW_HELPER_H
14 #include "../InternalHeaderCheck.h"
19 struct symbolic_last_tag {};
22 namespace placeholders {
56 template<
typename Derived>
63 template<
typename T,
typename EnableIf =
void>
struct get_compile_time_incr {
73 template<
typename T,
int XprSize,
typename EnableIf=
void>
74 struct IndexedViewCompatibleType {
78 template<
typename T,
typename Q>
89 SingleRange(
Index val) : m_value(val) {}
90 Index operator[](
Index)
const {
return m_value; }
96 template<>
struct get_compile_time_incr<SingleRange> {
101 template<
typename T,
int XprSize>
102 struct IndexedViewCompatibleType<
T,XprSize,
std::enable_if_t<internal::is_integral<T>::value>> {
106 typedef SingleRange type;
109 template<
typename T,
int XprSize>
110 struct IndexedViewCompatibleType<
T, XprSize,
std::enable_if_t<symbolic::is_symbolic<T>::value>> {
111 typedef SingleRange type;
116 std::enable_if_t<symbolic::is_symbolic<T>::value,SingleRange>
128 template<
int XprSize>
130 enum { SizeAtCompileTime = XprSize };
135 variable_if_dynamic<Index,XprSize> m_size;
138 template<
int XprSize>
139 struct IndexedViewCompatibleType<
all_t,XprSize> {
140 typedef AllRange<XprSize> type;
143 template<
typename XprSizeType>
145 return AllRange<get_fixed_value<XprSizeType>::value>(
size);
148 template<
int Size>
struct get_compile_time_incr<AllRange<Size> > {
154 namespace placeholders {
171 #ifdef EIGEN_PARSED_BY_DOXYGEN
static const lastp1_t end
static const Eigen::internal::all_t all
Index eval_expr_given_size(Index x, Index)
EIGEN_CONSTEXPR Index first(const T &x) EIGEN_NOEXCEPT
ArithmeticSequence< Index, typename make_size_type< SizeType >::type, IncrType > makeIndexedViewCompatible(const ArithmeticSequence< FirstType, SizeType, IncrType > &ids, Index size, SpecializedType)
symbolic::SymbolExpr< internal::symbolic_last_tag > last_t
Eigen::internal::all_t all_t
symbolic::AddExpr< symbolic::SymbolExpr< internal::symbolic_last_tag >, symbolic::ValueExpr< Eigen::internal::FixedInt< 1 > > > lastp1_t
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.