48 Base(jf), dualKey_(dualKey) {
50 throw std::runtime_error(
51 "Cannot convert an unconstrained JacobianFactor to LinearEquality");
57 throw std::runtime_error(
"Cannot convert HessianFactor to LinearEquality");
62 Base(i1, A1, b, noiseModel::Constrained::All(b.
rows())), dualKey_(dualKey) {
68 Base(i1, A1, i2, A2, b, noiseModel::Constrained::All(b.
rows())), dualKey_(
75 Base(i1, A1, i2, A2, i3, A3, b, noiseModel::Constrained::All(b.
rows())), dualKey_(
82 template<
typename TERMS>
84 Base(terms, b, noiseModel::Constrained::All(b.
rows())), dualKey_(dualKey) {
105 > (std::make_shared < LinearEquality > (*this));
JacobianFactor Base
Typedef to base class.
LinearEquality(Key i1, const Matrix &A1, const Vector &b, Key dualKey)
LinearEquality(const TERMS &terms, const Vector &b, Key dualKey)
double error(const VectorValues &c) const override
static const KeyFormatter DefaultKeyFormatter
Vector unweighted_error(const VectorValues &c) const
const KeyFormatter & formatter
bool isConstrained() const
LinearEquality(const JacobianFactor &jf, Key dualKey)
Vector error_vector(const VectorValues &c) const
LinearEquality(Key i1, const Matrix &A1, Key i2, const Matrix &A2, const Vector &b, Key dualKey)
void print(const std::string &s="", const KeyFormatter &formatter=DefaultKeyFormatter) const override
print with optional string
bool equals(const GaussianFactor &lf, double tol=1e-9) const override
assert equality up to a tolerance
GaussianFactor::shared_ptr clone() const override
Array< double, 1, 3 > e(1./3., 0.5, 2.)
LinearEquality(Key i1, const Matrix &A1, Key i2, const Matrix &A2, Key i3, const Matrix &A3, const Vector &b, Key dualKey)
std::function< std::string(Key)> KeyFormatter
Typedef for a function to format a key, i.e. to convert it to a string.
std::shared_ptr< This > shared_ptr
shared_ptr to this class
bool active() const
for active set method: equality constraints are always active
void print(const std::string &s="", const KeyFormatter &formatter=DefaultKeyFormatter) const override
std::shared_ptr< This > shared_ptr
shared_ptr to this class
LinearEquality This
Typedef to this class.
A Gaussian factor using the canonical parameters (information form)
LinearEquality(const HessianFactor &hf)
Key dualKey() const
dual key
bool equals(const GaussianFactor &lf, double tol=1e-9) const override
~LinearEquality() override
std::uint64_t Key
Integer nonlinear key type.