mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
[yul-phaser] Make the Population constructor that takes individuals public and use it to speed up some operations
This commit is contained in:
@@ -187,16 +187,16 @@ Population AlgorithmRunner::randomiseDuplicates(
|
||||
if (_population.individuals().size() == 0)
|
||||
return _population;
|
||||
|
||||
vector<Chromosome> chromosomes{_population.individuals()[0].chromosome};
|
||||
vector<Individual> individuals{_population.individuals()[0]};
|
||||
size_t duplicateCount = 0;
|
||||
for (size_t i = 1; i < _population.individuals().size(); ++i)
|
||||
if (_population.individuals()[i].chromosome == _population.individuals()[i - 1].chromosome)
|
||||
++duplicateCount;
|
||||
else
|
||||
chromosomes.push_back(_population.individuals()[i].chromosome);
|
||||
individuals.push_back(_population.individuals()[i]);
|
||||
|
||||
return (
|
||||
Population(_population.fitnessMetric(), chromosomes) +
|
||||
Population(_population.fitnessMetric(), individuals) +
|
||||
Population::makeRandom(_population.fitnessMetric(), duplicateCount, _minChromosomeLength, _maxChromosomeLength)
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user