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>

Inheritance diagram for EvaluatorBase:
[legend]

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 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...
 

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 ( const EvaluatorBase )
delete
EvaluatorBase ( EvaluatorBase &&  )
delete
virtual ~EvaluatorBase ( )
inlinevirtual
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(...)

Here is the call graph for this function:

Member Function Documentation

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

Implements expression evaluation for scalar type double.

Parameters
xInput vector.
yOutput vector.
Precondition
x must be of size num_vars x 1.
Postcondition
y will be of size num_outputs x 1.

Implemented in LinearMatrixInequalityConstraint, PositiveSemidefiniteConstraint, LinearComplementarityConstraint, BoundingBoxConstraint, LinearConstraint, EvaluatorCost< EvaluatorType >, EvaluatorCost< PolynomialEvaluator >, LinearCost, QuasiStaticConstraintWrapper, SingleTimeKinematicConstraintWrapper, and GenericTrivialCost1.

Here is the caller graph for this function:

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

Implements expression evaluation for scalar type AutoDiffXd.

Parameters
xInput vector.
yOutput vector.
Precondition
x must be of size num_vars x 1.
Postcondition
y will be of size num_outputs x 1.

Implemented in LinearMatrixInequalityConstraint, PositiveSemidefiniteConstraint, LinearComplementarityConstraint, BoundingBoxConstraint, LinearConstraint, EvaluatorCost< EvaluatorType >, EvaluatorCost< PolynomialEvaluator >, LinearCost, QuasiStaticConstraintWrapper, SingleTimeKinematicConstraintWrapper, and GenericTrivialCost1.

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.

Here is the call graph for this function:

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.

Here is the call graph for this function:

const std::string& get_description ( ) const
inline

Getter for a human-friendly description for the evaluator.

int num_outputs ( ) const
inline

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

Here is the caller graph for this function:

int num_vars ( ) const
inline

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

Here is the caller graph for this function:

EvaluatorBase& operator= ( EvaluatorBase &&  )
delete
EvaluatorBase& operator= ( const EvaluatorBase )
delete
void set_description ( const std::string &  description)
inline

Set a human-friendly description for the evaluator.

Here is the caller graph for this function:


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