25 #include <gtsam/inference/Conditional-inst.h> 40 public Conditional<JacobianFactor, GaussianConditional>
56 const SharedDiagonal& sigmas = SharedDiagonal());
61 const SharedDiagonal& sigmas = SharedDiagonal());
65 const Matrix& S,
Key parent2,
const Matrix& T,
66 const SharedDiagonal& sigmas = SharedDiagonal());
71 template<
typename TERMS>
73 size_t nrFrontals,
const Vector& d,
74 const SharedDiagonal& sigmas = SharedDiagonal());
80 template<
typename KEYS>
83 const SharedDiagonal& sigmas = SharedDiagonal());
91 Key parent,
const Vector& b,
97 const Matrix& A1,
Key parent1,
98 const Matrix& A2,
Key parent2,
99 const Vector& b,
double sigma);
102 template<
typename... Args>
104 return std::make_shared<This>(FromMeanAndStddev(std::forward<Args>(args)...));
114 template<
typename ITERATOR>
115 static shared_ptr Combine(ITERATOR firstConditional, ITERATOR lastConditional);
123 const std::string& =
"GaussianConditional",
124 const KeyFormatter& formatter = DefaultKeyFormatter)
const override;
137 double logNormalizationConstant()
const override;
203 std::mt19937_64* rng)
const;
216 constABlock
R()
const {
return Ab_.range(0, nrFrontals()); }
219 constABlock
S()
const {
return Ab_.range(nrFrontals(), size()); }
225 const constBVector
d()
const {
return BaseFactor::getb(); }
238 inline double determinant()
const {
return exp(logDeterminant()); }
251 double logDeterminant()
const;
261 double logProbability(
const HybridValues& x)
const override;
269 using Conditional::operator();
270 using JacobianFactor::error;
275 #ifdef GTSAM_ENABLE_BOOST_SERIALIZATION 277 friend class boost::serialization::access;
278 template<
class Archive>
279 void serialize(Archive & ar,
const unsigned int ) {
280 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(BaseFactor);
281 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(BaseConditional);
Definition: HybridValues.h:38
std::shared_ptr< This > shared_ptr
shared_ptr to this class
Definition: GaussianConditional.h:44
Base class for conditional densities.
Conditional< BaseFactor, This > BaseConditional
Typedef to our conditional base class.
Definition: GaussianConditional.h:46
std::string serialize(const T &input)
serializes to a string
Definition: serialization.h:113
Definition: VerticalBlockMatrix.h:42
Definition: Testable.h:152
JacobianFactor BaseFactor
Typedef to our factor base class.
Definition: GaussianConditional.h:45
double determinant() const
Compute the determinant of the R matrix.
Definition: GaussianConditional.h:238
Conditional Gaussian Base class.
const constBVector d() const
Definition: GaussianConditional.h:225
GaussianConditional()
Definition: GaussianConditional.h:52
Definition: VectorValues.h:74
constABlock S() const
Definition: GaussianConditional.h:219
constABlock R() const
Definition: GaussianConditional.h:216
Included from all GTSAM files.
Definition: GaussianFactor.h:38
Definition: GaussianConditional.h:38
Definition: Testable.h:112
GaussianConditional This
Typedef to this class.
Definition: GaussianConditional.h:43
GTSAM_EXPORT void print(const Matrix &A, const std::string &s, std::ostream &stream)
Definition: Conditional.h:61
std::shared_ptr< This > shared_ptr
shared_ptr to this class
Definition: JacobianFactor.h:97
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
static shared_ptr sharedMeanAndStddev(Args &&... args)
Create shared pointer by forwarding arguments to fromMeanAndStddev.
Definition: GaussianConditional.h:103
Definition: JacobianFactor.h:91
Definition: chartTesting.h:28
constABlock S(const_iterator it) const
Definition: GaussianConditional.h:222
double operator()(const VectorValues &x) const
Evaluate probability density, sugar.
Definition: GaussianConditional.h:156
KeyVector::const_iterator const_iterator
Const iterator over keys.
Definition: Factor.h:82
std::uint64_t Key
Integer nonlinear key type.
Definition: types.h:102