51interp1D(std::vector<A>
const &v,
double const &keyVal,
52 CompOper
const &comp = std::less<double>{})
55 v.cbegin(), v.cend(), keyVal, [](A
const &x) { return x[0]; },
56 [](A
const &x) { return x[1]; }, comp);
62 template <
class T>
class map2Vectors
64 using KeyVec = std::vector<double>;
65 using ValueVec = std::vector<T>;
66 using const_iterator = std::vector<std::size_t>::const_iterator;
69 map2Vectors(KeyVec
const &k, ValueVec
const &v)
70 : keys{k}, values{v}, indexes{}
72 indexes.resize(keys.size());
73 std::iota(indexes.begin(), indexes.end(), 0);
77 cbegin()
const noexcept
79 return indexes.cbegin();
84 return indexes.cend();
88 ValueVec
const &values;
91 std::vector<std::size_t> indexes;
140interp1D(std::vector<double>
const &keys, std::vector<T>
const &values,
141 double const &keyVal, CompOper
const &comp = std::less<double>{})
143 using namespace internals;
144 map2Vectors<T> map(keys, values);
145 return interp1D(map.cbegin(), map.cend(), keyVal,
146 extractKey_map2Vectors<T>{map},
147 extractValue_map2Vectors<T>{map}, comp);
auto interp1D(RAIterator const &begin, RAIterator const &end, Key const &keyVal, ExtractKey const &extractKey, ExtractValue const &extractValue, CompareKey const &comp=std::less< Key >())
Definition interp1D.hpp:92