diff --git a/.cproject b/.cproject
index 81bf59187..316c5c30c 100644
--- a/.cproject
+++ b/.cproject
@@ -309,14 +309,6 @@
true
true
-
- make
- -j2
- testGaussianFactor.run
- true
- true
- true
-
make
-j2
@@ -343,6 +335,7 @@
make
+
tests/testBayesTree.run
true
false
@@ -350,6 +343,7 @@
make
+
testBinaryBayesNet.run
true
false
@@ -397,6 +391,7 @@
make
+
testSymbolicBayesNet.run
true
false
@@ -404,6 +399,7 @@
make
+
tests/testSymbolicFactor.run
true
false
@@ -411,6 +407,7 @@
make
+
testSymbolicFactorGraph.run
true
false
@@ -426,11 +423,20 @@
make
+
tests/testBayesTree
true
false
true
+
+ make
+ -j2
+ testGaussianFactor.run
+ true
+ true
+ true
+
make
-j5
@@ -519,22 +525,6 @@
false
true
-
- make
- -j2
- all
- true
- true
- true
-
-
- make
- -j2
- clean
- true
- true
- true
-
make
-j2
@@ -551,6 +541,22 @@
true
true
+
+ make
+ -j2
+ all
+ true
+ true
+ true
+
+
+ make
+ -j2
+ clean
+ true
+ true
+ true
+
make
-j2
@@ -575,26 +581,26 @@
true
true
-
+
make
- -j5
- testValues.run
+ -j2
+ all
true
true
true
-
+
make
- -j5
- testOrdering.run
+ -j2
+ check
true
true
true
-
+
make
- -j5
- testKey.run
+ -j2
+ clean
true
true
true
@@ -679,26 +685,26 @@
true
true
-
+
make
- -j2
- all
+ -j5
+ testValues.run
true
true
true
-
+
make
- -j2
- check
+ -j5
+ testOrdering.run
true
true
true
-
+
make
- -j2
- clean
+ -j5
+ testKey.run
true
true
true
@@ -969,6 +975,7 @@
make
+
testGraph.run
true
false
@@ -976,6 +983,7 @@
make
+
testJunctionTree.run
true
false
@@ -983,6 +991,7 @@
make
+
testSymbolicBayesNetB.run
true
false
@@ -1118,6 +1127,7 @@
make
+
testErrors.run
true
false
@@ -1163,14 +1173,6 @@
true
true
-
- make
- -j2
- testGaussianFactor.run
- true
- true
- true
-
make
-j2
@@ -1251,6 +1253,14 @@
true
true
+
+ make
+ -j2
+ testGaussianFactor.run
+ true
+ true
+ true
+
make
-j2
@@ -1581,7 +1591,6 @@
make
-
testSimulated2DOriented.run
true
false
@@ -1621,7 +1630,6 @@
make
-
testSimulated2D.run
true
false
@@ -1629,7 +1637,6 @@
make
-
testSimulated3D.run
true
false
@@ -1821,7 +1828,6 @@
make
-
tests/testGaussianISAM2
true
false
@@ -1843,102 +1849,6 @@
true
true
-
- make
- -j2
- testRot3.run
- true
- true
- true
-
-
- make
- -j2
- testRot2.run
- true
- true
- true
-
-
- make
- -j2
- testPose3.run
- true
- true
- true
-
-
- make
- -j2
- timeRot3.run
- true
- true
- true
-
-
- make
- -j2
- testPose2.run
- true
- true
- true
-
-
- make
- -j2
- testCal3_S2.run
- true
- true
- true
-
-
- make
- -j2
- testSimpleCamera.run
- true
- true
- true
-
-
- make
- -j2
- testHomography2.run
- true
- true
- true
-
-
- make
- -j2
- testCalibratedCamera.run
- true
- true
- true
-
-
- make
- -j2
- check
- true
- true
- true
-
-
- make
- -j2
- clean
- true
- true
- true
-
-
- make
- -j2
- testPoint2.run
- true
- true
- true
-
make
-j1
@@ -1955,7 +1865,7 @@
true
true
-
+
make
-j1
check
@@ -2140,6 +2050,7 @@
cpack
+
-G DEB
true
false
@@ -2147,6 +2058,7 @@
cpack
+
-G RPM
true
false
@@ -2154,6 +2066,7 @@
cpack
+
-G TGZ
true
false
@@ -2161,6 +2074,7 @@
cpack
+
--config CPackSourceConfig.cmake
true
false
@@ -2286,34 +2200,106 @@
true
true
-
+
make
-j5
- testSpirit.run
+ check
true
true
true
-
+
make
- -j5
- testWrap.run
+ -j2
+ testRot3.run
true
true
true
-
+
make
- -j5
- check.wrap
+ -j2
+ testRot2.run
true
true
true
-
+
make
- -j5
- wrap
+ -j2
+ testPose3.run
+ true
+ true
+ true
+
+
+ make
+ -j2
+ timeRot3.run
+ true
+ true
+ true
+
+
+ make
+ -j2
+ testPose2.run
+ true
+ true
+ true
+
+
+ make
+ -j2
+ testCal3_S2.run
+ true
+ true
+ true
+
+
+ make
+ -j2
+ testSimpleCamera.run
+ true
+ true
+ true
+
+
+ make
+ -j2
+ testHomography2.run
+ true
+ true
+ true
+
+
+ make
+ -j2
+ testCalibratedCamera.run
+ true
+ true
+ true
+
+
+ make
+ -j2
+ check
+ true
+ true
+ true
+
+
+ make
+ -j2
+ clean
+ true
+ true
+ true
+
+
+ make
+ -j2
+ testPoint2.run
true
true
true
@@ -2357,6 +2343,38 @@
false
true
+
+ make
+ -j5
+ testSpirit.run
+ true
+ true
+ true
+
+
+ make
+ -j5
+ testWrap.run
+ true
+ true
+ true
+
+
+ make
+ -j5
+ check.wrap
+ true
+ true
+ true
+
+
+ make
+ -j5
+ wrap
+ true
+ true
+ true
+
diff --git a/gtsam/inference/BayesTree.h b/gtsam/inference/BayesTree.h
index 8b6de3fe6..6cd7c67f1 100644
--- a/gtsam/inference/BayesTree.h
+++ b/gtsam/inference/BayesTree.h
@@ -198,6 +198,9 @@ namespace gtsam {
/** Access the root clique (non-const version) */
sharedClique& root() { return root_; }
+ /** Access the nodes (non-cost version) */
+ Nodes& nodes() { return nodes_; }
+
/** Remove all nodes */
void clear();
diff --git a/gtsam/linear/GaussianISAM.h b/gtsam/linear/GaussianISAM.h
index e4ac62704..dbb6afb7e 100644
--- a/gtsam/linear/GaussianISAM.h
+++ b/gtsam/linear/GaussianISAM.h
@@ -48,20 +48,8 @@ public:
/** Override update_internal to also keep track of variable dimensions. */
template
void update_internal(const FACTORGRAPH& newFactors, Cliques& orphans) {
-
- Super::update_internal(newFactors, orphans, &EliminateQR);
-
- // update dimensions
- BOOST_FOREACH(const typename FACTORGRAPH::sharedFactor& factor, newFactors) {
- for(typename FACTORGRAPH::FactorType::const_iterator key = factor->begin(); key != factor->end(); ++key) {
- if(*key >= dims_.size())
- dims_.resize(*key + 1);
- if(dims_[*key] == 0)
- dims_[*key] = factor->getDim(key);
- else
- assert(dims_[*key] == factor->getDim(key));
- }
- }
+ Super::update_internal(newFactors, orphans, &EliminateQR); // TODO: why does this force QR?
+ update_dimensions(newFactors);
}
template
@@ -70,6 +58,20 @@ public:
this->update_internal(newFactors, orphans);
}
+ template
+ inline void update_dimensions(const FACTORGRAPH& newFactors) {
+ BOOST_FOREACH(const typename FACTORGRAPH::sharedFactor& factor, newFactors) {
+ for(typename FACTORGRAPH::FactorType::const_iterator key = factor->begin(); key != factor->end(); ++key) {
+ if(*key >= dims_.size())
+ dims_.resize(*key + 1);
+ if(dims_[*key] == 0)
+ dims_[*key] = factor->getDim(key);
+ else
+ assert(dims_[*key] == factor->getDim(key));
+ }
+ }
+ }
+
void clear() {
Super::clear();
dims_.clear();