aGrUM  0.16.0
groundedInference.h
Go to the documentation of this file.
1 
29 #ifndef GUM_GROUNDED_INFERENCE_H
30 #define GUM_GROUNDED_INFERENCE_H
31 
34 
35 namespace gum {
36  namespace prm {
46  template < typename GUM_SCALAR >
47  class GroundedInference : public PRMInference< GUM_SCALAR > {
48  public:
49  // ========================================================================
51  // ========================================================================
53 
56  const PRMSystem< GUM_SCALAR >& system);
57 
59  virtual ~GroundedInference();
60 
62  // ========================================================================
64  // ========================================================================
66 
75 
87 
88  virtual std::string name() const;
89 
91  protected:
92  // ========================================================================
94  // ========================================================================
96 
99  virtual void
100  _evidenceAdded(const typename PRMInference< GUM_SCALAR >::Chain& chain);
101 
104  virtual void
106 
111  virtual void
112  _marginal(const typename PRMInference< GUM_SCALAR >::Chain& chain,
114 
119  virtual void _joint(
120  const std::vector< typename PRMInference< GUM_SCALAR >::Chain >& queries,
122 
124  private:
126  GroundedInference(const GroundedInference& source);
127 
130 
133 
135  };
136 
137 
138 #ifndef GUM_NO_EXTERN_TEMPLATE_CLASS
139  extern template class GroundedInference< double >;
140 #endif
141 
142 
143  } /* namespace prm */
144 } /* namespace gum */
145 
147 
148 #endif /* GUM_GROUNDED_INFERENCE_H */
aGrUM&#39;s Potential is a multi-dimensional array with tensor operators.
Definition: potential.h:60
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
MarginalTargetedInference< GUM_SCALAR > * __inf
The bayesnet inference engine used by this class.
virtual void _evidenceRemoved(const typename PRMInference< GUM_SCALAR >::Chain &chain)
This method is called whenever an evidence is removed, but BEFORE any processing made by PRMInference...
virtual void _joint(const std::vector< typename PRMInference< GUM_SCALAR >::Chain > &queries, Potential< GUM_SCALAR > &j)
Generic method to compute the marginal of given element.
virtual std::string name() const
Returns the bayesnet inference engine used by this class.
virtual void _marginal(const typename PRMInference< GUM_SCALAR >::Chain &chain, Potential< GUM_SCALAR > &m)
Generic method to compute the marginal of given element.
<agrum/BN/inference/marginalTargetedInference.h>
Generic doubly linked lists.
Definition: list.h:372
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
Definition: agrum.h:25
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
virtual ~GroundedInference()
Destructor.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
A PRMSystem is a container of PRMInstance and describe a relational skeleton.
Definition: PRMObject.h:229
MarginalTargetedInference< GUM_SCALAR > & getBNInference()
Returns the bayesnet inference engine used by this class.
GroundedInference(const PRM< GUM_SCALAR > &prm, const PRMSystem< GUM_SCALAR > &system)
Default constructor.
std::pair< const PRMInstance< GUM_SCALAR > *, const PRMAttribute< GUM_SCALAR > *> Chain
Code alias.
Definition: PRMInference.h:57
GroundedInference & operator=(const GroundedInference &source)
Copy operator.
This abstract class is used as base class for all inference class on PRM<GUM_SCALAR>.
Definition: PRMInference.h:52
This class represents a Probabilistic Relational PRMSystem<GUM_SCALAR>.
Definition: PRM.h:66
virtual void _evidenceAdded(const typename PRMInference< GUM_SCALAR >::Chain &chain)
This method is called whenever an evidence is added, but AFTER any processing made by PRMInference...
List< const Potential< GUM_SCALAR > *> __obs
void setBNInference(MarginalTargetedInference< GUM_SCALAR > *bn_inf)
Defines the bayesnet inference engine used by this class.
<agrum/PRM/groundedInference.h>