27typedef Eigen::RowVectorXd RowVector;
46 Base(), active_(true) {
51 throw std::runtime_error(
52 "Cannot convert HessianFactor to LinearInequality");
59 throw std::runtime_error(
60 "Cannot convert an unconstrained JacobianFactor to LinearInequality");
64 throw std::runtime_error(
"Only support single-valued inequality factor!");
70 Base(i1, A1, (Vector(1) << b).finished(),
77 Base(i1, A1, i2, A2, (Vector(1) << b).finished(),
84 Base(i1, A1, i2, A2, i3, A3, (Vector(1) << b).finished(),
92 template<
typename TERMS>
94 Base(terms, (Vector(1) << b).finished(),
noiseModel::Constrained::All(1)), dualKey_(
109 DefaultKeyFormatter)
const override {
119 > (boost::make_shared < LinearInequality > (*
this));
144 return unweighted_error(c);
156 Vector pj = p.
at(*xj);
157 Vector aj =
getA(xj).transpose();
Global functions in a separate testing namespace.
Definition chartTesting.h:28
std::function< std::string(Key)> KeyFormatter
Typedef for a function to format a key, i.e. to convert it to a string.
Definition Key.h:35
std::uint64_t Key
Integer nonlinear key type.
Definition types.h:100
All noise models live in the noiseModel namespace.
Definition LossFunctions.cpp:27
A manifold defines a space in which there is a notion of a linear tangent space that can be centered ...
Definition concepts.h:30
A helper that implements the traits interface for GTSAM types.
Definition Testable.h:151
const_iterator begin() const
Iterator at beginning of involved variable keys.
Definition Factor.h:143
KeyVector::const_iterator const_iterator
Const iterator over keys.
Definition Factor.h:80
const_iterator end() const
Iterator at end of involved variable keys.
Definition Factor.h:146
An abstract virtual base class for JacobianFactor and HessianFactor.
Definition GaussianFactor.h:39
boost::shared_ptr< This > shared_ptr
shared_ptr to this class
Definition GaussianFactor.h:42
A Gaussian factor using the canonical parameters (information form).
Definition HessianFactor.h:101
void print(const std::string &s="", const KeyFormatter &formatter=DefaultKeyFormatter) const override
print
Definition JacobianFactor.cpp:414
const SharedDiagonal & get_model() const
get a copy of model
Definition JacobianFactor.h:291
JacobianFactor(const GaussianFactor &gf)
Convert from other GaussianFactor.
Definition JacobianFactor.cpp:60
bool equals(const GaussianFactor &lf, double tol=1e-9) const override
Equals for testable.
Definition JacobianFactor.cpp:431
bool isConstrained() const
is noise model constrained ?
Definition JacobianFactor.h:269
constABlock getA() const
Get a view of the A matrix, not weighted by noise.
Definition JacobianFactor.h:303
VectorValues represents a collection of vector-valued variables associated each with a unique integer...
Definition VectorValues.h:74
Vector & at(Key j)
Read/write access to the vector value with key j, throws std::out_of_range if j does not exist,...
Definition VectorValues.h:139
This class defines a linear inequality constraint Ax-b <= 0, inheriting JacobianFactor with the speci...
Definition LinearInequality.h:33
bool equals(const GaussianFactor &lf, double tol=1e-9) const override
equals
Definition LinearInequality.h:103
void inactivate()
Make this inequality constraint inactive.
Definition LinearInequality.h:138
GaussianFactor::shared_ptr clone() const override
Clone this LinearInequality.
Definition LinearInequality.h:117
LinearInequality()
default constructor for I/O
Definition LinearInequality.h:45
LinearInequality(const TERMS &terms, double b, Key dualKey)
Construct an n-ary factor.
Definition LinearInequality.h:93
~LinearInequality() override
Virtual destructor.
Definition LinearInequality.h:99
JacobianFactor Base
Typedef to base class.
Definition LinearInequality.h:36
boost::shared_ptr< This > shared_ptr
shared_ptr to this class
Definition LinearInequality.h:37
LinearInequality(Key i1, const RowVector &A1, double b, Key dualKey)
Construct unary factor.
Definition LinearInequality.h:69
LinearInequality(const JacobianFactor &jf, Key dualKey)
Conversion from JacobianFactor.
Definition LinearInequality.h:56
double dotProductRow(const VectorValues &p) const
dot product of row s with the corresponding vector in p
Definition LinearInequality.h:153
void print(const std::string &s="", const KeyFormatter &formatter=DefaultKeyFormatter) const override
print
Definition LinearInequality.h:108
Key dualKey() const
dual key
Definition LinearInequality.h:123
void activate()
Make this inequality constraint active.
Definition LinearInequality.h:133
double error(const VectorValues &c) const override
Special error for single-valued inequality constraints.
Definition LinearInequality.h:148
bool active() const
return true if this constraint is active
Definition LinearInequality.h:128
LinearInequality(const HessianFactor &hf)
Conversion from HessianFactor.
Definition LinearInequality.h:50
Vector error_vector(const VectorValues &c) const
Special error_vector for constraints (A*x-b).
Definition LinearInequality.h:143
LinearInequality(Key i1, const RowVector &A1, Key i2, const RowVector &A2, double b, Key dualKey)
Construct binary factor.
Definition LinearInequality.h:75
LinearInequality(Key i1, const RowVector &A1, Key i2, const RowVector &A2, Key i3, const RowVector &A3, double b, Key dualKey)
Construct ternary factor.
Definition LinearInequality.h:82
LinearInequality This
Typedef to this class.
Definition LinearInequality.h:35