00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef MOEOMETRIC_H_
00014 #define MOEOMETRIC_H_
00015
00016 #include <eoFunctor.h>
00017
00021 class moeoMetric : public eoFunctorBase
00022 {};
00023
00024
00028 template < class A, class R >
00029 class moeoUnaryMetric : public eoUF < A, R >, public moeoMetric
00030 {};
00031
00032
00036 template < class A1, class A2, class R >
00037 class moeoBinaryMetric : public eoBF < A1, A2, R >, public moeoMetric
00038 {};
00039
00040
00044 template < class ObjectiveVector, class R >
00045 class moeoSolutionUnaryMetric : public moeoUnaryMetric < const ObjectiveVector &, R >
00046 {};
00047
00048
00052 template < class ObjectiveVector, class R >
00053 class moeoVectorUnaryMetric : public moeoUnaryMetric < const std::vector < ObjectiveVector > &, R >
00054 {};
00055
00056
00060 template < class ObjectiveVector, class R >
00061 class moeoSolutionVsSolutionBinaryMetric : public moeoBinaryMetric < const ObjectiveVector &, const ObjectiveVector &, R >
00062 {};
00063
00064
00068 template < class ObjectiveVector, class R >
00069 class moeoVectorVsVectorBinaryMetric : public moeoBinaryMetric < const std::vector < ObjectiveVector > &, const std::vector < ObjectiveVector > &, R >
00070 {};
00071
00072
00073 #endif