3 #include <geneial/namespaces.h>
4 #include <geneial/core/population/builder/MultiValueChromosomeFactory.h>
5 #include <geneial/core/population/builder/ContinousMultiValueBuilderSettings.h>
6 #include <geneial/utility/mixins/EnableMakeShared.h>
8 geneial_private_namespace(geneial)
10 geneial_private_namespace(population)
12 geneial_private_namespace(chromosome)
14 using ::geneial::utility::EnableMakeShared;
16 geneial_export_namespace
19 template<
typename VALUE_TYPE,
typename FITNESS_TYPE>
20 class ContinousMultiValueChromosomeFactory:
public MultiValueChromosomeFactory<VALUE_TYPE,FITNESS_TYPE>,
21 public virtual EnableMakeShared<ContinousMultiValueChromosomeFactory<VALUE_TYPE,FITNESS_TYPE>>
24 const ContinousMultiValueBuilderSettings<VALUE_TYPE, FITNESS_TYPE> &_settings;
28 class Builder :
public BaseChromosomeFactory<FITNESS_TYPE>::Builder
31 ContinousMultiValueBuilderSettings<VALUE_TYPE, FITNESS_TYPE> _settings;
35 ContinousMultiValueBuilderSettings<VALUE_TYPE,FITNESS_TYPE>& getSettings()
40 Builder(
const typename FitnessEvaluator<FITNESS_TYPE>::ptr &fitnessEvaluator): _settings(fitnessEvaluator)
44 virtual typename BaseChromosomeFactory<FITNESS_TYPE>::ptr create()
override
46 return std::move(EnableMakeShared<ContinousMultiValueChromosomeFactory<VALUE_TYPE,FITNESS_TYPE>>::makeShared(_settings));
53 explicit ContinousMultiValueChromosomeFactory(
const ContinousMultiValueBuilderSettings<VALUE_TYPE, FITNESS_TYPE> &settings) :
54 MultiValueChromosomeFactory<VALUE_TYPE,FITNESS_TYPE>(settings), _settings(settings)
58 typename BaseChromosome<FITNESS_TYPE>::ptr doCreateChromosome(
59 typename BaseChromosomeFactory<FITNESS_TYPE>::PopulateBehavior populateValues
68 #include <geneial/core/population/builder/ContinousMultiValueChromosomeFactory.hpp>