diff --git a/.cproject b/.cproject
index 5e52e703d..b9903731f 100644
--- a/.cproject
+++ b/.cproject
@@ -322,6 +322,14 @@
true
true
+
+ make
+ -j2
+ testGaussianFactor.run
+ true
+ true
+ true
+
make
-j2
@@ -348,7 +356,6 @@
make
-
tests/testBayesTree.run
true
false
@@ -356,7 +363,6 @@
make
-
testBinaryBayesNet.run
true
false
@@ -404,7 +410,6 @@
make
-
testSymbolicBayesNet.run
true
false
@@ -412,7 +417,6 @@
make
-
tests/testSymbolicFactor.run
true
false
@@ -420,7 +424,6 @@
make
-
testSymbolicFactorGraph.run
true
false
@@ -436,20 +439,11 @@
make
-
tests/testBayesTree
true
false
true
-
- make
- -j2
- testGaussianFactor.run
- true
- true
- true
-
make
-j2
@@ -484,6 +478,7 @@
make
+
testGraph.run
true
false
@@ -579,6 +574,7 @@
make
+
testInference.run
true
false
@@ -586,6 +582,7 @@
make
+
testGaussianBayesNet.run
true
false
@@ -593,6 +590,7 @@
make
+
testGaussianFactor.run
true
false
@@ -600,6 +598,7 @@
make
+
testJunctionTree.run
true
false
@@ -607,6 +606,7 @@
make
+
testSymbolicBayesNet.run
true
false
@@ -614,6 +614,7 @@
make
+
testSymbolicFactorGraph.run
true
false
@@ -747,6 +748,14 @@
true
true
+
+ make
+ -j2
+ check
+ true
+ true
+ true
+
make
-j2
@@ -965,7 +974,6 @@
make
-
testErrors.run
true
false
@@ -1325,6 +1333,7 @@
make
+
testSimulated2DOriented.run
true
false
@@ -1364,6 +1373,7 @@
make
+
testSimulated2D.run
true
false
@@ -1371,6 +1381,7 @@
make
+
testSimulated3D.run
true
false
@@ -1474,6 +1485,7 @@
make
+
tests/testGaussianISAM2
true
false
@@ -1495,46 +1507,6 @@
true
true
-
- make
- -j2
- install
- true
- true
- true
-
-
- make
- -j2
- clean
- true
- true
- true
-
-
- make
- -j2
- check
- true
- true
- true
-
-
- make
- -j2
- all
- true
- true
- true
-
-
- make
- -j2
- dist
- true
- true
- true
-
make
-j2
@@ -1631,6 +1603,54 @@
true
true
+
+ make
+ -j2
+ install
+ true
+ true
+ true
+
+
+ make
+ -j2
+ clean
+ true
+ true
+ true
+
+
+ make
+ -j2
+ check
+ true
+ true
+ true
+
+
+ make
+ -j2
+ all
+ true
+ true
+ true
+
+
+ make
+ -j2
+ dist
+ true
+ true
+ true
+
+
+ make
+ -j2
+ check
+ true
+ true
+ true
+
make
-j2
@@ -1663,14 +1683,6 @@
true
true
-
- make
- -j2
- check
- true
- true
- true
-
@@ -1993,6 +2005,14 @@
true
true
+
+ make
+ -j2
+ testGaussianFactor.run
+ true
+ true
+ true
+
make
-j2
@@ -2019,7 +2039,6 @@
make
-
tests/testBayesTree.run
true
false
@@ -2027,7 +2046,6 @@
make
-
testBinaryBayesNet.run
true
false
@@ -2075,7 +2093,6 @@
make
-
testSymbolicBayesNet.run
true
false
@@ -2083,7 +2100,6 @@
make
-
tests/testSymbolicFactor.run
true
false
@@ -2091,7 +2107,6 @@
make
-
testSymbolicFactorGraph.run
true
false
@@ -2107,20 +2122,11 @@
make
-
tests/testBayesTree
true
false
true
-
- make
- -j2
- testGaussianFactor.run
- true
- true
- true
-
make
-j2
@@ -2155,6 +2161,7 @@
make
+
testGraph.run
true
false
@@ -2250,6 +2257,7 @@
make
+
testInference.run
true
false
@@ -2257,6 +2265,7 @@
make
+
testGaussianBayesNet.run
true
false
@@ -2264,6 +2273,7 @@
make
+
testGaussianFactor.run
true
false
@@ -2271,6 +2281,7 @@
make
+
testJunctionTree.run
true
false
@@ -2278,6 +2289,7 @@
make
+
testSymbolicBayesNet.run
true
false
@@ -2285,6 +2297,7 @@
make
+
testSymbolicFactorGraph.run
true
false
@@ -2418,6 +2431,14 @@
true
true
+
+ make
+ -j2
+ check
+ true
+ true
+ true
+
make
-j2
@@ -2636,7 +2657,6 @@
make
-
testErrors.run
true
false
@@ -2996,6 +3016,7 @@
make
+
testSimulated2DOriented.run
true
false
@@ -3035,6 +3056,7 @@
make
+
testSimulated2D.run
true
false
@@ -3042,6 +3064,7 @@
make
+
testSimulated3D.run
true
false
@@ -3145,6 +3168,7 @@
make
+
tests/testGaussianISAM2
true
false
@@ -3166,46 +3190,6 @@
true
true
-
- make
- -j2
- install
- true
- true
- true
-
-
- make
- -j2
- clean
- true
- true
- true
-
-
- make
- -j2
- check
- true
- true
- true
-
-
- make
- -j2
- all
- true
- true
- true
-
-
- make
- -j2
- dist
- true
- true
- true
-
make
-j2
@@ -3302,6 +3286,54 @@
true
true
+
+ make
+ -j2
+ install
+ true
+ true
+ true
+
+
+ make
+ -j2
+ clean
+ true
+ true
+ true
+
+
+ make
+ -j2
+ check
+ true
+ true
+ true
+
+
+ make
+ -j2
+ all
+ true
+ true
+ true
+
+
+ make
+ -j2
+ dist
+ true
+ true
+ true
+
+
+ make
+ -j2
+ check
+ true
+ true
+ true
+
make
-j2
@@ -3334,14 +3366,6 @@
true
true
-
- make
- -j2
- check
- true
- true
- true
-
diff --git a/gtsam/inference/GenericSequentialSolver-inl.h b/gtsam/inference/GenericSequentialSolver-inl.h
index bd391bf46..8cdd6cb88 100644
--- a/gtsam/inference/GenericSequentialSolver-inl.h
+++ b/gtsam/inference/GenericSequentialSolver-inl.h
@@ -10,8 +10,8 @@
* -------------------------------------------------------------------------- */
/**
- * @file GenericSequentialSolver.cpp
- * @brief
+ * @file GenericSequentialSolver-inl.h
+ * @brief Implementation for generic sequential solver
* @author Richard Roberts
* @created Oct 21, 2010
*/
@@ -45,6 +45,24 @@ namespace gtsam {
EliminationTree::Create(*factors_, *structure_)) {
}
+ /* ************************************************************************* */
+ template
+ void GenericSequentialSolver::print(const std::string& s) const {
+ this->factors_->print(s+" factors:");
+ this->structure_->print(s+" structure:\n");
+ this->eliminationTree_->print(s+" etree:");
+ }
+
+ /* ************************************************************************* */
+ template
+ bool GenericSequentialSolver::equals(
+ const GenericSequentialSolver& expected, double tol) const {
+ if (!this->factors_->equals(*expected.factors_, tol)) return false;
+ if (!this->structure_->equals(*expected.structure_, tol)) return false;
+ if (!this->eliminationTree_->equals(*expected.eliminationTree_, tol)) return false;
+ return true;
+ }
+
/* ************************************************************************* */
template
void GenericSequentialSolver::replaceFactors(
diff --git a/gtsam/inference/GenericSequentialSolver.h b/gtsam/inference/GenericSequentialSolver.h
index 4f017e48a..c97a0e162 100644
--- a/gtsam/inference/GenericSequentialSolver.h
+++ b/gtsam/inference/GenericSequentialSolver.h
@@ -11,23 +11,23 @@
/**
* @file GenericSequentialSolver.h
- * @brief
+ * @brief generic sequential elimination
* @author Richard Roberts
* @created Oct 21, 2010
*/
#pragma once
+#include
#include
#include
-#include
#include
namespace gtsam {
template
- class GenericSequentialSolver {
+ class GenericSequentialSolver : public Testable > {
protected:
@@ -57,6 +57,12 @@ namespace gtsam {
const typename FactorGraph::shared_ptr& factorGraph,
const VariableIndex::shared_ptr& variableIndex);
+ /** Print to cout */
+ void print(const std::string& name = "GenericSequentialSolver: ") const;
+
+ /** Test whether is equal to another */
+ bool equals(const GenericSequentialSolver& other, double tol = 1e-9) const;
+
/**
* Replace the factor graph with a new one having the same structure. The
* This function can be used if the numerical part of the factors changes,
diff --git a/gtsam/inference/tests/testSymbolicFactorGraph.cpp b/gtsam/inference/tests/testSymbolicFactorGraph.cpp
index 8c6ef44ce..09bcd9e82 100644
--- a/gtsam/inference/tests/testSymbolicFactorGraph.cpp
+++ b/gtsam/inference/tests/testSymbolicFactorGraph.cpp
@@ -48,6 +48,20 @@ static const Index vl1 = 2;
// CHECK(assert_equal(expected, fg));
//}
+/* ************************************************************************* */
+TEST( SymbolicFactorGraph, SymbolicSequentialSolver )
+{
+ // create factor graph
+ SymbolicFactorGraph g;
+ g.push_factor(vx2, vx1, vl1);
+ g.push_factor(vx1, vl1);
+ g.push_factor(vx1);
+ // test solver is Testable
+ SymbolicSequentialSolver solver(g);
+// GTSAM_PRINT(solver);
+ EXPECT(assert_equal(solver,solver));
+}
+
/* ************************************************************************* */
TEST( SymbolicFactorGraph, constructFromBayesNet )
{