26 #ifndef GUM_INTERFACE_GRAPH_H 27 #define GUM_INTERFACE_GRAPH_H 39 template <
typename GUM_SCALAR >
79 template <
typename GUM_SCALAR >
104 template <
typename GUM_SCALAR >
112 template <
typename GUM_SCALAR >
143 template <
typename GUM_SCALAR >
163 template <
typename GUM_SCALAR >
291 #ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 292 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 293 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 298 #ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 299 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 300 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 305 #ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 306 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 307 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS std::ostream & operator<<(std::ostream &out, const DFSCode &code)
Print code in out.
Inner class to handle data about labels in this interface graph.
PRMInstance< GUM_SCALAR > * u
One of the two instance represented by this edge.
PRMInstance< GUM_SCALAR > * n
The instance represented by this node.
An PRMInstance is a Bayesian Network fragment defined by a Class and used in a PRMSystem.
std::string l
The string version of this label.
bool operator==(const LabelData &from) const
Equality operator.
NodeProperty< NodeData< GUM_SCALAR > *> __nodes
Data associated with a node in __graph.
HashTable< LabelData *, Set< NodeData< GUM_SCALAR > *> *> __nodeMap
Mapping between a LabelData and the set of NodeData<GUM_SCALAR> with that label.
UndiGraph __graph
The interface graph.
LabelData * l_u
The label data of u.
Inner class to handle data about edges in __graph.
Idx __counter
A counter used of assigning ids to labels.
PRMInstance< GUM_SCALAR > * v
The other instance represented by thus edge.
Base classes for undirected graphs.
This class represent the interface graph of a given gum::prm::PRMSystem<GUM_SCALAR>.
gum is the global namespace for all aGrUM entities
EdgeProperty< EdgeData< GUM_SCALAR > *> __edges
Data associated with edges in __graph.
The class for generic Hash Tables.
LabelData * l
The labal data of this edge.
Representation of a setA Set is a structure that contains arbitrary elements.
const PRMSystem< GUM_SCALAR > * __sys
The gum::prm::PRMSystem<GUM_SCALAR> represented by this interface graph.
HashTable< LabelData *, Set< EdgeData< GUM_SCALAR > *> *> __edgeMap
Mapping between a LabelData and the set of EdgeData<GUM_SCALAR> with that label.
A PRMSystem is a container of PRMInstance and describe a relational skeleton.
LabelData * l
The label of this node.
Set of pairs of elements with fast search for both elements.
bool operator!=(const LabelData &from) const
Difference operator.
Inner class to handle data about nodes in __graph.
Idx id
An unique identifier for this label.
bool __erase_flag
For shallow copies.
LabelData * l_v
The label data of v.
HashTable< PRMInstance< GUM_SCALAR > *, NodeId > __idMap
Mapping between PRMInstance<GUM_SCALAR> dans their id in __graph.
This class discovers pattern in a PRM<GUM_SCALAR>'s PRMSystem<GUM_SCALAR> to speed up structured infe...
Bijection< Idx, LabelData *> * __labels
Bijection between labels and their ids.
Base class for undirected graphs.
Inline implementation of gum::InterfaceGraph.
Size Idx
Type for indexes.
Size tree_width
The size in terms of tree width of the given label.
std::size_t Size
In aGrUM, hashed values are unsigned long int.
Class hash tables iterators.
Size NodeId
Type for node ids.