O5Interpolation.h

00001 #ifndef gridripper_math_O5Interpolation_h
00002 #define gridripper_math_O5Interpolation_h
00003 
00004 #include <gridripper/config.h>
00005 #include <gridripper/tvector.h>
00006 #include <gridripper/math/Matrix.h>
00007 #include <gridripper/lang/IllegalArgumentException.h>
00008 
00009 namespace gridripper { namespace math {
00010 
00018 class O5Interpolation
00019 {
00020 private:
00021     tvector<GReal_t> xarr;
00022     tvector<GReal_t> yarr;
00023     Matrix<GReal_t> P;
00024     MVector<GReal_t> dL;
00025     MVector<GReal_t> dR;
00026     tvector<GReal_t> coeff;
00027     int numComponents;
00028 
00029 public:
00037     O5Interpolation(const tvector<GReal_t>& xarr,
00038                     const tvector<GReal_t>& yarr)
00039         throw(IllegalArgumentException&);
00040 
00047     GReal_t interpolate(GReal_t x, int componentIndex) const;
00048 
00057     GReal_t integrateSection(int k, int componentIndex) const;
00058 
00059 private:
00060     void calcCoeff(int k, int componentIndex);
00061 
00070     void derive(const int* iarr, int i, MVector<GReal_t>& d, int componentIndex);
00071 };
00072 
00073 } } // namespace gridripper::math
00074 
00075 #endif /* gridripper_math_O5Interpolation_h */

Generated on Wed Jun 17 18:46:47 2009 for GridRipper by  doxygen 1.5.6