void TABLE::find(char* wildcard_ID, char* lastID) { vector<IDinfor> print_data; int len = strlen(wildcard_ID); if (hasStart(wildcard_ID, len)){ for (int i = 1; i < NAMEMAX; i++){ int size = ID_table[i].size(); for (int j = 0; j < size; j++){ if (strcmp(ID_table[i][j].str, lastID) == 0) continue; if (WildTextCompare(ID_table[i][j].str, wildcard_ID)) print_data.push_back(ID_table[i][j]); } } } else { int size = ID_table[len].size(); for (int i = 0; i < size; i++){ if (strcmp(ID_table[len][i].str, lastID) == 0) continue; if (WildTextCompare(ID_table[len][i].str, wildcard_ID)) print_data.push_back(ID_table[len][i]); } } sort(print_data.begin(), print_data.end(), cmp); print(print_data); }
bool QTodoItem::qt_invoke( int _id, QUObject* _o ) { switch ( _id - staticMetaObject()->slotOffset() ) { case 0: actionsMenuActivated((int)static_QUType_int.get(_o+1)); break; case 1: actionsMenu(); break; case 2: addSubTodo(); break; case 3: addTodoBelow(); break; case 4: addTodoAbove(); break; case 5: hasStart((bool)static_QUType_bool.get(_o+1)); break; case 6: hasDeadline((bool)static_QUType_bool.get(_o+1)); break; case 7: showHBoxBelow(); break; default: return QHBox::qt_invoke( _id, _o ); } return TRUE; }
typename Population<FITNESS_TYPE>::chromosome_container SmoothPeakMutationOperation<VALUE_TYPE, FITNESS_TYPE>::doMutate( const typename Population<FITNESS_TYPE>::chromosome_container &chromosomeInputContainer, BaseManager<FITNESS_TYPE> &manager) const { typename Population<FITNESS_TYPE>::chromosome_container resultset; typename Population<FITNESS_TYPE>::chromosome_container choosenChromosomeContainer; typename Population<FITNESS_TYPE>::chromosome_container notChoosenChromosomeContainer; const auto maxNumMvc = this->getBuilderFactory().getSettings().getNum(); const auto continousBuilderSettings = ( static_cast<const ContinousMultiValueBuilderSettings<VALUE_TYPE, FITNESS_TYPE>&>(this->getBuilderFactory().getSettings()) ); choosenChromosomeContainer = this->getChoosingOperation().doChoose(chromosomeInputContainer); for(auto it: chromosomeInputContainer) { auto result = std::find(std::begin(choosenChromosomeContainer), std::end(choosenChromosomeContainer), it); if (result == std::end(choosenChromosomeContainer)) { notChoosenChromosomeContainer.emplace_back(it); } } //only mutate choosen chromosomes for (const auto &chosenChromosome : choosenChromosomeContainer) { const auto slotsToMutate = Random::generate<unsigned int>(this->getSettings().getMinimumPointsToMutate(), this->getSettings().getMaximumPointsToMutate()); //casting mutant to MVC const auto mvcMutant = std::dynamic_pointer_cast < MultiValueChromosome<VALUE_TYPE, FITNESS_TYPE> > (chosenChromosome); assert(mvcMutant); //creating a new MVC (to keep things reversible) auto mutatedChromosome = std::dynamic_pointer_cast < MultiValueChromosome<VALUE_TYPE, FITNESS_TYPE> > (this->getBuilderFactory().createChromosome(BaseChromosomeFactory<FITNESS_TYPE>::LET_UNPOPULATED)); assert(mutatedChromosome); //getting values const auto &mutantChromosomeContainer = mvcMutant->getContainer(); auto &result_container = mutatedChromosome->getContainer(); std::copy(mutantChromosomeContainer.cbegin(), mutantChromosomeContainer.cend(), result_container.begin()); //Predetermine Positions for Mutation: std::unordered_set<unsigned int> positions; while (positions.size() < slotsToMutate) { const auto rand = Random::generate<unsigned int>(0, maxNumMvc - 1); positions.emplace(rand); } //We have an predetermined amount of points for introducing peaks... for (const auto pos : positions) { const int sign = (Random::generateBit()) ? -1 : 1; const auto peak = sign * Random::generate<VALUE_TYPE>(0, this->_maxElevation); Smoothing::peakAt<VALUE_TYPE, FITNESS_TYPE>(pos, Random::generate<int>(0, this->_maxLeftEps), Random::generate<int>(0, this->_maxRightEps), //TODO(bewo): Make minElevation another setting peak, mutatedChromosome); } //Correct smoothness in mutated chromosome Smoothing::restoreSmoothness<VALUE_TYPE, FITNESS_TYPE>(mutatedChromosome, continousBuilderSettings.getEps(), continousBuilderSettings.getRandomMin(), continousBuilderSettings.getRandomMax(), continousBuilderSettings.hasStart(), continousBuilderSettings.getStartValue()); //Age reset mutatedChromosome->setAge(0); resultset.emplace_back(mutatedChromosome); } //add not mutated chromosomes resultset.insert(resultset.end(), notChoosenChromosomeContainer.begin(), notChoosenChromosomeContainer.end()); return resultset; }