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)
160 template<
typename FirstType,
typename SizeType,
typename IncrType>
162 seqN(FirstType first, SizeType
size, IncrType incr) {
169 template<
typename FirstType,
typename SizeType>
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>
240 template<
typename FirstTypeDerived,
typename LastType>
242 ArithmeticSequence<FirstTypeDerived, symbolic::AddExpr<symbolic::AddExpr<symbolic::NegateExpr<FirstTypeDerived>,symbolic::ValueExpr<> >,
243 symbolic::ValueExpr<internal::FixedInt<1> > > > >
::type
249 template<
typename FirstType,
typename LastTypeDerived>
252 symbolic::AddExpr<symbolic::AddExpr<LastTypeDerived,symbolic::ValueExpr<> >,
253 symbolic::ValueExpr<internal::FixedInt<1> > > > >
::type
259 template<
typename FirstTypeDerived,
typename LastTypeDerived>
260 ArithmeticSequence<FirstTypeDerived,
261 symbolic::AddExpr<symbolic::AddExpr<LastTypeDerived,symbolic::NegateExpr<FirstTypeDerived> >,symbolic::ValueExpr<internal::FixedInt<1> > > >
264 return seqN(
f.derived(),(
l.derived()-
f.derived()+fix<1>()));
268 template<
typename FirstType,
typename LastType,
typename IncrType>
271 seq(FirstType
f, LastType
l, IncrType incr)
278 template<
typename FirstTypeDerived,
typename LastType,
typename IncrType>
280 ArithmeticSequence<FirstTypeDerived,
281 symbolic::QuotientExpr<symbolic::AddExpr<symbolic::AddExpr<symbolic::NegateExpr<FirstTypeDerived>,
282 symbolic::ValueExpr<> >,
292 template<
typename FirstType,
typename LastTypeDerived,
typename IncrType>
295 symbolic::QuotientExpr<symbolic::AddExpr<symbolic::AddExpr<LastTypeDerived,symbolic::ValueExpr<> >,
306 template<
typename FirstTypeDerived,
typename LastTypeDerived,
typename IncrType>
307 ArithmeticSequence<FirstTypeDerived,
308 symbolic::QuotientExpr<symbolic::AddExpr<symbolic::AddExpr<LastTypeDerived,
309 symbolic::NegateExpr<FirstTypeDerived> >,
316 return seqN(
f.derived(),(
l.derived()-
f.derived()+CleanedIncrType(incr))/CleanedIncrType(incr), incr);
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