gtsam 4.2.0
gtsam
DiscreteDistribution.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
18#pragma once
19
21
22#include <string>
23#include <vector>
24
25namespace gtsam {
26
33class GTSAM_EXPORT DiscreteDistribution : public DiscreteConditional {
34 public:
36
39
42
45 : Base(f.size(), f) {}
46
52 explicit DiscreteDistribution(const Signature& s) : Base(s) {}
53
60 DiscreteDistribution(const DiscreteKey& key, const std::vector<double>& spec)
61 : DiscreteDistribution(Signature(key, {}, Signature::Table{spec})) {}
62
69 DiscreteDistribution(const DiscreteKey& key, const std::string& spec)
70 : DiscreteDistribution(Signature(key, {}, spec)) {}
71
75
77 void print(
78 const std::string& s = "Discrete Prior: ",
79 const KeyFormatter& formatter = DefaultKeyFormatter) const override;
80
84
86 double operator()(size_t value) const;
87
89 // TODO(dellaert): does not play well with wrapper!
90 // using Base::operator();
91
93 std::vector<double> pmf() const;
94
96#ifdef GTSAM_ALLOW_DEPRECATED_SINCE_V42
99 size_t GTSAM_DEPRECATED solve() const { return Base::solve({}); }
101#endif
102};
103// DiscreteDistribution
104
105// traits
106template <>
107struct traits<DiscreteDistribution> : public Testable<DiscreteDistribution> {};
108
109} // namespace gtsam
std::pair< Key, size_t > DiscreteKey
Key type for discrete variables.
Definition: DiscreteKey.h:36
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::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
A helper that implements the traits interface for GTSAM types.
Definition: Testable.h:151
A discrete probabilistic factor.
Definition: DecisionTreeFactor.h:45
Discrete Conditional Density Derives from DecisionTreeFactor.
Definition: DiscreteConditional.h:40
A prior probability on a set of discrete variables.
Definition: DiscreteDistribution.h:33
DiscreteDistribution(const Signature &s)
Construct from a Signature.
Definition: DiscreteDistribution.h:52
DiscreteDistribution(const DiscreteKey &key, const std::vector< double > &spec)
Construct from key and a vector of floats specifying the probability mass function (PMF).
Definition: DiscreteDistribution.h:60
DiscreteDistribution(const DiscreteKey &key, const std::string &spec)
Construct from key and a string specifying the probability mass function (PMF).
Definition: DiscreteDistribution.h:69
DiscreteDistribution()
Default constructor needed for serialization.
Definition: DiscreteDistribution.h:41
DiscreteDistribution(const DecisionTreeFactor &f)
Constructor from factor.
Definition: DiscreteDistribution.h:44
Base class for discrete probabilistic factors The most general one is the derived DecisionTreeFactor.
Definition: DiscreteFactor.h:38
Signature for a discrete conditional density, used to construct conditionals.
Definition: Signature.h:54