Polynomial
17 lines
content/numerical/Polynomial.h — David Rydh, Per Austrin
struct Poly {
vector<double> a;
double operator()(double x) const {
double val = 0;
for (int i = sz(a); i--;) (val *= x) += a[i];
return val;
}
void diff() {
rep(i,1,sz(a)) a[i-1] = i*a[i];
a.pop_back();
}
void divroot(double x0) {
double b = a.back(), c; a.back() = 0;
for(int i=sz(a)-1; i--;) c = a[i], a[i] = a[i+1]*x0+b, b=c;
a.pop_back();
}
};