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>
106 return boost::make_shared<This>(FromMeanAndStddev(std::forward<Args>(args)...));
116 template<
typename ITERATOR>
125 const std::string& =
"GaussianConditional",
126 const KeyFormatter& formatter = DefaultKeyFormatter)
const override;
139 double logNormalizationConstant()
const override;
205 std::mt19937_64* rng)
const;
218 constABlock
R()
const {
return Ab_.range(0, nrFrontals()); }
221 constABlock
S()
const {
return Ab_.range(nrFrontals(), size()); }
227 const constBVector
d()
const {
return BaseFactor::getb(); }
240 inline double determinant()
const {
return exp(logDeterminant()); }
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
void print(const Matrix &A, const string &s, ostream &stream)
print without optional string, must specify cout yourself
Definition Matrix.cpp:156
std::uint64_t Key
Integer nonlinear key type.
Definition types.h:100
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
A manifold defines a space in which there is a notion of a linear tangent space that can be centered ...
Definition concepts.h:30
Template to create a binary predicate.
Definition Testable.h:111
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
Definition Conditional.h:64
KeyVector::const_iterator const_iterator
Const iterator over keys.
Definition Factor.h:80
A GaussianConditional functions as the node in a Bayes network.
Definition GaussianConditional.h:43
GaussianConditional This
Typedef to this class.
Definition GaussianConditional.h:45
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 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
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
A Gaussian factor in the squared-error form.
Definition JacobianFactor.h:91
boost::shared_ptr< This > shared_ptr
shared_ptr to this class
Definition JacobianFactor.h:96
VectorValues represents a collection of vector-valued variables associated each with a unique integer...
Definition VectorValues.h:74