WPILibC++ 2023.4.3
Eigen::symbolic Namespace Reference

This namespace defines a set of classes and functions to build and evaluate symbolic expressions of scalar type Index. More...

Classes

class  AddExpr
 
class  BaseExpr
 Common base class of any symbolic expressions. More...
 
struct  is_symbolic
 
class  NegateExpr
 
class  ProductExpr
 
class  QuotientExpr
 
class  Symbol
 
class  SymbolExpr
 Expression of a symbol uniquely identified by the template parameter type tag. More...
 
class  SymbolValue
 Represents the actual value of a symbol identified by its tag. More...
 
class  ValueExpr
 
class  ValueExpr< internal::FixedInt< N > >
 

Detailed Description

This namespace defines a set of classes and functions to build and evaluate symbolic expressions of scalar type Index.

Here is a simple example:

// First step, defines symbols:
struct x_tag {}; static const symbolic::SymbolExpr<x_tag> x;
struct y_tag {}; static const symbolic::SymbolExpr<y_tag> y;
struct z_tag {}; static const symbolic::SymbolExpr<z_tag> z;
// Defines an expression:
auto expr = (x+3)/y+z;
// And evaluate it: (c++14)
std::cout << expr.eval(x=6,y=3,z=-13) << "\n";
// In c++98/11, only one symbol per expression is supported for now:
auto expr98 = (3-x)/2;
std::cout << expr98.eval(x=6) << "\n";
Expression of a symbol uniquely identified by the template parameter type tag.
Definition: SymbolicIndex.h:214
const Scalar & y
Definition: MathFunctions.h:821

It is currently only used internally to define and manipulate the Eigen::last and Eigen::lastp1 symbols in Eigen::seq and Eigen::seqN.