00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef MOEOMETRIC_H_
00014 #define MOEOMETRIC_H_
00015
00016 #include <vector>
00017 #include <eoFunctor.h>
00018
00022 class moeoMetric : public eoFunctorBase {};
00023
00024
00028 template < class A, class R >
00029 class moeoUnaryMetric : public eoUF < A, R >, public moeoMetric {};
00030
00031
00035 template < class A1, class A2, class R >
00036 class moeoBinaryMetric : public eoBF < A1, A2, R >, public moeoMetric {};
00037
00038
00042 template < class ObjectiveVector, class R >
00043 class moeoSolutionUnaryMetric : public moeoUnaryMetric < const ObjectiveVector &, R > {};
00044
00045
00049 template < class ObjectiveVector, class R >
00050 class moeoVectorUnaryMetric : public moeoUnaryMetric < const std::vector < ObjectiveVector > &, R > {};
00051
00052
00056 template < class ObjectiveVector, class R >
00057 class moeoSolutionVsSolutionBinaryMetric : public moeoBinaryMetric < const ObjectiveVector &, const ObjectiveVector &, R > {};
00058
00059
00063 template < class ObjectiveVector, class R >
00064 class moeoVectorVsVectorBinaryMetric : public moeoBinaryMetric < const std::vector < ObjectiveVector > &, const std::vector < ObjectiveVector > &, R > {};
00065
00066
00067 #endif