aGrUM 3.1.1
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.
UndiGraphinternalGraph ()
 Returns the graph of this interface graph.
const UndiGraphinternalGraph () 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<GUM_Numeric 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<GUM_Numeric GUM_SCALAR>
gum::prm::gspan::InterfaceGraph< GUM_SCALAR >::InterfaceGraph ( const PRMSystem< GUM_SCALAR > & sys)
explicit

Default constructor.

Definition at line 116 of file interfaceGraph_tpl.h.

116 :
118 _erase_flag_(true) {
121
122 // We need to add each instance in _graph_
123 for (auto iter = sys.begin(); iter != sys.end(); ++iter) {
125 node->n = iter.val();
127 _graph_.addNodeWithId(iter.key());
128 _idMap_.insert(node->n, iter.key());
129 _nodes_.insert(iter.key(), node);
130 }
131
132 NodeData< GUM_SCALAR >* u = nullptr;
133 NodeData< GUM_SCALAR >* v = nullptr;
134
135 for (const auto& elt: _nodes_) {
137
138 for (const auto chain: data->n->type().slotChains()) {
139 for (const auto inst: data->n->getInstances(chain->id())) {
140 u = (_nodes_[_idMap_[inst]]->l < data->l) ? _nodes_[_idMap_[inst]] : data;
141 v = (u != data) ? data : _nodes_[_idMap_[inst]];
142
143 if (!_graph_.existsEdge(_idMap_[u->n], _idMap_[v->n])) {
145 edge->u = u->n;
146 edge->l_u = u->l;
147 edge->v = v->n;
148 edge->l_v = v->l;
150 _graph_.addEdge(_idMap_[u->n], _idMap_[v->n]);
151 _edges_.insert(Edge(_idMap_[u->n], _idMap_[v->n]), edge);
152 }
153 }
154 }
155 }
156 }
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.
NodeData< GUM_SCALAR > & node(const PRMInstance< GUM_SCALAR > *i)
Returns data about a node.
EdgeProperty< EdgeData< GUM_SCALAR > * > _edges_
Data associated with edges in graph.
EdgeData< GUM_SCALAR > & edge(NodeId u, NodeId v)
Returns data about an edge.
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...
NodeId id(const PRMInstance< GUM_SCALAR > &i) const
Returns the id of i in this interface graph.
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<GUM_Numeric 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 159 of file interfaceGraph_tpl.h.

159 :
164 _erase_flag_(false) {
166 }
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<GUM_Numeric GUM_SCALAR>
gum::prm::gspan::InterfaceGraph< GUM_SCALAR >::~InterfaceGraph ( )

Destructor.

Definition at line 169 of file interfaceGraph_tpl.h.

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

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<GUM_Numeric 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 245 of file interfaceGraph_tpl.h.

246 {
247 Size size = Size(1);
248 std::string sBuff = std::format("{}-{}", 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 += std::format("-{}.{}", 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 += std::format("-{}.{}", edge->u->type().name(), chain->lastElt().name());
262 size *= chain->lastElt().type().variable().domainSize();
263 }
264
265 // Label is ready
266 auto p_elm = label_map.tryGet(sBuff);
267 if (!p_elm) {
268 LabelData* label = new LabelData();
269 label_map.insert(sBuff, label);
270 label->id = ++_counter_;
271 label->l = sBuff;
272 label->tree_width = size;
273 _labels_->insert(label->id, label);
274 _edgeMap_.insert(label, new Set< EdgeData< GUM_SCALAR >* >());
275 p_elm = label_map.tryGet(sBuff);
276 }
277
278 edge->l = *p_elm;
279 _edgeMap_[edge->l]->insert(edge);
280 }
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 >::insert(), label(), size(), and gum::HashTable< Key, Val >::tryGet().

Here is the call graph for this function:

◆ _label_() [2/2]

template<GUM_Numeric 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 200 of file interfaceGraph_tpl.h.

201 {
202 Size size = Size(1);
203 std::string sBuff = node->n->type().name();
204
205 // First we search for multiple inputs
206 for (const auto chain: node->n->type().slotChains()) {
207 if (chain->isMultiple()) {
208 sBuff += std::format("-{}{}", node->n->getInstances(chain->id()).size(), 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 if (node->n->hasRefAttr(nn) && node->n->exists(nn)) {
220 sBuff
221 += std::format("-{}{}", node->n->getRefAttr(nn).size(), node->n->get(nn).name());
222 size *= node->n->get(nn).type().variable().domainSize();
223 }
224 }
225 }
226
227 // Label is ready
228 auto p_lm = label_map.tryGet(sBuff);
229 if (!p_lm) {
230 LabelData* label = new LabelData();
231 label_map.insert(sBuff, label);
232 label->id = ++_counter_;
233 label->tree_width = size;
234 label->l = sBuff;
235 _labels_->insert(label->id, label);
236 _nodeMap_.insert(label, new Set< NodeData< GUM_SCALAR >* >());
237 p_lm = label_map.tryGet(sBuff);
238 }
239
240 node->l = *p_lm;
241 _nodeMap_[node->l]->insert(node);
242 }

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

Referenced by InterfaceGraph().

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

◆ edge() [1/2]

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

Returns data about an edge.

Exceptions
NotFound

Definition at line 368 of file interfaceGraph_tpl.h.

368 {
369 if (auto p = _edges_.tryGet(Edge(u, v))) return *(*p);
370 return *(_edges_[Edge(v, u)]);
371 }

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<GUM_Numeric GUM_SCALAR>
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 374 of file interfaceGraph_tpl.h.

374 {
375 if (auto p = _edges_.tryGet(Edge(u, v))) return *(*p);
376 return *(_edges_[Edge(v, u)]);
377 }

References _edges_.

◆ edges() [1/2]

template<GUM_Numeric GUM_SCALAR>
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 320 of file interfaceGraph_tpl.h.

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

References _edgeMap_.

◆ edges() [2/2]

template<GUM_Numeric GUM_SCALAR>
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 326 of file interfaceGraph_tpl.h.

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

References _edgeMap_.

◆ id() [1/2]

template<GUM_Numeric GUM_SCALAR>
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 336 of file interfaceGraph_tpl.h.

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

References _idMap_.

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

Here is the caller graph for this function:

◆ id() [2/2]

template<GUM_Numeric GUM_SCALAR>
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 341 of file interfaceGraph_tpl.h.

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

References _idMap_.

◆ internalGraph() [1/2]

template<GUM_Numeric GUM_SCALAR>
UndiGraph & gum::prm::gspan::InterfaceGraph< GUM_SCALAR >::internalGraph ( )

Returns the graph of this interface graph.

Definition at line 283 of file interfaceGraph_tpl.h.

283 {
284 return _graph_;
285 }

References _graph_.

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

Here is the caller graph for this function:

◆ internalGraph() [2/2]

template<GUM_Numeric GUM_SCALAR>
const UndiGraph & gum::prm::gspan::InterfaceGraph< GUM_SCALAR >::internalGraph ( ) const

Returns the graph of this interface graph.

Definition at line 288 of file interfaceGraph_tpl.h.

288 {
289 return _graph_;
290 }

References _graph_.

◆ label()

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

Returns a label given its id.

Definition at line 331 of file interfaceGraph_tpl.h.

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

References _labels_.

Referenced by _label_(), and _label_().

Here is the caller graph for this function:

◆ labels() [1/2]

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

Returns the bijection between LabelData and their string representation.

Definition at line 293 of file interfaceGraph_tpl.h.

293 {
294 return *_labels_;
295 }

References _labels_.

◆ labels() [2/2]

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

Returns the bijection between LabelData and their string representation.

Definition at line 298 of file interfaceGraph_tpl.h.

298 {
299 return *_labels_;
300 }

References _labels_.

◆ node() [1/4]

template<GUM_Numeric GUM_SCALAR>
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 347 of file interfaceGraph_tpl.h.

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

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<GUM_Numeric GUM_SCALAR>
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 353 of file interfaceGraph_tpl.h.

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

References node().

Here is the call graph for this function:

◆ node() [3/4]

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

Returns data about a node.

Exceptions
NotFound

Definition at line 358 of file interfaceGraph_tpl.h.

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

References _nodes_, and id().

Here is the call graph for this function:

◆ node() [4/4]

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

Returns data about a node.

Exceptions
NotFound

Definition at line 363 of file interfaceGraph_tpl.h.

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

References _nodes_, and id().

Here is the call graph for this function:

◆ nodes() [1/2]

template<GUM_Numeric GUM_SCALAR>
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<GUM_Numeric GUM_SCALAR>
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<GUM_Numeric GUM_SCALAR>
InterfaceGraph< GUM_SCALAR > & gum::prm::gspan::InterfaceGraph< GUM_SCALAR >::operator= ( const InterfaceGraph< GUM_SCALAR > & source)

Copy operator.

Definition at line 195 of file interfaceGraph_tpl.h.

195 {
196 GUM_ERROR(FatalError, "not implemented")
197 }
#define GUM_ERROR(type, msg)
Definition exceptions.h:76

References InterfaceGraph(), and GUM_ERROR.

Here is the call graph for this function:

◆ size()

template<GUM_Numeric GUM_SCALAR>
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 303 of file interfaceGraph_tpl.h.

303 {
304 if (auto p = _nodeMap_.tryGet(const_cast< LabelData* >(l))) return (*p)->size();
305 return _edgeMap_[const_cast< LabelData* >(l)]->size();
306 }

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<GUM_Numeric GUM_SCALAR>
friend class gum::prm::GSpan< GUM_SCALAR >
friend

Definition at line 153 of file interfaceGraph.h.

Member Data Documentation

◆ _counter_

template<GUM_Numeric 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<GUM_Numeric 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<GUM_Numeric 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<GUM_Numeric 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<GUM_Numeric 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(), internalGraph(), and internalGraph().

◆ _idMap_

template<GUM_Numeric 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<GUM_Numeric 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<GUM_Numeric 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<GUM_Numeric 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<GUM_Numeric 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: