29 const bool return_true_case_of_equal)
const
32 for (
const auto& tag : evaluation_priority_list_)
35 const float& left_value = left.
value.at(tag);
36 const float& right_value = right.
value.at(tag);
38 const auto& evaluation_method = evaluation_method_map_.at(tag);
40 assert(evaluation_method.margin >= 0.0f);
43 if (std::abs(left_value - right_value) <= evaluation_method.margin)
50 if (left_value < right_value)
52 return evaluation_method.is_lower_better;
54 else if (left_value > right_value)
56 return !evaluation_method.is_lower_better;
66 return return_true_case_of_equal;
72 const float& left_value = left.
value.at(tag);
73 const float& right_value = right.
value.at(tag);
75 const auto& evaluation_method = evaluation_method_map_.at(tag);
77 assert(evaluation_method.margin >= 0.0f);
80 if (std::abs(left_value - right_value) <= evaluation_method.margin)
82 return return_true_case_of_equal;
85 if (left_value < right_value)
87 return evaluation_method.is_lower_better;
91 return !evaluation_method.is_lower_better;