Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
RModel_GraphIndependent.hxx
Go to the documentation of this file.
1#ifndef TMVA_SOFIE_RMODEL_GraphIndependent
2#define TMVA_SOFIE_RMODEL_GraphIndependent
3
4#include <ctime>
5
7#include "TMVA/RModel.hxx"
8#include "TMVA/RFunction.hxx"
9
10namespace TMVA {
11namespace Experimental {
12namespace SOFIE {
13
14class RFunction_Update;
15
17 // updation blocks
18 std::unique_ptr<RFunction_Update> edges_update_block;
19 std::unique_ptr<RFunction_Update> nodes_update_block;
20 std::unique_ptr<RFunction_Update> globals_update_block;
21
23 std::vector<std::pair<int,int>> edges;
24
28
29 std::string filename;
30
31 template <typename T>
32 void createUpdateFunction(T& updateFunction) {
33 switch(updateFunction.GetFunctionTarget()) {
35 edges_update_block.reset(new T(updateFunction));
36 break;
37 }
39 nodes_update_block.reset(new T(updateFunction));
40 break;
41 }
43 globals_update_block.reset(new T(updateFunction));
44 break;
45 }
46 default: {
47 throw std::runtime_error("TMVA SOFIE: Invalid Update function supplied for creating GraphIndependent function block.");
48 }
49 }
50 }
51
53 edges_update_block.reset();
54 nodes_update_block.reset();
56 }
57};
58
60
61private:
62
63 // updation function for edges, nodes & global attributes
64 std::unique_ptr<RFunction_Update> edges_update_block;
65 std::unique_ptr<RFunction_Update> nodes_update_block;
66 std::unique_ptr<RFunction_Update> globals_update_block;
67
70
71 std::size_t num_node_features;
72 std::size_t num_edge_features;
74
75public:
76
77 //explicit move ctor/assn
79
81
82 //disallow copy
85
88
89 void Generate();
90
92// ClassDef(RModel_GNN,1);
93};
94
95}//SOFIE
96}//Experimental
97}//TMVA
98
99#endif //TMVA_SOFIE_RMODEL_GNN
RModel_GraphIndependent & operator=(RModel_GraphIndependent &&other)
RModel_GraphIndependent & operator=(const RModel_GraphIndependent &other)=delete
RModel_GraphIndependent(const RModel_GraphIndependent &other)=delete
create variable transformations
std::unique_ptr< RFunction_Update > globals_update_block