void CEvaluatingFunction::generatePoints(COUNTER FitCaseNum){ F<double> IntervalSize = (RangeMax-RangeMin)/(double)FitCaseNum; destroyPoints(); try{ FunctionX1.push_back(RangeMin); FunctionY.push_back(Eval(RangeMin)); for(COUNTER i=1; i<FitCaseNum-1; i++){ F<double> x = RangeMin + ((F<double>)i*IntervalSize); //Pick a point int somewhere = rand()%100; //in the interval, if (somewhere) x+= ((F<double>)1.0f/(F<double>)(somewhere))*IntervalSize; //somewhere in the interval. FunctionX1.push_back(x); FunctionY.push_back(Eval(x)); } FunctionX1.push_back(RangeMax); FunctionY.push_back(Eval(RangeMax)); } catch(CString Exc){ throw Exc; } }
int main(int argc, char **argv) { srand(time(NULL)); if (argc < 2) { printf("Mandatory parameter is missing. 0 - Generate Kruskal testcase; 1 - Generate Trading Salesman testcase.\n"); } else if (atoi(argv[1]) == 0) { if (argc != 7) printf("Usage: 0 nbNodes nbEdges minWeight maxWeight outputName.\n"); else { graph graph = createGraph(atoi(argv[2]), atoi(argv[3]), atof(argv[4]), atof(argv[5])); printGraph(&graph, argv[6]); //printDot(&graph, 1); destroyGraph(&graph); } } else if (atoi(argv[1]) == 1) { if (argc != 4) printf("Usage: 1 nbNodes outputName.\n"); else { point *points = generatePoints(atoi(argv[2])); printGraphOfPoints(points, atoi(argv[2]), argv[3]); destroyPoints(points); } } else { printf("Illegal job id.\n"); return 0; } return 0; }
CEvaluatingFunction::~CEvaluatingFunction(void){ destroyPoints(); }