10 #ifndef EIGEN_SYMBOLIC_INDEX_H
11 #define EIGEN_SYMBOLIC_INDEX_H
14 #include "../InternalHeaderCheck.h"
45 template <
typename Tag>
47 template <
typename Tag,
typename Type>
49 template <
typename Arg0>
51 template <
typename Arg1,
typename Arg2>
53 template <
typename Arg1,
typename Arg2>
55 template <
typename Arg1,
typename Arg2>
57 template <
typename IndexType = Index>
64 template <
typename Derived_>
75 template <
typename... Tags,
typename... Types>
77 return derived().eval_impl(values...);
85 template <
typename... Tags,
typename... Types>
157 template <
typename OtherDerived>
162 template <
typename OtherDerived>
167 template <
typename OtherDerived>
172 template <
typename OtherDerived>
178 template <
typename T>
182 enum {
value = internal::is_convertible<T, BaseExpr<T>>
::value };
187 template <
typename IndexType>
192 template <
typename... Tags,
typename... Types>
196 template <
typename... Tags,
typename... Types>
212 template <
typename... Tags,
typename... Types>
216 template <
typename... Tags,
typename... Types>
226 template <
typename Tag,
typename Type>
229 template <
typename Tag>
243 template <
typename... Tags,
typename... Types>
248 template <
typename... Tags,
typename... Types>
250 return value_at_compile_time();
257 template <
typename Tag,
int N>
271 template <
typename... Tags,
typename... Types>
276 template <
typename... Tags,
typename... Types>
278 return value_at_compile_time();
283 template <
typename Tag,
typename... Types>
287 template <
typename Tag>
297 template <
typename Tag,
typename Type,
typename... OtherTypes>
300 return symbol.value();
303 return symbol.value_at_compile_time();
308 template <
typename Tag,
typename T1,
typename... OtherTypes>
319 template <
typename tag>
339 template <
typename... Tags,
typename... Types>
344 template <
typename... Tags,
typename... Types>
351 template <
typename Arg0>
357 template <
typename... Tags,
typename... Types>
359 return -
m_arg0.eval_impl(values...);
362 template <
typename... Tags,
typename... Types>
372 template <
typename Arg0,
typename Arg1>
378 template <
typename... Tags,
typename... Types>
380 return m_arg0.eval_impl(values...) +
m_arg1.eval_impl(values...);
383 template <
typename... Tags,
typename... Types>
395 template <
typename Arg0,
typename Arg1>
401 template <
typename... Tags,
typename... Types>
403 return m_arg0.eval_impl(values...) *
m_arg1.eval_impl(values...);
406 template <
typename... Tags,
typename... Types>
418 template <
typename Arg0,
typename Arg1>
424 template <
typename... Tags,
typename... Types>
426 return m_arg0.eval_impl(values...) /
m_arg1.eval_impl(values...);
429 template <
typename... Tags,
typename... Types>
Array< int, Dynamic, 1 > v
Definition: Array_initializer_list_vector_cxx11.cpp:1
#define eigen_assert(x)
Definition: Macros.h:910
M1<< 1, 2, 3, 4, 5, 6, 7, 8, 9;Map< RowVectorXf > v1(M1.data(), M1.size())
Scalar * b
Definition: benchVecAdd.cpp:17
Definition: IntegralConstant.h:23
Definition: SymbolicIndex.h:373
static constexpr Index eval_at_compile_time_impl(const SymbolValue< Tags, Types > &...)
Definition: SymbolicIndex.h:384
constexpr Index eval_impl(const SymbolValue< Tags, Types > &... values) const
Definition: SymbolicIndex.h:379
constexpr AddExpr(const Arg0 &arg0, const Arg1 &arg1)
Definition: SymbolicIndex.h:376
Arg0 m_arg0
Definition: SymbolicIndex.h:391
constexpr AddExpr()=default
Arg1 m_arg1
Definition: SymbolicIndex.h:392
Definition: SymbolicIndex.h:65
Derived_ Derived
Definition: SymbolicIndex.h:67
constexpr AddExpr< Derived, ValueExpr<> > operator-(Index a) const
Definition: SymbolicIndex.h:95
constexpr QuotientExpr< Derived, ValueExpr< internal::FixedInt< N > > > operator/(internal::FixedInt< N >) const
Definition: SymbolicIndex.h:131
constexpr friend AddExpr< NegateExpr< Derived >, ValueExpr<> > operator-(Index a, const BaseExpr &b)
Definition: SymbolicIndex.h:108
constexpr ProductExpr< Derived, ValueExpr< internal::FixedInt< N > > > operator*(internal::FixedInt< N >) const
Definition: SymbolicIndex.h:127
constexpr AddExpr< Derived, NegateExpr< OtherDerived > > operator-(const BaseExpr< OtherDerived > &b) const
Definition: SymbolicIndex.h:163
constexpr friend AddExpr< NegateExpr< Derived >, ValueExpr< internal::FixedInt< N > > > operator-(internal::FixedInt< N >, const BaseExpr &b)
Definition: SymbolicIndex.h:141
constexpr QuotientExpr< Derived, ValueExpr<> > operator/(Index a) const
Definition: SymbolicIndex.h:101
constexpr QuotientExpr< Derived, OtherDerived > operator/(const BaseExpr< OtherDerived > &b) const
Definition: SymbolicIndex.h:173
constexpr ProductExpr< Derived, ValueExpr<> > operator*(Index a) const
Definition: SymbolicIndex.h:98
constexpr Index eval(const SymbolValue< Tags, Types > &... values) const
Definition: SymbolicIndex.h:76
constexpr friend ProductExpr< ValueExpr< internal::FixedInt< N > >, Derived > operator*(internal::FixedInt< N >, const BaseExpr &b)
Definition: SymbolicIndex.h:147
constexpr const Derived & derived() const
Definition: SymbolicIndex.h:68
constexpr friend AddExpr< Derived, ValueExpr< internal::FixedInt< N > > > operator+(internal::FixedInt< N >, const BaseExpr &b)
Definition: SymbolicIndex.h:136
constexpr AddExpr< Derived, ValueExpr< internal::FixedInt< N > > > operator+(internal::FixedInt< N >) const
Definition: SymbolicIndex.h:119
constexpr AddExpr< Derived, ValueExpr< internal::FixedInt<-N > > > operator-(internal::FixedInt< N >) const
Definition: SymbolicIndex.h:123
constexpr AddExpr< Derived, OtherDerived > operator+(const BaseExpr< OtherDerived > &b) const
Definition: SymbolicIndex.h:158
constexpr friend AddExpr< Derived, ValueExpr<> > operator+(Index a, const BaseExpr &b)
Definition: SymbolicIndex.h:105
constexpr friend QuotientExpr< ValueExpr<>, Derived > operator/(Index a, const BaseExpr &b)
Definition: SymbolicIndex.h:114
constexpr AddExpr< Derived, ValueExpr<> > operator+(Index b) const
Definition: SymbolicIndex.h:92
constexpr ProductExpr< Derived, OtherDerived > operator*(const BaseExpr< OtherDerived > &b) const
Definition: SymbolicIndex.h:168
constexpr friend ProductExpr< ValueExpr<>, Derived > operator*(Index a, const BaseExpr &b)
Definition: SymbolicIndex.h:111
static constexpr Index eval_at_compile_time(const SymbolValue< Tags, Types > &...)
Definition: SymbolicIndex.h:86
constexpr NegateExpr< Derived > operator-() const
Definition: SymbolicIndex.h:90
constexpr friend QuotientExpr< ValueExpr< internal::FixedInt< N > >, Derived > operator/(internal::FixedInt< N >, const BaseExpr &b)
Definition: SymbolicIndex.h:152
Definition: SymbolicIndex.h:352
constexpr Index eval_impl(const SymbolValue< Tags, Types > &... values) const
Definition: SymbolicIndex.h:358
static constexpr Index eval_at_compile_time_impl(const SymbolValue< Tags, Types > &...)
Definition: SymbolicIndex.h:363
constexpr NegateExpr()=default
constexpr NegateExpr(const Arg0 &arg0)
Definition: SymbolicIndex.h:355
Arg0 m_arg0
Definition: SymbolicIndex.h:369
Definition: SymbolicIndex.h:396
Arg1 m_arg1
Definition: SymbolicIndex.h:415
constexpr ProductExpr(const Arg0 &arg0, const Arg1 &arg1)
Definition: SymbolicIndex.h:399
static constexpr Index eval_at_compile_time_impl(const SymbolValue< Tags, Types > &...)
Definition: SymbolicIndex.h:407
Arg0 m_arg0
Definition: SymbolicIndex.h:414
constexpr Index eval_impl(const SymbolValue< Tags, Types > &... values) const
Definition: SymbolicIndex.h:402
constexpr ProductExpr()=default
Definition: SymbolicIndex.h:419
constexpr QuotientExpr()=default
static constexpr Index eval_at_compile_time_impl(const SymbolValue< Tags, Types > &...)
Definition: SymbolicIndex.h:430
Arg1 m_arg1
Definition: SymbolicIndex.h:438
Arg0 m_arg0
Definition: SymbolicIndex.h:437
constexpr Index eval_impl(const SymbolValue< Tags, Types > &... values) const
Definition: SymbolicIndex.h:425
constexpr QuotientExpr(const Arg0 &arg0, const Arg1 &arg1)
Definition: SymbolicIndex.h:422
Definition: SymbolicIndex.h:320
constexpr SymbolValue< Tag, internal::FixedInt< N > > operator=(internal::FixedInt< N >) const
Definition: SymbolicIndex.h:335
constexpr SymbolExpr()=default
constexpr SymbolValue< Tag, Index > operator=(Index val) const
Definition: SymbolicIndex.h:332
static constexpr Index eval_at_compile_time_impl(const SymbolValue< Tags, Types > &...)
Definition: SymbolicIndex.h:345
tag Tag
Definition: SymbolicIndex.h:323
constexpr Index eval_impl(const SymbolValue< Tags, Types > &... values) const
Definition: SymbolicIndex.h:340
Definition: SymbolicIndex.h:230
constexpr SymbolValue()=default
Index value_
Definition: SymbolicIndex.h:254
static constexpr Index eval_at_compile_time_impl(const SymbolValue< Tags, Types > &...)
Definition: SymbolicIndex.h:249
constexpr SymbolValue(Index val)
Definition: SymbolicIndex.h:235
constexpr Index value() const
Definition: SymbolicIndex.h:238
constexpr Index eval_impl(const SymbolValue< Tags, Types > &...) const
Definition: SymbolicIndex.h:244
static constexpr Index value_at_compile_time()
Definition: SymbolicIndex.h:241
static constexpr Index eval_at_compile_time_impl(const SymbolValue< Tags, Types > &...)
Definition: SymbolicIndex.h:277
constexpr Index value() const
Definition: SymbolicIndex.h:266
constexpr Index eval_impl(const SymbolValue< Tags, Types > &...) const
Definition: SymbolicIndex.h:272
constexpr SymbolValue(internal::FixedInt< N >)
Definition: SymbolicIndex.h:263
static constexpr Index value_at_compile_time()
Definition: SymbolicIndex.h:269
constexpr SymbolValue()=default
Definition: SymbolicIndex.h:227
Definition: SymbolicIndex.h:46
constexpr Index eval_impl(const SymbolValue< Tags, Types > &...) const
Definition: SymbolicIndex.h:213
static constexpr Index eval_at_compile_time_impl(const SymbolValue< Tags, Types > &...)
Definition: SymbolicIndex.h:217
constexpr ValueExpr(internal::FixedInt< N >)
Definition: SymbolicIndex.h:211
constexpr ValueExpr()=default
Definition: SymbolicIndex.h:188
constexpr ValueExpr(IndexType val)
Definition: SymbolicIndex.h:191
constexpr ValueExpr()=default
static constexpr IndexType eval_at_compile_time_impl(const SymbolValue< Tags, Types > &...)
Definition: SymbolicIndex.h:197
constexpr IndexType eval_impl(const SymbolValue< Tags, Types > &...) const
Definition: SymbolicIndex.h:193
IndexType value_
Definition: SymbolicIndex.h:202
@ N
Definition: constructor.cpp:22
const Scalar * a
Definition: level2_cplx_impl.h:32
Namespace containing all symbols from the Eigen library.
Definition: bench_norm.cpp:70
const int Undefined
Definition: Constants.h:34
squared absolute value
Definition: GlobalFunctions.h:87
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition: Meta.h:83
val
Definition: calibrate.py:119
Definition: Eigen_Colamd.h:49
Type
Type of JSON value.
Definition: rapidjson.h:513
static constexpr Index eval_at_compile_time_impl(const SymbolValue< Tag, Type > &symbol, const OtherTypes &...)
Definition: SymbolicIndex.h:302
static constexpr Index eval_impl(const SymbolValue< Tag, Type > &symbol, const OtherTypes &...)
Definition: SymbolicIndex.h:299
static constexpr Index eval_at_compile_time_impl(const T1 &, const OtherTypes &...)
Definition: SymbolicIndex.h:313
static constexpr Index eval_impl(const T1 &, const OtherTypes &... values)
Definition: SymbolicIndex.h:310
static constexpr Index eval_at_compile_time_impl()
Definition: SymbolicIndex.h:293
static constexpr Index eval_impl()
Definition: SymbolicIndex.h:289
Definition: SymbolicIndex.h:284
Definition: SymbolicIndex.h:179