66 double y0, y1, y2, x0, x1, x2, der;
80 der = y0*(2*x0-x1-x2)/(x0-x1)/(x0-x2) +
81 y1*(x0-x2)/(x1-x0)/(x1-x2) +
82 y2*(x0-x1)/(x2-x0)/(x2-x1) ;
86 for(
int i=1;i<np-1;i++) {
96 der = y0*(x1-x2)/(x0-x1)/(x0-x2) +
97 y1*(2*x1-x0-x2)/(x1-x0)/(x1-x2) +
98 y2*(x1-x0)/(x2-x0)/(x2-x1) ;
114 der = y0*(x2-x1)/(x0-x1)/(x0-x2) +
115 y1*(x2-x0)/(x1-x0)/(x1-x2) +
116 y2*(2*x2-x0-x1)/(x2-x0)/(x2-x1) ;
118 dydx.
set(np-1) = der ;
void compute_derivative(const Tbl &xx, const Tbl &ff, Tbl &dfdx)
Derives a function defined on an unequally-spaced grid, approximating it by piecewise parabolae.