• Main Page
  • Modules
  • Classes
  • Files
  • File List

D:/Projekt/ECF_trunk/ECF/floatingpoint/floatingpoint/FloatingPoint.h

00001 #ifndef FLOATINGPOINT_H_
00002 #define FLOATINGPOINT_H_
00003 
00004 #include "../RealValueGenotype.h"
00005 #include "FloatingPointMutSimple.h"
00006 #include "FloatingPointCrsOnePoint.h"
00007 #include "FloatingPointCrsArithmetic.h"
00008 #include "FloatingPointCrsDiscrete.h"
00009 #include "FloatingPointCrsArithmeticSimple.h"
00010 #include "FloatingPointCrsArithmeticSingle.h"
00011 #include "FloatingPointCrsAverage.h"
00012 #include "FloatingPointCrsFlat.h"
00013 #include "FloatingPointCrsBlx.h"
00014 #include "FloatingPointCrsHeuristic.h"
00015 #include "FloatingPointCrsRandom.h"
00016 #include "FloatingPointCrsSbx.h"
00017 #include "FloatingPointCrsBga.h"
00018 
00019 namespace FloatingPoint
00020 {
00021 
00036 class FloatingPoint: public RealValueGenotype {
00037 
00038 public:
00039 
00040     FloatingPoint ()
00041     {   name_="FloatingPoint";  }
00042 
00043     bool initialize (StateP state);
00044 
00045     void registerParameters(StateP state);
00046 
00048     double getLBound ()
00049     {   return minValue_;   }
00050 
00052     double getUBound ()
00053     {   return maxValue_;   }
00054 
00055     FloatingPoint* copy()
00056     {
00057         FloatingPoint *newObject = new FloatingPoint(*this);
00058         return newObject;
00059     }
00060 
00061     std::vector<CrossoverOpP> getCrossoverOp()
00062     {
00063         std::vector<CrossoverOpP> crx;
00064         crx.push_back(static_cast<CrossoverOpP> (new FloatingPointCrsOnePoint));
00065         crx.push_back(static_cast<CrossoverOpP> (new FloatingPointCrsArithmetic));
00066         crx.push_back(static_cast<CrossoverOpP> (new FloatingPointCrsDiscrete));
00067         crx.push_back(static_cast<CrossoverOpP> (new FloatingPointCrsArithmeticSimple));
00068         crx.push_back(static_cast<CrossoverOpP> (new FloatingPointCrsArithmeticSingle));
00069         crx.push_back(static_cast<CrossoverOpP> (new FloatingPointCrsAverage));
00070         crx.push_back(static_cast<CrossoverOpP> (new FloatingPointCrsFlat));
00071         crx.push_back(static_cast<CrossoverOpP> (new FloatingPointCrsBlx));
00072         crx.push_back(static_cast<CrossoverOpP> (new FloatingPointCrsHeuristic));
00073         crx.push_back(static_cast<CrossoverOpP> (new FloatingPointCrsRandom));
00074         crx.push_back(static_cast<CrossoverOpP> (new FloatingPointCrsSbx));
00075         crx.push_back(static_cast<CrossoverOpP> (new FloatingPointCrsBga));
00076         return crx;
00077     }
00078 
00079     std::vector<MutationOpP> getMutationOp()
00080     {   
00081         std::vector<MutationOpP> mut;
00082         mut.push_back(static_cast<MutationOpP> (new FloatingPointMutSimple));
00083         return mut;
00084     }
00085 
00086     void write(XMLNode& xFloatingPoint);
00087     void read(XMLNode& xFloatingPoint);
00088 };
00089 }
00090 
00091 typedef boost::shared_ptr<FloatingPoint::FloatingPoint> FloatingPointP;
00092 #endif

Generated on Tue Jul 2 2013 10:51:47 for ECF by  doxygen 1.7.1