10 #ifndef EIGEN_SYMBOLIC_INDEX_H
11 #define EIGEN_SYMBOLIC_INDEX_H
13 #include "../InternalHeaderCheck.h"
46 template<
typename Arg1,
typename Arg2>
class AddExpr;
47 template<
typename Arg1,
typename Arg2>
class ProductExpr;
48 template<
typename Arg1,
typename Arg2>
class QuotientExpr;
52 template<
typename IndexType=Index>
77 template<
typename Derived>
81 const Derived&
derived()
const {
return *
static_cast<const Derived*
>(
this); }
92 template<
typename... Types>
93 Index eval(Types&&... values)
const {
return derived().eval_impl(std::make_tuple(values...)); }
142 template<
typename OtherDerived>
146 template<
typename OtherDerived>
150 template<
typename OtherDerived>
154 template<
typename OtherDerived>
169 template<
typename Tag>
183 template<
typename tag>
203 template<
typename... Types>
204 Index eval_impl(
const std::tuple<Types...>& values)
const {
return std::get<SymbolValue<Tag> >(values).value(); }
207 template<
typename Arg0>
219 template<
typename Arg0,
typename Arg1>
232 template<
typename Arg0,
typename Arg1>
245 template<
typename Arg0,
typename Arg1>
AddExpr(const Arg0 &arg0, const Arg1 &arg1)
Index eval_impl(const T &values) const
ProductExpr< Derived, OtherDerived > operator*(const BaseExpr< OtherDerived > &b) const
friend AddExpr< Derived, ValueExpr<> > operator+(Index a, const BaseExpr &b)
ProductExpr< Derived, ValueExpr<> > operator*(Index a) const
friend QuotientExpr< ValueExpr< internal::FixedInt< N > >, Derived > operator/(internal::FixedInt< N >, const BaseExpr &b)
friend AddExpr< NegateExpr< Derived >, ValueExpr<> > operator-(Index a, const BaseExpr &b)
AddExpr< Derived, ValueExpr< internal::FixedInt< N > > > operator+(internal::FixedInt< N >) const
NegateExpr< Derived > operator-() const
Index eval(const T &values) const
friend ProductExpr< ValueExpr<>, Derived > operator*(Index a, const BaseExpr &b)
QuotientExpr< Derived, OtherDerived > operator/(const BaseExpr< OtherDerived > &b) const
ProductExpr< Derived, ValueExpr< internal::FixedInt< N > > > operator*(internal::FixedInt< N >) const
friend AddExpr< Derived, ValueExpr< internal::FixedInt< N > > > operator+(internal::FixedInt< N >, const BaseExpr &b)
friend QuotientExpr< ValueExpr<>, Derived > operator/(Index a, const BaseExpr &b)
Index eval(Types &&... values) const
friend ProductExpr< ValueExpr< internal::FixedInt< N > >, Derived > operator*(internal::FixedInt< N >, const BaseExpr &b)
QuotientExpr< Derived, ValueExpr<> > operator/(Index a) const
AddExpr< Derived, OtherDerived > operator+(const BaseExpr< OtherDerived > &b) const
const Derived & derived() const
AddExpr< Derived, ValueExpr< internal::FixedInt<-N > > > operator-(internal::FixedInt< N >) const
AddExpr< Derived, NegateExpr< OtherDerived > > operator-(const BaseExpr< OtherDerived > &b) const
QuotientExpr< Derived, ValueExpr< internal::FixedInt< N > > > operator/(internal::FixedInt< N >) const
AddExpr< Derived, ValueExpr<> > operator-(Index a) const
friend AddExpr< NegateExpr< Derived >, ValueExpr< internal::FixedInt< N > > > operator-(internal::FixedInt< N >, const BaseExpr &b)
AddExpr< Derived, ValueExpr<> > operator+(Index b) const
NegateExpr(const Arg0 &arg0)
Index eval_impl(const T &values) const
ProductExpr(const Arg0 &arg0, const Arg1 &arg1)
Index eval_impl(const T &values) const
Index eval_impl(const T &values) const
QuotientExpr(const Arg0 &arg0, const Arg1 &arg1)
SymbolValue< Tag > operator=(Index val) const
Index eval_impl(const SymbolValue< Tag > &values) const
Index eval_impl(const std::tuple< Types... > &values) const
IndexType eval_impl(const T &) const
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.