21 #include <gtsam/inference/Conditional-inst.h> 39 public Conditional<DecisionTreeFactor, DiscreteConditional> {
64 const ADT& potentials);
77 const Signature::Table& table)
90 const std::string& spec)
139 const std::string& s =
"Discrete Conditional: ",
140 const KeyFormatter& formatter = DefaultKeyFormatter)
const override;
156 const std::string& s =
"Discrete Conditional: ",
157 const KeyFormatter& formatter = DefaultKeyFormatter)
const {
163 return ADT::operator()(values);
167 using DecisionTreeFactor::operator();
185 DecisionTreeFactor::shared_ptr likelihood(
189 DecisionTreeFactor::shared_ptr likelihood(
size_t frontal)
const;
199 size_t sample(
size_t parent_value)
const;
202 size_t sample()
const;
208 size_t argmax()
const;
218 std::vector<DiscreteValues> frontalAssignments()
const;
221 std::vector<DiscreteValues> allAssignments()
const;
229 const Names& names = {})
const override;
233 const Names& names = {})
const override;
246 using BaseConditional::operator();
268 bool forceComplete)
const;
271 #ifdef GTSAM_ENABLE_BOOST_SERIALIZATION 273 friend class boost::serialization::access;
274 template <
class Archive>
275 void serialize(Archive& ar,
const unsigned int ) {
276 ar& BOOST_SERIALIZATION_BASE_OBJECT_NVP(BaseFactor);
Definition: HybridValues.h:38
std::string markdown(const DiscreteValues &values, const KeyFormatter &keyFormatter=DefaultKeyFormatter, const DiscreteValues::Names &names={})
Free version of markdown.
Conditional< BaseFactor, This > BaseConditional
Typedef to our conditional base class.
Definition: DiscreteConditional.h:46
DiscreteConditional This
Typedef to this class.
Definition: DiscreteConditional.h:42
signatures for conditional densities
DiscreteConditional()
Default constructor needed for serialization.
Definition: DiscreteConditional.h:54
std::string serialize(const T &input)
serializes to a string
Definition: serialization.h:113
double evaluate(const DiscreteValues &values) const
Evaluate, just look up in AlgebraicDecisonTree.
Definition: DiscreteConditional.h:162
double logNormalizationConstant() const override
Definition: DiscreteConditional.h:261
Definition: Testable.h:152
Definition: DecisionTreeFactor.h:44
Definition: Ordering.h:37
DiscreteConditional(const DiscreteKey &key, const std::string &spec)
No-parent specialization; can also use DiscreteDistribution.
Definition: DiscreteConditional.h:94
Definition: Signature.h:54
Point2 operator*(double s, const Point2 &p)
multiply with scalar
Definition: Point2.h:52
double error(const DiscreteValues &values) const
Calculate error for DiscreteValues x, is -log(probability).
DiscreteConditional(const DiscreteKey &key, const DiscreteKeys &parents, const std::string &spec)
Definition: DiscreteConditional.h:89
void printSignature(const std::string &s="Discrete Conditional: ", const KeyFormatter &formatter=DefaultKeyFormatter) const
print index signature only
Definition: DiscreteConditional.h:155
Definition: Testable.h:112
double logProbability(const HybridValues &x) const override
< HybridValues version
Definition: DiscreteConditional.h:252
double logProbability(const DiscreteValues &x) const
Log-probability is just -error(x).
Definition: DiscreteConditional.h:150
GTSAM_EXPORT void print(const Matrix &A, const std::string &s, std::ostream &stream)
DiscreteConditional(const DiscreteKey &key, const DiscreteKeys &parents, const Signature::Table &table)
Definition: DiscreteConditional.h:76
Definition: Conditional.h:61
DecisionTreeFactor BaseFactor
Typedef to our factor base class.
Definition: DiscreteConditional.h:44
Definition: DiscreteValues.h:34
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
DiscreteValues::Names Names
Translation table from values to strings.
Definition: DiscreteFactor.h:102
Definition: chartTesting.h:28
Definition: DiscreteFactor.h:38
std::string html(const DiscreteValues &values, const KeyFormatter &keyFormatter=DefaultKeyFormatter, const DiscreteValues::Names &names={})
Free version of html.
std::pair< Key, size_t > DiscreteKey
Definition: DiscreteKey.h:38
std::shared_ptr< This > shared_ptr
shared_ptr to this class
Definition: DiscreteConditional.h:43
std::uint64_t Key
Integer nonlinear key type.
Definition: types.h:102
DiscreteKeys is a set of keys that can be assembled using the & operator.
Definition: DiscreteKey.h:41
Definition: DiscreteConditional.h:37