#ifndef _theplu_yat_regression_cspline_interpolation_
#define _theplu_yat_regression_cspline_interpolation_
// $Id: CSplineInterpolation.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 Cubic spline with natural boundary conditions.
The resulting curve is piecewise cubic on each interval, with
matching first and second derivatives at the supplied
data-points. The second derivative is chosen to be zero at the
first point and last point.
\see Please refer to the base class documentation for genereal
introduction to the GSL based interpolation methods.
\since New in yat 0.5
*/
class CSplineInterpolation : public GSLInterpolation
{
public:
/**
\brief The default constructor
*/
CSplineInterpolation(const utility::VectorBase& x,
const utility::VectorBase& y);
/**
\brief The destructor
*/
~CSplineInterpolation(void);
private:
/**
\brief Copy Constructor. (not implemented)
*/
CSplineInterpolation(const CSplineInterpolation&);
// no assignment allowed
CSplineInterpolation& operator=(const CSplineInterpolation&);
};
}}} // of namespaces regression, yat, and theplu
#endif