CubicSplineInterpolator1D.cpp

Go to the documentation of this file.
00001 // CubicSplineInterpolator1D.cpp: implementation of the CubicSplineInterpolator1D class.
00002 //
00004 
00005 #ifdef WIN32 
00006 #pragma warning(disable:4786)
00007 #endif
00008 #include "CubicSplineInterpolator1D.h"
00009 
00011 // Construction/Destruction
00013 namespace Interpolator
00014 {
00016 CubicSplineInterpolator1D::CubicSplineInterpolator1D()
00017 {
00018 
00019 }
00020 
00022 CubicSplineInterpolator1D::~CubicSplineInterpolator1D()
00023 {
00024     gsl_spline_free (spline);
00025     gsl_interp_accel_free (acc);
00026 }
00027 
00028 
00033 CubicSplineInterpolator1D::CubicSplineInterpolator1D(   std::string sName, 
00034                                                                                                                 std::string sDescription, 
00035                                                                                                                 InterpolationData1D* mInterpolationData) : 
00036 Interpolator1D(sName,sDescription,"Cubic Spline",mInterpolationData)
00037 
00038 {
00039         acc             = gsl_interp_accel_alloc ();
00040         spline  = gsl_spline_alloc (gsl_interp_cspline, getNbData());
00041         gsl_spline_init (spline, mInterpolationData->getXValues(), mInterpolationData->getYValues(), getNbData());
00042 }
00043 
00045 double CubicSplineInterpolator1D::getInterpolatedValue(double dValue)
00046 {
00047       return gsl_spline_eval (spline, dValue, acc);
00048 }
00049 
00051 void CubicSplineInterpolator1D::updateInterpolator()
00052 {
00053         gsl_spline_free (spline);
00054     gsl_interp_accel_free (acc);
00055         acc             = gsl_interp_accel_alloc ();
00056         spline  = gsl_spline_alloc (gsl_interp_cspline, getNbData());
00057         gsl_spline_init (spline, getInterpolatedData()->getXValues(), getInterpolatedData()->getYValues(), getNbData());
00058 }
00059 }
00060 
00061 

Generated on Tue Apr 14 09:50:27 2009 for Interpolator Library by  doxygen 1.4.5