22#include <boost/utility.hpp>
27#include <gtsam/inference/Conditional-inst.h>
42 public Conditional<JacobianFactor, GaussianConditional>
58 const SharedDiagonal& sigmas = SharedDiagonal());
63 const SharedDiagonal& sigmas = SharedDiagonal());
67 const Matrix& S,
Key parent2,
const Matrix& T,
68 const SharedDiagonal& sigmas = SharedDiagonal());
73 template<
typename TERMS>
75 size_t nrFrontals,
const Vector& d,
76 const SharedDiagonal& sigmas = SharedDiagonal());
82 template<
typename KEYS>
85 const SharedDiagonal& sigmas = SharedDiagonal());
93 Key parent,
const Vector& b,
99 const Matrix& A1,
Key parent1,
100 const Matrix& A2,
Key parent2,
101 const Vector& b,
double sigma);
104 template<
typename... Args>
116 template<
typename ITERATOR>
125 const std::string& =
"GaussianConditional",
126 const KeyFormatter& formatter = DefaultKeyFormatter)
const override;
205 std::mt19937_64* rng)
const;
253 double logDeterminant()
const;
263 double logProbability(
const HybridValues& x)
const override;
271 using Conditional::operator();
272 using JacobianFactor::error;
277#ifdef GTSAM_ALLOW_DEPRECATED_SINCE_V42
282 void GTSAM_DEPRECATED scaleFrontalsBySigma(
VectorValues& gy)
const;
288 friend class boost::serialization::access;
289 template<
class Archive>
290 void serialize(Archive & ar,
const unsigned int ) {
291 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(
BaseFactor);
Base class for conditional densities.
Conditional Gaussian Base class.
Included from all GTSAM files.
Global functions in a separate testing namespace.
Definition chartTesting.h:28
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
std::uint64_t Key
Integer nonlinear key type.
Definition types.h:100
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 helper that implements the traits interface for GTSAM types.
Definition Testable.h:151
This class stores a dense matrix and allows it to be accessed as a collection of vertical blocks.
Definition VerticalBlockMatrix.h:43
HybridValues represents a collection of DiscreteValues and VectorValues.
Definition HybridValues.h:38
size_t nrFrontals() const
Definition Conditional.h:110
Conditional()
Definition Conditional.h:85
KeyVector::const_iterator const_iterator
Const iterator over keys.
Definition Factor.h:80
size_t size() const
Definition Factor.h:157
A GaussianConditional functions as the node in a Bayes network.
Definition GaussianConditional.h:43
GaussianConditional This
Typedef to this class.
Definition GaussianConditional.h:45
double logDeterminant() const
Compute the log determinant of the R matrix.
Definition GaussianConditional.cpp:176
double logProbability(const VectorValues &x) const
Calculate log-probability log(evaluate(x)) for given values x: -error(x) - 0.5 * n*log(2*pi) - 0....
Definition GaussianConditional.cpp:199
double logNormalizationConstant() const override
normalization constant = 1.0 / sqrt((2*pi)^n*det(Sigma)) log = - 0.5 * n*log(2*pi) - 0....
Definition GaussianConditional.cpp:189
constABlock S(const_iterator it) const
Get a view of the S matrix for the variable pointed to by the given key iterator.
Definition GaussianConditional.h:224
constABlock R() const
Return a view of the upper-triangular R block of the conditional.
Definition GaussianConditional.h:218
JacobianFactor BaseFactor
Typedef to our factor base class.
Definition GaussianConditional.h:47
GaussianConditional()
default constructor needed for serialization
Definition GaussianConditional.h:54
Conditional< BaseFactor, This > BaseConditional
Typedef to our conditional base class.
Definition GaussianConditional.h:48
static GaussianConditional FromMeanAndStddev(Key key, const Vector &mu, double sigma)
Construct from mean mu and standard deviation sigma.
Definition GaussianConditional.cpp:69
bool equals(const GaussianFactor &cg, double tol=1e-9) const override
equals function
Definition GaussianConditional.cpp:136
double evaluate(const VectorValues &x) const
Calculate probability density for given values x: exp(logProbability(x)) == exp(-GaussianFactor::erro...
Definition GaussianConditional.cpp:208
static shared_ptr Combine(ITERATOR firstConditional, ITERATOR lastConditional)
Combine several GaussianConditional into a single dense GC.
double determinant() const
Compute the determinant of the R matrix.
Definition GaussianConditional.h:240
double operator()(const VectorValues &x) const
Evaluate probability density, sugar.
Definition GaussianConditional.h:158
static shared_ptr sharedMeanAndStddev(Args &&... args)
Create shared pointer by forwarding arguments to fromMeanAndStddev.
Definition GaussianConditional.h:105
constABlock S() const
Get a view of the parent blocks.
Definition GaussianConditional.h:221
void print(const std::string &="GaussianConditional", const KeyFormatter &formatter=DefaultKeyFormatter) const override
print
Definition GaussianConditional.cpp:104
boost::shared_ptr< This > shared_ptr
shared_ptr to this class
Definition GaussianConditional.h:46
const constBVector d() const
Get a view of the r.h.s.
Definition GaussianConditional.h:227
An abstract virtual base class for JacobianFactor and HessianFactor.
Definition GaussianFactor.h:39
const constBVector getb() const
Get a view of the r.h.s.
Definition JacobianFactor.h:297
JacobianFactor(const GaussianFactor &gf)
Convert from other GaussianFactor.
Definition JacobianFactor.cpp:60
boost::shared_ptr< This > shared_ptr
shared_ptr to this class
Definition JacobianFactor.h:96
constABlock getA(const_iterator variable) const
Get a view of the A matrix for the variable pointed to by the given key iterator.
Definition JacobianFactor.h:300
VectorValues represents a collection of vector-valued variables associated each with a unique integer...
Definition VectorValues.h:74