linear algorithms

release/4.3a0
kartik arcot 2023-01-13 10:36:29 -08:00
parent 0d38db3941
commit d05d2af6b5
1 changed files with 4 additions and 3 deletions

View File

@ -21,9 +21,10 @@
#include <gtsam/linear/GaussianConditional.h> #include <gtsam/linear/GaussianConditional.h>
#include <gtsam/base/treeTraversal-inst.h> #include <gtsam/base/treeTraversal-inst.h>
#include <boost/optional.hpp>
#include <boost/shared_ptr.hpp> #include <boost/shared_ptr.hpp>
#include <optional>
namespace gtsam namespace gtsam
{ {
namespace internal namespace internal
@ -32,7 +33,7 @@ namespace gtsam
{ {
/* ************************************************************************* */ /* ************************************************************************* */
struct OptimizeData { struct OptimizeData {
boost::optional<OptimizeData&> parentData; OptimizeData* parentData = nullptr;
FastMap<Key, VectorValues::const_iterator> cliqueResults; FastMap<Key, VectorValues::const_iterator> cliqueResults;
//VectorValues ancestorResults; //VectorValues ancestorResults;
//VectorValues results; //VectorValues results;
@ -55,7 +56,7 @@ namespace gtsam
OptimizeData& parentData) OptimizeData& parentData)
{ {
OptimizeData myData; OptimizeData myData;
myData.parentData = parentData; myData.parentData = &parentData;
// Take any ancestor results we'll need // Take any ancestor results we'll need
for(Key parent: clique->conditional_->parents()) for(Key parent: clique->conditional_->parents())
myData.cliqueResults.emplace(parent, myData.parentData->cliqueResults.at(parent)); myData.cliqueResults.emplace(parent, myData.parentData->cliqueResults.at(parent));