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 QwtSpline::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  QwtSpline::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 QwtSpline::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 QwtSpline::recalc().

If QwtSpline::copyValues() is called with zero argument, subsequent calls to QwtSpline::recalc() will not buffer these values anymore and just store the pointers instead. The QwtSpline::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 QwtSpline::recalc().

If called with no or nonzero argument, any following QwtSpline::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 QwtSpline::value()). In order to save memory, this last behaviour may be changed with the QwtSpline::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.