У меня есть большой решатель «черного ящика» (f, ...), который принимает функцию (например) как ввод:
Код: Выделить всё
double f(x, a, b, c) {
return 0.0
}
На самом деле это не очень просто использовать, поскольку если У меня есть 100 параметров, мне нужно написать что-то вроде:
Код: Выделить всё
double f(x, a_0, a_1, ..., a_99) {
return 0.0;
}
Код: Выделить всё
// Variadic function (general form)
template
double f(double x, Args... args) {
const double z = (x - std::get(std::make_tuple(args...))) / std::get(std::make_tuple(args...));
return std::get(std::make_tuple(args...)) * std::exp(-0.5 * z * z);
}
Код: Выделить всё
double gaussian(double x, double a, double b, double c) {
const double z = (x - b) / c;
return a * std::exp(-0.5 * z * z);
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... plain-in-c