#ifndef _theplu_yat_regression_polynomial_interpolation_
#define _theplu_yat_regression_polynomial_interpolation_
// $Id: PolynomialInterpolation.h 1676 2008-12-24 01:43:04Z peter $
/*
Copyright (C) 2008 Jari Häkkinen
This file is part of the yat library, http://dev.thep.lu.se/yat
The yat library is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 3 of the
License, or (at your option) any later version.
The yat library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with yat. If not, see .
*/
#include "GSLInterpolation.h"
namespace theplu {
namespace yat {
namespace utility {
class VectorBase;
}
namespace regression {
/**
\brief Polynomial interpolation.
This method should only be used for interpolating small numbers
of points because polynomial interpolation introduces large
oscillations, even for well-behaved datasets. The number of terms
in the interpolating polynomial is equal to the number of points.
\see Please refer to the base class documentation for genereal
introduction to the GSL based interpolation methods.
\since New in yat 0.5
*/
class PolynomialInterpolation : public GSLInterpolation
{
public:
/**
\brief The default constructor
*/
PolynomialInterpolation(const utility::VectorBase& x,
const utility::VectorBase& y);
/**
\brief The destructor
*/
~PolynomialInterpolation(void);
private:
/**
\brief Copy Constructor. (not implemented)
*/
PolynomialInterpolation(const PolynomialInterpolation&);
// no assignment allowed
PolynomialInterpolation& operator=(const PolynomialInterpolation&);
};
}}} // of namespaces regression, yat, and theplu
#endif