/* PyEO Copyright (C) 2003 Maarten Keijzer This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #include #include #include #include "PyEO.h" #include "def_abstract_functor.h" #define DEF(x) class_, bases > >(#x).def("__call__", &eoReplacement::operator()) #define DEF2(x, i1) class_, bases > >(#x, init() ).def("__call__", &eoReplacement::operator()) #define DEF3(x, i1, i2) class_, bases > >(#x, init() ).def("__call__", &eoReplacement::operator()) void replacement() { def_abstract_functor >("eoReplacement"); // eoReplacement.h DEF(eoGenerationalReplacement); DEF2(eoWeakElitistReplacement, eoReplacement& ); // eoMergeReduce.h DEF3(eoMergeReduce, eoMerge&, eoReduce& ); DEF(eoPlusReplacement); DEF(eoCommaReplacement); DEF2(eoEPReplacement, unsigned); // eoReduceMerge.h DEF3(eoReduceMerge, eoReduce&, eoMerge& ); DEF(eoSSGAWorseReplacement); DEF2(eoSSGADetTournamentReplacement, unsigned); DEF2(eoSSGAStochTournamentReplacement, double); // eoReduceMergeReduce.h class_, bases > >("eoReplacement", init&, eoHowMany, eoReduce&, eoReduce&>()) .def("__call__", &eoReplacement::operator()); //eoMGGReplacement DEF(eoMGGReplacement) .def( init() ) .def( init() ); }