Сэмплирование функции на шаблонах C++
Завершено
2
19.09.2022, 04:25
27.12.2022, 12:41
Реализовать задачу Сэмплирование функции, используя метапрограммирование и шаблоны C++.
class QuadraticFn
{
const double m_a, m_b, m_c;
public:
QuadraticFn(double a, double b, double c)
: m_a(a), m_b(b), m_c(c) {}
double operator () (double x) const {
return (m_a * x + m_b) * x + m_c;
}
};
// ...
Sampler s; // класс сэмплирующий функцию
// инициализация через лямбда-функцию
s.init([](double x) -> double { return (-1 * x + 2) * x - 5; }, 0, 10, 0.025);
// инициализация через функтор
QuadraticFn f(5, -3, 0);
s.init(f, 0, 10, 0.025);
// распечатка сэмплов
for (size_t i = 0; i < s.size(); ++i)
cout << s[i].first << "\t" << s[i].second << endl;
}