mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
[yul-phaser] Population: Add constructors to Individual to simplify initialization
This commit is contained in:
@@ -157,10 +157,7 @@ vector<Individual> Population::chromosomesToIndividuals(
|
||||
{
|
||||
vector<Individual> individuals;
|
||||
for (auto& chromosome: _chromosomes)
|
||||
{
|
||||
size_t fitness = _fitnessMetric.evaluate(chromosome);
|
||||
individuals.push_back({move(chromosome), fitness});
|
||||
}
|
||||
individuals.emplace_back(move(chromosome), _fitnessMetric);
|
||||
|
||||
return individuals;
|
||||
}
|
||||
|
||||
@@ -48,6 +48,13 @@ struct Individual
|
||||
Chromosome chromosome;
|
||||
size_t fitness;
|
||||
|
||||
Individual(Chromosome _chromosome, size_t _fitness):
|
||||
chromosome(std::move(_chromosome)),
|
||||
fitness(_fitness) {}
|
||||
Individual(Chromosome _chromosome, FitnessMetric const& _fitnessMetric):
|
||||
chromosome(std::move(_chromosome)),
|
||||
fitness(_fitnessMetric.evaluate(chromosome)) {}
|
||||
|
||||
bool operator==(Individual const& _other) const { return fitness == _other.fitness && chromosome == _other.chromosome; }
|
||||
bool operator!=(Individual const& _other) const { return !(*this == _other); }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user