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