Changeset 1648 for trunk/yat/regression


Ignore:
Timestamp:
Dec 13, 2008, 10:28:39 AM (13 years ago)
Author:
Jari Häkkinen
Message:

Addresses #466. Added more GSL functionality, added constructor tests.

Location:
trunk/yat/regression
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/yat/regression/GSLInterpolation.cc

    r1644 r1648  
    5858
    5959
    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)
    6168  {
    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_);
    6394  }
    6495
  • trunk/yat/regression/GSLInterpolation.h

    r1644 r1648  
    5353
    5454  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;
    5565
    5666    /**
     
    6070       \a x.
    6171    */
    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;
    63108
    64109  protected:
  • trunk/yat/regression/Makefile.am

    r1647 r1648  
    2929  Local.cc MultiDimensional.cc MultiDimensionalWeighted.cc Naive.cc   \
    3030  NaiveWeighted.cc OneDimensional.cc OneDimensionalWeighted.cc        \
    31   Polynomial.cc LinearInterpolation.cc PolynomialWeighted.cc
     31  Polynomial.cc PolynomialInterpolation.cc PolynomialWeighted.cc
    3232
    3333include_regressiondir = $(includedir)/yat/regression
     
    3939  LinearWeighted.h Local.h MultiDimensional.h                         \
    4040  MultiDimensionalWeighted.h Naive.h NaiveWeighted.h OneDimensional.h \
    41   OneDimensionalWeighted.h Polynomial.h LinearInterpolation.cc        \
     41  OneDimensionalWeighted.h Polynomial.h PolynomialInterpolation.cc    \
    4242  PolynomialWeighted.h
Note: See TracChangeset for help on using the changeset viewer.