Added nrNodes() and checkConsistency() to BayesTree
parent
1e5f9c742d
commit
41b0b90376
2
gtsam.h
2
gtsam.h
|
@ -811,6 +811,7 @@ virtual class BayesTree {
|
||||||
//Standard Interface
|
//Standard Interface
|
||||||
//size_t findParentClique(const gtsam::IndexVector& parents) const;
|
//size_t findParentClique(const gtsam::IndexVector& parents) const;
|
||||||
size_t size();
|
size_t size();
|
||||||
|
size_t nrNodes() const;
|
||||||
void saveGraph(string s) const;
|
void saveGraph(string s) const;
|
||||||
CLIQUE* root() const;
|
CLIQUE* root() const;
|
||||||
void clear();
|
void clear();
|
||||||
|
@ -818,6 +819,7 @@ virtual class BayesTree {
|
||||||
void insert(const CLIQUE* subtree);
|
void insert(const CLIQUE* subtree);
|
||||||
size_t numCachedSeparatorMarginals() const;
|
size_t numCachedSeparatorMarginals() const;
|
||||||
CLIQUE* clique(size_t j) const;
|
CLIQUE* clique(size_t j) const;
|
||||||
|
bool checkConsistency() const;
|
||||||
};
|
};
|
||||||
|
|
||||||
template<CONDITIONAL>
|
template<CONDITIONAL>
|
||||||
|
|
|
@ -799,5 +799,24 @@ namespace gtsam {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ************************************************************************* */
|
||||||
|
template<class CONDITIONAL, class CLIQUE>
|
||||||
|
bool BayesTree<CONDITIONAL,CLIQUE>::checkConsistency() const {
|
||||||
|
// Verify all nodes are mapped to initialized cliques
|
||||||
|
bool result = true;
|
||||||
|
for (gtsam::Index idx=0; idx<nodes_.size(); ++idx) {
|
||||||
|
const sharedClique& clique = nodes_[idx];
|
||||||
|
// Bad clique check
|
||||||
|
if (!clique) {
|
||||||
|
if (result)
|
||||||
|
std::cout << "BayesTree consistency check failures:" << std::endl;
|
||||||
|
std::cout << " Null pointer clique entry for node " << idx << std::endl;
|
||||||
|
result = false;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
/// namespace gtsam
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
/* ************************************************************************* */
|
||||||
|
|
||||||
|
} // \namespace gtsam
|
||||||
|
|
|
@ -162,6 +162,9 @@ namespace gtsam {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** number of nodes */
|
||||||
|
inline size_t nrNodes() const { return nodes_.size(); }
|
||||||
|
|
||||||
/** Check if there are any cliques in the tree */
|
/** Check if there are any cliques in the tree */
|
||||||
inline bool empty() const {
|
inline bool empty() const {
|
||||||
return nodes_.empty();
|
return nodes_.empty();
|
||||||
|
@ -287,6 +290,13 @@ namespace gtsam {
|
||||||
return shared_ptr(new This(*this));
|
return shared_ptr(new This(*this));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Verify internal consistency of indexing
|
||||||
|
* Prints results to stdout
|
||||||
|
* @return true iff correct
|
||||||
|
*/
|
||||||
|
bool checkConsistency() const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
/** private helper method for saving the Tree to a text file in GraphViz format */
|
/** private helper method for saving the Tree to a text file in GraphViz format */
|
||||||
|
|
Loading…
Reference in New Issue