Drake
Drake C++ Documentation
BinaryExpressionCell Class Referenceabstract

Detailed Description

Represents the base class for binary expressions.

#include <drake/common/symbolic/expression/expression_cell.h>

Public Member Functions

 ~BinaryExpressionCell () 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...
 
const Expressionget_first_argument () const
 Returns the first argument. More...
 
const Expressionget_second_argument () const
 Returns the second argument. 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...
 
virtual Expression Expand () const =0
 Expands out products and positive integer powers in expression. More...
 
virtual Expression EvaluatePartial (const Environment &env) const =0
 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...
 
virtual Expression Substitute (const Substitution &s) const =0
 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...
 
virtual Expression Differentiate (const Variable &x) const =0
 Differentiates this symbolic expression with respect to the variable var. More...
 
virtual std::ostream & Display (std::ostream &os) const =0
 Outputs string representation of expression into output stream os. More...
 
 ExpressionCell (const ExpressionCell &)=delete
 
ExpressionCelloperator= (const ExpressionCell &)=delete
 
 ExpressionCell (ExpressionCell &&)=delete
 
ExpressionCelloperator= (ExpressionCell &&)=delete
 

Protected Member Functions

 BinaryExpressionCell (ExpressionKind k, Expression e1, Expression e2, bool is_poly, bool is_expanded)
 Constructs BinaryExpressionCell of kind k with e1, e2, is_poly, and is_expanded. More...
 
virtual double DoEvaluate (double v1, double v2) const =0
 Returns the evaluation result f(v1, v2 ). More...
 
- 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...
 

Constructor & Destructor Documentation

◆ ~BinaryExpressionCell()

~BinaryExpressionCell ( )
override

◆ BinaryExpressionCell()

BinaryExpressionCell ( ExpressionKind  k,
Expression  e1,
Expression  e2,
bool  is_poly,
bool  is_expanded 
)
protected

Constructs BinaryExpressionCell of kind k with e1, e2, is_poly, and is_expanded.

Member Function Documentation

◆ DoEvaluate()

virtual double DoEvaluate ( double  v1,
double  v2 
) const
protectedpure virtual

Returns the evaluation result f(v1, v2 ).

◆ EqualTo()

bool EqualTo ( const ExpressionCell c) const
overridevirtual

Checks structural equality.

Implements ExpressionCell.

◆ Evaluate()

double Evaluate ( const Environment env) const
overridevirtual

Evaluates under a given environment (by default, an empty environment).

Exceptions
std::exceptionif NaN is detected during evaluation.

Implements ExpressionCell.

◆ get_first_argument()

const Expression& get_first_argument ( ) const

Returns the first argument.

◆ get_second_argument()

const Expression& get_second_argument ( ) const

Returns the second argument.

◆ GetVariables()

Variables GetVariables ( ) const
overridevirtual

Collects variables in expression.

Implements ExpressionCell.

◆ HashAppendDetail()

void HashAppendDetail ( DelegatingHasher ) const
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.

◆ Less()

bool Less ( const ExpressionCell c) const
overridevirtual

Provides lexicographical ordering between expressions.

Implements ExpressionCell.


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