#include "ass_funs.h" namespace AssFuns { SlipsReturn SlipsCheck(const vector& data, const double& th) { SlipsReturn res = {0, 0}; size_t data_num = data.size(); if (data_num < 3) { return res; } double data_sum = 0; double data_max = data[0]; double data_min = data[0]; for (double item : data) { data_sum += item; data_max = std::max(data_max, item); data_min = std::min(data_min, item); } double data_ave = (data_sum - data_max - data_min) / double(data_num - 2); double diff_max = std::max(fabs(data_max - data_ave), fabs(data_max - data_ave)); for (int i = 0; i < data_num; i++) { double diff_now = fabs(data[i] - data_ave); if (diff_now > fabs(data_ave) * th && fabs(diff_now - diff_max) < std::numeric_limits::epsilon()) { res[0] = 1; res[1] = i; return res; } } return res; } } // namespace AssFuns