Browse Source

Added CheckUniform for time vector

master
Michael Uleysky 4 weeks ago
parent
commit
060657efbc
  1. 16
      include/CF.h

16
include/CF.h

@ -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;
}

Loading…
Cancel
Save