23 template <
class RT,
class PT,
class T>
31 ysize_ = arr_->info().getSize(1);
37 {
return getValue(p[0],p[1]); }
48 template <
class RT,
class PT,
class T>
inline
53 if ( ix0<0 || ix0>=xsize_-1 )
return mUdf(
RT);
57 if ( iy0<0 || iy0>=ysize_-1)
return mUdf(
RT);
59 if ( xsize_<4 || ysize_<4 || !ix0 || !iy0 ||
60 ix0>=xsize_-2 || iy0>=ysize_-2 )
64 return Interpolate::linearReg2DWithUdf<T>(
65 arr_->get( ix0, iy0 ),
66 arr_->get( ix0, iy0+1 ),
67 arr_->get( ix0+1, iy0 ),
68 arr_->get( ix0+1, iy0+1),
72 return Interpolate::linearReg2D<T>(
73 arr_->get( ix0, iy0 ),
74 arr_->get( ix0, iy0+1 ),
75 arr_->get( ix0+1, iy0 ),
76 arr_->get( ix0+1, iy0+1 ),
82 return Interpolate::polyReg2DWithUdf<T>(
83 arr_->get( ix0-1, iy0 ),
84 arr_->get( ix0-1, iy0+1 ),
85 arr_->get( ix0, iy0-1 ),
86 arr_->get( ix0, iy0 ),
87 arr_->get( ix0, iy0+1 ),
88 arr_->get( ix0, iy0+2 ),
89 arr_->get( ix0+1, iy0-1 ),
90 arr_->get( ix0+1, iy0 ),
91 arr_->get( ix0+1, iy0+1 ),
92 arr_->get( ix0+1, iy0+2 ),
93 arr_->get( ix0+2, iy0 ),
94 arr_->get( ix0+2, iy0+1 ),
99 return Interpolate::polyReg2D<T>( arr_->get( ix0-1, iy0 ),
100 arr_->get( ix0-1, iy0+1 ),
101 arr_->get( ix0, iy0-1 ),
102 arr_->get( ix0, iy0 ),
103 arr_->get( ix0, iy0+1 ),
104 arr_->get( ix0, iy0+2 ),
105 arr_->get( ix0+1, iy0-1 ),
106 arr_->get( ix0+1, iy0 ),
107 arr_->get( ix0+1, iy0+1 ),
108 arr_->get( ix0+1, iy0+2 ),
109 arr_->get( ix0+2, iy0 ),
110 arr_->get( ix0+2, iy0+1 ),