A constraint is a function + lower and upper bounds.
Solver interfaces must acknowledge that these constraints are mutable. Parameters can change after the constraint is constructed and before the call to Solve().
It should support evaluating the constraint, and adding it to an optimization problem.
|
template<typename DerivedLB , typename DerivedUB > |
| Constraint (int num_constraints, int num_vars, const Eigen::MatrixBase< DerivedLB > &lb, const Eigen::MatrixBase< DerivedUB > &ub, const std::string &description="") |
| Constructs a constraint which has num_constraints rows, with an input num_vars x 1 vector. More...
|
|
| Constraint (int num_constraints, int num_vars) |
| Constructs a constraint which has num_constraints rows, with an input num_vars x 1 vector, with no bounds. More...
|
|
bool | CheckSatisfied (const Eigen::Ref< const Eigen::VectorXd > &x, double tol=1E-6) const |
| Return whether this constraint is satisfied by the given value, x . More...
|
|
bool | CheckSatisfied (const Eigen::Ref< const AutoDiffVecXd > &x, double tol=1E-6) const |
|
symbolic::Formula | CheckSatisfied (const Eigen::Ref< const VectorX< symbolic::Variable >> &x) const |
|
const Eigen::VectorXd & | lower_bound () const |
|
const Eigen::VectorXd & | upper_bound () const |
|
int | num_constraints () const |
| Number of rows in the output constraint. More...
|
|
|
| Constraint (const Constraint &)=delete |
|
Constraint & | operator= (const Constraint &)=delete |
|
| Constraint (Constraint &&)=delete |
|
Constraint & | operator= (Constraint &&)=delete |
|
virtual | ~EvaluatorBase () |
|
void | Eval (const Eigen::Ref< const Eigen::VectorXd > &x, Eigen::VectorXd *y) const |
| Evaluates the expression. More...
|
|
void | Eval (const Eigen::Ref< const AutoDiffVecXd > &x, AutoDiffVecXd *y) const |
| Evaluates the expression. More...
|
|
void | Eval (const Eigen::Ref< const VectorX< symbolic::Variable >> &x, VectorX< symbolic::Expression > *y) const |
| Evaluates the 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...
|
|
std::ostream & | Display (std::ostream &os, const VectorX< symbolic::Variable > &vars) const |
| Formats this evaluator into the given stream using vars for the bound decision variable names. More...
|
|
std::ostream & | Display (std::ostream &os) const |
| Formats this evaluator into the given stream, without displaying the decision variables it is bound to. More...
|
|
std::string | ToLatex (const VectorX< symbolic::Variable > &vars, int precision=3) const |
| Returns a LaTeX string describing this 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...
|
|
void | SetGradientSparsityPattern (const std::vector< std::pair< int, int >> &gradient_sparsity_pattern) |
| Set the sparsity pattern of the gradient matrix ∂y/∂x (the gradient of y value in Eval, w.r.t x in Eval) . More...
|
|
const std::optional< std::vector< std::pair< int, int > > > & | gradient_sparsity_pattern () const |
| Returns the vector of (row_index, col_index) that contains all the entries in the gradient of Eval function (∂y/∂x) whose value could be non-zero, namely if ∂yᵢ/∂xⱼ could be non-zero, then the pair (i, j) is in gradient_sparsity_pattern. More...
|
|
bool | is_thread_safe () const |
| Returns whether it is safe to call Eval in parallel. More...
|
|
| EvaluatorBase (const EvaluatorBase &)=delete |
|
EvaluatorBase & | operator= (const EvaluatorBase &)=delete |
|
| EvaluatorBase (EvaluatorBase &&)=delete |
|
EvaluatorBase & | operator= (EvaluatorBase &&)=delete |
|
|
void | UpdateLowerBound (const Eigen::Ref< const Eigen::VectorXd > &new_lb) |
| Updates the lower bound. More...
|
|
void | UpdateUpperBound (const Eigen::Ref< const Eigen::VectorXd > &new_ub) |
| Updates the upper bound. More...
|
|
void | set_bounds (const Eigen::Ref< const Eigen::VectorXd > &new_lb, const Eigen::Ref< const Eigen::VectorXd > &new_ub) |
| Set the upper and lower bounds of the constraint. More...
|
|
virtual bool | DoCheckSatisfied (const Eigen::Ref< const Eigen::VectorXd > &x, const double tol) const |
|
virtual bool | DoCheckSatisfied (const Eigen::Ref< const AutoDiffVecXd > &x, const double tol) const |
|
virtual symbolic::Formula | DoCheckSatisfied (const Eigen::Ref< const VectorX< symbolic::Variable >> &x) const |
|
| 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...
|
|
virtual std::ostream & | DoDisplay (std::ostream &os, const VectorX< symbolic::Variable > &vars) const |
| NVI implementation of Display. More...
|
|
virtual std::string | DoToLatex (const VectorX< symbolic::Variable > &vars, int precision) const |
|
void | set_num_outputs (int num_outputs) |
|
void | set_is_thread_safe (bool is_thread_safe) |
|