The bounds of a SystemConstraint.
This also encompasses the form of the constraint: equality constraints occur when both the lower and upper bounds are all zeros.
#include <drake/systems/framework/system_constraint.h>
Public Member Functions | |
SystemConstraintBounds () | |
Creates constraint bounds with zero size. More... | |
SystemConstraintBounds (const Eigen::Ref< const Eigen::VectorXd > &lower, const Eigen::Ref< const Eigen::VectorXd > &upper) | |
Creates a constraint with the given upper and lower bounds for f(x) . More... | |
SystemConstraintBounds (const Eigen::Ref< const Eigen::VectorXd > &lower, std::nullopt_t) | |
Creates an inequality constraint with the given lower bounds for f(x) . More... | |
SystemConstraintBounds (std::nullopt_t, const Eigen::Ref< const Eigen::VectorXd > &upper) | |
Creates an inequality constraint with the given upper bounds for f(x) . More... | |
int | size () const |
SystemConstraintType | type () const |
const Eigen::VectorXd & | lower () const |
const Eigen::VectorXd & | upper () const |
Implements CopyConstructible, CopyAssignable, MoveConstructible, MoveAssignable | |
SystemConstraintBounds (const SystemConstraintBounds &)=default | |
SystemConstraintBounds & | operator= (const SystemConstraintBounds &)=default |
SystemConstraintBounds (SystemConstraintBounds &&)=default | |
SystemConstraintBounds & | operator= (SystemConstraintBounds &&)=default |
Static Public Member Functions | |
static SystemConstraintBounds | Equality (int size) |
Creates constraint of type SystemConstraintType::kEquality, with the given size for f(x) . More... | |
|
default |
|
default |
Creates constraint bounds with zero size.
SystemConstraintBounds | ( | const Eigen::Ref< const Eigen::VectorXd > & | lower, |
const Eigen::Ref< const Eigen::VectorXd > & | upper | ||
) |
Creates a constraint with the given upper and lower bounds for f(x)
.
The type() of this constraint will be kInequality, except in the unusual case where both lower and upper are all zeros (in which case it is kEquality). It is not currently allowed to set lower == upper (creating an equality constraint in the form f(x) = b), except when b == 0. Using a non-zero b might be allowed in the future.
SystemConstraintBounds | ( | const Eigen::Ref< const Eigen::VectorXd > & | lower, |
std::nullopt_t | |||
) |
Creates an inequality constraint with the given lower bounds for f(x)
.
The upper bounds are all positive infinity.
SystemConstraintBounds | ( | std::nullopt_t | , |
const Eigen::Ref< const Eigen::VectorXd > & | upper | ||
) |
Creates an inequality constraint with the given upper bounds for f(x)
.
The lower bounds are all negative infinity.
|
static |
Creates constraint of type SystemConstraintType::kEquality, with the given size for f(x)
.
const Eigen::VectorXd& lower | ( | ) | const |
|
default |
|
default |
int size | ( | ) | const |
SystemConstraintType type | ( | ) | const |
const Eigen::VectorXd& upper | ( | ) | const |