Go to the documentation of this file.
33 for (
size_t i = 0;
i <
dim();
i++) {
67 const double mu)
const {
75 expression_(expression),
76 dims_(expression.keysAndDims().second) {}
82 return std::make_shared<ScalarExpressionInequalityConstraint>(neg_expr,
sigma);
88 return std::make_shared<ScalarExpressionInequalityConstraint>(
expression,
sigma);
105 return std::make_shared<ExpressionEqualityConstraint<double>>(
111 const double mu)
const {
113 return std::make_shared<ExpressionFactor<double>>(
penaltyNoise(
mu), 0.0, penalty_expression);
129 const double mu)
const {
135 size_t dimension = 0;
136 for (
const auto& constraint : *
this) {
137 dimension += constraint->dim();
145 size_t start_idx = 0;
146 for (
const auto& constraint : *
this) {
147 size_t dim = constraint->dim();
148 violation.middleCols(start_idx,
dim) =
149 whiten ? constraint->whitenedError(
values) : constraint->unwhitenedError(
values);
163 for (
const auto& constraint : *
this) {
164 graph.add(constraint->penaltyFactor(
mu));
173 for (
const auto& constraint : *
this) {
174 graph.add(constraint->penaltyFactorCustom(
func,
mu));
set noclip points set clip one set noclip two set bar set border lt lw set xdata set ydata set zdata set x2data set y2data set boxwidth set dummy y set format x g set format y g set format x2 g set format y2 g set format z g set angles radians set nogrid set key title set key left top Right noreverse box linetype linewidth samplen spacing width set nolabel set noarrow set nologscale set logscale x set set pointsize set encoding default set nopolar set noparametric set set set set surface set nocontour set clabel set mapping cartesian set nohidden3d set cntrparam order set cntrparam linear set cntrparam levels auto set cntrparam points set size set set xzeroaxis lt lw set x2zeroaxis lt lw set yzeroaxis lt lw set y2zeroaxis lt lw set tics in set ticslevel set tics set mxtics default set mytics default set mx2tics default set my2tics default set xtics border mirror norotate autofreq set ytics border mirror norotate autofreq set ztics border nomirror norotate autofreq set nox2tics set noy2tics set timestamp bottom norotate set rrange[*:*] noreverse nowriteback set trange[*:*] noreverse nowriteback set urange[*:*] noreverse nowriteback set vrange[*:*] noreverse nowriteback set xlabel matrix size set x2label set timefmt d m y n H
const Double_ & expression() const
Eigen::Matrix< double, 1, 1 > Vector1
size_t dim() const override
double violationNorm(const Values &values) const
T value(const Values &values, std::vector< Matrix > *H=nullptr) const
Return value and optional derivatives, reverse AD version Notes: this is not terribly efficient,...
virtual Vector unwhitenedError(const Values &x, OptionalMatrixVecType H=nullptr) const override
Expression< double > Double_
std::shared_ptr< This > shared_ptr
double error(const Values &c) const override
NonlinearFactorGraph penaltyGraph(const double mu=1.0) const
static ScalarExpressionInequalityConstraint::shared_ptr LeqZero(const Double_ &expression, const double &sigma)
virtual bool active(const Values &x) const override
set noclip points set clip one set noclip two set bar set border lt lw set xdata set ydata set zdata set x2data set y2data set boxwidth set dummy x
std::shared_ptr< This > shared_ptr
T valueAndDerivatives(const Values &values, const KeyVector &keys, const FastVector< int > &dims, std::vector< Matrix > &H) const
private version that takes keys and dimensions, returns derivatives
NoiseModelFactor::shared_ptr penaltyFactorCustom(InequalityPenaltyFunction::shared_ptr func, const double mu=1.0) const override
static const double sigma
virtual NoiseModelFactor::shared_ptr penaltyFactorEquality(const double mu=1.0) const override
const SharedNoiseModel & noiseModel() const
access to the noise model
virtual NoiseModelFactor::shared_ptr penaltyFactor(const double mu=1.0) const
virtual Vector whitenedExpr(const Values &x) const
std::shared_ptr< InequalityPenaltyFunction > shared_ptr
NoiseModelFactor::shared_ptr penaltyFactor(const double mu=1.0) const override
std::vector< Matrix > * OptionalMatrixVecType
SharedDiagonal penaltyNoise(const double mu) const
virtual Vector unwhitenedExpr(const Values &x, OptionalMatrixVecType H=nullptr) const =0
virtual NoiseModelFactor::shared_ptr penaltyFactorEquality(const double mu=1.0) const
NonlinearFactorGraph penaltyGraphCustom(InequalityPenaltyFunction::shared_ptr func, const double mu=1.0) const
KeyVector keys_
The keys involved in this factor.
virtual NonlinearEqualityConstraint::shared_ptr createEqualityConstraint() const
static double Ramp(const double x, OptionalJacobian< 1, 1 > H={})
static ScalarExpressionInequalityConstraint::shared_ptr GeqZero(const Double_ &expression, const double &sigma)
Vector violationVector(const Values &values, bool whiten=true) const
NonlinearEqualityConstraint::shared_ptr createEqualityConstraint() const override
virtual NoiseModelFactor::shared_ptr penaltyFactorCustom(InequalityPenaltyFunction::shared_ptr func, const double mu=1.0) const
The matrix class, also used for vectors and row-vectors.
Nonlinear inequality constraints in constrained optimization.
NonlinearFactorGraph graph
virtual Vector unwhitenedExpr(const Values &x, OptionalMatrixVecType H=nullptr) const override
std::shared_ptr< This > shared_ptr
ScalarExpressionInequalityConstraint(const Double_ &expression, const double &sigma)
Constructor.
gtsam
Author(s):
autogenerated on Wed Mar 19 2025 03:02:33