|
|
|
@ -33,7 +33,21 @@ class CF
|
|
|
|
|
real step = data[1] - data[0]; |
|
|
|
|
|
|
|
|
|
for(size_t i = 1; i < data.size() - 1; i++) |
|
|
|
|
if(michlib::Abs(1.0 - (data[i + 1] - data[i]) / step) > tolerance) { return false; } |
|
|
|
|
if(michlib::Abs(1.0 - (data[i + 1] - data[i]) / step) > tolerance) return false; |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Check, if vector time data lays on uniform grid
|
|
|
|
|
static bool CheckUniform(std::ranges::random_access_range auto&& data) |
|
|
|
|
requires std::convertible_to<std::ranges::range_value_t<decltype(data)>, MDateTime> |
|
|
|
|
{ |
|
|
|
|
if(data.size() < 2) return false; |
|
|
|
|
if(data.size() == 2) return true; |
|
|
|
|
|
|
|
|
|
auto step = data[1] - data[0]; |
|
|
|
|
|
|
|
|
|
for(size_t i = 1; i < data.size() - 1; i++) |
|
|
|
|
if(data[i + 1] - data[i] != step) return false; |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|