10 #ifndef EIGEN_ARITHMETIC_SEQUENCE_H 11 #define EIGEN_ARITHMETIC_SEQUENCE_H 17 #if (!EIGEN_HAS_CXX11) || !((!EIGEN_COMP_GNUC) || EIGEN_COMP_GNUC>=48) 31 template<
typename FirstType,
typename SizeType,
typename IncrType,
38 template<
typename FirstType,
typename SizeType,
typename IncrType>
46 template<
typename SizeType,
typename IncrType,
typename EnableIf =
void>
51 template<
typename SizeType,
typename IncrType>
56 template<
typename FirstType,
typename SizeType,
typename IncrType>
62 template<
typename FirstType,
typename SizeType,
typename IncrType>
81 template<
typename FirstType=Index,
typename SizeType=Index,
typename IncrType=
internal::FixedInt<1> >
84 template<
typename FirstType,
typename SizeType,
typename IncrType>
109 template<
typename FirstType,
typename SizeType,
typename IncrType>
141 #if EIGEN_HAS_CXX11 && ((!EIGEN_COMP_GNUC) || EIGEN_COMP_GNUC>=48) 142 auto reverse() const -> decltype(
Eigen::
seqN(m_first+(m_size+
fix<-1>())*m_incr,m_size,-m_incr)) {
143 return seqN(m_first+(m_size+fix<-1>())*m_incr,m_size,-m_incr);
152 return seqN(m_first+(m_size+fix<-1>())*m_incr,m_size,-m_incr);
160 template<
typename FirstType,
typename SizeType,
typename IncrType>
169 template<
typename FirstType,
typename SizeType>
172 return ArithmeticSequence<typename internal::cleanup_index_type<FirstType>::type,
typename internal::cleanup_index_type<SizeType>::type>(
first,
size);
175 #ifdef EIGEN_PARSED_BY_DOXYGEN 186 template<
typename FirstType,
typename LastType,
typename IncrType>
187 auto seq(FirstType
f, LastType
l, IncrType incr);
198 template<
typename FirstType,
typename LastType>
199 auto seq(FirstType f, LastType l);
201 #else // EIGEN_PARSED_BY_DOXYGEN 204 template<
typename FirstType,
typename LastType>
214 template<
typename FirstType,
typename LastType,
typename IncrType>
215 auto seq(FirstType f, LastType l, IncrType incr)
226 CleanedIncrType(incr));
229 #else // EIGEN_HAS_CXX11 231 template<
typename FirstType,
typename LastType>
234 seq(FirstType f, LastType l)
240 template<
typename FirstTypeDerived,
typename LastType>
249 template<
typename FirstType,
typename LastTypeDerived>
251 ArithmeticSequence<typename internal::cleanup_index_type<FirstType>::type,
259 template<
typename FirstTypeDerived,
typename LastTypeDerived>
268 template<
typename FirstType,
typename LastType,
typename IncrType>
271 seq(FirstType f, LastType l, IncrType incr)
278 template<
typename FirstTypeDerived,
typename LastType,
typename IncrType>
282 symbolic::ValueExpr<> >,
284 symbolic::ValueExpr<typename internal::cleanup_seq_incr<IncrType>::type> >,
292 template<
typename FirstType,
typename LastTypeDerived,
typename IncrType>
293 typename internal::enable_if<!symbolic::is_symbolic<FirstType>::value,
294 ArithmeticSequence<typename internal::cleanup_index_type<FirstType>::type,
296 symbolic::ValueExpr<typename internal::cleanup_seq_incr<IncrType>::type> >,
297 symbolic::ValueExpr<typename internal::cleanup_seq_incr<IncrType>::type> >,
306 template<
typename FirstTypeDerived,
typename LastTypeDerived,
typename IncrType>
310 symbolic::ValueExpr<typename internal::cleanup_seq_incr<IncrType>::type> >,
311 symbolic::ValueExpr<typename internal::cleanup_seq_incr<IncrType>::type> >,
318 #endif // EIGEN_HAS_CXX11 320 #endif // EIGEN_PARSED_BY_DOXYGEN 323 #if EIGEN_HAS_CXX11 || defined(EIGEN_PARSED_BY_DOXYGEN) 330 template<
typename SizeType,
typename IncrType>
331 auto lastN(SizeType
size, IncrType incr)
343 template<
typename SizeType>
344 auto lastN(SizeType size)
359 template<
typename FirstType,
typename SizeType,
typename IncrType,
int XprSize>
364 template<
typename FirstType,
typename SizeType,
typename IncrType>
371 template<
typename FirstType,
typename SizeType,
typename IncrType>
413 #endif // EIGEN_ARITHMETIC_SEQUENCE_H internal::aseq_negate< IncrType >::type ReverseIncrType
const IncrType & incrObject() const
static const Eigen::internal::all_t all
cleanup_index_type< T, DynamicIndex >::type type
internal::conditional< symbolic::is_symbolic< T >::value, Index, T >::type type
Namespace containing all symbols from the Eigen library.
ArithmeticSequence< Index, typename make_size_type< SizeType >::type, IncrType > type
EIGEN_CONSTEXPR Index first(const T &x) EIGEN_NOEXCEPT
ArithmeticSequence(FirstType first, SizeType size, IncrType incr)
static const symbolic::SymbolExpr< internal::symbolic_last_tag > last
ArithmeticSequence(FirstType first, SizeType size)
aseq_reverse_first_type_aux< SizeType, IncrType >::type Aux
static const Line3 l(Rot3(), 1, 1)
ArithmeticSequence< ReverseFirstType, SizeType, ReverseIncrType > reverse() const
Index operator[](Index i) const
static const symbolic::AddExpr< symbolic::SymbolExpr< internal::symbolic_last_tag >, symbolic::ValueExpr< Eigen::internal::FixedInt< 1 > > > lastp1(last+fix< 1 >())
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Index eval_expr_given_size(Index x, Index)
Point2(* f)(const Point3 &, OptionalJacobian< 2, 3 >)
symbolic::AddExpr< symbolic::ProductExpr< symbolic::AddExpr< SizeType, symbolic::ValueExpr< FixedInt<-1 > > >, symbolic::ValueExpr< IncrType > >, symbolic::ValueExpr<> > type
const FirstType & firstObject() const
const SizeType & sizeObject() const
EIGEN_CONSTEXPR Index size(const T &x)
internal::enable_if<!(symbolic::is_symbolic< FirstType >::value||symbolic::is_symbolic< LastType >::value), ArithmeticSequence< typename internal::cleanup_index_type< FirstType >::type, Index > >::type seq(FirstType f, LastType l)
void reverse(const MatrixType &m)
internal::FixedInt< N > fix()
symbolic::AddExpr< FirstType, symbolic::ProductExpr< symbolic::AddExpr< SizeType, symbolic::ValueExpr< FixedInt<-1 > > >, symbolic::ValueExpr< IncrType > > > type
ArithmeticSequence< Index, typename make_size_type< SizeType >::type, IncrType > makeIndexedViewCompatible(const ArithmeticSequence< FirstType, SizeType, IncrType > &ids, Index size, SpecializedType)
symbolic::AddExpr< FirstType, symbolic::ValueExpr< Aux > > type
internal::aseq_reverse_first_type< FirstType, SizeType, IncrType >::type ReverseFirstType
const Derived & derived() const
ArithmeticSequence< typename internal::cleanup_index_type< FirstType >::type, typename internal::cleanup_index_type< SizeType >::type, typename internal::cleanup_seq_incr< IncrType >::type > seqN(FirstType first, SizeType size, IncrType incr)