Eigen::symbolic::BaseExpr< Derived_ > Class Template Reference

#include <SymbolicIndex.h>

Public Types

using Derived = Derived_
 

Public Member Functions

constexpr const Derivedderived () const
 
template<typename... Tags, typename... Types>
constexpr Index eval (const SymbolValue< Tags, Types > &... values) const
 
constexpr NegateExpr< Derivedoperator- () const
 
constexpr AddExpr< Derived, ValueExpr<> > operator+ (Index b) const
 
constexpr AddExpr< Derived, ValueExpr<> > operator- (Index a) const
 
constexpr ProductExpr< Derived, ValueExpr<> > operator* (Index a) const
 
constexpr QuotientExpr< Derived, ValueExpr<> > operator/ (Index a) const
 
template<int N>
constexpr AddExpr< Derived, ValueExpr< internal::FixedInt< N > > > operator+ (internal::FixedInt< N >) const
 
template<int N>
constexpr AddExpr< Derived, ValueExpr< internal::FixedInt<-N > > > operator- (internal::FixedInt< N >) const
 
template<int N>
constexpr ProductExpr< Derived, ValueExpr< internal::FixedInt< N > > > operator* (internal::FixedInt< N >) const
 
template<int N>
constexpr QuotientExpr< Derived, ValueExpr< internal::FixedInt< N > > > operator/ (internal::FixedInt< N >) const
 
template<typename OtherDerived >
constexpr AddExpr< Derived, OtherDerived > operator+ (const BaseExpr< OtherDerived > &b) const
 
template<typename OtherDerived >
constexpr AddExpr< Derived, NegateExpr< OtherDerived > > operator- (const BaseExpr< OtherDerived > &b) const
 
template<typename OtherDerived >
constexpr ProductExpr< Derived, OtherDerived > operator* (const BaseExpr< OtherDerived > &b) const
 
template<typename OtherDerived >
constexpr QuotientExpr< Derived, OtherDerived > operator/ (const BaseExpr< OtherDerived > &b) const
 

Static Public Member Functions

template<typename... Tags, typename... Types>
static constexpr Index eval_at_compile_time (const SymbolValue< Tags, Types > &...)
 

Friends

constexpr friend AddExpr< Derived, ValueExpr<> > operator+ (Index a, const BaseExpr &b)
 
constexpr friend AddExpr< NegateExpr< Derived >, ValueExpr<> > operator- (Index a, const BaseExpr &b)
 
constexpr friend ProductExpr< ValueExpr<>, Derivedoperator* (Index a, const BaseExpr &b)
 
constexpr friend QuotientExpr< ValueExpr<>, Derivedoperator/ (Index a, const BaseExpr &b)
 
template<int N>
constexpr friend AddExpr< Derived, ValueExpr< internal::FixedInt< N > > > operator+ (internal::FixedInt< N >, const BaseExpr &b)
 
template<int N>
constexpr friend AddExpr< NegateExpr< Derived >, ValueExpr< internal::FixedInt< N > > > operator- (internal::FixedInt< N >, const BaseExpr &b)
 
template<int N>
constexpr friend ProductExpr< ValueExpr< internal::FixedInt< N > >, Derivedoperator* (internal::FixedInt< N >, const BaseExpr &b)
 
template<int N>
constexpr friend QuotientExpr< ValueExpr< internal::FixedInt< N > >, Derivedoperator/ (internal::FixedInt< N >, const BaseExpr &b)
 

Detailed Description

template<typename Derived_>
class Eigen::symbolic::BaseExpr< Derived_ >

Common base class of any symbolic expressions

Member Typedef Documentation

◆ Derived

template<typename Derived_ >
using Eigen::symbolic::BaseExpr< Derived_ >::Derived = Derived_

Member Function Documentation

◆ derived()

template<typename Derived_ >
constexpr const Derived& Eigen::symbolic::BaseExpr< Derived_ >::derived ( ) const
inlineconstexpr

◆ eval()

template<typename Derived_ >
template<typename... Tags, typename... Types>
constexpr Index Eigen::symbolic::BaseExpr< Derived_ >::eval ( const SymbolValue< Tags, Types > &...  values) const
inlineconstexpr

Evaluate the expression given the values of the symbols.

Parameters
valuesdefines the values of the symbols, as constructed by SymbolExpr::operator= operator.
76  {
77  return derived().eval_impl(values...);
78  }
constexpr const Derived & derived() const
Definition: SymbolicIndex.h:68

References Eigen::symbolic::BaseExpr< Derived_ >::derived().

◆ eval_at_compile_time()

template<typename Derived_ >
template<typename... Tags, typename... Types>
static constexpr Index Eigen::symbolic::BaseExpr< Derived_ >::eval_at_compile_time ( const SymbolValue< Tags, Types > &  ...)
inlinestaticconstexpr

Evaluate the expression at compile time given the values of the symbols.

If a value is not known at compile-time, returns Eigen::Undefined.

86  {
87  return Derived::eval_at_compile_time_impl(SymbolValue<Tags, Types>{}...);
88  }

◆ operator*() [1/3]

template<typename Derived_ >
template<typename OtherDerived >
constexpr ProductExpr<Derived, OtherDerived> Eigen::symbolic::BaseExpr< Derived_ >::operator* ( const BaseExpr< OtherDerived > &  b) const
inlineconstexpr
168  {
169  return ProductExpr<Derived, OtherDerived>(derived(), b.derived());
170  }
Scalar * b
Definition: benchVecAdd.cpp:17

References b, and Eigen::symbolic::BaseExpr< Derived_ >::derived().

◆ operator*() [2/3]

template<typename Derived_ >
constexpr ProductExpr<Derived, ValueExpr<> > Eigen::symbolic::BaseExpr< Derived_ >::operator* ( Index  a) const
inlineconstexpr
98  {
99  return ProductExpr<Derived, ValueExpr<>>(derived(), a);
100  }
const Scalar * a
Definition: level2_cplx_impl.h:32

References a, and Eigen::symbolic::BaseExpr< Derived_ >::derived().

◆ operator*() [3/3]

template<typename Derived_ >
template<int N>
constexpr ProductExpr<Derived, ValueExpr<internal::FixedInt<N> > > Eigen::symbolic::BaseExpr< Derived_ >::operator* ( internal::FixedInt< N ) const
inlineconstexpr
127  {
128  return ProductExpr<Derived, ValueExpr<internal::FixedInt<N>>>(derived(), ValueExpr<internal::FixedInt<N>>());
129  }

References Eigen::symbolic::BaseExpr< Derived_ >::derived().

◆ operator+() [1/3]

template<typename Derived_ >
template<typename OtherDerived >
constexpr AddExpr<Derived, OtherDerived> Eigen::symbolic::BaseExpr< Derived_ >::operator+ ( const BaseExpr< OtherDerived > &  b) const
inlineconstexpr
158  {
159  return AddExpr<Derived, OtherDerived>(derived(), b.derived());
160  }

References b, and Eigen::symbolic::BaseExpr< Derived_ >::derived().

◆ operator+() [2/3]

template<typename Derived_ >
constexpr AddExpr<Derived, ValueExpr<> > Eigen::symbolic::BaseExpr< Derived_ >::operator+ ( Index  b) const
inlineconstexpr
92  {
93  return AddExpr<Derived, ValueExpr<>>(derived(), b);
94  }

References b, and Eigen::symbolic::BaseExpr< Derived_ >::derived().

◆ operator+() [3/3]

template<typename Derived_ >
template<int N>
constexpr AddExpr<Derived, ValueExpr<internal::FixedInt<N> > > Eigen::symbolic::BaseExpr< Derived_ >::operator+ ( internal::FixedInt< N ) const
inlineconstexpr
119  {
120  return AddExpr<Derived, ValueExpr<internal::FixedInt<N>>>(derived(), ValueExpr<internal::FixedInt<N>>());
121  }

References Eigen::symbolic::BaseExpr< Derived_ >::derived().

◆ operator-() [1/4]

template<typename Derived_ >
constexpr NegateExpr<Derived> Eigen::symbolic::BaseExpr< Derived_ >::operator- ( void  ) const
inlineconstexpr
90 { return NegateExpr<Derived>(derived()); }

References Eigen::symbolic::BaseExpr< Derived_ >::derived().

◆ operator-() [2/4]

template<typename Derived_ >
template<typename OtherDerived >
constexpr AddExpr<Derived, NegateExpr<OtherDerived> > Eigen::symbolic::BaseExpr< Derived_ >::operator- ( const BaseExpr< OtherDerived > &  b) const
inlineconstexpr
163  {
164  return AddExpr<Derived, NegateExpr<OtherDerived>>(derived(), -b.derived());
165  }

References b, and Eigen::symbolic::BaseExpr< Derived_ >::derived().

◆ operator-() [3/4]

template<typename Derived_ >
constexpr AddExpr<Derived, ValueExpr<> > Eigen::symbolic::BaseExpr< Derived_ >::operator- ( Index  a) const
inlineconstexpr
95  {
96  return AddExpr<Derived, ValueExpr<>>(derived(), -a);
97  }

References a, and Eigen::symbolic::BaseExpr< Derived_ >::derived().

◆ operator-() [4/4]

template<typename Derived_ >
template<int N>
constexpr AddExpr<Derived, ValueExpr<internal::FixedInt<-N> > > Eigen::symbolic::BaseExpr< Derived_ >::operator- ( internal::FixedInt< N ) const
inlineconstexpr
123  {
124  return AddExpr<Derived, ValueExpr<internal::FixedInt<-N>>>(derived(), ValueExpr<internal::FixedInt<-N>>());
125  }
@ N
Definition: constructor.cpp:22

References Eigen::symbolic::BaseExpr< Derived_ >::derived(), and N.

◆ operator/() [1/3]

template<typename Derived_ >
template<typename OtherDerived >
constexpr QuotientExpr<Derived, OtherDerived> Eigen::symbolic::BaseExpr< Derived_ >::operator/ ( const BaseExpr< OtherDerived > &  b) const
inlineconstexpr
173  {
174  return QuotientExpr<Derived, OtherDerived>(derived(), b.derived());
175  }

References b, and Eigen::symbolic::BaseExpr< Derived_ >::derived().

◆ operator/() [2/3]

template<typename Derived_ >
constexpr QuotientExpr<Derived, ValueExpr<> > Eigen::symbolic::BaseExpr< Derived_ >::operator/ ( Index  a) const
inlineconstexpr
101  {
102  return QuotientExpr<Derived, ValueExpr<>>(derived(), a);
103  }

References a, and Eigen::symbolic::BaseExpr< Derived_ >::derived().

◆ operator/() [3/3]

template<typename Derived_ >
template<int N>
constexpr QuotientExpr<Derived, ValueExpr<internal::FixedInt<N> > > Eigen::symbolic::BaseExpr< Derived_ >::operator/ ( internal::FixedInt< N ) const
inlineconstexpr
131  {
132  return QuotientExpr<Derived, ValueExpr<internal::FixedInt<N>>>(derived(), ValueExpr<internal::FixedInt<N>>());
133  }

References Eigen::symbolic::BaseExpr< Derived_ >::derived().

Friends And Related Function Documentation

◆ operator* [1/2]

template<typename Derived_ >
constexpr friend ProductExpr<ValueExpr<>, Derived> operator* ( Index  a,
const BaseExpr< Derived_ > &  b 
)
friend
111  {
112  return ProductExpr<ValueExpr<>, Derived>(a, b.derived());
113  }

◆ operator* [2/2]

template<typename Derived_ >
template<int N>
constexpr friend ProductExpr<ValueExpr<internal::FixedInt<N> >, Derived> operator* ( internal::FixedInt< N ,
const BaseExpr< Derived_ > &  b 
)
friend
148  {
149  return ProductExpr<ValueExpr<internal::FixedInt<N>>, Derived>(ValueExpr<internal::FixedInt<N>>(), b.derived());
150  }

◆ operator+ [1/2]

template<typename Derived_ >
constexpr friend AddExpr<Derived, ValueExpr<> > operator+ ( Index  a,
const BaseExpr< Derived_ > &  b 
)
friend
105  {
106  return AddExpr<Derived, ValueExpr<>>(b.derived(), a);
107  }

◆ operator+ [2/2]

template<typename Derived_ >
template<int N>
constexpr friend AddExpr<Derived, ValueExpr<internal::FixedInt<N> > > operator+ ( internal::FixedInt< N ,
const BaseExpr< Derived_ > &  b 
)
friend
137  {
138  return AddExpr<Derived, ValueExpr<internal::FixedInt<N>>>(b.derived(), ValueExpr<internal::FixedInt<N>>());
139  }

◆ operator- [1/2]

template<typename Derived_ >
constexpr friend AddExpr<NegateExpr<Derived>, ValueExpr<> > operator- ( Index  a,
const BaseExpr< Derived_ > &  b 
)
friend
108  {
109  return AddExpr<NegateExpr<Derived>, ValueExpr<>>(-b.derived(), a);
110  }

◆ operator- [2/2]

template<typename Derived_ >
template<int N>
constexpr friend AddExpr<NegateExpr<Derived>, ValueExpr<internal::FixedInt<N> > > operator- ( internal::FixedInt< N ,
const BaseExpr< Derived_ > &  b 
)
friend
142  {
143  return AddExpr<NegateExpr<Derived>, ValueExpr<internal::FixedInt<N>>>(-b.derived(),
144  ValueExpr<internal::FixedInt<N>>());
145  }

◆ operator/ [1/2]

template<typename Derived_ >
constexpr friend QuotientExpr<ValueExpr<>, Derived> operator/ ( Index  a,
const BaseExpr< Derived_ > &  b 
)
friend
114  {
115  return QuotientExpr<ValueExpr<>, Derived>(a, b.derived());
116  }

◆ operator/ [2/2]

template<typename Derived_ >
template<int N>
constexpr friend QuotientExpr<ValueExpr<internal::FixedInt<N> >, Derived> operator/ ( internal::FixedInt< N ,
const BaseExpr< Derived_ > &  b 
)
friend
153  {
154  return QuotientExpr<ValueExpr<internal::FixedInt<N>>, Derived>(ValueExpr<internal::FixedInt<N>>(), b.derived());
155  }

The documentation for this class was generated from the following file: