36 #ifndef _MUTATIONGENERATOR_HPP_
37 #define _MUTATIONGENERATOR_HPP_
41 #include "Population.hpp"
42 #include "Trajectory.hpp"
43 #include "shared_ptr.hpp"
69 size_t individual_index;
75 : individual_index(0), locus(
"id_dummy"), which(0), value(0)
79 typedef std::vector<MutationInfo> MutationInfos;
83 virtual MutationInfos generate_mutations(
const Population& population,
84 size_t generation_index,
85 size_t population_index)
const {
return MutationInfos();}
88 virtual std::string class_name()
const {
return "MutationGenerator";}
89 virtual Parameters parameters()
const {
return Parameters();}
90 virtual void configure(
const Parameters& parameters,
const Registry& registry) {}
96 typedef shared_ptr<MutationGenerator> MutationGeneratorPtr;
135 virtual MutationInfos generate_mutations(
const Population& population,
136 size_t generation_index,
137 size_t population_index)
const;
140 virtual std::string class_name()
const {
return "MutationGenerator_SingleLocus";}
141 virtual Parameters parameters()
const;
142 virtual void configure(
const Parameters& parameters,
const Registry& registry);
143 virtual void write_child_configurations(std::ostream& os, std::set<std::string>& ids_written)
const;
182 TrajectoryPtr mutation_rate;
186 TrajectoryPtr _mutation_rate = TrajectoryPtr())
187 : locus(_locus), length(_length), mutation_rate(_mutation_rate)
190 std::string configuration()
const;
193 typedef std::vector<RegionInfo> RegionInfos;
196 const RegionInfos& region_infos = RegionInfos())
200 virtual MutationInfos generate_mutations(
const Population& population,
201 size_t generation_index,
202 size_t population_index)
const;
205 virtual std::string class_name()
const {
return "MutationGenerator_Regions";}
206 virtual Parameters parameters()
const;
207 virtual void configure(
const Parameters& parameters,
const Registry& registry);
208 virtual void write_child_configurations(std::ostream& os, std::set<std::string>& ids_written)
const;
212 RegionInfos region_infos_;
216 #endif // _MUTATIONGENERATOR_HPP_