2 #include "simple_API.h" 15 void kernel(
size_t i_var_3,
Graph *
graph,
NodeId var_2,
PropertyId p_var_3,
PropertyId p_var_5,
PropertyId p_var_6,
PropertyId p_var_8,
PropertyId p_var_9,
PropertyId p_var_10,
PropertyId p_var_11,
PropertyId p_var_12,
size_t in_degree_var_2,
Edge * var_2_1_inEdges)
17 unsigned localCounter = 0;
19 var_3 = var_2_1_inEdges[i_var_3].
property;
21 var_1 = var_2_1_inEdges[i_var_3].
node;
22 int cond_level_2 = (var_3 == p_var_3);
28 for(i_var_10=0; i_var_10 < out_degree_var_1; i_var_10++)
31 var_10 = var_1_3_outEdges[i_var_10].
property;
33 var_7 = var_1_3_outEdges[i_var_10].
node;
34 int cond_level_4 = (var_10 == p_var_10);
40 for(i_var_9=0; i_var_9 < out_degree_var_7; i_var_9++)
43 var_9 = var_7_5_outEdges[i_var_9].
property;
45 var_8 = var_7_5_outEdges[i_var_9].
node;
46 int cond_level_6 = ((var_9 == p_var_9) & (var_8 == p_var_8));
51 for(i_var_12=0; i_var_12 < out_degree_var_1; i_var_12++)
54 var_12 = var_1_7_outEdges[i_var_12].
property;
56 var_4 = var_1_7_outEdges[i_var_12].
node;
57 int cond_level_8 = (var_12 == p_var_12);
63 for(i_var_11=0; i_var_11 < in_degree_var_4; i_var_11++)
66 var_11 = var_4_9_inEdges[i_var_11].
property;
68 var_7_10 = var_4_9_inEdges[i_var_11].
node;
69 int cond_level_10 = ((var_11 == p_var_11) & (var_7_10 == var_7));
75 for(i_var_6=0; i_var_6 < out_degree_var_4; i_var_6++)
78 var_6 = var_4_11_outEdges[i_var_6].
property;
80 var_5 = var_4_11_outEdges[i_var_6].
node;
81 int cond_level_12 = ((var_6 == p_var_6) & (var_5 == p_var_5));
101 void parallel(
Graph *
graph,
NodeId var_2,
PropertyId p_var_3,
PropertyId p_var_5,
PropertyId p_var_6,
PropertyId p_var_8,
PropertyId p_var_9,
PropertyId p_var_10,
PropertyId p_var_11,
PropertyId p_var_12,
size_t in_degree_var_2,
Edge * var_2_1_inEdges)
104 #pragma omp parallel for 105 for(i_var_3=0; i_var_3 < in_degree_var_2; i_var_3++)
107 kernel(i_var_3, graph, var_2, p_var_3, p_var_5, p_var_6, p_var_8, p_var_9, p_var_10, p_var_11, p_var_12, in_degree_var_2, var_2_1_inEdges);
114 size_t in_degree_var_2 =
getInDegree(graph, var_2);
116 printf(
"In degree %d\n", in_degree_var_2);
119 parallel(graph, var_2, p_var_3, p_var_5, p_var_6, p_var_8, p_var_9, p_var_10, p_var_11, p_var_12, in_degree_var_2, var_2_1_inEdges);
128 #if defined(DATASETInVertexFile) && defined(DATASETOutVertexFile) && defined(DATASETInEdgeFile) && defined(DATASETOutEdgeFile) 129 loadGraph(DATASETInVertexFile, DATASETOutVertexFile, DATASETInEdgeFile, DATASETOutEdgeFile);
132 loadGraph(
"dataset/1-InVertexFile.bin",
"dataset/1-OutVertexFile.bin",
"dataset/1-InEdgeFile.bin",
"dataset/1-OutEdgeFile.bin");
144 int ret_value = search(&
TheGraph, var_2, p_var_3, p_var_5, p_var_6, p_var_8, p_var_9, p_var_10, p_var_11, p_var_12);
146 printf(
"%d\n", ret_value);
153 return test(25273, 10, 1685, 10, 1828, 10, 4, 14, 3) != 0;
static Edge * getInEdges(Graph *graph, NodeId node)
int test(NodeId var_2, PropertyId p_var_3, PropertyId p_var_5, PropertyId p_var_6, PropertyId p_var_8, PropertyId p_var_9, PropertyId p_var_10, PropertyId p_var_11, PropertyId p_var_12)
static size_t getInDegree(Graph *graph, NodeId node)
static Edge * getOutEdges(Graph *graph, NodeId node)
void kernel(unsigned vertex, unsigned *p_Qnext, unsigned *Qnext_N, unsigned *map)
General class used to describe a graph in PandA.
static size_t getOutDegree(Graph *graph, NodeId node)
void loadGraph(char *InVertexFileName, char *OutVertexFileName, char *InEdgeFileName, char *OutEdgeFileName)
unsigned counter[N_THREADS]
__attribute__((noinline))
Convert the given fixedpt number to a decimal string.