ultimatepp/bazaar/STEM4U/Utility.h
koldo 478a44f0c1 STEM4U: Added new filters and mooring handling
git-svn-id: svn://ultimatepp.org/upp/trunk@15584 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2020-12-11 23:25:58 +00:00

31 lines
772 B
C++

#ifndef _STEM4U_utility_h_
#define _STEM4U_utility_h_
namespace Upp {
double R2(const Eigen::VectorXd &serie, const Eigen::VectorXd &serie0, double mean = Null);
template <class Range>
void CleanOutliers(const Range &x, const Range &y, const Range &filtery, Range &retx, Range &rety,
const typename Range::value_type& ratio,
const typename Range::value_type& zero = 0) {
ASSERT(x.size() == y.size() && x.size() == filtery.size());
Resize(retx, x.size());
Resize(rety, x.size());
int id = 0;
for (int i = 0; i < x.size(); ++i) {
if (EqualRatio(y[i], filtery[i], ratio, zero)) {
retx[id] = x[i];
rety[id] = y[i];
id++;
}
}
ResizeConservative(retx, id);
ResizeConservative(rety, id);
}
}
#endif