void mouseDown (const MouseEvent& e) override { isDragging = false; isDraggingToScroll = false; selectRowOnMouseUp = false; if (isEnabled()) { if (owner.selectOnMouseDown && ! (selected || isInDragToScrollViewport())) performSelection (e, false); else selectRowOnMouseUp = true; } }
void mouseUp (const MouseEvent& e) override { if (isEnabled() && selectRowOnMouseUp && ! (isDragging || isDraggingToScroll)) performSelection (e, true); }
int main() { int generation = 0, i; FILE *fp; extern float minFitness, maxFitness, avgFitness; extern int curCrossovers, curMutations; extern int curPop; void printProgram( int, int ); srand(time(NULL)); curPop = 0; fp = fopen("stats.txt", "w"); if (fp == NULL) exit(-1); initPopulation(); performFitnessCheck( fp ); while (generation < MAX_GENERATIONS) { curCrossovers = curMutations = 0; performSelection(); /* Switch the populations */ curPop = (curPop == 0) ? 1 : 0; performFitnessCheck( fp ); if ((generation++ % 100) == 0) { printf("Generation %d\n", generation-1); printf("\tmaxFitness = %f (%g)\n", maxFitness, MAX_FIT); printf("\tavgFitness = %f\n", avgFitness); printf("\tminFitness = %f\n", minFitness); printf("\tCrossovers = %d\n", curCrossovers); printf("\tMutation = %d\n", curMutations); printf("\tpercentage = %f\n", avgFitness / maxFitness); } if ( generation > (MAX_GENERATIONS * 0.25) ) { if ((avgFitness / maxFitness) > 0.98) { printf("converged\n"); break; } } if (maxFitness == MAX_FIT) { printf("found solution\n"); break; } } printf("Generation %d\n", generation-1); printf("\tmaxFitness = %f (%g)\n", maxFitness, MAX_FIT); printf("\tavgFitness = %f\n", avgFitness); printf("\tminFitness = %f\n", minFitness); printf("\tCrossovers = %d\n", curCrossovers); printf("\tMutation = %d\n", curMutations); printf("\tpercentage = %f\n", avgFitness / maxFitness); for (i = 0 ; i < MAX_CHROMS ; i++) { if (populations[curPop][i].fitness == maxFitness) { int index; printf("Program %3d : ", i); for (index = 0 ; index < populations[curPop][i].progSize ; index++) { printf("%02d ", populations[curPop][i].program[index]); } printf("\n"); printf("Fitness %f\n", populations[curPop][i].fitness); printf("ProgSize %d\n\n", populations[curPop][i].progSize); printProgram(i, curPop); break; } } return 0; }