41 typedef boost::shared_ptr<This> shared_ptr;
42 typedef boost::weak_ptr<This> weak_ptr;
46 Base::FactorType::shared_ptr cachedFactor_;
47 Vector gradientContribution_;
48#ifdef USE_BROKEN_FAST_BACKSUBSTITUTE
60 cachedFactor_(other.cachedFactor_),
61 gradientContribution_(other.gradientContribution_) {}
66 Base::operator=(other);
67 cachedFactor_ = other.cachedFactor_;
68 gradientContribution_ = other.gradientContribution_;
73 void setEliminationResult(
74 const FactorGraphType::EliminationResult& eliminationResult);
77 Base::FactorType::shared_ptr&
cachedFactor() {
return cachedFactor_; }
85 bool equals(
const This& other,
double tol = 1e-9)
const;
88 void print(
const std::string& s =
"",
89 const KeyFormatter& formatter = DefaultKeyFormatter)
const override;
95 bool optimizeWildfireNode(
const KeySet& replaced,
double threshold,
103 void nnz_internal(
size_t* result)
const;
104 size_t calculate_nnz()
const;
121 void findAll(
const KeySet& markedMask,
KeySet* keys)
const;
128 bool isDirty(
const KeySet& replaced,
const KeySet& changed)
const;
140 bool valuesChanged(
const KeySet& replaced,
const Vector& originalValues,
144 void markFrontalsAsChanged(
KeySet* changed)
const;
147 void restoreFromOriginals(
const Vector& originalValues,
151 friend class boost::serialization::access;
152 template <
class ARCHIVE>
153 void serialize(ARCHIVE& ar,
const unsigned int ) {
154 ar& BOOST_SERIALIZATION_BASE_OBJECT_NVP(Base);
155 ar& BOOST_SERIALIZATION_NVP(cachedFactor_);
156 ar& BOOST_SERIALIZATION_NVP(gradientContribution_);
171size_t optimizeWildfire(
const ISAM2Clique::shared_ptr& root,
double threshold,
174size_t optimizeWildfireNonRecursive(
const ISAM2Clique::shared_ptr& root,
175 double threshold,
const KeySet& replaced,
Base class for cliques of a BayesTree.
Conditional Gaussian Base class.
Linear Factor Graph where all factors are Gaussians.
Chordal Bayes Net, the result of eliminating a factor graph.
Global functions in a separate testing namespace.
Definition chartTesting.h:28
size_t optimizeWildfire(const ISAM2Clique::shared_ptr &root, double threshold, const KeySet &keys, VectorValues *delta)
Optimize the BayesTree, starting from the root.
Definition ISAM2Clique.cpp:226
void print(const Matrix &A, const string &s, ostream &stream)
print without optional string, must specify cout yourself
Definition Matrix.cpp:156
std::function< std::string(Key)> KeyFormatter
Typedef for a function to format a key, i.e. to convert it to a string.
Definition Key.h:35
FastMap is a thin wrapper around std::map that uses the boost fast_pool_allocator instead of the defa...
Definition FastMap.h:38
Template to create a binary predicate.
Definition Testable.h:111
This is the base class for BayesTree cliques.
Definition BayesTreeCliqueBase.h:50
A GaussianConditional functions as the node in a Bayes network.
Definition GaussianConditional.h:43
boost::shared_ptr< This > shared_ptr
shared_ptr to this class
Definition GaussianConditional.h:46
VectorValues represents a collection of vector-valued variables associated each with a unique integer...
Definition VectorValues.h:74
Specialized Clique structure for ISAM2, incorporating caching and gradient contribution TODO: more do...
Definition ISAM2Clique.h:37
const Vector & gradientContribution() const
Access the gradient contribution.
Definition ISAM2Clique.h:80
ISAM2Clique(const ISAM2Clique &other)
Copy constructor, does not copy solution pointers as these are invalid in different trees.
Definition ISAM2Clique.h:58
ISAM2Clique & operator=(const ISAM2Clique &other)
Assignment operator, does not copy solution pointers as these are invalid in different trees.
Definition ISAM2Clique.h:65
Base::FactorType::shared_ptr & cachedFactor()
Access the cached factor.
Definition ISAM2Clique.h:77
ISAM2Clique()
Default constructor.
Definition ISAM2Clique.h:53
The Factor::error simply extracts the.