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.