aGrUM 2.3.2
a C++ library for (probabilistic) graphical models
gum::prm::StructuredBayesBall< GUM_SCALAR > Class Template Reference

<agrum/PRM/structuredBayesBall.h> More...

#include <structuredBayesBall.h>

Collaboration diagram for gum::prm::StructuredBayesBall< GUM_SCALAR >:

Public Member Functions

void compute (const PRMInstance< GUM_SCALAR > *i, NodeId n)
 Compute the set or requisite nodes for each required instance given the current set of observations. Discard previous computations.
void compute (const PRMInstance< GUM_SCALAR > &i, NodeId n)
 Compute the set or requisite nodes for each required instance given the current set of observations. Discard previous computations.
bool _isHardEvidence_ (const PRMInstance< GUM_SCALAR > *i, NodeId n)
 Returns true if there is a hard evidence on i->get(n).
Constructors & destructor.
 StructuredBayesBall (const PRMInference< GUM_SCALAR > &inference)
 Default Constructor.
 ~StructuredBayesBall ()
 Destructor.
Getters and Setters.
const std::string & key (const PRMInstance< GUM_SCALAR > *i) const
 Returns a unique key w.r.t. d-separation for i.
const std::string & key (const PRMInstance< GUM_SCALAR > &i) const
 Returns a unique key w.r.t. d-separation for i.
const Set< NodeId > & requisiteNodes (const PRMInstance< GUM_SCALAR > *i) const
 Returns the set of requisite nodes w.r.t. d-separation for i.
const Set< NodeId > & requisiteNodes (const PRMInstance< GUM_SCALAR > &i) const
 Returns the set of requisite nodes w.r.t. d-separation for i.
Size occurrence (const std::string &key) const
 Returns the number of occurrence of the given key, which is the number of PRMInstance<GUM_SCALAR> sharing the same set of requisite nodes.
float liftRatio () const
 Returns the ratio between the total number of instances and the number of instances with the same configuration.
bool exists (const PRMInstance< GUM_SCALAR > *i) const
 Returns true if i has requisite nodes.
bool exists (const PRMInstance< GUM_SCALAR > &i) const
 Returns true if i has requisite nodes.

Private Types

using MarkMap = HashTable< NodeId, std::pair< bool, bool > >
 Code alias.
using InstanceMap = HashTable< const PRMInstance< GUM_SCALAR >*, MarkMap* >

Private Member Functions

 StructuredBayesBall (const StructuredBayesBall &source)
 Copy constructor.
StructuredBayesBalloperator= (const StructuredBayesBall &source)
 Copy operator.
std::pair< bool, bool > & _getMark_ (InstanceMap &marks, const PRMInstance< GUM_SCALAR > *i, NodeId n)
 Code alias.
const PRMSlotChain< GUM_SCALAR > & _getSC_ (const PRMInstance< GUM_SCALAR > *i, NodeId n)
 Code alias.
void _clean_ ()
 Cleans this before a new computation.
void _compute_ (const PRMInstance< GUM_SCALAR > *i, NodeId n)
 The real compute method.
void _fromChild_ (const PRMInstance< GUM_SCALAR > *i, NodeId n, InstanceMap &marks)
 When the ball is received on i->get(n) from a child.
void _fromParent_ (const PRMInstance< GUM_SCALAR > *i, NodeId n, InstanceMap &marks)
 When the ball is receive on i->get(n) from a parent.
void _fillMaps_ (InstanceMap &marks)
 Fill keyMap and reqMap.
std::string _buildHashKey_ (const PRMInstance< GUM_SCALAR > *i, Set< NodeId > &req_nodes)
 Builds the HashKey for the given instance and requisite nodes set.

Private Attributes

const PRMInference< GUM_SCALAR > * _inf_
 The PRM at which model belongs.
HashTable< const PRMInstance< GUM_SCALAR > *, std::pair< std::string, Set< NodeId > * > > _keyMap_
 Associate an PRMInstance<GUM_SCALAR> with a unique key w.r.t. d-separation and the set of requisite nodes deduced from d-separation analysis.
HashTable< std::string, std::pair< Set< NodeId > *, Size > > _reqMap_
 Associate a Key with the set of requisite nodes associated with it. The Size value is the number of instance with the same key.

Detailed Description

template<typename GUM_SCALAR>
class gum::prm::StructuredBayesBall< GUM_SCALAR >

<agrum/PRM/structuredBayesBall.h>

This class represent the BayesBall algorithm applied on PRMs.

Definition at line 67 of file structuredBayesBall.h.

Member Typedef Documentation

◆ InstanceMap

template<typename GUM_SCALAR>
using gum::prm::StructuredBayesBall< GUM_SCALAR >::InstanceMap = HashTable< const PRMInstance< GUM_SCALAR >*, MarkMap* >
private

Definition at line 136 of file structuredBayesBall.h.

◆ MarkMap

template<typename GUM_SCALAR>
using gum::prm::StructuredBayesBall< GUM_SCALAR >::MarkMap = HashTable< NodeId, std::pair< bool, bool > >
private

Code alias.

Definition at line 135 of file structuredBayesBall.h.

Constructor & Destructor Documentation

◆ StructuredBayesBall() [1/2]

template<typename GUM_SCALAR>
INLINE gum::prm::StructuredBayesBall< GUM_SCALAR >::StructuredBayesBall ( const PRMInference< GUM_SCALAR > & inference)

Default Constructor.

Definition at line 265 of file structuredBayesBall_tpl.h.

266 : _inf_(&inference) {
268 }
<agrum/PRM/structuredBayesBall.h>
const PRMInference< GUM_SCALAR > * _inf_
The PRM at which model belongs.
StructuredBayesBall(const PRMInference< GUM_SCALAR > &inference)
Default Constructor.

References StructuredBayesBall(), and _inf_.

Referenced by StructuredBayesBall(), StructuredBayesBall(), and ~StructuredBayesBall().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ~StructuredBayesBall()

template<typename GUM_SCALAR>
gum::prm::StructuredBayesBall< GUM_SCALAR >::~StructuredBayesBall ( )

Destructor.

Definition at line 56 of file structuredBayesBall_tpl.h.

56 {
58
59 for (const auto& elt: _reqMap_)
60 delete elt.second.first;
61 }
HashTable< std::string, std::pair< Set< NodeId > *, Size > > _reqMap_
Associate a Key with the set of requisite nodes associated with it. The Size value is the number of i...

References StructuredBayesBall(), and _reqMap_.

Here is the call graph for this function:

◆ StructuredBayesBall() [2/2]

template<typename GUM_SCALAR>
gum::prm::StructuredBayesBall< GUM_SCALAR >::StructuredBayesBall ( const StructuredBayesBall< GUM_SCALAR > & source)
private

Copy constructor.

References StructuredBayesBall().

Here is the call graph for this function:

Member Function Documentation

◆ _buildHashKey_()

template<typename GUM_SCALAR>
std::string gum::prm::StructuredBayesBall< GUM_SCALAR >::_buildHashKey_ ( const PRMInstance< GUM_SCALAR > * i,
Set< NodeId > & req_nodes )
private

Builds the HashKey for the given instance and requisite nodes set.

Definition at line 253 of file structuredBayesBall_tpl.h.

254 {
256 sBuff << i->type().name();
257
258 for (const auto node: i->type().containerDag().nodes())
259 if (req_nodes.exists(node)) sBuff << "-" << node;
260
261 return sBuff.str();
262 }
bool exists(const PRMInstance< GUM_SCALAR > *i) const
Returns true if i has requisite nodes.

References gum::Set< Key >::exists(), and gum::prm::PRMInstance< GUM_SCALAR >::type().

Referenced by _fillMaps_().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ _clean_()

template<typename GUM_SCALAR>
void gum::prm::StructuredBayesBall< GUM_SCALAR >::_clean_ ( )
private

Cleans this before a new computation.

Definition at line 64 of file structuredBayesBall_tpl.h.

64 {
65 for (const auto& elt: _reqMap_)
66 delete elt.second.first;
67
68 _keyMap_.clear();
69 _reqMap_.clear();
70 }
HashTable< const PRMInstance< GUM_SCALAR > *, std::pair< std::string, Set< NodeId > * > > _keyMap_
Associate an PRMInstance<GUM_SCALAR> with a unique key w.r.t. d-separation and the set of requisite n...

References _keyMap_, and _reqMap_.

Referenced by _compute_().

Here is the caller graph for this function:

◆ _compute_()

template<typename GUM_SCALAR>
void gum::prm::StructuredBayesBall< GUM_SCALAR >::_compute_ ( const PRMInstance< GUM_SCALAR > * i,
NodeId n )
private

The real compute method.

Definition at line 96 of file structuredBayesBall_tpl.h.

97 {
98 _clean_();
102 _fromChild_(i, n, marks);
104
105 for (const auto& elt: marks)
106 delete elt.second;
107 }
void _clean_()
Cleans this before a new computation.
void _fillMaps_(InstanceMap &marks)
Fill keyMap and reqMap.
void _fromChild_(const PRMInstance< GUM_SCALAR > *i, NodeId n, InstanceMap &marks)
When the ball is received on i->get(n) from a child.

References _clean_(), _fillMaps_(), and _fromChild_().

Referenced by compute(), and compute().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ _fillMaps_()

template<typename GUM_SCALAR>
void gum::prm::StructuredBayesBall< GUM_SCALAR >::_fillMaps_ ( InstanceMap & marks)
private

Fill keyMap and reqMap.

Definition at line 210 of file structuredBayesBall_tpl.h.

210 {
211 // First find for each instance it's requisite nodes
213
214 for (const auto& elt: marks) {
216
217 for (const auto& elt2: *elt.second)
218 if (elt2.second.first) req_set->insert(elt2.first);
219
220 req_map.insert(elt.first, req_set);
221 }
222
223 // Remove all instances with 0 requisite nodes
225
226 for (const auto& elt: req_map)
227 if (elt.second->size() == 0) to_remove.insert(elt.first);
228
229 for (const auto remo: to_remove) {
230 delete req_map[remo];
231 req_map.erase(remo);
232 }
233
234 // Fill _reqMap_ and _keyMap_
235 for (const auto& elt: req_map) {
236 std::string key = _buildHashKey_(elt.first, *elt.second);
237
238 if (_reqMap_.exists(key)) {
239 _keyMap_.insert(elt.first,
241 _reqMap_[key].second += 1;
242 delete elt.second;
243 req_map[elt.first] = 0;
244 } else {
245 _reqMap_.insert(key, std::pair< Set< NodeId >*, Size >(elt.second, 1));
246 _keyMap_.insert(elt.first, std::pair< std::string, Set< NodeId >* >(key, elt.second));
247 }
248 }
249 }
const std::string & key(const PRMInstance< GUM_SCALAR > *i) const
Returns a unique key w.r.t. d-separation for i.
std::string _buildHashKey_(const PRMInstance< GUM_SCALAR > *i, Set< NodeId > &req_nodes)
Builds the HashKey for the given instance and requisite nodes set.

References _buildHashKey_(), _keyMap_, _reqMap_, gum::HashTable< Key, Val >::erase(), gum::HashTable< Key, Val >::insert(), gum::Set< Key >::insert(), and key().

Referenced by _compute_().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ _fromChild_()

template<typename GUM_SCALAR>
void gum::prm::StructuredBayesBall< GUM_SCALAR >::_fromChild_ ( const PRMInstance< GUM_SCALAR > * i,
NodeId n,
InstanceMap & marks )
private

When the ball is received on i->get(n) from a child.

Definition at line 110 of file structuredBayesBall_tpl.h.

112 {
114
115 if (!marks[i]->exists(n)) { marks[i]->insert(n, std::pair< bool, bool >(false, false)); }
116
117 // Sending message to parents
118 switch (i->type().get(n).elt_type()) {
120 if (!_getMark_(marks, i, n).first) {
121 _getMark_(marks, i, n).first = true;
122
123 for (const auto inst: i->getInstances(n))
124 _fromChild_(inst, inst->get(_getSC_(i, n).lastElt().safeName()).id(), marks);
125 }
126
127 if (!_getMark_(marks, i, n).second) {
128 _getMark_(marks, i, n).second = true;
129
130 for (const auto chi: i->type().containerDag().children(n))
132 }
133
134 break;
135 }
136
139 if (!_getMark_(marks, i, n).first) {
140 _getMark_(marks, i, n).first = true;
141
142 if (!_isHardEvidence_(i, n))
143 for (const auto par: i->type().containerDag().parents(n))
145 }
146
147 if (!_getMark_(marks, i, n).second) {
148 _getMark_(marks, i, n).second = true;
149
150 // In i.
151 for (const auto chi: i->type().containerDag().children(n))
153
154 // Out of i.
155 try {
156 const auto& refs = i->getRefAttr(n);
157
158 for (auto iter = refs.begin(); iter != refs.end(); ++iter)
159 _fromParent_(iter->first, iter->first->type().get(iter->second).id(), marks);
160 } catch (NotFound const&) {
161 // Not an inverse sc
162 }
163 }
164
165 break;
166 }
167
168 default : {
169 // We shouldn't reach any other PRMClassElement<GUM_DATA> than
170 // PRMAttribute
171 // or
172 // PRMSlotChain<GUM_SCALAR>.
173 GUM_ERROR(FatalError, "This case is impossible.")
174 }
175 }
176 }
void _fromParent_(const PRMInstance< GUM_SCALAR > *i, NodeId n, InstanceMap &marks)
When the ball is receive on i->get(n) from a parent.
const PRMSlotChain< GUM_SCALAR > & _getSC_(const PRMInstance< GUM_SCALAR > *i, NodeId n)
Code alias.
std::pair< bool, bool > & _getMark_(InstanceMap &marks, const PRMInstance< GUM_SCALAR > *i, NodeId n)
Code alias.
bool _isHardEvidence_(const PRMInstance< GUM_SCALAR > *i, NodeId n)
Returns true if there is a hard evidence on i->get(n).
#define GUM_ERROR(type, msg)
Definition exceptions.h:72

References _fromChild_(), _fromParent_(), _getMark_(), _getSC_(), _isHardEvidence_(), gum::HashTable< Key, Val >::exists(), exists(), gum::prm::PRMInstance< GUM_SCALAR >::getInstances(), gum::prm::PRMInstance< GUM_SCALAR >::getRefAttr(), GUM_ERROR, gum::HashTable< Key, Val >::insert(), gum::prm::PRMClassElement< GUM_SCALAR >::prm_aggregate, gum::prm::PRMClassElement< GUM_SCALAR >::prm_attribute, gum::prm::PRMClassElement< GUM_SCALAR >::prm_slotchain, and gum::prm::PRMInstance< GUM_SCALAR >::type().

Referenced by _compute_(), _fromChild_(), and _fromParent_().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ _fromParent_()

template<typename GUM_SCALAR>
void gum::prm::StructuredBayesBall< GUM_SCALAR >::_fromParent_ ( const PRMInstance< GUM_SCALAR > * i,
NodeId n,
InstanceMap & marks )
private

When the ball is receive on i->get(n) from a parent.

Definition at line 179 of file structuredBayesBall_tpl.h.

181 {
183
184 if (!marks[i]->exists(n)) { marks[i]->insert(n, std::pair< bool, bool >(false, false)); }
185
186 // Concerns only PRMAttribute (because of the hard evidence)
187 if ((_isHardEvidence_(i, n)) && (!_getMark_(marks, i, n).first)) {
188 _getMark_(marks, i, n).first = true;
189
190 for (const auto par: i->type().containerDag().parents(n))
192 } else if (!_getMark_(marks, i, n).second) {
193 _getMark_(marks, i, n).second = true;
194
195 // In i.
196 for (const auto chi: i->type().containerDag().children(n))
198
199 // Out of i.
200 try {
201 for (auto iter = i->getRefAttr(n).begin(); iter != i->getRefAttr(n).end(); ++iter)
202 _fromParent_(iter->first, iter->first->type().get(iter->second).id(), marks);
203 } catch (NotFound const&) {
204 // Not an inverse sc
205 }
206 }
207 }

References _fromChild_(), _fromParent_(), _getMark_(), _isHardEvidence_(), gum::HashTable< Key, Val >::exists(), exists(), gum::prm::PRMInstance< GUM_SCALAR >::getRefAttr(), gum::HashTable< Key, Val >::insert(), and gum::prm::PRMInstance< GUM_SCALAR >::type().

Referenced by _fromChild_(), and _fromParent_().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ _getMark_()

template<typename GUM_SCALAR>
INLINE std::pair< bool, bool > & gum::prm::StructuredBayesBall< GUM_SCALAR >::_getMark_ ( InstanceMap & marks,
const PRMInstance< GUM_SCALAR > * i,
NodeId n )
private

Code alias.

Definition at line 349 of file structuredBayesBall_tpl.h.

351 {
352 return (*(marks[i]))[n];
353 }

Referenced by _fromChild_(), and _fromParent_().

Here is the caller graph for this function:

◆ _getSC_()

template<typename GUM_SCALAR>
INLINE const PRMSlotChain< GUM_SCALAR > & gum::prm::StructuredBayesBall< GUM_SCALAR >::_getSC_ ( const PRMInstance< GUM_SCALAR > * i,
NodeId n )
private

Code alias.

Definition at line 343 of file structuredBayesBall_tpl.h.

343 {
344 return static_cast< const PRMSlotChain< GUM_SCALAR >& >(i->type().get(n));
345 }

References gum::prm::PRMInstance< GUM_SCALAR >::type().

Referenced by _fromChild_().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ _isHardEvidence_()

template<typename GUM_SCALAR>
bool gum::prm::StructuredBayesBall< GUM_SCALAR >::_isHardEvidence_ ( const PRMInstance< GUM_SCALAR > * i,
NodeId n )

Returns true if there is a hard evidence on i->get(n).

Definition at line 73 of file structuredBayesBall_tpl.h.

74 {
75 try {
77
78 if (_inf_->hasEvidence(chain)) {
79 const Tensor< GUM_SCALAR >* e = _inf_->evidence(i)[n];
81 Size count = 0;
82
83 for (inst.setFirst(); !inst.end(); inst.inc()) {
84 if ((e->get(inst) == (GUM_SCALAR)1.0)) ++count;
85 else if (e->get(inst) != (GUM_SCALAR)0.0) return false;
86 }
87
88 return (count == 1);
89 }
90
91 return false;
92 } catch (NotFound const&) { return false; }
93 }

References _inf_, gum::Instantiation::end(), gum::prm::PRMInstance< GUM_SCALAR >::get(), gum::Instantiation::inc(), and gum::Instantiation::setFirst().

Referenced by _fromChild_(), and _fromParent_().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ compute() [1/2]

template<typename GUM_SCALAR>
INLINE void gum::prm::StructuredBayesBall< GUM_SCALAR >::compute ( const PRMInstance< GUM_SCALAR > & i,
NodeId n )

Compute the set or requisite nodes for each required instance given the current set of observations. Discard previous computations.

Definition at line 336 of file structuredBayesBall_tpl.h.

337 {
338 _compute_(&i, n);
339 }
void _compute_(const PRMInstance< GUM_SCALAR > *i, NodeId n)
The real compute method.

References _compute_().

Here is the call graph for this function:

◆ compute() [2/2]

template<typename GUM_SCALAR>
INLINE void gum::prm::StructuredBayesBall< GUM_SCALAR >::compute ( const PRMInstance< GUM_SCALAR > * i,
NodeId n )

Compute the set or requisite nodes for each required instance given the current set of observations. Discard previous computations.

Definition at line 330 of file structuredBayesBall_tpl.h.

331 {
332 _compute_(i, n);
333 }

References _compute_().

Here is the call graph for this function:

◆ exists() [1/2]

template<typename GUM_SCALAR>
INLINE bool gum::prm::StructuredBayesBall< GUM_SCALAR >::exists ( const PRMInstance< GUM_SCALAR > & i) const

Returns true if i has requisite nodes.

Definition at line 325 of file structuredBayesBall_tpl.h.

325 {
326 return _keyMap_.exists(&i);
327 }

References _keyMap_.

◆ exists() [2/2]

template<typename GUM_SCALAR>
INLINE bool gum::prm::StructuredBayesBall< GUM_SCALAR >::exists ( const PRMInstance< GUM_SCALAR > * i) const

Returns true if i has requisite nodes.

Definition at line 319 of file structuredBayesBall_tpl.h.

319 {
320 return _keyMap_.exists(i);
321 }

References _keyMap_.

Referenced by _fromChild_(), and _fromParent_().

Here is the caller graph for this function:

◆ key() [1/2]

template<typename GUM_SCALAR>
INLINE const std::string & gum::prm::StructuredBayesBall< GUM_SCALAR >::key ( const PRMInstance< GUM_SCALAR > & i) const

Returns a unique key w.r.t. d-separation for i.

Definition at line 291 of file structuredBayesBall_tpl.h.

291 {
292 return _keyMap_[&i].first;
293 }

References _keyMap_.

◆ key() [2/2]

template<typename GUM_SCALAR>
INLINE const std::string & gum::prm::StructuredBayesBall< GUM_SCALAR >::key ( const PRMInstance< GUM_SCALAR > * i) const

Returns a unique key w.r.t. d-separation for i.

Definition at line 285 of file structuredBayesBall_tpl.h.

285 {
286 return _keyMap_[i].first;
287 }

References _keyMap_.

Referenced by _fillMaps_(), and occurrence().

Here is the caller graph for this function:

◆ liftRatio()

template<typename GUM_SCALAR>
INLINE float gum::prm::StructuredBayesBall< GUM_SCALAR >::liftRatio ( ) const

Returns the ratio between the total number of instances and the number of instances with the same configuration.

Definition at line 313 of file structuredBayesBall_tpl.h.

313 {
314 return ((float)_reqMap_.size()) / ((float)_keyMap_.size());
315 }

References _keyMap_, and _reqMap_.

◆ occurrence()

template<typename GUM_SCALAR>
INLINE Size gum::prm::StructuredBayesBall< GUM_SCALAR >::occurrence ( const std::string & key) const

Returns the number of occurrence of the given key, which is the number of PRMInstance<GUM_SCALAR> sharing the same set of requisite nodes.

Definition at line 308 of file structuredBayesBall_tpl.h.

308 {
309 return _reqMap_[key].second;
310 }

References _reqMap_, and key().

Here is the call graph for this function:

◆ operator=()

template<typename GUM_SCALAR>
INLINE StructuredBayesBall< GUM_SCALAR > & gum::prm::StructuredBayesBall< GUM_SCALAR >::operator= ( const StructuredBayesBall< GUM_SCALAR > & source)
private

Copy operator.

Definition at line 278 of file structuredBayesBall_tpl.h.

279 {
280 GUM_ERROR(FatalError, "Not allowed.")
281 }

References GUM_ERROR.

◆ requisiteNodes() [1/2]

template<typename GUM_SCALAR>
INLINE const Set< NodeId > & gum::prm::StructuredBayesBall< GUM_SCALAR >::requisiteNodes ( const PRMInstance< GUM_SCALAR > & i) const

Returns the set of requisite nodes w.r.t. d-separation for i.

Definition at line 302 of file structuredBayesBall_tpl.h.

303 {
304 return *(_keyMap_[&i].second);
305 }

References _keyMap_.

◆ requisiteNodes() [2/2]

template<typename GUM_SCALAR>
INLINE const Set< NodeId > & gum::prm::StructuredBayesBall< GUM_SCALAR >::requisiteNodes ( const PRMInstance< GUM_SCALAR > * i) const

Returns the set of requisite nodes w.r.t. d-separation for i.

Definition at line 296 of file structuredBayesBall_tpl.h.

297 {
298 return *(_keyMap_[i].second);
299 }

References _keyMap_.

Member Data Documentation

◆ _inf_

template<typename GUM_SCALAR>
const PRMInference< GUM_SCALAR >* gum::prm::StructuredBayesBall< GUM_SCALAR >::_inf_
private

The PRM at which model belongs.

Definition at line 163 of file structuredBayesBall.h.

Referenced by StructuredBayesBall(), and _isHardEvidence_().

◆ _keyMap_

template<typename GUM_SCALAR>
HashTable< const PRMInstance< GUM_SCALAR >*, std::pair< std::string, Set< NodeId >* > > gum::prm::StructuredBayesBall< GUM_SCALAR >::_keyMap_
private

Associate an PRMInstance<GUM_SCALAR> with a unique key w.r.t. d-separation and the set of requisite nodes deduced from d-separation analysis.

Definition at line 170 of file structuredBayesBall.h.

Referenced by _clean_(), _fillMaps_(), exists(), exists(), key(), key(), liftRatio(), requisiteNodes(), and requisiteNodes().

◆ _reqMap_

template<typename GUM_SCALAR>
HashTable< std::string, std::pair< Set< NodeId >*, Size > > gum::prm::StructuredBayesBall< GUM_SCALAR >::_reqMap_
private

Associate a Key with the set of requisite nodes associated with it. The Size value is the number of instance with the same key.

Definition at line 174 of file structuredBayesBall.h.

Referenced by ~StructuredBayesBall(), _clean_(), _fillMaps_(), liftRatio(), and occurrence().


The documentation for this class was generated from the following files: