00001 #pragma once 00002 #ifndef interpolator_h 00003 #define interpolator_h 00004 00005 #include <iostream> 00006 #include <valarray> 00007 #include <fstream> 00008 #include <istream> 00009 #include <ostream> 00010 #include "./types.h" 00011 00012 00013 00014 using namespace std; 00015 00016 00017 00018 00019 00020 00021 00022 00023 00024 class interpolator{ 00025 private : 00026 valarray<Real> _x; 00027 valarray<Real> _y; 00028 00029 00030 valarray<Real> _x1; 00031 valarray<Real> _x2; 00032 valarray<valarray<Real> > _ymat; 00033 00034 00035 public : 00037 interpolator(); 00038 00043 interpolator(valarray<Real> x, valarray<Real> y); 00044 00050 interpolator(valarray<Real> x1, valarray<Real> x2, valarray<valarray<Real> > ymat); 00051 00053 Real interpolate(Real x); 00054 00056 Real interpolate(Real x1, Real x2); 00057 00059 valarray<Real> interpolate(valarray<Real> vec); 00060 00062 valarray<valarray<Real> > interpolate(valarray<Real> vec1, valarray<Real> vec2); 00063 00064 Real getInterpolation(valarray<Real> xa,valarray<Real> ya, Real x); 00065 00066 Integer getPlace(Real x); 00067 Integer getPlaceOnXi(Real x, Integer i); 00068 }; 00069 00070 00071 #endif