Я пишу числовой код интеграции, но мне не удается его векторизовать, так как я продолжаю получать код ошибки 1200 .
В основном моя процедура заключается в следующем. Объект Fxy представляет собой 2D-функцию. Насколько я понимаю, вызов функции f
вызовет проблемы, когда она не может быть встроена. Однако добавление ключевого слова inline
не помогло.
class Fxy
{
public:
inline double operator()(double, double) const;
}
double integrate(Fxy f, std::vector<double> x, std::vector<double> w){
double ans = 0.0;
for (size_t i = 0; i < x.size(); ++i){
for (size_t j = 0; j < x.size(); ++j){
ans += f(x[i], x[j]) * w[i] * w[j];
}
}
return ans;
}