#ifndef EIGEN_INDEXED_VIEW_HELPER_H
#define EIGEN_INDEXED_VIEW_HELPER_H
#include "../InternalHeaderCheck.h"
namespace Eigen {
namespace internal {
struct symbolic_last_tag { … };
struct all_t { … };
}
namespace placeholders {
last_t;
static constexpr const last_t last;
lastp1_t;
all_t;
#ifdef EIGEN_PARSED_BY_DOXYGEN
static constexpr auto lastp1 = last + fix<1>;
#else
static constexpr lastp1_t lastp1(last + fix<1>());
#endif
static constexpr lastp1_t end = …;
static constexpr Eigen::internal::all_t all;
}
namespace internal {
template <typename Expr, int SizeAtCompileTime, typename EnableIf = void>
struct SymbolicExpressionEvaluator { … };
SymbolicExpressionEvaluator<Expr, SizeAtCompileTime, std::enable_if_t<symbolic::is_symbolic<Expr>::value>>;
SymbolicExpressionEvaluator<Expr, Dynamic, std::enable_if_t<symbolic::is_symbolic<Expr>::value>>;
SymbolicExpressionEvaluator<FixedInt<N>, SizeAtCompileTime, void>;
template <typename Indices, int NestedSizeAtCompileTime, typename EnableIf = void>
struct IndexedViewHelperIndicesWrapper { … };
template <typename Indices, typename EnableIf = void>
struct IndexedViewHelper { … };
template <Index FirstAtCompileTime_, Index SizeAtCompileTime_, Index IncrAtCompileTime_>
class ArithmeticSequenceRange { … };
IndexedViewHelperIndicesWrapper<ArithmeticSequence<FirstType, SizeType, IncrType>, NestedSizeAtCompileTime, void>;
IndexedViewHelper<ArithmeticSequenceRange<FirstAtCompileTime_, SizeAtCompileTime_, IncrAtCompileTime_>, void>;
template <Index ValueAtCompileTime>
class SingleRange { … };
template <typename T>
struct is_single_range : public std::false_type { … };
is_single_range<SingleRange<ValueAtCompileTime>>;
IndexedViewHelperIndicesWrapper<SingleIndex, NestedSizeAtCompileTime, std::enable_if_t<std::is_integral<SingleIndex>::value || symbolic::is_symbolic<SingleIndex>::value>>;
IndexedViewHelperIndicesWrapper<FixedInt<N>, NestedSizeAtCompileTime, void>;
IndexedViewHelper<SingleRange<ValueAtCompileTime>, void>;
template <Index SizeAtCompileTime_>
class AllRange { … };
IndexedViewHelperIndicesWrapper<all_t, NestedSizeAtCompileTime, void>;
IndexedViewHelper<AllRange<SizeAtCompileTime_>, void>;
template <typename Derived, typename RowIndices, typename ColIndices, typename EnableIf = void>
struct IndexedViewSelector;
IvcType;
template <int SizeAtCompileTime, typename Indices>
inline IvcType<Indices, SizeAtCompileTime> CreateIndexSequence(size_t size, const Indices& indices) { … }
IndexedViewSelector<Derived, RowIndices, ColIndices, std::enable_if_t<internal::traits<IndexedView<Derived, IvcType<RowIndices, Derived::RowsAtCompileTime>, IvcType<ColIndices, Derived::ColsAtCompileTime>>>::ReturnAsIndexedView>>;
IndexedViewSelector<Derived, RowIndices, ColIndices, std::enable_if_t<internal::traits<IndexedView<Derived, IvcType<RowIndices, Derived::RowsAtCompileTime>, IvcType<ColIndices, Derived::ColsAtCompileTime>>>::ReturnAsBlock>>;
IndexedViewSelector<Derived, RowIndices, ColIndices, std::enable_if_t<internal::traits<IndexedView<Derived, IvcType<RowIndices, Derived::RowsAtCompileTime>, IvcType<ColIndices, Derived::ColsAtCompileTime>>>::ReturnAsScalar>>;
template <typename Derived, typename Indices, typename EnableIf = void>
struct VectorIndexedViewSelector;
VectorIndexedViewSelector<Derived, Indices, std::enable_if_t<!internal::is_single_range<IvcType<Indices, Derived::SizeAtCompileTime>>::value && internal::IndexedViewHelper<IvcType<Indices, Derived::SizeAtCompileTime>>::IncrAtCompileTime != 1>>;
VectorIndexedViewSelector<Derived, Indices, std::enable_if_t<!internal::is_single_range<IvcType<Indices, Derived::SizeAtCompileTime>>::value && internal::IndexedViewHelper<IvcType<Indices, Derived::SizeAtCompileTime>>::IncrAtCompileTime == 1>>;
VectorIndexedViewSelector<Derived, Indices, std::enable_if_t<internal::is_single_range<IvcType<Indices, Derived::SizeAtCompileTime>>::value>>;
}
}
#endif