22#include < vector>
33
44#include " graph/graph.hpp"
5+ #include " layers/EWLayer.hpp"
56#include " layers/Layer.hpp"
67
78namespace it_lab_ai {
9+
10+ struct IOOrder {
11+ std::vector<int > in_order;
12+ std::vector<int > out_order;
13+ void fill_empty (size_t in_size, size_t out_size) {
14+ if (in_order.empty ()) {
15+ in_order.resize (in_size);
16+ std::iota (in_order.begin (), in_order.end (), 0 );
17+ }
18+ if (out_order.empty ()) {
19+ out_order.resize (out_size);
20+ std::iota (out_order.begin (), out_order.end (), 0 );
21+ }
22+ }
23+ };
24+
825std::vector<std::vector<int >> find_subgraphs (const Graph& graph,
926 const Graph& subgraph);
1027bool has_edge (const Graph& graph, int id_from, int id_to);
@@ -13,4 +30,14 @@ bool is_leaf(const Graph& graph, int id);
1330bool run_search (const Graph& graph, const Graph& subgraph,
1431 std::vector<int >& assignments,
1532 std::vector<std::vector<int >>& results);
33+
34+ void change_ids (std::vector<std::vector<int >>& vec, int id);
35+ bool does_intersect (const std::vector<int >& vec1, const std::vector<int >& vec2);
36+ void changed_subgraphs (const Graph& graph, const Graph& subgraph_from,
37+ Graph& new_graph, Tensor& out,
38+ const RuntimeOptions& options = RuntimeOptions());
39+ void changed_subgraphs (const Graph& graph, const Graph& subgraph_from,
40+ const Graph& subgraph_to, Graph& new_graph, Tensor& out,
41+ const RuntimeOptions& options = RuntimeOptions(),
42+ IOOrder order = IOOrder());
1643} // namespace it_lab_ai
0 commit comments