enforce RowVector as Jacobian for single-valued linear inequalities
parent
a26ef7b7a2
commit
ac6f10ea74
|
|
@ -22,6 +22,8 @@
|
||||||
|
|
||||||
namespace gtsam {
|
namespace gtsam {
|
||||||
|
|
||||||
|
typedef Eigen::Matrix<double,1,Eigen::Dynamic> RowVector;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This class defines Linear constraints by inherit Base
|
* This class defines Linear constraints by inherit Base
|
||||||
* with the special Constrained noise model
|
* with the special Constrained noise model
|
||||||
|
|
@ -49,44 +51,44 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Construct unary factor */
|
/** Construct unary factor */
|
||||||
LinearInequality(Key i1, const Matrix& A1, double b, Key dualKey) :
|
LinearInequality(Key i1, const RowVector& A1, double b, Key dualKey) :
|
||||||
Base(i1, A1, (Vector(1) << b), noiseModel::Constrained::All(1)), dualKey_(
|
Base(i1, A1, (Vector(1) << b), noiseModel::Constrained::All(1)), dualKey_(
|
||||||
dualKey) {
|
dualKey) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Construct binary factor */
|
/** Construct binary factor */
|
||||||
LinearInequality(Key i1, const Matrix& A1, Key i2, const Matrix& A2, double b,
|
LinearInequality(Key i1, const RowVector& A1, Key i2, const RowVector& A2, double b,
|
||||||
Key dualKey) :
|
Key dualKey) :
|
||||||
Base(i1, A1, i2, A2, (Vector(1) << b), noiseModel::Constrained::All(1)), dualKey_(
|
Base(i1, A1, i2, A2, (Vector(1) << b), noiseModel::Constrained::All(1)), dualKey_(
|
||||||
dualKey) {
|
dualKey) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Construct ternary factor */
|
/** Construct ternary factor */
|
||||||
LinearInequality(Key i1, const Matrix& A1, Key i2, const Matrix& A2, Key i3,
|
LinearInequality(Key i1, const RowVector& A1, Key i2, const RowVector& A2, Key i3,
|
||||||
const Matrix& A3, double b, Key dualKey) :
|
const RowVector& A3, double b, Key dualKey) :
|
||||||
Base(i1, A1, i2, A2, i3, A3, (Vector(1) << b),
|
Base(i1, A1, i2, A2, i3, A3, (Vector(1) << b),
|
||||||
noiseModel::Constrained::All(1)), dualKey_(dualKey) {
|
noiseModel::Constrained::All(1)), dualKey_(dualKey) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Construct four-ary factor */
|
/** Construct four-ary factor */
|
||||||
LinearInequality(Key i1, const Matrix& A1, Key i2, const Matrix& A2, Key i3,
|
LinearInequality(Key i1, const RowVector& A1, Key i2, const RowVector& A2, Key i3,
|
||||||
const Matrix& A3, Key i4, const Matrix& A4, double b, Key dualKey) :
|
const RowVector& A3, Key i4, const RowVector& A4, double b, Key dualKey) :
|
||||||
Base(i1, A1, i2, A2, i3, A3, i4, A4, (Vector(1) << b),
|
Base(i1, A1, i2, A2, i3, A3, i4, A4, (Vector(1) << b),
|
||||||
noiseModel::Constrained::All(1)), dualKey_(dualKey) {
|
noiseModel::Constrained::All(1)), dualKey_(dualKey) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Construct five-ary factor */
|
/** Construct five-ary factor */
|
||||||
LinearInequality(Key i1, const Matrix& A1, Key i2, const Matrix& A2, Key i3,
|
LinearInequality(Key i1, const RowVector& A1, Key i2, const RowVector& A2, Key i3,
|
||||||
const Matrix& A3, Key i4, const Matrix& A4, Key i5, const Matrix& A5,
|
const RowVector& A3, Key i4, const RowVector& A4, Key i5, const RowVector& A5,
|
||||||
double b, Key dualKey) :
|
double b, Key dualKey) :
|
||||||
Base(i1, A1, i2, A2, i3, A3, i4, A4, i5, A5, (Vector(1) << b),
|
Base(i1, A1, i2, A2, i3, A3, i4, A4, i5, A5, (Vector(1) << b),
|
||||||
noiseModel::Constrained::All(1)), dualKey_(dualKey) {
|
noiseModel::Constrained::All(1)), dualKey_(dualKey) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Construct six-ary factor */
|
/** Construct six-ary factor */
|
||||||
LinearInequality(Key i1, const Matrix& A1, Key i2, const Matrix& A2, Key i3,
|
LinearInequality(Key i1, const RowVector& A1, Key i2, const RowVector& A2, Key i3,
|
||||||
const Matrix& A3, Key i4, const Matrix& A4, Key i5, const Matrix& A5,
|
const RowVector& A3, Key i4, const RowVector& A4, Key i5, const RowVector& A5,
|
||||||
Key i6, const Matrix& A6, double b, Key dualKey) :
|
Key i6, const RowVector& A6, double b, Key dualKey) :
|
||||||
Base(i1, A1, i2, A2, i3, A3, i4, A4, i5, A5, i6, A6, (Vector(1) << b),
|
Base(i1, A1, i2, A2, i3, A3, i4, A4, i5, A5, i6, A6, (Vector(1) << b),
|
||||||
noiseModel::Constrained::All(1)), dualKey_(dualKey) {
|
noiseModel::Constrained::All(1)), dualKey_(dualKey) {
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue