#include <qwt_spline.h>
Public Methods | |
QwtSpline () | |
~QwtSpline () | |
double | value (double x) const |
int | recalc (double *x, double *y, int n, int periodic = 0) |
void | copyValues (int tf = 1) |
The QwtSpline class is used for cubical spline interpolation. Two types of splines, natural and periodic, are supported.
#include<qwt_spline.h> #include<iostream.h> QwtSpline s; double x[30], y[30], xInter[300], yInter[300]; int i; for(i=0;i<30;i++) // fill up x[] and y[] cin >> x[i] >> y[i]; if (s.recalc(x,y,30,0) == 0) // build natural spline { for(i=0;i<300;i++) // interpolate { xInter[i] = x[0] + double(i) * (x[29] - x[0]) / 299.0; yInter[i] = s.value( xInter[i] ); } do_something(xInter, yInter, 300); } else cerr << "Uhhh...\n";
|
CTOR.
|
|
DTOR.
|
|
Advise recalc() to buffer the tabulated function or switch off internal buffering.
By default, QwtSpline maintains an internal copy of the tabulated function given as *x and *y arguments of recalc(). If copyValues() is called with zero argument, subsequent calls to recalc() will not buffer these values anymore and just store the pointers instead. The value() function will then silently assume that these pointers remained valid and that the contents of the arrays have not been changed since the last recalc(). If called with no or nonzero argument, any following recalc() calls will use the internal buffer.
|
|
re-calculate the spline coefficients.
Depending on the value of <periodic>, this function will determine the coefficients for a natural or a periodic spline and store them internally. By default, it also buffers the values of x and y, which are needed for the interpolation (See value()). In order to save memory, this last behaviour may be changed with the copyValues() function.
|
|
Calculate the interpolated function value corresponding to a given argument x. |