36 #ifndef _RECOMBINATIONPOSITIONGENERATOR_HPP_
37 #define _RECOMBINATIONPOSITIONGENERATOR_HPP_
40 #include "RecombinationMap.hpp"
41 #include "Configurable.hpp"
43 #include "shared_ptr.hpp"
75 virtual std::vector<unsigned int> get_positions(
size_t chromosome_pair_index = 0)
const = 0;
80 virtual std::string class_name()
const;
81 virtual Parameters parameters()
const;
82 virtual void configure(
const Parameters& parameters,
const Registry& registry);
89 typedef shared_ptr<RecombinationPositionGenerator> RecombinationPositionGeneratorPtr;
114 virtual std::vector<unsigned int> get_positions(
size_t chromosome_pair_index)
const;
118 virtual std::string class_name()
const {
return "RecombinationPositionGenerator_Trivial";}
119 virtual Parameters parameters()
const;
120 virtual void configure(
const Parameters& parameters,
const Registry& registry);
147 virtual std::vector<unsigned int> get_positions(
size_t chromosome_pair_index)
const;
151 virtual std::string class_name()
const {
return "RecombinationPositionGenerator_SingleCrossover";}
152 virtual Parameters parameters()
const;
153 virtual void configure(
const Parameters& parameters,
const Registry& registry);
157 std::vector<unsigned int> chromosome_lengths_;
191 Random::DistributionPtr poisson;
196 std::vector<ChromosomeInfo> infos = std::vector<ChromosomeInfo>());
198 virtual std::vector<unsigned int> get_positions(
size_t chromosome_pair_index)
const;
202 virtual std::string class_name()
const {
return "RecombinationPositionGenerator_Uniform";}
203 virtual Parameters parameters()
const;
204 virtual void configure(
const Parameters& parameters,
const Registry& registry);
210 typedef std::vector<ChromosomeInfo> ChromosomeInfos;
211 ChromosomeInfos infos_;
239 const std::vector<std::string>& filenames = std::vector<std::string>());
241 virtual std::vector<unsigned int> get_positions(
size_t chromosome_pair_index)
const;
245 virtual std::string class_name()
const {
return "RecombinationPositionGenerator_RecombinationMap";}
246 virtual Parameters parameters()
const;
247 virtual void configure(
const Parameters& parameters,
const Registry& registry);
251 std::vector<std::string> filenames_;
252 std::vector< shared_ptr<RecombinationMap> > recombination_maps_;
258 #endif // _RECOMBINATIONPOSITIONGENERATOR_HPP_