29 #ifndef GUM_EDGE_GROWTH_H 30 #define GUM_EDGE_GROWTH_H 37 #include <agrum/tools/core/math/math_utils.h> 38 #include <agrum/tools/core/bijection.h> 39 #include <agrum/tools/core/sequence.h> 40 #include <agrum/tools/core/set.h> 42 #include <agrum/tools/graphs/diGraph.h> 44 #include <agrum/tools/graphs/algorithms/triangulations/partialOrderedTriangulation.h> 46 #include <agrum/PRM/gspan/interfaceGraph.h> 47 #include <agrum/PRM/gspan/pattern.h> 52 template <
typename GUM_SCALAR >
61 template <
typename GUM_SCALAR >
64 friend class DFSTree< GUM_SCALAR >;
66 EdgeGrowth(NodeId a_u, LabelData* an_edge, LabelData* a_l_v, NodeId a_v = 0);
68 EdgeGrowth(
const EdgeGrowth& from);
81 void insert(PRMInstance< GUM_SCALAR >* u, PRMInstance< GUM_SCALAR >* v);
84 NodeProperty< std::pair< PRMInstance< GUM_SCALAR >*, PRMInstance< GUM_SCALAR >* > > matches;
86 std::string toString();
92 std::vector< NodeId >* degree_list;
94 Set< NodeId > max_indep_set;
97 template <
typename GUM_SCALAR >
98 std::ostream& operator<<(std::ostream& out,
const EdgeGrowth< GUM_SCALAR >& edge);
101 #ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 102 extern template class EdgeGrowth<
double >;
110 #include <agrum/PRM/gspan/edgeGrowth_tpl.h>