Changeset 1298 for cpp/frams/genetics


Ignore:
Timestamp:
03/29/24 23:30:34 (6 months ago)
Author:
Maciej Komosinski
Message:

Introduced overloads for rndUint() with size_t and int arguments to avoid numerous type casts in sources

Location:
cpp/frams/genetics
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • cpp/frams/genetics/f4/f4_oper.cpp

    r1274 r1298  
    253253                                return GENOPER_OPFAIL;
    254254
    255                         node_mutated = candidate_nodes[rndUint((unsigned int)candidate_nodes.size())];
     255                        node_mutated = candidate_nodes[rndUint(candidate_nodes.size())];
    256256                        f4_Node *node_mutated_parent = node_mutated->parent;
    257257
  • cpp/frams/genetics/fB/fB_oper.cpp

    r1273 r1298  
    252252        {
    253253                std::list<SString> tokenized = tokenizeSequence(line);
    254                 int rndid = rndUint((int)tokenized.size()); // select random letter from genotype
     254                int rndid = rndUint(tokenized.size()); // select random letter from genotype
    255255                // increment/decrement character - when overflow happens, this method
    256256                // uses the "reflect" approach
     
    291291                std::list<SString> tokenized = tokenizeSequence(line);
    292292                std::list<SString>::iterator it = tokenized.begin();
    293                 int rndid = rndUint((int)tokenized.size()); // select random insertion point
     293                int rndid = rndUint(tokenized.size()); // select random insertion point
    294294                std::advance(it, rndid);
    295295                NeuroClass *cls = getRandomNeuroClass(Model::SHAPETYPE_BALL_AND_STICK);
     
    312312                chg = 1.0 / line.length();
    313313                std::list<SString> tokenized = tokenizeSequence(line);
    314                 int rndid = rndUint((int)tokenized.size()); // select random insertion point
     314                int rndid = rndUint(tokenized.size()); // select random insertion point
    315315                std::list<SString>::iterator it = tokenized.begin();
    316316                std::advance(it, rndid);
     
    326326                std::list<SString> tokenized = tokenizeSequence(line);
    327327                std::list<SString>::iterator it = tokenized.begin();
    328                 int rndid = rndUint((int)tokenized.size()); // select random deletion point
     328                int rndid = rndUint(tokenized.size()); // select random deletion point
    329329                std::advance(it, rndid);
    330330                tokenized.erase(it);
     
    348348                for (int i = 0; i < 4; i++)
    349349                {
    350                         cuts[i] = rndUint((int)tokenized.size());
     350                        cuts[i] = rndUint(tokenized.size());
    351351                }
    352352                std::sort(cuts.begin(), cuts.end());
  • cpp/frams/genetics/fF/fF_oper.cpp

    r1280 r1298  
    4949        par.load(gene);
    5050        static const int propsToMutate[] = fF_PROPS_TO_MUTATE;
    51         int which = rndUint((unsigned int)std::size(propsToMutate));
     51        int which = rndUint(std::size(propsToMutate));
    5252        bool mutated_ok = GenoOperators::mutatePropertyNaive(par.param, propsToMutate[which]);
    5353        if (mutated_ok)
  • cpp/frams/genetics/fL/fL_oper.cpp

    r1273 r1298  
    181181        else
    182182        {
    183                 int rid = rndUint((unsigned int)creature->rules.size());
     183                int rid = rndUint(creature->rules.size());
    184184                list = &creature->rules[rid]->objsucc;
    185185                numparams = creature->rules[rid]->objpred->npar;
     
    313313                if (creature->rules.size() > 0)
    314314                {
    315                         int ruleid = rndUint((unsigned int)creature->rules.size());
     315                        int ruleid = rndUint(creature->rules.size());
    316316                        if (!creature->rules[ruleid]->condeval)
    317317                        {
     
    350350                if (wordswithnorules.size() > 0)
    351351                {
    352                         int predid = rndUint((unsigned int)wordswithnorules.size());
     352                        int predid = rndUint(wordswithnorules.size());
    353353                        fL_Rule *newrule = new fL_Rule(0, 0);
    354354                        fL_Word *pred = new fL_Word();
     
    362362                else if (creature->rules.size() > 0)
    363363                {
    364                         int ruleid = rndUint((unsigned int)creature->rules.size());
     364                        int ruleid = rndUint(creature->rules.size());
    365365                        fL_Rule *newrule = new fL_Rule(0, 0);
    366366                        fL_Word *pred = new fL_Word();
     
    465465                else
    466466                {
    467                         int rndid = rndUint((unsigned int)list->size());
     467                        int rndid = rndUint(list->size());
    468468                        std::list<fL_Word *>::iterator it = list->begin();
    469469                        std::advance(it, rndid);
     
    492492                int tmp = 0;
    493493                std::list<fL_Word *> *list = selectRandomSequence(creature, numpars, tmp);
    494                 int rndid = rndUint((unsigned int)list->size());
     494                int rndid = rndUint(list->size());
    495495                std::list<fL_Word *>::iterator it = list->begin();
    496496                std::advance(it, rndid);
     
    541541                int tmp = 0;
    542542                std::list<fL_Word *> *list = selectRandomSequence(creature, numpars, tmp);
    543                 int rndid = rndUint((unsigned int)list->size());
     543                int rndid = rndUint(list->size());
    544544                std::list<fL_Word *>::iterator selectedword = list->begin();
    545545                std::advance(selectedword, rndid);
     
    555555                        int numpars = 0;
    556556                        std::list<fL_Word *> *list = selectRandomSequence(creature, numpars, tmp);
    557                         int rndid = rndUint((unsigned int)list->size());
     557                        int rndid = rndUint(list->size());
    558558                        std::list<fL_Word *>::iterator it = list->begin();
    559559                        std::advance(it, rndid);
     
    587587                                if (available.size() > 0)
    588588                                {
    589                                         int newnameid = rndUint((unsigned int)available.size());
     589                                        int newnameid = rndUint(available.size());
    590590                                        (*selectedword)->name = available[newnameid]->name;
    591591                                }
     
    762762                for (int i = 0; i < numselrules; i++)
    763763                {
    764                         int rulid = rndUint((unsigned int)from->rules.size());
     764                        int rulid = rndUint(from->rules.size());
    765765                        fL_Rule *rul = from->rules[rulid];
    766766                        fL_Rule *newrule = new fL_Rule(0, 0);
Note: See TracChangeset for help on using the changeset viewer.