TGraphCascade::TGraphCascade(const PJsonVal& Params) { // build graph and node name-id maps PJsonVal Dag = Params->GetObjKey("dag"); GenGraph(Dag); // read enabled (ignore the ones missing from the graph) PJsonVal EnabledNodeIdH = Params->GetObjKey("enabledNodes"); ProcessEnabled(EnabledNodeIdH); PruneGraph(); InitTimestamps(); // read models PJsonVal NodeModels = Params->GetObjKey("nodeModels"); ProcessModels(NodeModels); TimeUnit = Params->GetObjInt("timeUnit", 1000); Rnd.PutSeed(Params->GetObjInt("randSeed", 0)); }
void main(int argc, char *argv[]) { int nVertex; int nEdge; Vertices * graph; struct rusage * rUBuf1; struct rusage * rUBuf2; nVertex = DEFAULT_N_VERTEX; nEdge = DEFAULT_N_EDGE; if(argc > 1) { nVertex = atoi(argv[1]); if(argc > 2) { nEdge = atoi(argv[2]); if(argc > 3) { srandom(atoi(argv[3])); } } } rUBuf1 = (struct rusage *)malloc(sizeof(struct rusage)); assert(rUBuf1 != NULL); rUBuf2 = (struct rusage *)malloc(sizeof(struct rusage)); assert(rUBuf1 != NULL); if(debug) { printf("Generating a connected graph ... "); } graph = GenGraph(nVertex, nEdge); if(debug) { printf("done\nFinding the mininmum spanning tree ... "); } getrusage(RUSAGE_SELF, rUBuf1); graph = MST(graph); getrusage(RUSAGE_SELF, rUBuf2); if(debug) { printf("done\nThe graph:\n"); PrintGraph(graph); printf("The minimum spanning tree:\n"); PrintMST(graph); } if(debug) { printf("Time spent in finding the mininum spanning tree:\n"); } PrintRUsage(rUBuf1, rUBuf2); #ifdef PLUS_STATS PrintDerefStats(stderr); PrintHeapSize(stderr); #endif /* PLUS_STATS */ exit(0); }