#include "genetic.h" #include #include namespace genetic { template struct CellEntry { float score; T cell; bool stale; }; template struct WorkEntry { const std::vector> &cur; std::vector> &next; int cur_i; }; // Definitions template Stats run(Strategy strat) { Stats stats; std::queue> fitness_queue; std::vector> cells_a, cells_b; for (int i = 0; i < strat.num_cells; i++) { T cell = strat.make_default_cell(); cells_a.push_back({0, cell, true}); cells_b.push_back({0, cell, true}); } std::vector> &cur_cells = cells_a; std::vector> &next_cells = cells_b; for (int i = 0; i < strat.num_generations; i++) { cur_cells = cur_cells == cells_a ? cells_b : cells_a; next_cells = cur_cells == cells_a ? cells_b : cells_a; } } } // namespace genetic