Drake
EvaluatorBase Class Referenceabstract

Provides an abstract interface to represent an expression, mapping a fixed or dynamic number of inputs to a fixed number of outputs, that may be evaluated on a scalar type of double or AutoDiffXd. More...

#include <drake/solvers/evaluator_base.h>

Public Member Functions

virtual ~EvaluatorBase ()
 
void Eval (const Eigen::Ref< const Eigen::VectorXd > &x, Eigen::VectorXd *y) const
 Evaluates the expression with a scalar type of double. More...
 
void Eval (const Eigen::Ref< const AutoDiffVecXd > &x, AutoDiffVecXd *y) const
 Evaluates the expression with a scalar type of AutoDiffXd. More...
 
void Eval (const Eigen::Ref< const VectorX< symbolic::Variable >> &x, VectorX< symbolic::Expression > *y) const
 Evaluates the expression with a scalar type of symbolic::Expression. More...
 
void set_description (const std::string &description)
 Set a human-friendly description for the evaluator. More...
 
const std::string & get_description () const
 Getter for a human-friendly description for the evaluator. More...
 
int num_vars () const
 Getter for the number of variables, namely the number of rows in x, as used in Eval(x, y). More...
 
int num_outputs () const
 Getter for the number of outputs, namely the number of rows in y, as used in Eval(x, y). More...
 
Does not allow copy, move, or assignment
 EvaluatorBase (const EvaluatorBase &)=delete
 
EvaluatorBaseoperator= (const EvaluatorBase &)=delete
 
 EvaluatorBase (EvaluatorBase &&)=delete
 
EvaluatorBaseoperator= (EvaluatorBase &&)=delete
 

Protected Member Functions

 EvaluatorBase (int num_outputs, int num_vars, const std::string &description="")
 Constructs a evaluator. More...
 
virtual void DoEval (const Eigen::Ref< const Eigen::VectorXd > &x, Eigen::VectorXd *y) const =0
 Implements expression evaluation for scalar type double. More...
 
virtual void DoEval (const Eigen::Ref< const AutoDiffVecXd > &x, AutoDiffVecXd *y) const =0
 Implements expression evaluation for scalar type AutoDiffXd. More...
 
virtual void DoEval (const Eigen::Ref< const VectorX< symbolic::Variable >> &x, VectorX< symbolic::Expression > *y) const =0
 Implements expression evaluation for scalar type symbolic::Expression. More...
 
void set_num_outputs (int num_outputs)
 

Detailed Description

Provides an abstract interface to represent an expression, mapping a fixed or dynamic number of inputs to a fixed number of outputs, that may be evaluated on a scalar type of double or AutoDiffXd.

These objects, and its derivatives, are meant to be bound to a given set of variables using the Binding<> class.

Constructor & Destructor Documentation

◆ EvaluatorBase() [1/3]

EvaluatorBase ( const EvaluatorBase )
delete

◆ EvaluatorBase() [2/3]

EvaluatorBase ( EvaluatorBase &&  )
delete

◆ ~EvaluatorBase()

virtual ~EvaluatorBase ( )
inlinevirtual

◆ EvaluatorBase() [3/3]

EvaluatorBase ( int  num_outputs,
int  num_vars,
const std::string &  description = "" 
)
inlineprotected

Constructs a evaluator.

Parameters
num_outputs.The number of rows in the output.
num_vars.The number of rows in the input. If the input dimension is not known, then set num_vars to Eigen::Dynamic.
descriptionA human-friendly description.
See also
Eval(...)

Member Function Documentation

◆ DoEval() [1/3]

virtual void DoEval ( const Eigen::Ref< const Eigen::VectorXd > &  x,
Eigen::VectorXd *  y 
) const
protectedpure virtual

◆ DoEval() [2/3]

virtual void DoEval ( const Eigen::Ref< const AutoDiffVecXd > &  x,
AutoDiffVecXd y 
) const
protectedpure virtual

◆ DoEval() [3/3]

virtual void DoEval ( const Eigen::Ref< const VectorX< symbolic::Variable >> &  x,
VectorX< symbolic::Expression > *  y 
) const
protectedpure virtual

◆ Eval() [1/3]

void Eval ( const Eigen::Ref< const Eigen::VectorXd > &  x,
Eigen::VectorXd *  y 
) const
inline

Evaluates the expression with a scalar type of double.

Parameters
xA num_vars x 1 input vector.
[out]yA num_outputs x 1 output vector.

◆ Eval() [2/3]

void Eval ( const Eigen::Ref< const AutoDiffVecXd > &  x,
AutoDiffVecXd y 
) const
inline

Evaluates the expression with a scalar type of AutoDiffXd.

Parameters
xA num_vars x 1 input vector.
[out]yA num_outputs x 1 output vector.

◆ Eval() [3/3]

void Eval ( const Eigen::Ref< const VectorX< symbolic::Variable >> &  x,
VectorX< symbolic::Expression > *  y 
) const
inline

Evaluates the expression with a scalar type of symbolic::Expression.

Parameters
[in]xA num_vars x 1 input vector.
[out]yA num_outputs x 1 output vector.

◆ get_description()

const std::string& get_description ( ) const
inline

Getter for a human-friendly description for the evaluator.

◆ num_outputs()

int num_outputs ( ) const
inline

Getter for the number of outputs, namely the number of rows in y, as used in Eval(x, y).

◆ num_vars()

int num_vars ( ) const
inline

Getter for the number of variables, namely the number of rows in x, as used in Eval(x, y).

◆ operator=() [1/2]

EvaluatorBase& operator= ( const EvaluatorBase )
delete

◆ operator=() [2/2]

EvaluatorBase& operator= ( EvaluatorBase &&  )
delete

◆ set_description()

void set_description ( const std::string &  description)
inline

Set a human-friendly description for the evaluator.

◆ set_num_outputs()

void set_num_outputs ( int  num_outputs)
inlineprotected

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