Symbolic formula representing positive-semidefinite (PSD) constraint.
#include <drake/common/symbolic/expression/formula_cell.h>
Public Member Functions | |
| FormulaPositiveSemidefinite (const Eigen::Ref< const MatrixX< Expression >> &m) | |
Constructs a positive-semidefinite formula from a symmetric matrix m. More... | |
| template<typename Derived > | |
| FormulaPositiveSemidefinite (const Eigen::TriangularView< Derived, Eigen::Lower > &l) | |
Constructs a symbolic positive-semidefinite formula from a lower triangular-view l. More... | |
| template<typename Derived > | |
| FormulaPositiveSemidefinite (const Eigen::TriangularView< Derived, Eigen::Upper > &u) | |
Constructs a symbolic positive-semidefinite formula from an upper triangular-view u. More... | |
| ~FormulaPositiveSemidefinite () override | |
| void | HashAppendDetail (DelegatingHasher *) const override |
| Sends all hash-relevant bytes for this FormulaCell type into the given hasher, per the hash_append generic hashing concept – except for get_kind(), because Formula already sends that. More... | |
| Variables | GetFreeVariables () const override |
| Returns set of free variables in formula. More... | |
| bool | EqualTo (const FormulaCell &f) const override |
| Checks structural equality. More... | |
| bool | Less (const FormulaCell &f) const override |
Checks ordering between this PSD formula and f. More... | |
| bool | Evaluate (const Environment &env) const override |
| Evaluates under a given environment. More... | |
| Formula | Substitute (const Substitution &s) const override |
Returns a Formula obtained by replacing all occurrences of the variables in s in the current formula cell with the corresponding expressions in s. More... | |
| std::ostream & | Display (std::ostream &os) const override |
Outputs string representation of formula into output stream os. More... | |
| const MatrixX< symbolic::Expression > & | get_matrix () const |
| Returns the corresponding matrix in this PSD formula. More... | |
Public Member Functions inherited from FormulaCell | |
| FormulaKind | get_kind () const |
| Returns kind of formula. More... | |
| FormulaCell ()=delete | |
| Default constructor (deleted). More... | |
| FormulaCell & | operator= (FormulaCell &&f)=delete |
| Move-assign (deleted). More... | |
| FormulaCell & | operator= (const FormulaCell &f)=delete |
| Copy-assign (deleted). More... | |
Additional Inherited Members | |
Protected Member Functions inherited from FormulaCell | |
| FormulaCell (FormulaCell &&f)=default | |
| Move-construct a formula from an rvalue. More... | |
| FormulaCell (const FormulaCell &f)=default | |
| Copy-construct a formula from an lvalue. More... | |
| FormulaCell (FormulaKind k) | |
Construct FormulaCell of kind k. More... | |
| virtual | ~FormulaCell () |
| Default destructor. More... | |
|
explicit |
Constructs a positive-semidefinite formula from a symmetric matrix m.
| std::exception | if m is not symmetric. |
m is symmetric, which can be costly.
|
explicit |
Constructs a symbolic positive-semidefinite formula from a lower triangular-view l.
|
explicit |
Constructs a symbolic positive-semidefinite formula from an upper triangular-view u.
|
override |
|
overridevirtual |
Outputs string representation of formula into output stream os.
Implements FormulaCell.
|
overridevirtual |
Checks structural equality.
Implements FormulaCell.
|
overridevirtual |
Evaluates under a given environment.
Implements FormulaCell.
| const MatrixX<symbolic::Expression>& get_matrix | ( | ) | const |
Returns the corresponding matrix in this PSD formula.
|
overridevirtual |
Returns set of free variables in formula.
Implements FormulaCell.
|
overridevirtual |
Sends all hash-relevant bytes for this FormulaCell type into the given hasher, per the hash_append generic hashing concept – except for get_kind(), because Formula already sends that.
Implements FormulaCell.
|
overridevirtual |
Checks ordering between this PSD formula and f.
The ordering between two PSD formulas psd1 and psd2 are determined by the ordering between the two matrices m1 in psd1 and m2 in psd2.
First, we compare the size of m1 and m2:
m1 is smaller than m2, psd1.Less(psd2) is true.m2 is smaller than m1, psd1.Less(psd2) is false.If m1 and m2 are of the same size, we perform element-wise comparison by following column-major order. See the following example:
psd1.Less(psd2) holds because we haveImplements FormulaCell.
|
overridevirtual |
Returns a Formula obtained by replacing all occurrences of the variables in s in the current formula cell with the corresponding expressions in s.
Implements FormulaCell.