Symbolic expression representing a multiplication of powers.
\[ c_0 \cdot \prod b_i^{e_i} \]
where \( c_0 \) is a constant and \( b_i \) and \( e_i \) are symbolic expressions.
Internally this class maintains a member variable constant_ representing \( c_0 \) and another member variable base_to_exponent_map_ representing a mapping from a base, \( b_i \) to its exponentiation \( e_i \). 
#include <drake/common/symbolic/expression/expression_cell.h>
Public Member Functions | |
| ExpressionMul (double constant, std::map< Expression, Expression > base_to_exponent_map) | |
Constructs ExpressionMul from constant and base_to_exponent_map.  More... | |
| ~ExpressionMul () override | |
| void | HashAppendDetail (DelegatingHasher *) const override | 
| Sends all hash-relevant 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... | |
| 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 | EvaluatePartial (const Environment &env) const override | 
Returns an Expression obtained by replacing all occurrences of the variables in env in the current expression cell with the corresponding values in env.  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 constant term.  More... | |
| const std::map< Expression, Expression > & | get_base_to_exponent_map () const | 
| Returns map from a term to its coefficient.  More... | |
  Public Member Functions inherited from ExpressionCell | |
| virtual | ~ExpressionCell () | 
| std::atomic< int > & | use_count () const | 
| Returns the intrusive use count (ala boost::intrusive_ptr).  More... | |
| ExpressionKind | get_kind () const | 
| Returns expression kind.  More... | |
| bool | is_polynomial () const | 
| Checks if this symbolic expression is convertible to Polynomial.  More... | |
| bool | is_expanded () const | 
| Checks if this symbolic expression is already expanded.  More... | |
| void | set_expanded () | 
| Sets this symbolic expression as already expanded.  More... | |
| ExpressionCell (const ExpressionCell &)=delete | |
| ExpressionCell & | operator= (const ExpressionCell &)=delete | 
| ExpressionCell (ExpressionCell &&)=delete | |
| ExpressionCell & | operator= (ExpressionCell &&)=delete | 
Additional Inherited Members | |
  Protected Member Functions inherited from ExpressionCell | |
| ExpressionCell (ExpressionKind k, bool is_poly, bool is_expanded) | |
Constructs ExpressionCell of kind k with is_poly and is_expanded, with a use_count of zero.  More... | |
| ExpressionMul | ( | double | constant, | 
| std::map< Expression, Expression > | base_to_exponent_map | ||
| ) | 
Constructs ExpressionMul from constant and base_to_exponent_map. 
      
  | 
  override | 
      
  | 
  overridevirtual | 
Differentiates this symbolic expression with respect to the variable var. 
| std::exception | if it is not differentiable. | 
Implements ExpressionCell.
      
  | 
  overridevirtual | 
Outputs string representation of expression into output stream os. 
Implements ExpressionCell.
      
  | 
  overridevirtual | 
Checks structural equality.
Implements ExpressionCell.
      
  | 
  overridevirtual | 
Evaluates under a given environment (by default, an empty environment).
| std::exception | if NaN is detected during evaluation. | 
Implements ExpressionCell.
      
  | 
  overridevirtual | 
Returns an Expression obtained by replacing all occurrences of the variables in env in the current expression cell with the corresponding values in env. 
| std::exception | if NaN is detected during substitution. | 
Implements ExpressionCell.
      
  | 
  overridevirtual | 
Expands out products and positive integer powers in expression.
| std::exception | if NaN is detected during expansion. | 
Implements ExpressionCell.
| const std::map<Expression, Expression>& get_base_to_exponent_map | ( | ) | const | 
Returns map from a term to its coefficient.
| double get_constant | ( | ) | const | 
Returns constant term.
      
  | 
  overridevirtual | 
Collects variables in expression.
Implements ExpressionCell.
      
  | 
  overridevirtual | 
Sends all hash-relevant 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::exception | if NaN is detected during substitution. | 
Implements ExpressionCell.