10#ifndef EIGEN_ARITHMETIC_SEQUENCE_H
11#define EIGEN_ARITHMETIC_SEQUENCE_H
17#if (!EIGEN_HAS_CXX11) || !((!EIGEN_COMP_GNUC) || EIGEN_COMP_GNUC>=48)
31template<
typename FirstType,
typename SizeType,
typename IncrType,
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>
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>
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,
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<> >,
292template<
typename FirstType,
typename LastTypeDerived,
typename IncrType>
293typename internal::enable_if<!symbolic::is_symbolic<FirstType>::value,
295 symbolic::QuotientExpr<symbolic::AddExpr<symbolic::AddExpr<LastTypeDerived,symbolic::ValueExpr<> >,
306template<
typename FirstTypeDerived,
typename LastTypeDerived,
typename IncrType>
307ArithmeticSequence<FirstTypeDerived,
308 symbolic::QuotientExpr<symbolic::AddExpr<symbolic::AddExpr<LastTypeDerived,
309 symbolic::NegateExpr<FirstTypeDerived> >,
323#if EIGEN_HAS_CXX11 || defined(EIGEN_PARSED_BY_DOXYGEN)
330template<
typename SizeType,
typename IncrType>
331auto lastN(SizeType
size, IncrType 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>
This class represents an arithmetic progression defined by its first value , its size (aka length) n...
Definition: ArithmeticSequence.h:111
SizeType m_size
Definition: ArithmeticSequence.h:136
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
@ IncrAtCompileTime
Definition: ArithmeticSequence.h:118
@ SizeAtCompileTime
Definition: ArithmeticSequence.h:117
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
Common base class of any symbolic expressions.
Definition: SymbolicIndex.h:78
const Derived & derived() const
Definition: SymbolicIndex.h:80
Definition: SymbolicIndex.h:265
Definition: SymbolicIndex.h:52
type
Definition: core.h:575
static const symbolic::SymbolExpr< internal::symbolic_last_tag > last
Can be used as a parameter to Eigen::seq and Eigen::seqN functions to symbolically reference the last...
Definition: IndexedViewHelper.h:38
static const Eigen::internal::all_t all
Can be used as a parameter to DenseBase::operator()(const RowIndices&, const ColIndices&) to index al...
Definition: IndexedViewHelper.h:171
Index eval_expr_given_size(Index x, Index)
Definition: IndexedViewHelper.h:63
EIGEN_CONSTEXPR Index size(const T &x)
Definition: Meta.h:479
EIGEN_CONSTEXPR Index first(const T &x) EIGEN_NOEXCEPT
Definition: IndexedViewHelper.h:81
const T & makeIndexedViewCompatible(const T &x, Index, Q)
Definition: IndexedViewHelper.h:91
Namespace containing all symbols from the Eigen library.
Definition: MatrixExponential.h:16
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
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.
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
This value means that a signed quantity (e.g., a signed index) is not known at compile-time,...
Definition: Constants.h:27
internal::FixedInt< N > fix()
Definition: IntegralConstant.h:192
SpecializedType
Definition: Constants.h:309
Definition: Eigen_Colamd.h:50
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
Definition: IntegralConstant.h:133
Definition: ArithmeticSequence.h:355
internal::conditional< symbolic::is_symbolic< T >::value, Index, T >::type type
Definition: ArithmeticSequence.h:356
Definition: SymbolicIndex.h:189
@ value
Definition: SymbolicIndex.h:191