ARTS
2.2.66
|
Structure to store a grid position for higher order interpolation. More...
#include <interpolation_poly.h>
Public Attributes | |
ArrayOfIndex | idx |
Vector | w |
Structure to store a grid position for higher order interpolation.
This serves the same purpose as GridPos for linear interpolation. The main difference is that we store not fractional distances (fd), but interpolation weights (w). For the linear case: w[0] = fd[1] w[1] = fd[0]
Because the w are associated with each interpolation point, they work also for higher interpolation order, whereas the concept of fractional distance does not.
There is some confusion between the meaning of fractional distances and interpolation weights. In fact the two are almost the same in the 1D case! (But the sorting and signs can be different.)
The w here correspond exactly to the terms in front of the yi in Numerical Recipes, 2nd edition, section 3.1, eq. 3.1.1.
Only for 2D or higher dimensional interpolation are further calculations necessary, to multiply the w for the individual dimensions.
The size of w must equal the number of points used in the interpolation m. (m=2 For linear, m=3 for quadratic, etc..)
Another important difference is that we store not only the index of the first interpolation point in the original grid, but the indices of all. We store these explicitly, to allow correct handling of the case of cyclic interpolation (in longitude or phi angle) by a future specialized gridpos function.
Definition at line 64 of file interpolation_poly.h.
ArrayOfIndex GridPosPoly::idx |
Indices of the interpolation point in the original grid. (Dimension is the number of points in the interpolation, m.)
Definition at line 67 of file interpolation_poly.h.
Referenced by abs_lookupSetupBatch(), choose_abs_nls_pert(), choose_abs_t_pert(), and operator<<().
Vector GridPosPoly::w |
Interpolation weight for each grid point to use. (Dimension is the number of points in the interpolation, m.)
Definition at line 70 of file interpolation_poly.h.
Referenced by interp(), interpweights(), and operator<<().