aGrUM  0.16.0
instanceBayesNet.h
Go to the documentation of this file.
1 
30 #ifndef GUM_INSTANCE_BAYESNET_H
31 #define GUM_INSTANCE_BAYESNET_H
32 
33 #include <list>
34 
35 #include <agrum/BN/IBayesNet.h>
36 
37 #include <agrum/PRM/PRM.h>
38 
39 namespace gum {
40  namespace prm {
41 
56  template < typename GUM_SCALAR >
57  class InstanceBayesNet : public IBayesNet< GUM_SCALAR > {
58  public:
59  // ========================================================================
61  // ========================================================================
63 
68 
71 
74 
76  virtual ~InstanceBayesNet();
77 
79  // ===========================================================================
81  // ===========================================================================
83 
85  virtual const Potential< GUM_SCALAR >& cpt(NodeId varId) const;
86 
88  virtual const VariableNodeMap& variableNodeMap() const;
89 
91  virtual const DiscreteVariable& variable(NodeId id) const;
92 
94  virtual NodeId nodeId(const DiscreteVariable& var) const;
95 
97  virtual NodeId idFromName(const std::string& name) const;
98 
100  virtual const DiscreteVariable&
101  variableFromName(const std::string& name) const;
102 
103  const NodeProperty< Size >& modalities() const;
104 
106  // ===========================================================================
108  // ===========================================================================
111  virtual std::string toDot() const;
112 
114  private:
118 
122  const PRMClassElement< GUM_SCALAR >& __get(NodeId id) const;
123 
124  const PRMClassElement< GUM_SCALAR >& __get(const std::string& name) const;
125 
128 
130 
131  void __init(const PRMInstance< GUM_SCALAR >& i);
132  };
133 
134 
135 #ifndef GUM_NO_EXTERN_TEMPLATE_CLASS
136  extern template class InstanceBayesNet< double >;
137 #endif
138 
139 
140  } /* namespace prm */
141 } /* namespace gum */
142 
144 
145 #endif /* GUM_INSTANCE_BAYESNET_H */
aGrUM&#39;s Potential is a multi-dimensional array with tensor operators.
Definition: potential.h:60
virtual NodeId idFromName(const std::string &name) const
See gum::IBaseBayesNet::idFromName().
virtual const Potential< GUM_SCALAR > & cpt(NodeId varId) const
See gum::IBaseBayesNet::cpt().
virtual const VariableNodeMap & variableNodeMap() const
See gum::IBaseBayesNet::variableNodeMap().
virtual const DiscreteVariable & variable(NodeId id) const
See gum::IBaseBayesNet::variable().
An PRMInstance is a Bayesian Network fragment defined by a Class and used in a PRMSystem.
Definition: PRMInstance.h:63
const PRMClassElement< GUM_SCALAR > & __get(NodeId id) const
Private getter with type checking in case the id is not a formal PRMAttribute<GUM_SCALAR>.
Container used to map discrete variables with nodes.
const NodeProperty< Size > & modalities() const
See gum::IBaseBayesNet::cpt().
virtual std::string toDot() const
Abstract class representing an element of PRM class.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
InstanceBayesNet(const PRMInstance< GUM_SCALAR > &i)
Default constructor.
Base class for discrete random variable.
virtual const DiscreteVariable & variableFromName(const std::string &name) const
See gum::IBaseBayesNet::variableFromName().
Class representing the minimal interface for Bayesian Network.
Definition: IBayesNet.h:62
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
Definition: agrum.h:25
HashTable< const DiscreteVariable *, const PRMAttribute< GUM_SCALAR > *> __varNodeMap
Mapping between DiscreteVariable and their NodeId.
The class for generic Hash Tables.
Definition: hashTable.h:679
NodeProperty< Size > __modalities
const PRMInstance< GUM_SCALAR > * __inst
The PRMClassElementContainer decorated by this.
virtual NodeId nodeId(const DiscreteVariable &var) const
See gum::IBaseBayesNet::nodeId().
InstanceBayesNet & operator=(const InstanceBayesNet &from)
Copy operator.
virtual ~InstanceBayesNet()
Destructor.
void __init(const PRMInstance< GUM_SCALAR > &i)
This class decorates an PRMInstance<GUM_SCALAR> as an IBaseBayesNet.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
Size NodeId
Type for node ids.
Definition: graphElements.h:98