gtsam  4.0.0
gtsam
InequalityFactorGraph.h
Go to the documentation of this file.
1 /* ----------------------------------------------------------------------------
2 
3  * GTSAM Copyright 2010, Georgia Tech Research Corporation,
4  * Atlanta, Georgia 30332-0415
5  * All Rights Reserved
6  * Authors: Frank Dellaert, et al. (see THANKS for the full author list)
7 
8  * See LICENSE for the license information
9 
10  * -------------------------------------------------------------------------- */
11 
19 #pragma once
20 
22 #include <gtsam/inference/FactorGraph-inst.h>
25 
26 namespace gtsam {
27 
32 class InequalityFactorGraph: public FactorGraph<LinearInequality> {
33 private:
35 
36 public:
37  typedef boost::shared_ptr<InequalityFactorGraph> shared_ptr;
38 
40  void print(const std::string& str, const KeyFormatter& keyFormatter =
41  DefaultKeyFormatter) const {
42  Base::print(str, keyFormatter);
43  }
44 
46  bool equals(const InequalityFactorGraph& other, double tol = 1e-9) const {
47  return Base::equals(other, tol);
48  }
49 
53  double error(const VectorValues& x) const {
54  for (const sharedFactor& factor : *this) {
55  if (factor)
56  if (factor->error(x) > 1e-7)
57  return std::numeric_limits<double>::infinity();
58  }
59  return 0.0;
60  }
61 };
62 
64 template<>
65 struct traits<InequalityFactorGraph> : public Testable<InequalityFactorGraph> {
66 };
67 
68 } // \ namespace gtsam
69 
void print(const std::string &s="FactorGraph", const KeyFormatter &formatter=DefaultKeyFormatter) const
print out graph
Definition: FactorGraph-inst.h:36
bool equals(const InequalityFactorGraph &other, double tol=1e-9) const
equals
Definition: InequalityFactorGraph.h:46
double error(const VectorValues &x) const
Compute error of a guess.
Definition: InequalityFactorGraph.h:53
Collection of all Linear Inequality constraints Ax-b <= 0 of a Programming problem as a Factor Graph.
Definition: InequalityFactorGraph.h:32
A helper that implements the traits interface for GTSAM types.
Definition: Testable.h:150
boost::function< std::string(Key)> KeyFormatter
Typedef for a function to format a key, i.e. to convert it to a string.
Definition: Key.h:33
This class represents a collection of vector-valued variables associated each with a unique integer i...
Definition: VectorValues.h:73
void print(const std::string &str, const KeyFormatter &keyFormatter=DefaultKeyFormatter) const
print
Definition: InequalityFactorGraph.h:40
A manifold defines a space in which there is a notion of a linear tangent space that can be centered ...
Definition: concepts.h:30
A factor graph is a bipartite graph with factor nodes connected to variable nodes.
Definition: BayesTree.h:32
boost::shared_ptr< LinearInequality > sharedFactor
Shared pointer to a factor.
Definition: FactorGraph.h:88
bool equals(const This &fg, double tol=1e-9) const
Check equality.
Definition: FactorGraph-inst.h:49
Global functions in a separate testing namespace.
Definition: chartTesting.h:28
Factor Graph Base Class.
LinearInequality derived from Base with constrained noise model.
Factor Graph Values.