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.