Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion examples/SFMExample_bal_COLAMD_METIS.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@
#include <gtsam/nonlinear/NonlinearFactorGraph.h>
#include <gtsam/nonlinear/LevenbergMarquardtOptimizer.h>
#include <gtsam/inference/Symbol.h>
#include <gtsam/inference/Ordering.h>
#include <gtsam/base/timing.h>

#include <vector>
Expand Down
1 change: 0 additions & 1 deletion gtsam/base/tests/testKruskal.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
#include <gtsam/base/TestableAssertions.h>
#include <gtsam/base/kruskal.h>
#include <gtsam/geometry/Rot3.h>
#include <gtsam/inference/Ordering.h>
#include <gtsam/inference/Symbol.h>
#include <gtsam/linear/GaussianFactorGraph.h>
#include <gtsam/nonlinear/NonlinearFactorGraph.h>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
#include <gtsam/base/Testable.h>
#include <gtsam/base/TestableAssertions.h>
#include <gtsam/base/numericalDerivative.h>
#include <gtsam/inference/VariableIndex.h>
#include <gtsam/constrained/NonlinearEqualityConstraint.h>
#include <gtsam/nonlinear/factorTesting.h>
#include <gtsam/slam/BetweenFactor.h>
Expand Down
1 change: 1 addition & 0 deletions gtsam/discrete/DecisionTreeFactor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
#include <gtsam/discrete/DiscreteConditional.h>
#include <gtsam/discrete/TableFactor.h>
#include <gtsam/hybrid/HybridValues.h>
#include <gtsam/inference/Ordering.h>

#include <utility>

Expand Down
1 change: 0 additions & 1 deletion gtsam/discrete/DecisionTreeFactor.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
#include <gtsam/discrete/DiscreteFactor.h>
#include <gtsam/discrete/DiscreteKey.h>
#include <gtsam/discrete/Ring.h>
#include <gtsam/inference/Ordering.h>

#include <algorithm>
#include <map>
Expand Down
1 change: 1 addition & 0 deletions gtsam/discrete/DiscreteConditional.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
#include <gtsam/discrete/Ring.h>
#include <gtsam/discrete/Signature.h>
#include <gtsam/hybrid/HybridValues.h>
#include <gtsam/inference/Ordering.h>

#include <algorithm>
#include <cassert>
Expand Down
2 changes: 1 addition & 1 deletion gtsam/discrete/DiscreteFactor.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,14 @@
#include <gtsam/discrete/AlgebraicDecisionTree.h>
#include <gtsam/discrete/DiscreteValues.h>
#include <gtsam/inference/Factor.h>
#include <gtsam/inference/Ordering.h>

#include <string>
namespace gtsam {

class DecisionTreeFactor;
class DiscreteConditional;
class HybridValues;
class Ordering;

/**
* Base class for discrete probabilistic factors
Expand Down
1 change: 0 additions & 1 deletion gtsam/discrete/DiscreteFactorGraph.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@
#include <gtsam/discrete/DiscreteLookupDAG.h>
#include <gtsam/inference/EliminateableFactorGraph.h>
#include <gtsam/inference/FactorGraph.h>
#include <gtsam/inference/Ordering.h>
#include <gtsam/base/FastSet.h>

#include <string>
Expand Down
1 change: 1 addition & 0 deletions gtsam/discrete/TableFactor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
#include <gtsam/discrete/DiscreteConditional.h>
#include <gtsam/discrete/TableFactor.h>
#include <gtsam/hybrid/HybridValues.h>
#include <gtsam/inference/Ordering.h>

#include <utility>

Expand Down
1 change: 0 additions & 1 deletion gtsam/discrete/TableFactor.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
#include <gtsam/discrete/DiscreteFactor.h>
#include <gtsam/discrete/DiscreteKey.h>
#include <gtsam/discrete/Ring.h>
#include <gtsam/inference/Ordering.h>

#include <Eigen/Sparse>
#include <algorithm>
Expand Down
1 change: 0 additions & 1 deletion gtsam/hybrid/HybridGaussianFactorGraph.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
#include <gtsam/hybrid/HybridGaussianFactor.h>
#include <gtsam/inference/EliminateableFactorGraph.h>
#include <gtsam/inference/FactorGraph.h>
#include <gtsam/inference/Ordering.h>
#include <gtsam/linear/GaussianFactor.h>
#include <gtsam/linear/VectorValues.h>

Expand Down
1 change: 0 additions & 1 deletion gtsam/hybrid/HybridNonlinearISAM.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
#include <gtsam/hybrid/HybridGaussianFactorGraph.h>
#include <gtsam/hybrid/HybridNonlinearFactor.h>
#include <gtsam/hybrid/HybridNonlinearISAM.h>
#include <gtsam/inference/Ordering.h>

#include <iostream>

Expand Down
1 change: 0 additions & 1 deletion gtsam/hybrid/tests/testHybridGaussianFactorGraph.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@
#include <gtsam/hybrid/HybridValues.h>
#include <gtsam/inference/BayesNet.h>
#include <gtsam/inference/Key.h>
#include <gtsam/inference/Ordering.h>
#include <gtsam/inference/Symbol.h>
#include <gtsam/linear/JacobianFactor.h>

Expand Down
1 change: 1 addition & 0 deletions gtsam/inference/BayesTreeCliqueBase-inst.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

#include <gtsam/inference/BayesTreeCliqueBase.h>
#include <gtsam/inference/FactorGraph-inst.h>
#include <gtsam/inference/Ordering.h>
#include <gtsam/base/timing.h>

namespace gtsam {
Expand Down
1 change: 0 additions & 1 deletion gtsam/inference/BayesTreeCliqueBase.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
#pragma once

#include <gtsam/inference/Key.h>
#include <gtsam/inference/Ordering.h>
#include <gtsam/base/types.h>
#include <gtsam/base/FastVector.h>

Expand Down
1 change: 0 additions & 1 deletion gtsam/inference/ClusterTree-inst.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@

#include <gtsam/inference/ClusterTree.h>
#include <gtsam/inference/BayesTree.h>
#include <gtsam/inference/Ordering.h>
#include <gtsam/base/timing.h>
#include <gtsam/base/treeTraversal-inst.h>

Expand Down
10 changes: 6 additions & 4 deletions gtsam/inference/MetisIndex-inl.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,16 @@

#pragma once

#include <gtsam/base/timing.h>

#include <map>
#include <vector>

namespace gtsam {

/* ************************************************************************* */
template<class FACTORGRAPH>
void MetisIndex::augment(const FACTORGRAPH& factors) {
template<class FactorGraphType>
void MetisIndex::augment(const FactorGraphType& factors) {
std::map<int32_t, std::set<int32_t> > iAdjMap; // Stores a set of keys that are adjacent to key x, with adjMap.first
std::map<int32_t, std::set<int32_t> >::iterator iAdjMapIt;
std::set<Key> keySet;
Expand All @@ -37,8 +39,8 @@ void MetisIndex::augment(const FACTORGRAPH& factors) {
// and including adjncy[xadj[i + 1] - 1]).
int32_t keyCounter = 0;

// First: Record a copy of each key inside the factorgraph and create a
// key to integer mapping. This is referenced during the adjaceny step
// First: Record a copy of each key inside the factor graph and create a
// key to integer mapping. This is referenced during the adjacency step
for (size_t i = 0; i < factors.size(); i++) {
if (factors[i]) {
for(const Key& key: *factors[i]) {
Expand Down
77 changes: 39 additions & 38 deletions gtsam/inference/MetisIndex.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,23 +8,23 @@
* See LICENSE for the license information
* -------------------------------------------------------------------------- */

/**
* @file MetisIndex.h
* @author Andrew Melim
* @date Oct. 10, 2014
*/
/**
* @file MetisIndex.h
* @author Andrew Melim
* @date Oct. 10, 2014
*/

#pragma once


#include <gtsam/inference/Key.h>
#include <gtsam/inference/FactorGraph.h>
#include <gtsam/base/types.h>
#include <gtsam/base/timing.h>

#include <vector>
#include <map>
#include <unordered_map>
#include <iostream>

namespace gtsam {
/**
Expand All @@ -50,59 +50,60 @@ class GTSAM_EXPORT MetisIndex {
};

std::vector<int32_t> xadj_; // Index of node's adjacency list in adj
std::vector<int32_t> adj_; // Stores ajacency lists of all nodes, appended into a single vector
std::vector<int32_t> adj_; // Stores adjacency lists of all nodes, appended into a single vector
BiMap intKeyBMap_; // Stores Key <-> integer value relationship
size_t nKeys_;

public:
/// @name Standard Constructors
/// @name Constructors
/// @{

/** Default constructor, creates empty MetisIndex */
MetisIndex() :
nKeys_(0) {
}
MetisIndex() : nKeys_(0) {}

template<class FACTORGRAPH>
MetisIndex(const FACTORGRAPH& factorGraph) :
nKeys_(0) {
template<class FactorGraphType>
MetisIndex(const FactorGraphType& factorGraph) :
nKeys_(0) {
augment(factorGraph);
}

~MetisIndex() {
}
~MetisIndex() {}

/// @}
/// @name Advanced Interface
/// @name Standard API
/// @{

/**
* Augment the variable index with new factors. This can be used when
* solving problems incrementally.
*/
template<class FACTORGRAPH>
void augment(const FACTORGRAPH& factors);

const std::vector<int32_t>& xadj() const {
return xadj_;
}
const std::vector<int32_t>& adj() const {
return adj_;
}
size_t nValues() const {
return nKeys_;
}
Key intToKey(int32_t value) const {
#ifndef NDEBUG
if (value < 0) {
throw;
}
#endif
return intKeyBMap_.right.find(value)->second;
template<class FactorGraphType>
void augment(const FactorGraphType& factors);

const std::vector<int32_t>& xadj() const { return xadj_; }
const std::vector<int32_t>& adj() const { return adj_; }
size_t nValues() const { return nKeys_; }

Key intToKey(int32_t value) const { return intKeyBMap_.right.find(value)->second; }

/// @}
/// @name Testable
/// @{

/// print to std::cout
void print(const std::string& str = "MetisIndex:") const {
std::cout << str << "\nxadj_: ";
for (const auto& x : xadj_) std::cout << x << " ";
std::cout << "\nadj_: ";
for (const auto& x : adj_) std::cout << x << " ";
std::cout << "\nKey <-> Index: ";
for (const auto& [i, k] : intKeyBMap_.left) std::cout << i << " <-> " << k << ", ";
std::cout << std::endl;
}

/// @}
};

} // \ namesace gtsam
} // \ namespace gtsam

#include <gtsam/inference/MetisIndex-inl.h>
Loading
Loading