36 class GaussianFactorGraph;
39 class GaussianBayesNet;
40 class GaussianEliminationTree;
41 class GaussianBayesTree;
42 class GaussianJunctionTree;
54 static std::pair<std::shared_ptr<ConditionalType>, std::shared_ptr<FactorType> >
60 const FactorGraphType& graph,
61 std::optional<std::reference_wrapper<const VariableIndex>> variableIndex) {
99 template<
typename ITERATOR>
103 template<
class CONTAINER>
107 template<
class DERIVEDFACTOR>
114 bool equals(
const This& fg,
double tol = 1e-9)
const;
131 void add(
const Vector& b) {
136 const Vector& b,
const SharedDiagonal& model = SharedDiagonal()) {
141 Key key2,
const Matrix& A2,
142 const Vector& b,
const SharedDiagonal& model = SharedDiagonal()) {
147 Key key2,
const Matrix& A2,
148 Key key3,
const Matrix& A3,
149 const Vector& b,
const SharedDiagonal& model = SharedDiagonal()) {
153 template<
class TERMS>
154 void add(
const TERMS& terms,
const Vector &b,
const SharedDiagonal& model = SharedDiagonal()) {
165 std::map<Key, size_t> getKeyDimMap()
const;
207 std::vector<std::tuple<int, int, double> > sparseJacobian(
208 const Ordering& ordering,
size_t& nrows,
size_t& ncols)
const;
211 std::vector<std::tuple<int, int, double> > sparseJacobian()
const;
219 Matrix sparseJacobian_()
const;
228 Matrix augmentedJacobian(
const Ordering& ordering)
const;
237 Matrix augmentedJacobian()
const;
246 std::pair<Matrix,Vector> jacobian(
const Ordering& ordering)
const;
255 std::pair<Matrix,Vector> jacobian()
const;
268 Matrix augmentedHessian(
const Ordering& ordering)
const;
281 Matrix augmentedHessian()
const;
289 std::pair<Matrix,Vector> hessian(
const Ordering& ordering)
const;
297 std::pair<Matrix,Vector> hessian()
const;
303 virtual std::map<Key,Matrix> hessianBlockDiagonal()
const;
310 const Eliminate&
function = EliminationTraitsType::DefaultEliminate)
const;
317 const Eliminate&
function = EliminationTraitsType::DefaultEliminate)
const;
383 void multiplyHessianAdd(
double alpha,
const VectorValues& x,
390 void multiplyInPlace(
const VectorValues& x,
const Errors::iterator& e)
const;
394 const std::string& str =
"GaussianFactorGraph: ",
396 const std::function<
bool(
const Factor* ,
399 [](
const Factor*,
double,
size_t) {
return true; })
const;
403 #ifdef GTSAM_ENABLE_BOOST_SERIALIZATION 405 friend class boost::serialization::access;
406 template<
class ARCHIVE>
407 void serialize(ARCHIVE & ar,
const unsigned int ) {
408 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Base);
GaussianFactorGraph()
Definition: GaussianFactorGraph.h:88
GaussianFactorGraph FactorGraphType
Type of the factor graph (e.g. GaussianFactorGraph)
Definition: GaussianFactorGraph.h:48
Definition: GaussianBayesTree.h:49
std::string serialize(const T &input)
serializes to a string
Definition: serialization.h:113
friend bool operator==(const GaussianFactorGraph &lhs, const GaussianFactorGraph &rhs)
Check exact equality.
Definition: GaussianFactorGraph.h:119
Variable elimination algorithms for factor graphs.
GaussianEliminationTree EliminationTreeType
Type of elimination tree.
Definition: GaussianFactorGraph.h:51
Definition: GaussianEliminationTree.h:27
Definition: GaussianJunctionTree.h:38
Definition: Testable.h:152
bool isEqual(const FactorGraph &other) const
Check exact equality of the factor pointers. Useful for derived ==.
Definition: FactorGraph.h:138
A factor with a quadratic error function - a Gaussian.
Definition: BayesTree.h:34
Definition: Ordering.h:37
GaussianFactorGraph(const FactorGraph< DERIVEDFACTOR > &graph)
Definition: GaussianFactorGraph.h:108
virtual GaussianFactor::shared_ptr clone() const =0
static std::pair< std::shared_ptr< ConditionalType >, std::shared_ptr< FactorType > > DefaultEliminate(const FactorGraphType &factors, const Ordering &keys)
The default dense elimination function.
Definition: GaussianFactorGraph.h:56
Point2 operator*(double s, const Point2 &p)
multiply with scalar
Definition: Point2.h:52
Definition: VectorValues.h:74
Definition: GaussianFactor.h:38
static Ordering Colamd(const FACTOR_GRAPH &graph)
Definition: Ordering.h:100
GaussianFactorGraph(std::initializer_list< sharedFactor > factors)
Definition: GaussianFactorGraph.h:95
static Ordering DefaultOrderingFunc(const FactorGraphType &graph, std::optional< std::reference_wrapper< const VariableIndex >> variableIndex)
The default ordering generation function.
Definition: GaussianFactorGraph.h:59
Definition: GaussianConditional.h:38
Definition: Testable.h:112
void add(const GaussianFactor &factor)
Definition: GaussianFactorGraph.h:125
GTSAM_EXPORT Point3 optimize(const NonlinearFactorGraph &graph, const Values &values, Key landmarkKey)
GaussianJunctionTree JunctionTreeType
Definition: GaussianFactorGraph.h:53
GaussianFactorGraph(ITERATOR firstFactor, ITERATOR lastFactor)
Definition: GaussianFactorGraph.h:100
EliminateableFactorGraph< This > BaseEliminateable
Typedef to base elimination class.
Definition: GaussianFactorGraph.h:81
void add(Key key1, const Matrix &A1, Key key2, const Matrix &A2, Key key3, const Matrix &A3, const Vector &b, const SharedDiagonal &model=SharedDiagonal())
Definition: GaussianFactorGraph.h:146
std::function< EliminationResult(const FactorGraphType &, const Ordering &)> Eliminate
The function type that does a single dense elimination step on a subgraph.
Definition: EliminateableFactorGraph.h:88
Contains the HessianFactor class, a general quadratic factor.
std::shared_ptr< This > shared_ptr
shared_ptr to this class
Definition: GaussianFactorGraph.h:82
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
Definition: JacobianFactor.h:91
GaussianFactorGraph(const CONTAINER &factors)
Definition: GaussianFactorGraph.h:104
Definition: chartTesting.h:28
GaussianConditional ConditionalType
Type of conditionals from elimination.
Definition: GaussianFactorGraph.h:49
GTSAM_EXPORT bool hasConstraints(const GaussianFactorGraph &factors)
GaussianBayesTree BayesTreeType
Type of Bayes tree.
Definition: GaussianFactorGraph.h:52
void add(Key key1, const Matrix &A1, Key key2, const Matrix &A2, const Vector &b, const SharedDiagonal &model=SharedDiagonal())
Definition: GaussianFactorGraph.h:140
Definition: BayesTreeCliqueBase.h:33
GTSAM_EXPORT std::pair< std::shared_ptr< GaussianConditional >, std::shared_ptr< GaussianFactor > > EliminatePreferCholesky(const GaussianFactorGraph &factors, const Ordering &keys)
void add(Key key1, const Matrix &A1, const Vector &b, const SharedDiagonal &model=SharedDiagonal())
Definition: GaussianFactorGraph.h:135
GaussianBayesNet BayesNetType
Type of Bayes net from sequential elimination.
Definition: GaussianFactorGraph.h:50
GaussianFactor FactorType
Type of factors in factor graph.
Definition: GaussianFactorGraph.h:47
GaussianFactorGraph This
Typedef to this class.
Definition: GaussianFactorGraph.h:79
void add(const Vector &b)
Definition: GaussianFactorGraph.h:131
Definition: GaussianBayesNet.h:35
FactorGraph< GaussianFactor > Base
Typedef to base factor graph type.
Definition: GaussianFactorGraph.h:80
void add(const sharedFactor &factor)
Definition: GaussianFactorGraph.h:128
std::shared_ptr< GaussianFactor > sharedFactor
Shared pointer to a factor.
Definition: FactorGraph.h:105
void add(const TERMS &terms, const Vector &b, const SharedDiagonal &model=SharedDiagonal())
Definition: GaussianFactorGraph.h:154
Definition: EliminateableFactorGraph.h:55
KeySet Keys
Definition: GaussianFactorGraph.h:161
std::uint64_t Key
Integer nonlinear key type.
Definition: types.h:102
Definition: GaussianFactorGraph.h:73