Changeset 1648
- Timestamp:
- Dec 13, 2008, 10:28:39 AM (14 years ago)
- Location:
- trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/test/interpolation_test.cc
r1645 r1648 2 2 3 3 /* 4 Copyright (C) 200 7Jari Häkkinen4 Copyright (C) 2008 Jari Häkkinen 5 5 6 6 This file is part of the yat library, http://dev.thep.lu.se/yat … … 22 22 #include "Suite.h" 23 23 24 #include "yat/regression/AkimaInterpolation.h" 25 #include "yat/regression/AkimaPeriodicInterpolation.h" 24 26 #include "yat/regression/CSplineInterpolation.h" 27 #include "yat/regression/CSplinePeriodicInterpolation.h" 28 #include "yat/regression/LinearInterpolation.h" 29 #include "yat/regression/PolynomialInterpolation.h" 25 30 #include "yat/utility/Vector.h" 26 31 #include "yat/utility/VectorConstView.h" … … 31 36 { 32 37 using namespace theplu::yat; 38 using namespace theplu::yat::regression; 33 39 34 40 test::Suite suite(argc, argv); … … 53 59 y(0)=100; y(1)= 97; y(2)=111; y(3)=120; y(4)=117; y(5)=103; 54 60 55 regression::CSplineInterpolation cspline(x,y);61 CSplineInterpolation cspline(x,y); 56 62 57 63 utility::Vector w(11); … … 75 81 } 76 82 83 // lazy testing, at least try to create the objects 84 AkimaInterpolation(x,y); 85 AkimaPeriodicInterpolation(x,y); 86 CSplinePeriodicInterpolation(x,y); 87 LinearInterpolation(x,y); 88 PolynomialInterpolation(x,y); 89 77 90 return suite.return_value(); 78 91 } -
trunk/yat/regression/GSLInterpolation.cc
r1644 r1648 58 58 59 59 60 double GSLInterpolation::evaluate(const double x) const 60 size_t GSLInterpolation::bsearch(const double x_array[], double x, 61 size_t index_lo, size_t index_hi) const 62 { 63 return gsl_interp_bsearch(x_array, x, index_lo, index_hi); 64 } 65 66 67 double GSLInterpolation::evaluate(double x) 61 68 { 62 return gsl_interp_eval(interpolator_,x_,y_,x,accelerator_); 69 return gsl_interp_eval(interpolator_, x_, y_, x, accelerator_); 70 } 71 72 73 double GSLInterpolation::evaluate_derivative(double x) 74 { 75 return gsl_interp_eval_deriv(interpolator_, x_, y_, x, accelerator_); 76 } 77 78 79 double GSLInterpolation::evaluate_derivative2(double x) 80 { 81 return gsl_interp_eval_deriv2(interpolator_, x_, y_, x, accelerator_); 82 } 83 84 85 double GSLInterpolation::evaluate_integral(double a, double b) 86 { 87 return gsl_interp_eval_integ(interpolator_, x_, y_, a, b, accelerator_); 88 } 89 90 91 unsigned int GSLInterpolation::min_size(void) const 92 { 93 return gsl_interp_min_size(interpolator_); 63 94 } 64 95 -
trunk/yat/regression/GSLInterpolation.h
r1644 r1648 53 53 54 54 public: 55 /** 56 \brief Search index. 57 58 This function returns the index \f$ i \f$ of the array \a 59 x_array such that \f$ x_array[i] <= x < x_array[i+1] \f$. The 60 index is searched for in the range 61 \f$ [index_lo, index_hi] \f$. 62 */ 63 size_t bsearch(const double x_array[], double x, size_t index_lo, 64 size_t index_hi) const; 55 65 56 66 /** … … 60 70 \a x. 61 71 */ 62 double evaluate(const double x) const; 72 double evaluate(double x); 73 74 /** 75 \brief Calculate the derivative of the interpolated function at 76 \a x. 77 78 \return The derivative. 79 */ 80 double evaluate_derivative(double x); 81 82 /** 83 \brief Calculate the 2nd derivative of the interpolated 84 function at \a x. 85 86 \return The 2nd derivative. 87 */ 88 double evaluate_derivative2(double x); 89 90 /** 91 \brief Calculate the numerical integral of the interpolated 92 function over the range \f$ [a,b] \f$. 93 94 \return The integral. 95 */ 96 double evaluate_integral(double a, double b); 97 98 /** 99 \brief This function returns the minimum number of points 100 required by the interpolation type. 101 102 For example, Akima spline interpolation requires a minimum of 5 103 points. 104 105 \return The minimum number of points required. 106 */ 107 unsigned int min_size(void) const; 63 108 64 109 protected: -
trunk/yat/regression/Makefile.am
r1647 r1648 29 29 Local.cc MultiDimensional.cc MultiDimensionalWeighted.cc Naive.cc \ 30 30 NaiveWeighted.cc OneDimensional.cc OneDimensionalWeighted.cc \ 31 Polynomial.cc LinearInterpolation.cc PolynomialWeighted.cc31 Polynomial.cc PolynomialInterpolation.cc PolynomialWeighted.cc 32 32 33 33 include_regressiondir = $(includedir)/yat/regression … … 39 39 LinearWeighted.h Local.h MultiDimensional.h \ 40 40 MultiDimensionalWeighted.h Naive.h NaiveWeighted.h OneDimensional.h \ 41 OneDimensionalWeighted.h Polynomial.h LinearInterpolation.cc\41 OneDimensionalWeighted.h Polynomial.h PolynomialInterpolation.cc \ 42 42 PolynomialWeighted.h
Note: See TracChangeset
for help on using the changeset viewer.