11 #ifndef EIGEN_INDEXED_VIEW_HELPER_H
12 #define EIGEN_INDEXED_VIEW_HELPER_H
52 #ifdef EIGEN_PARSED_BY_DOXYGEN
53 static const auto lastp1 = last+fix<1>;
66 FixedInt<N> eval_expr_given_size(FixedInt<N> x,
Index ) {
return x; }
68 template<
typename Derived>
69 Index eval_expr_given_size(
const symbolic::BaseExpr<Derived> &x,
Index size)
71 return x.derived().eval(last=size-1);
81 Index first(
const T& x) {
return x.first(); }
85 template<
typename T,
int XprSize,
typename EnableIf=
void>
90 template<
typename T,
typename Q>
91 const T& makeIndexedViewCompatible(
const T& x,
Index , Q) {
return x; }
102 Index operator[](
Index)
const {
return m_value; }
103 Index size()
const {
return 1; }
104 Index first()
const {
return m_value; }
113 template<
typename T,
int XprSize>
121 template<
typename T,
int XprSize>
129 makeIndexedViewCompatible(
const T&
id,
Index size, SpecializedType) {
130 return eval_expr_given_size(
id,size);
140 template<
int XprSize>
142 enum { SizeAtCompileTime = XprSize };
145 Index size()
const {
return m_size.value(); }
146 Index first()
const {
return 0; }
150 template<
int XprSize>
155 template<
typename XprSizeType>
174 namespace placeholders {
179 EIGEN_DEPRECATED
static const all_t all = Eigen::all;
180 EIGEN_DEPRECATED
static const last_t last = Eigen::last;
181 EIGEN_DEPRECATED
static const end_t end = Eigen::lastp1;
186 #endif // EIGEN_INDEXED_VIEW_HELPER_H