QwtSpline(3)

NAME
QwtSpline - A class for spline interpolation.

SYNOPSIS

#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)

DETAILED DESCRIPTION

A class for spline interpolation.

 The QwtSpline class is used for cubical spline interpolation. Two types of splines, natural and periodic, are supported.

Usage:

First call recalc() to determine the spline coefficients for a tabulated function y(x).

After the coefficients have been set up, the interpolated function value for an argument x can be determined by calling  value().

In order to save storage space, QwtSpline can be advised not to buffer the contents of x and y. This means that the arrays have to remain valid and unchanged for the interpolation to work properly. This can be achieved by calling copyValues().

Example:

#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...;

CONSTRUCTOR & DESTRUCTOR DOCUMENTATION

  QwtSpline::QwtSpline ()

CTOR.

  QwtSpline::~QwtSpline ()

DTOR.

MEMBER FUNCTION DOCUMENTATION

  void QwtSpline::copyValues (int tf = 1)

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.

Parameters:

tf  if nonzero, the function table will be buffered

Warning:
copyValues() resets all the contents of QwtSpline. A subsequent recalc() will be necessary.

  int QwtSpline::recalc (double * x, double * y, int n, int periodic = 0)

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.

Parameters:

x

y   points

n   number of points

periodic
    if non-zero, calculate periodic spline

Returns:

0   successful

Qwt::ErrMono
    Sequence of x values is not strictly monotone increasing

Qwt::ErrNoMem
    Couldn't allocate memory

Warning:
The sequence of x (but not y) values has to be strictly monotone increasing, which means x[0] < x[1] < .... < x[n-1]. If this is not the case, the function will return an error.

  double QwtSpline::value (double x) const

Calculate the interpolated function value corresponding to a given argument x.

AUTHOR

Generated automatically by Doxygen for Qwt User's Guide from the source code.