2 #include "simple_API.h" 13 void kernel(
size_t i_var_3,
Graph *
graph,
NodeId var_2,
PropertyId p_var_3,
PropertyId p_var_4,
PropertyId p_var_5,
PropertyId p_var_7,
PropertyId p_var_9,
PropertyId p_var_11,
size_t in_degree_var_2,
Edge * var_2_1_inEdges)
15 unsigned localCounter = 0;
17 var_3 = var_2_1_inEdges[i_var_3].
property;
19 var_1 = var_2_1_inEdges[i_var_3].
node;
20 int cond_level_2 = (var_3 == p_var_3);
26 for(i_var_5=0; i_var_5 < out_degree_var_1; i_var_5++)
29 var_5 = var_1_3_outEdges[i_var_5].
property;
31 var_4 = var_1_3_outEdges[i_var_5].
node;
32 int cond_level_4 = ((var_5 == p_var_5) & (var_4 == p_var_4));
37 for(i_var_7=0; i_var_7 < out_degree_var_1; i_var_7++)
40 var_7 = var_1_5_outEdges[i_var_7].
property;
42 var_6 = var_1_5_outEdges[i_var_7].
node;
43 int cond_level_6 = (var_7 == p_var_7);
48 for(i_var_9=0; i_var_9 < out_degree_var_1; i_var_9++)
51 var_9 = var_1_7_outEdges[i_var_9].
property;
53 var_8 = var_1_7_outEdges[i_var_9].
node;
54 int cond_level_8 = (var_9 == p_var_9);
59 for(i_var_11=0; i_var_11 < out_degree_var_1; i_var_11++)
62 var_11 = var_1_9_outEdges[i_var_11].
property;
64 var_10 = var_1_9_outEdges[i_var_11].
node;
65 int cond_level_10 = (var_11 == p_var_11);
86 #pragma omp parallel for 87 for(i_var_3=0; i_var_3 < in_degree_var_2; i_var_3++)
89 kernel(i_var_3, graph, var_2, p_var_3, p_var_4, p_var_5, p_var_7, p_var_9, p_var_11, in_degree_var_2, var_2_1_inEdges);
98 printf(
"In degree %d\n", in_degree_var_2);
99 parallel(graph, var_2, p_var_3, p_var_4, p_var_5, p_var_7, p_var_9, p_var_11, in_degree_var_2, var_2_1_inEdges);
108 #if defined(DATASETInVertexFile) && defined(DATASETOutVertexFile) && defined(DATASETInEdgeFile) && defined(DATASETOutEdgeFile) 109 loadGraph(DATASETInVertexFile, DATASETOutVertexFile, DATASETInEdgeFile, DATASETOutEdgeFile);
112 loadGraph(
"dataset/1-InVertexFile.bin",
"dataset/1-OutVertexFile.bin",
"dataset/1-InEdgeFile.bin",
"dataset/1-OutEdgeFile.bin");
122 int ret_value = search(&
TheGraph, var_2, p_var_3, p_var_4, p_var_5, p_var_7, p_var_9, p_var_11);
123 printf(
"%d\n", ret_value);
130 return test(8204, 2, 6764, 10, 8, 17, 16) != 10;
static Edge * getInEdges(Graph *graph, NodeId node)
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)
__attribute__((noinline))
int test(NodeId var_2, PropertyId p_var_3, PropertyId p_var_4, PropertyId p_var_5, PropertyId p_var_7, PropertyId p_var_9, PropertyId p_var_11)
void loadGraph(char *InVertexFileName, char *OutVertexFileName, char *InEdgeFileName, char *OutEdgeFileName)
unsigned counter[N_THREADS]