diff options
Diffstat (limited to 'src/libnest2d/libnest2d/optimizers/genetic.hpp')
-rw-r--r-- | src/libnest2d/libnest2d/optimizers/genetic.hpp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/libnest2d/libnest2d/optimizers/genetic.hpp b/src/libnest2d/libnest2d/optimizers/genetic.hpp new file mode 100644 index 000000000..276854a12 --- /dev/null +++ b/src/libnest2d/libnest2d/optimizers/genetic.hpp @@ -0,0 +1,31 @@ +#ifndef GENETIC_HPP +#define GENETIC_HPP + +#include "nlopt_boilerplate.hpp" + +namespace libnest2d { namespace opt { + +class GeneticOptimizer: public NloptOptimizer { +public: + inline explicit GeneticOptimizer(const StopCriteria& scr = {}): + NloptOptimizer(method2nloptAlg(Method::G_GENETIC), scr) {} + + inline GeneticOptimizer& localMethod(Method m) { + localmethod_ = m; + return *this; + } +}; + +template<> +struct OptimizerSubclass<Method::G_GENETIC> { using Type = GeneticOptimizer; }; + +template<> TOptimizer<Method::G_GENETIC> GlobalOptimizer<Method::G_GENETIC>( + Method localm, const StopCriteria& scr ) +{ + return GeneticOptimizer (scr).localMethod(localm); +} + +} +} + +#endif // GENETIC_HPP |