Drake

Symbolic expression representing an addition which is a sum of products. More...
#include <common/symbolic_expression_cell.h>
Public Member Functions  
ExpressionAdd (double constant, const std::map< Expression, double > &expr_to_coeff_map)  
Constructs ExpressionAdd from constant_term and term_to_coeff_map . More...  
void  HashAppendDetail (DelegatingHasher *) const override 
Sends all hashrelevant bytes for this ExpressionCell type into the given hasher, per the hash_append generic hashing concept – except for get_kind(), because Expression already sends that. More...  
Variables  GetVariables () const override 
Collects variables in expression. More...  
bool  EqualTo (const ExpressionCell &e) const override 
Checks structural equality. More...  
bool  Less (const ExpressionCell &e) const override 
Provides lexicographical ordering between expressions. More...  
Polynomiald  ToPolynomial () const override 
Returns a Polynomial representing this expression. More...  
double  Evaluate (const Environment &env) const override 
Evaluates under a given environment (by default, an empty environment). More...  
Expression  Expand () const override 
Expands out products and positive integer powers in expression. More...  
Expression  Substitute (const Substitution &s) const override 
Returns an Expression obtained by replacing all occurrences of the variables in s in the current expression cell with the corresponding expressions in s . More...  
Expression  Differentiate (const Variable &x) const override 
Differentiates this symbolic expression with respect to the variable var . More...  
std::ostream &  Display (std::ostream &os) const override 
Outputs string representation of expression into output stream os . More...  
double  get_constant () const 
Returns the constant. More...  
const std::map< Expression, double > &  get_expr_to_coeff_map () const 
Returns map from an expression to its coefficient. More...  
Public Member Functions inherited from ExpressionCell  
ExpressionKind  get_kind () const 
Returns expression kind. More...  
bool  is_polynomial () const 
Checks if this symbolic expression is convertible to Polynomial. More...  
Additional Inherited Members  
Protected Member Functions inherited from ExpressionCell  
ExpressionCell ()=default  
Default constructor. More...  
ExpressionCell (ExpressionCell &&e)=default  
Moveconstructs an ExpressionCell from an rvalue. More...  
ExpressionCell (const ExpressionCell &e)=default  
Copyconstructs an ExpressionCell from an lvalue. More...  
ExpressionCell &  operator= (ExpressionCell &&e)=delete 
Moveassigns (DELETED). More...  
ExpressionCell &  operator= (const ExpressionCell &e)=delete 
Copyassigns (DELETED). More...  
ExpressionCell (ExpressionKind k, bool is_poly)  
Constructs ExpressionCell of kind k with is_poly . More...  
virtual  ~ExpressionCell ()=default 
Default destructor. More...  
Symbolic expression representing an addition which is a sum of products.
\[ c_0 + \sum c_i * e_i \]
where \( c_i \) is a constant and \( e_i \) is a symbolic expression.
Internally this class maintains a member variable constant_
to represent \( c_0 \) and another member variable expr_to_coeff_map_
to represent a mapping from an expression \( e_i \) to its coefficient \( c_i \) of double.
ExpressionAdd  (  double  constant, 
const std::map< Expression, double > &  expr_to_coeff_map  
) 
Constructs ExpressionAdd from constant_term
and term_to_coeff_map
.

overridevirtual 
Differentiates this symbolic expression with respect to the variable var
.
std::runtime_error  if it is not differentiable. 
Implements ExpressionCell.

overridevirtual 
Outputs string representation of expression into output stream os
.
Implements ExpressionCell.

overridevirtual 

overridevirtual 
Evaluates under a given environment (by default, an empty environment).
std::runtime_error  if NaN is detected during evaluation. 
Implements ExpressionCell.

overridevirtual 
Expands out products and positive integer powers in expression.
std::runtime_error  if NaN is detected during expansion. 
Implements ExpressionCell.

inline 
Returns the constant.

inline 
Returns map from an expression to its coefficient.

overridevirtual 
Collects variables in expression.
Implements ExpressionCell.

overridevirtual 
Sends all hashrelevant bytes for this ExpressionCell type into the given hasher, per the hash_append generic hashing concept – except for get_kind(), because Expression already sends that.
Implements ExpressionCell.

overridevirtual 
Provides lexicographical ordering between expressions.
Implements ExpressionCell.

overridevirtual 
Returns an Expression obtained by replacing all occurrences of the variables in s
in the current expression cell with the corresponding expressions in s
.
std::runtime_error  if NaN is detected during substitution. 
Implements ExpressionCell.

overridevirtual 
Returns a Polynomial representing this expression.
Note that the ID of a variable is preserved in this translation.
Implements ExpressionCell.