33 #ifndef SHARK_ALGORITHMS_DIRECT_SEARCH_INDICATORS_ADDITIVE_EPSILON_INDICATOR_H 34 #define SHARK_ALGORITHMS_DIRECT_SEARCH_INDICATORS_ADDITIVE_EPSILON_INDICATOR_H 66 typename IteratorTypeA,
67 typename IteratorTypeB,
70 double operator()( IteratorTypeA itPF, IteratorTypeA itePF, IteratorTypeB itRF, IteratorTypeB iteRF, Extractor & e ){
72 for( IteratorTypeB itb = itRF; itb != iteRF; ++itb ) {
74 for( IteratorTypeA ita = itPF; ita != itePF;++ita ) {
75 SIZE_CHECK(e( *ita ).size() == e( *itb ).size());
85 template<
typename Extractor,
typename ParetofrontType>
88 std::vector<double> relativeApproximation(front.size());
92 for(std::size_t j = 0; j != front.size(); ++j){
94 result = std::min<double>(result,
max(extractor(front[i])-extractor(front[j])));
96 relativeApproximation[i] = result;
99 return std::min_element( relativeApproximation.begin(), relativeApproximation.end() ) - relativeApproximation.begin();
107 template<
typename Extractor,
typename Po
intSet>
113 template<
typename Archive>
114 void serialize( Archive & archive,
const unsigned int version ) {