10#ifndef EIGEN_ARITHMETIC_SEQUENCE_H
11#define EIGEN_ARITHMETIC_SEQUENCE_H
17#if (!EIGEN_HAS_CXX11) || !((!EIGEN_COMP_GNUC) || EIGEN_COMP_GNUC>=48)
38template<
typename FirstType,
typename SizeType,
typename IncrType>
46template<
typename SizeType,
typename IncrType,
typename EnableIf =
void>
51template<
typename SizeType,
typename IncrType>
56template<
typename FirstType,
typename SizeType,
typename IncrType>
62template<
typename FirstType,
typename SizeType,
typename IncrType>
81template<
typename FirstType=Index,
typename SizeType=Index,
typename IncrType=
internal::FixedInt<1> >
84template<
typename FirstType,
typename SizeType,
typename IncrType>
88seqN(FirstType first, SizeType
size, IncrType incr);
109template<
typename FirstType,
typename SizeType,
typename IncrType>
141#if EIGEN_HAS_CXX11 && ((!EIGEN_COMP_GNUC) || EIGEN_COMP_GNUC>=48)
160template<
typename FirstType,
typename SizeType,
typename IncrType>
162seqN(FirstType first, SizeType
size, IncrType incr) {
169template<
typename FirstType,
typename SizeType>
175#ifdef EIGEN_PARSED_BY_DOXYGEN
186template<
typename FirstType,
typename LastType,
typename IncrType>
187auto seq(FirstType f, LastType l, IncrType incr);
198template<
typename FirstType,
typename LastType>
199auto seq(FirstType f, LastType l);
204template<
typename FirstType,
typename LastType>
214template<
typename FirstType,
typename LastType,
typename IncrType>
215auto seq(FirstType f, LastType l, IncrType incr)
226 CleanedIncrType(incr));
231template<
typename FirstType,
typename LastType>
234seq(FirstType f, LastType l)
240template<
typename FirstTypeDerived,
typename LastType>
241typename internal::enable_if<!symbolic::is_symbolic<LastType>::value,
242 ArithmeticSequence<FirstTypeDerived, symbolic::AddExpr<symbolic::AddExpr<symbolic::NegateExpr<FirstTypeDerived>,symbolic::ValueExpr<> >,
243 symbolic::ValueExpr<internal::FixedInt<1> > > > >::type
249template<
typename FirstType,
typename LastTypeDerived>
250typename internal::enable_if<!symbolic::is_symbolic<FirstType>::value,
251 ArithmeticSequence<typename internal::cleanup_index_type<FirstType>::type,
252 symbolic::AddExpr<symbolic::AddExpr<LastTypeDerived,symbolic::ValueExpr<> >,
253 symbolic::ValueExpr<internal::FixedInt<1> > > > >::type
259template<
typename FirstTypeDerived,
typename LastTypeDerived>
260ArithmeticSequence<FirstTypeDerived,
261 symbolic::AddExpr<symbolic::AddExpr<LastTypeDerived,symbolic::NegateExpr<FirstTypeDerived> >,symbolic::ValueExpr<internal::FixedInt<1> > > >
268template<
typename FirstType,
typename LastType,
typename IncrType>
271seq(FirstType f, LastType l, IncrType incr)
278template<
typename FirstTypeDerived,
typename LastType,
typename IncrType>
279typename internal::enable_if<!symbolic::is_symbolic<LastType>::value,
280 ArithmeticSequence<FirstTypeDerived,
281 symbolic::QuotientExpr<symbolic::AddExpr<symbolic::AddExpr<symbolic::NegateExpr<FirstTypeDerived>,
282 symbolic::ValueExpr<> >,
283 symbolic::ValueExpr<typename internal::cleanup_seq_incr<IncrType>::type> >,
284 symbolic::ValueExpr<typename internal::cleanup_seq_incr<IncrType>::type> >,
292template<
typename FirstType,
typename LastTypeDerived,
typename IncrType>
293typename internal::enable_if<!symbolic::is_symbolic<FirstType>::value,
294 ArithmeticSequence<typename internal::cleanup_index_type<FirstType>::type,
295 symbolic::QuotientExpr<symbolic::AddExpr<symbolic::AddExpr<LastTypeDerived,symbolic::ValueExpr<> >,
296 symbolic::ValueExpr<typename internal::cleanup_seq_incr<IncrType>::type> >,
297 symbolic::ValueExpr<typename internal::cleanup_seq_incr<IncrType>::type> >,
306template<
typename FirstTypeDerived,
typename LastTypeDerived,
typename IncrType>
307ArithmeticSequence<FirstTypeDerived,
308 symbolic::QuotientExpr<symbolic::AddExpr<symbolic::AddExpr<LastTypeDerived,
309 symbolic::NegateExpr<FirstTypeDerived> >,
310 symbolic::ValueExpr<typename internal::cleanup_seq_incr<IncrType>::type> >,
311 symbolic::ValueExpr<typename internal::cleanup_seq_incr<IncrType>::type> >,
323#if EIGEN_HAS_CXX11 || defined(EIGEN_PARSED_BY_DOXYGEN)
330template<
typename SizeType,
typename IncrType>
331auto lastN(SizeType
size, IncrType incr)
332->
decltype(seqN(Eigen::last-(
size-fix<1>())*incr,
size, incr))
334 return seqN(Eigen::last-(
size-fix<1>())*incr,
size, incr);
343template<
typename SizeType>
344auto lastN(SizeType
size)
359template<
typename FirstType,
typename SizeType,
typename IncrType,
int XprSize>
364template<
typename FirstType,
typename SizeType,
typename IncrType>
371template<
typename FirstType,
typename SizeType,
typename IncrType>
int i
Definition BiCGSTAB_step_by_step.cpp:9
Scalar Scalar int size
Definition benchVecAdd.cpp:17
Definition ArithmeticSequence.h:111
SizeType m_size
Definition ArithmeticSequence.h:136
@ IncrAtCompileTime
Definition ArithmeticSequence.h:118
@ SizeAtCompileTime
Definition ArithmeticSequence.h:117
const SizeType & sizeObject() const
Definition ArithmeticSequence.h:131
IncrType m_incr
Definition ArithmeticSequence.h:137
ArithmeticSequence< ReverseFirstType, SizeType, ReverseIncrType > reverse() const
Definition ArithmeticSequence.h:151
ArithmeticSequence(FirstType first, SizeType size, IncrType incr)
Definition ArithmeticSequence.h:114
Index operator[](Index i) const
Definition ArithmeticSequence.h:128
ArithmeticSequence(FirstType first, SizeType size)
Definition ArithmeticSequence.h:113
FirstType m_first
Definition ArithmeticSequence.h:135
Index first() const
Definition ArithmeticSequence.h:125
internal::aseq_reverse_first_type< FirstType, SizeType, IncrType >::type ReverseFirstType
Definition ArithmeticSequence.h:148
const FirstType & firstObject() const
Definition ArithmeticSequence.h:130
internal::aseq_negate< IncrType >::type ReverseIncrType
Definition ArithmeticSequence.h:147
const IncrType & incrObject() const
Definition ArithmeticSequence.h:132
Index size() const
Definition ArithmeticSequence.h:122
Definition IntegralConstant.h:52
Definition SymbolicIndex.h:252
Definition SymbolicIndex.h:78
const Derived & derived() const
Definition SymbolicIndex.h:80
Definition SymbolicIndex.h:265
Definition SymbolicIndex.h:52
@ N
Definition constructor.cpp:23
ArithmeticSequence< Index, typename make_size_type< SizeType >::type, IncrType > makeIndexedViewCompatible(const ArithmeticSequence< FirstType, SizeType, IncrType > &ids, Index size, SpecializedType)
Definition ArithmeticSequence.h:366
Index eval_expr_given_size(Index x, Index)
Definition IndexedViewHelper.h:63
Namespace containing all symbols from the Eigen library.
Definition bench_norm.cpp:85
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)
Definition ArithmeticSequence.h:162
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition Meta.h:74
internal::enable_if<!(symbolic::is_symbolic< FirstType >::value||symbolic::is_symbolic< LastType >::value), ArithmeticSequence< typenameinternal::cleanup_index_type< FirstType >::type, Index > >::type seq(FirstType f, LastType l)
Definition ArithmeticSequence.h:234
const int DynamicIndex
Definition Constants.h:27
internal::FixedInt< N > fix()
Definition IntegralConstant.h:192
SpecializedType
Definition Constants.h:309
Definition BandTriangularSolver.h:13
uint8_t seq
Definition ref_serial.cpp:606
ArithmeticSequence< Index, typename make_size_type< SizeType >::type, IncrType > type
Definition ArithmeticSequence.h:361
Definition IndexedViewHelper.h:86
FixedInt<-N > type
Definition ArithmeticSequence.h:25
Index type
Definition ArithmeticSequence.h:21
Definition ArithmeticSequence.h:18
symbolic::AddExpr< symbolic::ProductExpr< symbolic::AddExpr< SizeType, symbolic::ValueExpr< FixedInt<-1 > > >, symbolic::ValueExpr< IncrType > >, symbolic::ValueExpr<> > type
Definition ArithmeticSequence.h:66
symbolic::AddExpr< FirstType, symbolic::ValueExpr< Aux > > type
Definition ArithmeticSequence.h:59
aseq_reverse_first_type_aux< SizeType, IncrType >::type Aux
Definition ArithmeticSequence.h:58
symbolic::AddExpr< FirstType, symbolic::ProductExpr< symbolic::AddExpr< SizeType, symbolic::ValueExpr< FixedInt<-1 > > >, symbolic::ValueExpr< IncrType > > > type
Definition ArithmeticSequence.h:43
Definition ArithmeticSequence.h:47
Index type
Definition ArithmeticSequence.h:48
Definition ArithmeticSequence.h:34
Index type
Definition ArithmeticSequence.h:35
T type
Definition IntegralConstant.h:164
Definition ArithmeticSequence.h:71
cleanup_index_type< T, DynamicIndex >::type type
Definition ArithmeticSequence.h:72
Definition IndexedViewHelper.h:75
@ value
Definition IndexedViewHelper.h:76
Definition IntegralConstant.h:133
Definition ArithmeticSequence.h:355
internal::conditional< symbolic::is_symbolic< T >::value, Index, T >::type type
Definition ArithmeticSequence.h:356
Definition ForwardDeclarations.h:17
Definition SymbolicIndex.h:189
@ value
Definition SymbolicIndex.h:191