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

This class represent the interface graph of a given gum::prm::PRMSystem<GUM_SCALAR>. More...

#include <agrum/PRM/gspan/interfaceGraph.h>

Collaboration diagram for gum::prm::gspan::InterfaceGraph< GUM_SCALAR >:

Public Member Functions

 InterfaceGraph (const PRMSystem< GUM_SCALAR > &sys)
 Default constructor.
 InterfaceGraph (const InterfaceGraph &source)
 Copy constructor, proceeds with a shallow copy so for friends only.
InterfaceGraphoperator= (const InterfaceGraph &source)
 Copy operator.
 ~InterfaceGraph ()
 Destructor.
UndiGraphgraph ()
 Returns the graph of this interface graph.
const UndiGraphgraph () const
 Returns the graph of this interface graph.
Bijection< Idx, LabelData * > & labels ()
 Returns the bijection between LabelData and their string representation.
const Bijection< Idx, LabelData * > & labels () const
 Returns the bijection between LabelData and their string representation.
Size size (const LabelData *l) const
 Returns the number of node or edges labelled by l.
Set< NodeData< GUM_SCALAR > * > & nodes (const LabelData *l)
 Returns the set of nodes labelled by l.
const Set< NodeData< GUM_SCALAR > * > & nodes (const LabelData *l) const
 Returns the set of nodes labelled by l.
Set< EdgeData< GUM_SCALAR > * > & edges (const LabelData *l)
 Returns the set of nodes labelled by l.
const Set< EdgeData< GUM_SCALAR > * > & edges (const LabelData *l) const
 Returns the set of nodes labelled by l.
LabelDatalabel (Idx id)
 Returns a label given its id.
NodeId id (const PRMInstance< GUM_SCALAR > &i) const
 Returns the id of i in this interface graph.
NodeId id (const PRMInstance< GUM_SCALAR > *i) const
 Returns the id of i in this interface graph.
NodeData< GUM_SCALAR > & node (const PRMInstance< GUM_SCALAR > *i)
 Returns data about a node.
const NodeData< GUM_SCALAR > & node (const PRMInstance< GUM_SCALAR > *i) const
 Returns data about a node.
NodeData< GUM_SCALAR > & node (NodeId id)
 Returns data about a node.
const NodeData< GUM_SCALAR > & node (NodeId id) const
 Returns data about a node.
EdgeData< GUM_SCALAR > & edge (NodeId u, NodeId v)
 Returns data about an edge.
const EdgeData< GUM_SCALAR > & edge (NodeId u, NodeId v) const
 Returns data about an edge.

Private Member Functions

void _label_ (NodeData< GUM_SCALAR > *node, HashTable< std::string, LabelData * > &label_map)
 Compute the label of node and add it to labels if it does not exists yet. Update node with the correct label's id.
void _label_ (EdgeData< GUM_SCALAR > *edge, HashTable< std::string, LabelData * > &label_map)
 Compute the label of edge and add it to labels if it does not exists yet. Update edge with the correct label's id.

Private Attributes

const PRMSystem< GUM_SCALAR > * _sys_
 The gum::prm::PRMSystem<GUM_SCALAR> represented by this interface graph.
UndiGraph _graph_
 The interface graph.
NodeProperty< NodeData< GUM_SCALAR > * > _nodes_
 Data associated with a node in graph.
HashTable< PRMInstance< GUM_SCALAR > *, NodeId_idMap_
 Mapping between PRMInstance<GUM_SCALAR> dans their id in graph.
EdgeProperty< EdgeData< GUM_SCALAR > * > _edges_
 Data associated with edges in graph.
Bijection< Idx, LabelData * > * _labels_
 Bijection between labels and their ids.
HashTable< LabelData *, Set< NodeData< GUM_SCALAR > * > * > _nodeMap_
 Mapping between a LabelData and the set of NodeData<GUM_SCALAR> with that label.
HashTable< LabelData *, Set< EdgeData< GUM_SCALAR > * > * > _edgeMap_
 Mapping between a LabelData and the set of EdgeData<GUM_SCALAR> with that label.
Idx _counter_
 A counter used of assigning ids to labels.
bool _erase_flag_
 For shallow copies.

Friends

class gum::prm::GSpan< GUM_SCALAR >

Detailed Description

template<typename GUM_SCALAR>
class gum::prm::gspan::InterfaceGraph< GUM_SCALAR >

This class represent the interface graph of a given gum::prm::PRMSystem<GUM_SCALAR>.

An interface graph is a labelled graph over the instances of a gum::prm::PRMSystem<GUM_SCALAR>, where there exists an edge between two instance i and j if and only if their shared interface is nonempty.

Labels assigned to edges and nodes in the interface graph are technically strings, however since we need a linear oder each label is assigned a unique id.

Definition at line 182 of file interfaceGraph.h.

Constructor & Destructor Documentation

◆ InterfaceGraph() [1/2]

template<typename GUM_SCALAR>
gum::prm::gspan::InterfaceGraph< GUM_SCALAR >::InterfaceGraph ( const PRMSystem< GUM_SCALAR > & sys)
explicit

Default constructor.

Definition at line 114 of file interfaceGraph_tpl.h.

114 :
116 _erase_flag_(true) {
119
120 // We need to add each instance in _graph_
121 for (auto iter = sys.begin(); iter != sys.end(); ++iter) {
123 node->n = iter.val();
125 _graph_.addNodeWithId(iter.key());
126 _idMap_.insert(node->n, iter.key());
127 _nodes_.insert(iter.key(), node);
128 }
129
130 NodeData< GUM_SCALAR >* u = nullptr;
131 NodeData< GUM_SCALAR >* v = nullptr;
132
133 for (const auto& elt: _nodes_) {
135
136 for (const auto chain: data->n->type().slotChains()) {
137 for (const auto inst: data->n->getInstances(chain->id())) {
138 u = (_nodes_[_idMap_[inst]]->l < data->l) ? _nodes_[_idMap_[inst]] : data;
139 v = (u != data) ? data : _nodes_[_idMap_[inst]];
140
141 if (!_graph_.existsEdge(_idMap_[u->n], _idMap_[v->n])) {
143 edge->u = u->n;
144 edge->l_u = u->l;
145 edge->v = v->n;
146 edge->l_v = v->l;
148 _graph_.addEdge(_idMap_[u->n], _idMap_[v->n]);
149 _edges_.insert(Edge(_idMap_[u->n], _idMap_[v->n]), edge);
150 }
151 }
152 }
153 }
154 }
This class represent the interface graph of a given gum::prm::PRMSystem<GUM_SCALAR>.
const PRMSystem< GUM_SCALAR > * _sys_
The gum::prm::PRMSystem<GUM_SCALAR> represented by this interface graph.
NodeProperty< NodeData< GUM_SCALAR > * > _nodes_
Data associated with a node in graph.
UndiGraph _graph_
The interface graph.
Idx _counter_
A counter used of assigning ids to labels.
InterfaceGraph(const PRMSystem< GUM_SCALAR > &sys)
Default constructor.
NodeId id(const PRMInstance< GUM_SCALAR > &i) const
Returns the id of i in this interface graph.
EdgeData< GUM_SCALAR > & edge(NodeId u, NodeId v)
Returns data about an edge.
EdgeProperty< EdgeData< GUM_SCALAR > * > _edges_
Data associated with edges in graph.
bool _erase_flag_
For shallow copies.
void _label_(NodeData< GUM_SCALAR > *node, HashTable< std::string, LabelData * > &label_map)
Compute the label of node and add it to labels if it does not exists yet. Update node with the correc...
NodeData< GUM_SCALAR > & node(const PRMInstance< GUM_SCALAR > *i)
Returns data about a node.
Bijection< Idx, LabelData * > * _labels_
Bijection between labels and their ids.
HashTable< PRMInstance< GUM_SCALAR > *, NodeId > _idMap_
Mapping between PRMInstance<GUM_SCALAR> dans their id in graph.

References InterfaceGraph(), _counter_, _edges_, _erase_flag_, _graph_, _idMap_, _label_(), _labels_, _nodes_, _sys_, gum::prm::PRMSystem< GUM_SCALAR >::begin(), edge(), gum::prm::PRMSystem< GUM_SCALAR >::end(), gum::prm::gspan::NodeData< GUM_SCALAR >::l, gum::prm::gspan::NodeData< GUM_SCALAR >::n, and node().

Referenced by InterfaceGraph(), InterfaceGraph(), ~InterfaceGraph(), and operator=().

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

◆ InterfaceGraph() [2/2]

template<typename GUM_SCALAR>
gum::prm::gspan::InterfaceGraph< GUM_SCALAR >::InterfaceGraph ( const InterfaceGraph< GUM_SCALAR > & source)

Copy constructor, proceeds with a shallow copy so for friends only.

Definition at line 157 of file interfaceGraph_tpl.h.

157 :
162 _erase_flag_(false) {
164 }
HashTable< LabelData *, Set< NodeData< GUM_SCALAR > * > * > _nodeMap_
Mapping between a LabelData and the set of NodeData<GUM_SCALAR> with that label.
HashTable< LabelData *, Set< EdgeData< GUM_SCALAR > * > * > _edgeMap_
Mapping between a LabelData and the set of EdgeData<GUM_SCALAR> with that label.

References InterfaceGraph(), _counter_, _edgeMap_, _edges_, _erase_flag_, _graph_, _idMap_, _labels_, _nodeMap_, _nodes_, and _sys_.

Here is the call graph for this function:

◆ ~InterfaceGraph()

template<typename GUM_SCALAR>
gum::prm::gspan::InterfaceGraph< GUM_SCALAR >::~InterfaceGraph ( )

Destructor.

Definition at line 167 of file interfaceGraph_tpl.h.

167 {
169
170 if (_erase_flag_) {
171 for (const auto& elt: _nodes_)
172 delete elt.second;
173
174 for (const auto& elt: _edges_)
175 delete elt.second;
176
177 for (const auto& elt: _nodeMap_) {
178 delete elt.first;
179 delete elt.second;
180 }
181
182 for (const auto& elt: _edgeMap_) {
183 delete elt.first;
184 delete elt.second;
185 }
186 }
187
188 delete _labels_;
189 }

References InterfaceGraph(), _edgeMap_, _edges_, _erase_flag_, _labels_, _nodeMap_, and _nodes_.

Here is the call graph for this function:

Member Function Documentation

◆ _label_() [1/2]

template<typename GUM_SCALAR>
void gum::prm::gspan::InterfaceGraph< GUM_SCALAR >::_label_ ( EdgeData< GUM_SCALAR > * edge,
HashTable< std::string, LabelData * > & label_map )
private

Compute the label of edge and add it to labels if it does not exists yet. Update edge with the correct label's id.

Definition at line 244 of file interfaceGraph_tpl.h.

245 {
246 Size size = Size(1);
248 sBuff << edge->u->type().name() << "-" << edge->v->type().name();
249
250 // First looking for edge->u output nodes in v
251 for (const auto chain: edge->u->type().slotChains()) {
252 if (edge->u->getInstances(chain->id()).exists(edge->v)) {
253 sBuff << "-" << edge->v->type().name() << "." << chain->lastElt().name();
254 size *= chain->lastElt().type().variable().domainSize();
255 }
256 }
257
258 // Second looking for edge->v output nodes in u
259 for (const auto chain: edge->v->type().slotChains())
260 if (edge->v->getInstances(chain->id()).exists(edge->u)) {
261 sBuff << "-" << edge->u->type().name() << "." << chain->lastElt().name();
262 size *= chain->lastElt().type().variable().domainSize();
263 }
264
265 // Label is ready
266 if (!label_map.exists(sBuff.str())) {
267 LabelData* label = new LabelData();
268 label_map.insert(sBuff.str(), label);
269 label->id = ++_counter_;
270 label->l = sBuff.str();
271 label->tree_width = size;
272 _labels_->insert(label->id, label);
273 _edgeMap_.insert(label, new Set< EdgeData< GUM_SCALAR >* >());
274 }
275
276 edge->l = label_map[sBuff.str()];
277 _edgeMap_[edge->l]->insert(edge);
278 }
Size size(const LabelData *l) const
Returns the number of node or edges labelled by l.
LabelData * label(Idx id)
Returns a label given its id.
std::size_t Size
In aGrUM, hashed values are unsigned long int.
Definition types.h:74

References _counter_, _edgeMap_, _labels_, edge(), gum::HashTable< Key, Val >::exists(), gum::HashTable< Key, Val >::insert(), label(), and size().

Here is the call graph for this function:

◆ _label_() [2/2]

template<typename GUM_SCALAR>
void gum::prm::gspan::InterfaceGraph< GUM_SCALAR >::_label_ ( NodeData< GUM_SCALAR > * node,
HashTable< std::string, LabelData * > & label_map )
private

Compute the label of node and add it to labels if it does not exists yet. Update node with the correct label's id.

Definition at line 198 of file interfaceGraph_tpl.h.

199 {
200 Size size = Size(1);
202 sBuff << node->n->type().name();
203
204 // First we search for multiple inputs
205 for (const auto chain: node->n->type().slotChains()) {
206 if (chain->isMultiple()) {
207 sBuff << "-" << node->n->getInstances(chain->id()).size();
208 sBuff << chain->name();
209 size *= node->n->getInstances(chain->id()).size()
210 * chain->lastElt().type().variable().domainSize();
211 } else {
212 size *= chain->lastElt().type().variable().domainSize();
213 }
214 }
215
216 // Second we search for active outputs
217 for (const auto nn: node->n->type().containerDag().nodes()) {
218 if (node->n->type().isOutputNode(node->n->type().get(nn))) {
219 try {
220 sBuff << "-" << node->n->getRefAttr(nn).size() << node->n->get(nn).name();
221 size *= node->n->get(nn).type().variable().domainSize();
222 } catch (NotFound const&) {
223 // (nn) is an inactive output node
224 }
225 }
226 }
227
228 // Label is ready
229 if (!label_map.exists(sBuff.str())) {
230 LabelData* label = new LabelData();
231 label_map.insert(sBuff.str(), label);
232 label->id = ++_counter_;
233 label->tree_width = size;
234 label->l = sBuff.str();
235 _labels_->insert(label->id, label);
236 _nodeMap_.insert(label, new Set< NodeData< GUM_SCALAR >* >());
237 }
238
239 node->l = label_map[sBuff.str()];
240 _nodeMap_[node->l]->insert(node);
241 }

References _counter_, _labels_, _nodeMap_, gum::HashTable< Key, Val >::exists(), gum::HashTable< Key, Val >::insert(), label(), node(), and size().

Referenced by InterfaceGraph().

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

◆ edge() [1/2]

template<typename GUM_SCALAR>
INLINE EdgeData< GUM_SCALAR > & gum::prm::gspan::InterfaceGraph< GUM_SCALAR >::edge ( NodeId u,
NodeId v )

Returns data about an edge.

Exceptions
NotFound

Definition at line 369 of file interfaceGraph_tpl.h.

369 {
370 try {
371 return *(_edges_[Edge(u, v)]);
372 } catch (NotFound const&) { return *(_edges_[Edge(v, u)]); }
373 }

References _edges_.

Referenced by InterfaceGraph(), _label_(), and gum::prm::GSpan< GUM_SCALAR >::_subgraph_mining_().

Here is the caller graph for this function:

◆ edge() [2/2]

template<typename GUM_SCALAR>
INLINE const EdgeData< GUM_SCALAR > & gum::prm::gspan::InterfaceGraph< GUM_SCALAR >::edge ( NodeId u,
NodeId v ) const

Returns data about an edge.

Exceptions
NotFound

Definition at line 376 of file interfaceGraph_tpl.h.

377 {
378 try {
379 return *(_edges_[Edge(u, v)]);
380 } catch (NotFound const&) { return *(_edges_[Edge(v, u)]); }
381 }

References _edges_.

◆ edges() [1/2]

template<typename GUM_SCALAR>
INLINE Set< EdgeData< GUM_SCALAR > * > & gum::prm::gspan::InterfaceGraph< GUM_SCALAR >::edges ( const LabelData * l)

Returns the set of nodes labelled by l.

Definition at line 321 of file interfaceGraph_tpl.h.

321 {
322 return *(_edgeMap_[const_cast< LabelData* >(l)]);
323 }

References _edgeMap_.

◆ edges() [2/2]

template<typename GUM_SCALAR>
INLINE const Set< EdgeData< GUM_SCALAR > * > & gum::prm::gspan::InterfaceGraph< GUM_SCALAR >::edges ( const LabelData * l) const

Returns the set of nodes labelled by l.

Definition at line 327 of file interfaceGraph_tpl.h.

327 {
328 return *(_edgeMap_[const_cast< LabelData* >(l)]);
329 }

References _edgeMap_.

◆ graph() [1/2]

template<typename GUM_SCALAR>
INLINE UndiGraph & gum::prm::gspan::InterfaceGraph< GUM_SCALAR >::graph ( )

Returns the graph of this interface graph.

Definition at line 281 of file interfaceGraph_tpl.h.

281 {
282 return _graph_;
283 }

References _graph_.

Referenced by gum::prm::GSpan< GUM_SCALAR >::_subgraph_mining_(), and gum::prm::GSpan< GUM_SCALAR >::discoverPatterns().

Here is the caller graph for this function:

◆ graph() [2/2]

template<typename GUM_SCALAR>
INLINE const UndiGraph & gum::prm::gspan::InterfaceGraph< GUM_SCALAR >::graph ( ) const

Returns the graph of this interface graph.

Definition at line 286 of file interfaceGraph_tpl.h.

286 {
287 return _graph_;
288 }

References _graph_.

◆ id() [1/2]

template<typename GUM_SCALAR>
INLINE NodeId gum::prm::gspan::InterfaceGraph< GUM_SCALAR >::id ( const PRMInstance< GUM_SCALAR > & i) const

Returns the id of i in this interface graph.

Definition at line 337 of file interfaceGraph_tpl.h.

337 {
338 return _idMap_[const_cast< PRMInstance< GUM_SCALAR >* >(&i)];
339 }

References _idMap_.

Referenced by gum::prm::GSpan< GUM_SCALAR >::_subgraph_mining_(), gum::prm::GSpan< GUM_SCALAR >::discoverPatterns(), node(), and node().

Here is the caller graph for this function:

◆ id() [2/2]

template<typename GUM_SCALAR>
INLINE NodeId gum::prm::gspan::InterfaceGraph< GUM_SCALAR >::id ( const PRMInstance< GUM_SCALAR > * i) const

Returns the id of i in this interface graph.

Definition at line 342 of file interfaceGraph_tpl.h.

342 {
343 return _idMap_[const_cast< PRMInstance< GUM_SCALAR >* >(i)];
344 }

References _idMap_.

◆ label()

template<typename GUM_SCALAR>
INLINE LabelData * gum::prm::gspan::InterfaceGraph< GUM_SCALAR >::label ( Idx id)

Returns a label given its id.

Definition at line 332 of file interfaceGraph_tpl.h.

332 {
333 return _labels_->second(id);
334 }

References _labels_.

Referenced by _label_(), and _label_().

Here is the caller graph for this function:

◆ labels() [1/2]

template<typename GUM_SCALAR>
INLINE Bijection< Idx, LabelData * > & gum::prm::gspan::InterfaceGraph< GUM_SCALAR >::labels ( )

Returns the bijection between LabelData and their string representation.

Definition at line 291 of file interfaceGraph_tpl.h.

291 {
292 return *_labels_;
293 }

References _labels_.

◆ labels() [2/2]

template<typename GUM_SCALAR>
INLINE const Bijection< Idx, LabelData * > & gum::prm::gspan::InterfaceGraph< GUM_SCALAR >::labels ( ) const

Returns the bijection between LabelData and their string representation.

Definition at line 296 of file interfaceGraph_tpl.h.

296 {
297 return *_labels_;
298 }

References _labels_.

◆ node() [1/4]

template<typename GUM_SCALAR>
INLINE NodeData< GUM_SCALAR > & gum::prm::gspan::InterfaceGraph< GUM_SCALAR >::node ( const PRMInstance< GUM_SCALAR > * i)

Returns data about a node.

Exceptions
NotFound

Definition at line 348 of file interfaceGraph_tpl.h.

348 {
349 return node(id(i));
350 }

References node().

Referenced by InterfaceGraph(), _label_(), gum::prm::GSpan< GUM_SCALAR >::_subgraph_mining_(), node(), and node().

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

◆ node() [2/4]

template<typename GUM_SCALAR>
INLINE const NodeData< GUM_SCALAR > & gum::prm::gspan::InterfaceGraph< GUM_SCALAR >::node ( const PRMInstance< GUM_SCALAR > * i) const

Returns data about a node.

Exceptions
NotFound

Definition at line 354 of file interfaceGraph_tpl.h.

354 {
355 return node(id(i));
356 }

References node().

Here is the call graph for this function:

◆ node() [3/4]

template<typename GUM_SCALAR>
INLINE NodeData< GUM_SCALAR > & gum::prm::gspan::InterfaceGraph< GUM_SCALAR >::node ( NodeId id)

Returns data about a node.

Exceptions
NotFound

Definition at line 359 of file interfaceGraph_tpl.h.

359 {
360 return *(_nodes_[id]);
361 }

References _nodes_, and id().

Here is the call graph for this function:

◆ node() [4/4]

template<typename GUM_SCALAR>
INLINE const NodeData< GUM_SCALAR > & gum::prm::gspan::InterfaceGraph< GUM_SCALAR >::node ( NodeId id) const

Returns data about a node.

Exceptions
NotFound

Definition at line 364 of file interfaceGraph_tpl.h.

364 {
365 return *(_nodes_[id]);
366 }

References _nodes_, and id().

Here is the call graph for this function:

◆ nodes() [1/2]

template<typename GUM_SCALAR>
INLINE Set< NodeData< GUM_SCALAR > * > & gum::prm::gspan::InterfaceGraph< GUM_SCALAR >::nodes ( const LabelData * l)

Returns the set of nodes labelled by l.

Definition at line 309 of file interfaceGraph_tpl.h.

309 {
310 return *(_nodeMap_[const_cast< LabelData* >(l)]);
311 }

References _nodeMap_.

◆ nodes() [2/2]

template<typename GUM_SCALAR>
INLINE const Set< NodeData< GUM_SCALAR > * > & gum::prm::gspan::InterfaceGraph< GUM_SCALAR >::nodes ( const LabelData * l) const

Returns the set of nodes labelled by l.

Definition at line 315 of file interfaceGraph_tpl.h.

315 {
316 return *(_nodeMap_[const_cast< LabelData* >(l)]);
317 }

References _nodeMap_.

◆ operator=()

template<typename GUM_SCALAR>
InterfaceGraph< GUM_SCALAR > & gum::prm::gspan::InterfaceGraph< GUM_SCALAR >::operator= ( const InterfaceGraph< GUM_SCALAR > & source)

Copy operator.

Definition at line 193 of file interfaceGraph_tpl.h.

193 {
194 GUM_ERROR(FatalError, "not implemented")
195 }
#define GUM_ERROR(type, msg)
Definition exceptions.h:72

References InterfaceGraph(), and GUM_ERROR.

Here is the call graph for this function:

◆ size()

template<typename GUM_SCALAR>
INLINE Size gum::prm::gspan::InterfaceGraph< GUM_SCALAR >::size ( const LabelData * l) const

Returns the number of node or edges labelled by l.

Definition at line 301 of file interfaceGraph_tpl.h.

301 {
302 try {
303 return _nodeMap_[const_cast< LabelData* >(l)]->size();
304 } catch (NotFound const&) { return _edgeMap_[const_cast< LabelData* >(l)]->size(); }
305 }

References _edgeMap_, _nodeMap_, and size().

Referenced by _label_(), _label_(), and size().

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

◆ gum::prm::GSpan< GUM_SCALAR >

template<typename GUM_SCALAR>
friend class gum::prm::GSpan< GUM_SCALAR >
friend

Definition at line 153 of file interfaceGraph.h.

Member Data Documentation

◆ _counter_

template<typename GUM_SCALAR>
Idx gum::prm::gspan::InterfaceGraph< GUM_SCALAR >::_counter_
private

A counter used of assigning ids to labels.

Definition at line 291 of file interfaceGraph.h.

Referenced by InterfaceGraph(), InterfaceGraph(), _label_(), and _label_().

◆ _edgeMap_

template<typename GUM_SCALAR>
HashTable< LabelData*, Set< EdgeData< GUM_SCALAR >* >* > gum::prm::gspan::InterfaceGraph< GUM_SCALAR >::_edgeMap_
private

Mapping between a LabelData and the set of EdgeData<GUM_SCALAR> with that label.

Definition at line 288 of file interfaceGraph.h.

Referenced by InterfaceGraph(), ~InterfaceGraph(), _label_(), edges(), edges(), and size().

◆ _edges_

template<typename GUM_SCALAR>
EdgeProperty< EdgeData< GUM_SCALAR >* > gum::prm::gspan::InterfaceGraph< GUM_SCALAR >::_edges_
private

Data associated with edges in graph.

Definition at line 275 of file interfaceGraph.h.

Referenced by InterfaceGraph(), InterfaceGraph(), ~InterfaceGraph(), edge(), and edge().

◆ _erase_flag_

template<typename GUM_SCALAR>
bool gum::prm::gspan::InterfaceGraph< GUM_SCALAR >::_erase_flag_
private

For shallow copies.

Definition at line 294 of file interfaceGraph.h.

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

◆ _graph_

template<typename GUM_SCALAR>
UndiGraph gum::prm::gspan::InterfaceGraph< GUM_SCALAR >::_graph_
private

The interface graph.

Definition at line 266 of file interfaceGraph.h.

Referenced by InterfaceGraph(), InterfaceGraph(), graph(), and graph().

◆ _idMap_

template<typename GUM_SCALAR>
HashTable< PRMInstance< GUM_SCALAR >*, NodeId > gum::prm::gspan::InterfaceGraph< GUM_SCALAR >::_idMap_
private

Mapping between PRMInstance<GUM_SCALAR> dans their id in graph.

Definition at line 272 of file interfaceGraph.h.

Referenced by InterfaceGraph(), InterfaceGraph(), id(), and id().

◆ _labels_

template<typename GUM_SCALAR>
Bijection< Idx, LabelData* >* gum::prm::gspan::InterfaceGraph< GUM_SCALAR >::_labels_
private

Bijection between labels and their ids.

Definition at line 278 of file interfaceGraph.h.

Referenced by InterfaceGraph(), InterfaceGraph(), ~InterfaceGraph(), _label_(), _label_(), label(), labels(), and labels().

◆ _nodeMap_

template<typename GUM_SCALAR>
HashTable< LabelData*, Set< NodeData< GUM_SCALAR >* >* > gum::prm::gspan::InterfaceGraph< GUM_SCALAR >::_nodeMap_
private

Mapping between a LabelData and the set of NodeData<GUM_SCALAR> with that label.

Definition at line 283 of file interfaceGraph.h.

Referenced by InterfaceGraph(), ~InterfaceGraph(), _label_(), nodes(), nodes(), and size().

◆ _nodes_

template<typename GUM_SCALAR>
NodeProperty< NodeData< GUM_SCALAR >* > gum::prm::gspan::InterfaceGraph< GUM_SCALAR >::_nodes_
private

Data associated with a node in graph.

Definition at line 269 of file interfaceGraph.h.

Referenced by InterfaceGraph(), InterfaceGraph(), ~InterfaceGraph(), node(), and node().

◆ _sys_

template<typename GUM_SCALAR>
const PRMSystem< GUM_SCALAR >* gum::prm::gspan::InterfaceGraph< GUM_SCALAR >::_sys_
private

The gum::prm::PRMSystem<GUM_SCALAR> represented by this interface graph.

Definition at line 263 of file interfaceGraph.h.

Referenced by InterfaceGraph(), and InterfaceGraph().


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