# QwtSpline Class Reference

A class for spline interpolation. More...

`#include <qwt_spline.h>`

List of all members.

## Public Types

enum | SplineType { Natural, Periodic }

## Public Member Functions

const QVector< double > & | coefficientsA () const
const QVector< double > & | coefficientsB () const
const QVector< double > & | coefficientsC () const
bool | isValid () const
QwtSpline & | operator= (const QwtSpline &)
QPolygonF | points () const
| QwtSpline ()
| QwtSpline (const QwtSpline &)
void | reset ()
bool | setPoints (const QPolygonF &points)
void | setSplineType (SplineType)
SplineType | splineType () const
double | value (double x) const
| ~QwtSpline ()

## Protected Member Functions

bool | buildNaturalSpline (const QPolygonF &)
bool | buildPeriodicSpline (const QPolygonF &)

## 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:
  1. First call setPoints() to determine the spline coefficients for a tabulated function y(x).
  2. After the coefficients have been set up, the interpolated function value for an argument x can be determined by calling QwtSpline::value().

Example:

      #include <qwt_spline.h>

      QPolygonF interpolate(const QPolygonF& points, int numValues)
      {
          QwtSpline spline;
          if ( !spline.setPoints(points) )
              return points;

          QPolygonF interpolatedPoints(numValues);

          const double delta =
              (points[numPoints - 1].x() - points[0].x()) / (points.size() - 1);
          for(i = 0; i < points.size(); i++)  / interpolate
          {
              const double x = points[0].x() + i * delta;
              interpolatedPoints[i].setX(x);
              interpolatedPoints[i].setY(spline.value(x));
          }
          return interpolatedPoints;
      }

## Member Enumeration Documentation

enum QwtSpline::SplineType

Spline type.

Enumerator:

  Natural | A natural spline.
  Periodic | A periodic spline.

## Constructor & Destructor Documentation

QwtSpline::QwtSpline | ( |  | ) |

Constructor.

QwtSpline::QwtSpline | ( | const QwtSpline & | other | ) |

Copy constructor

Parameters:

  other | Spline used for initilization

QwtSpline::~QwtSpline | ( |  | ) |

Destructor.

## Member Function Documentation

bool QwtSpline::buildNaturalSpline | ( | const QPolygonF & | points | ) | `[protected]`

Determines the coefficients for a natural spline.

Returns:
  true if successful

bool QwtSpline::buildPeriodicSpline | ( | const QPolygonF & | points | ) | `[protected]`

Determines the coefficients for a periodic spline.

Returns:
  true if successful

const QVector< double > & QwtSpline::coefficientsA | ( |  | ) | const

Returns:
  A coefficients

const QVector< double > & QwtSpline::coefficientsB | ( |  | ) | const

Returns:
  B coefficients

const QVector< double > & QwtSpline::coefficientsC | ( |  | ) | const

Returns:
  C coefficients

bool QwtSpline::isValid | ( |  | ) | const

True if valid.

QwtSpline & QwtSpline::operator= | ( | const QwtSpline & | other | ) |

Assignment operator

Parameters:

  other | Spline used for initilization

QPolygonF QwtSpline::points | ( |  | ) | const

Return points passed by setPoints

void QwtSpline::reset | ( |  | ) |

Free allocated memory and set size to 0.

bool QwtSpline::setPoints | ( | const QPolygonF & | points | ) |

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.

Parameters:

  points | Points

Returns:
  true if successful

Warning:
  The sequence of x (but not y) values has to be strictly monotone increasing, which means `points[i].x() < points[i+1].x()`. If this is not the case, the function will return false

void QwtSpline::setSplineType | ( | SplineType | splineType | ) |

Select the algorithm used for calculating the spline

Parameters:

  splineType | Spline type

See also:
  splineType()

QwtSpline::SplineType QwtSpline::splineType | ( |  | ) | const

Returns:
  the spline type

See also:
  setSplineType()

double QwtSpline::value | ( | double | x | ) | const

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