ARTS  2.4.0(git:4fb77825)
interpolation_poly.cc File Reference

Interpolation routines for cubic and higher order interpolation. More...

#include "interpolation_poly.h"
#include <cmath>
#include <iostream>
#include "arts_omp.h"
#include "check_input.h"
#include "interpolation.h"
#include "logic.h"

Go to the source code of this file.

Macros

#define LOOPW(x)   for (ConstIterator1D x = t##x##begin; x != t##x##end; ++x)
 Macro for interpolation weight loops. More...
 
#define CACHEW(x)
 Macro for caching begin and end iterators for interpolation weight loops. More...
 
#define LOOPIDX(x)    for (ArrayOfIndex::const_iterator x = t##x##begin; x != t##x##end; ++x)
 Macro for interpolation index loops. More...
 
#define CACHEIDX(x)
 Macro for caching begin and end iterators for interpolation index loops. More...
 

Functions

Index IMAX (Index a, Index b)
 Return the maximum of two integer numbers. More...
 
Index IMIN (Index a, Index b)
 Return the minimum of two integer numbers. More...
 
void gridpos_poly (ArrayOfGridPosPoly &gp, ConstVectorView old_grid, ConstVectorView new_grid, const Index order, const Numeric &extpolfac)
 The maximum difference from 1 that we allow for a sum check. More...
 
void gridpos_poly (GridPosPoly &gp, ConstVectorView old_grid, const Numeric &new_grid, const Index order, const Numeric &extpolfac)
 gridpos_poly More...
 
void gridpos_poly_longitudinal (const String &error_msg, ArrayOfGridPosPoly &gp, ConstVectorView old_grid, ConstVectorView new_grid, const Index order, const Numeric &extpolfac)
 Set up grid positions for higher order interpolation on longitudes. More...
 
void gridpos_poly_cyclic_longitudinal (ArrayOfGridPosPoly &gp, ConstVectorView old_grid, ConstVectorView new_grid, const Index order, const Numeric &extpolfac)
 Set up grid positions for higher order interpolation. More...
 
void gridpos_poly_longitudinal (const String &error_msg, GridPosPoly &gp, ConstVectorView old_grid, const Numeric &new_grid, const Index order, const Numeric &extpolfac)
 gridpos_poly_longitudinal More...
 
void gridpos_poly_cyclic_longitudinal (GridPosPoly &gp, ConstVectorView old_grid, const Numeric &new_grid, const Index order, const Numeric &extpolfac)
 gridpos_poly_cyclic_longitudinal More...
 
ostream & operator<< (ostream &os, const GridPosPoly &gp)
 Output operator for GridPosPoly. More...
 
void interpweights (VectorView itw, const GridPosPoly &tc)
 Red 1D interpolation weights. More...
 
void interpweights (VectorView itw, const GridPosPoly &tr, const GridPosPoly &tc)
 Red 2D interpolation weights. More...
 
void interpweights (VectorView itw, const GridPosPoly &tp, const GridPosPoly &tr, const GridPosPoly &tc)
 Red 3D interpolation weights. More...
 
void interpweights (VectorView itw, const GridPosPoly &tb, const GridPosPoly &tp, const GridPosPoly &tr, const GridPosPoly &tc)
 Red 4D interpolation weights. More...
 
void interpweights (VectorView itw, const GridPosPoly &ts, const GridPosPoly &tb, const GridPosPoly &tp, const GridPosPoly &tr, const GridPosPoly &tc)
 Red 5D interpolation weights. More...
 
void interpweights (VectorView itw, const GridPosPoly &tv, const GridPosPoly &ts, const GridPosPoly &tb, const GridPosPoly &tp, const GridPosPoly &tr, const GridPosPoly &tc)
 Red 6D interpolation weights. More...
 
Numeric interp (ConstVectorView itw, ConstVectorView a, const GridPosPoly &tc)
 Red 1D Interpolate. More...
 
Numeric interp (ConstVectorView itw, ConstMatrixView a, const GridPosPoly &tr, const GridPosPoly &tc)
 Red 2D Interpolate. More...
 
Numeric interp (ConstVectorView itw, ConstTensor3View a, const GridPosPoly &tp, const GridPosPoly &tr, const GridPosPoly &tc)
 Red 3D Interpolate. More...
 
Numeric interp (ConstVectorView itw, ConstTensor4View a, const GridPosPoly &tb, const GridPosPoly &tp, const GridPosPoly &tr, const GridPosPoly &tc)
 Red 4D Interpolate. More...
 
Numeric interp (ConstVectorView itw, ConstTensor5View a, const GridPosPoly &ts, const GridPosPoly &tb, const GridPosPoly &tp, const GridPosPoly &tr, const GridPosPoly &tc)
 Red 5D Interpolate. More...
 
Numeric interp (ConstVectorView itw, ConstTensor6View a, const GridPosPoly &tv, const GridPosPoly &ts, const GridPosPoly &tb, const GridPosPoly &tp, const GridPosPoly &tr, const GridPosPoly &tc)
 Red 6D Interpolate. More...
 
void interpweights (MatrixView itw, const ArrayOfGridPosPoly &cgp)
 Compute 1D interpolation weights. More...
 
void interpweights (MatrixView itw, const ArrayOfGridPosPoly &rgp, const ArrayOfGridPosPoly &cgp)
 Compute 2D interpolation weights for a sequence of positions. More...
 
void interpweights (MatrixView itw, const ArrayOfGridPosPoly &pgp, const ArrayOfGridPosPoly &rgp, const ArrayOfGridPosPoly &cgp)
 Compute 3D interpolation weights for a sequence of positions. More...
 
void interpweights (MatrixView itw, const ArrayOfGridPosPoly &bgp, const ArrayOfGridPosPoly &pgp, const ArrayOfGridPosPoly &rgp, const ArrayOfGridPosPoly &cgp)
 Compute 4D interpolation weights for a sequence of positions. More...
 
void interpweights (MatrixView itw, const ArrayOfGridPosPoly &sgp, const ArrayOfGridPosPoly &bgp, const ArrayOfGridPosPoly &pgp, const ArrayOfGridPosPoly &rgp, const ArrayOfGridPosPoly &cgp)
 Compute 5D interpolation weights for a sequence of positions. More...
 
void interpweights (MatrixView itw, const ArrayOfGridPosPoly &vgp, const ArrayOfGridPosPoly &sgp, const ArrayOfGridPosPoly &bgp, const ArrayOfGridPosPoly &pgp, const ArrayOfGridPosPoly &rgp, const ArrayOfGridPosPoly &cgp)
 Compute 6D interpolation weights for a sequence of positions. More...
 
void interp (VectorView ia, ConstMatrixView itw, ConstVectorView a, const ArrayOfGridPosPoly &cgp)
 Interpolate 1D field. More...
 
void interp (VectorView ia, ConstMatrixView itw, ConstMatrixView a, const ArrayOfGridPosPoly &rgp, const ArrayOfGridPosPoly &cgp)
 Interpolate 2D field to a sequence of positions. More...
 
void interp (VectorView ia, ConstMatrixView itw, ConstTensor3View a, const ArrayOfGridPosPoly &pgp, const ArrayOfGridPosPoly &rgp, const ArrayOfGridPosPoly &cgp)
 Interpolate 3D field to a sequence of positions. More...
 
void interp (VectorView ia, ConstMatrixView itw, ConstTensor4View a, const ArrayOfGridPosPoly &bgp, const ArrayOfGridPosPoly &pgp, const ArrayOfGridPosPoly &rgp, const ArrayOfGridPosPoly &cgp)
 Interpolate 4D field to a sequence of positions. More...
 
void interp (VectorView ia, ConstMatrixView itw, ConstTensor5View a, const ArrayOfGridPosPoly &sgp, const ArrayOfGridPosPoly &bgp, const ArrayOfGridPosPoly &pgp, const ArrayOfGridPosPoly &rgp, const ArrayOfGridPosPoly &cgp)
 Interpolate 5D field to a sequence of positions. More...
 
void interp (VectorView ia, ConstMatrixView itw, ConstTensor6View a, const ArrayOfGridPosPoly &vgp, const ArrayOfGridPosPoly &sgp, const ArrayOfGridPosPoly &bgp, const ArrayOfGridPosPoly &pgp, const ArrayOfGridPosPoly &rgp, const ArrayOfGridPosPoly &cgp)
 Interpolate 6D field to a sequence of positions. More...
 
void interpweights (Tensor3View itw, const ArrayOfGridPosPoly &rgp, const ArrayOfGridPosPoly &cgp)
 Compute 2D interpolation weights for an entire field. More...
 
void interpweights (Tensor4View itw, const ArrayOfGridPosPoly &pgp, const ArrayOfGridPosPoly &rgp, const ArrayOfGridPosPoly &cgp)
 Compute 3D interpolation weights for an entire field. More...
 
void interpweights (Tensor5View itw, const ArrayOfGridPosPoly &bgp, const ArrayOfGridPosPoly &pgp, const ArrayOfGridPosPoly &rgp, const ArrayOfGridPosPoly &cgp)
 Compute 4D interpolation weights for an entire field. More...
 
void interpweights (Tensor6View itw, const ArrayOfGridPosPoly &sgp, const ArrayOfGridPosPoly &bgp, const ArrayOfGridPosPoly &pgp, const ArrayOfGridPosPoly &rgp, const ArrayOfGridPosPoly &cgp)
 Compute 5D interpolation weights for an entire field. More...
 
void interpweights (Tensor7View itw, const ArrayOfGridPosPoly &vgp, const ArrayOfGridPosPoly &sgp, const ArrayOfGridPosPoly &bgp, const ArrayOfGridPosPoly &pgp, const ArrayOfGridPosPoly &rgp, const ArrayOfGridPosPoly &cgp)
 Compute 6D interpolation weights for an entire field. More...
 
void interp (MatrixView ia, ConstTensor3View itw, ConstMatrixView a, const ArrayOfGridPosPoly &rgp, const ArrayOfGridPosPoly &cgp)
 Interpolate 2D field to another 2D field. More...
 
void interp (Tensor3View ia, ConstTensor4View itw, ConstTensor3View a, const ArrayOfGridPosPoly &pgp, const ArrayOfGridPosPoly &rgp, const ArrayOfGridPosPoly &cgp)
 Interpolate 3D field to another 3D field. More...
 
void interp (Tensor4View ia, ConstTensor5View itw, ConstTensor4View a, const ArrayOfGridPosPoly &bgp, const ArrayOfGridPosPoly &pgp, const ArrayOfGridPosPoly &rgp, const ArrayOfGridPosPoly &cgp)
 Interpolate 4D field to another 4D field. More...
 
void interp (Tensor5View ia, ConstTensor6View itw, ConstTensor5View a, const ArrayOfGridPosPoly &sgp, const ArrayOfGridPosPoly &bgp, const ArrayOfGridPosPoly &pgp, const ArrayOfGridPosPoly &rgp, const ArrayOfGridPosPoly &cgp)
 Interpolate 5D field to another 5D field. More...
 
void interp (Tensor6View ia, ConstTensor7View itw, ConstTensor6View a, const ArrayOfGridPosPoly &vgp, const ArrayOfGridPosPoly &sgp, const ArrayOfGridPosPoly &bgp, const ArrayOfGridPosPoly &pgp, const ArrayOfGridPosPoly &rgp, const ArrayOfGridPosPoly &cgp)
 Interpolate 6D field to another 6D field. More...
 

Detailed Description

Interpolation routines for cubic and higher order interpolation.

Author
Stefan Buehler <sbuehler(at)ltu.se>
Date
2008-02-04

The data structures and functions provided here follow the same philosophy as those for linear interpolation in interpolation{.h,.cc}. You will need a sequence of three steps to perform an interpolation:

  1. gridpos_poly (one for each interpolation dimension)
  2. interpweights
  3. interp

Not only is the philosophy the same, these higher order functions also make direct use of the linear functions in some important cases.

Definition in file interpolation_poly.cc.

Macro Definition Documentation

◆ CACHEIDX

#define CACHEIDX (   x)
Value:
const ArrayOfIndex::const_iterator t##x##begin = t##x.idx.begin(); \
const ArrayOfIndex::const_iterator t##x##end = t##x.idx.end();

Macro for caching begin and end iterators for interpolation index loops.

Definition at line 459 of file interpolation_poly.cc.

◆ CACHEW

#define CACHEW (   x)
Value:
const ConstIterator1D t##x##begin = t##x.w.begin(); \
const ConstIterator1D t##x##end = t##x.w.end();

Macro for caching begin and end iterators for interpolation weight loops.

Definition at line 445 of file interpolation_poly.cc.

◆ LOOPIDX

#define LOOPIDX (   x)     for (ArrayOfIndex::const_iterator x = t##x##begin; x != t##x##end; ++x)

Macro for interpolation index loops.

This is the same as LOOPW, but for loops over tx.idx. Since tx.idx is an ArrayOfIndex, not a Vector, we have to use a different type of iterator.

Definition at line 455 of file interpolation_poly.cc.

◆ LOOPW

#define LOOPW (   x)    for (ConstIterator1D x = t##x##begin; x != t##x##end; ++x)

Macro for interpolation weight loops.

We use the macro LOOPW to make the notation for the nested for loops in the interpweights functions more concise, and to avoid typing errors.

Should resolve to something like:

for ( Index x=0; x<tx.w.nelem(); ++x )

But with iterators:

for ( ConstIterator1D x=tx.w.begin(); x!=tx.w.end(); ++x )

Definition at line 442 of file interpolation_poly.cc.

Function Documentation

◆ gridpos_poly() [1/2]

void gridpos_poly ( ArrayOfGridPosPoly gp,
ConstVectorView  old_grid,
ConstVectorView  new_grid,
const Index  order,
const Numeric extpolfac 
)

The maximum difference from 1 that we allow for a sum check.

The sum check makes sure that the sum of all weights is approximately 1.

We cannot use a sharp comparison there, due to numerical noise. The value of 1e-6 is an ad-hoc value.

This shold be ok, the main point of the test is to make sure that what we have really are interpolation weights, and not something else. Set up grid positions for higher order interpolation.

This function performs the same task as gridpos, but for arbitrary orders of interpolation. (Linear is also possible, as a special case.) We even handle nearest neighbour interpolation, as order 0.

The formula for calculating the weights w is taken from Numerical Recipes, 2nd edition, section 3.1, eq. 3.1.1.

Parameters
gpOutput: An array of grid positions.
old_gridOriginal grid.
new_gridNew grid.
orderInterpolation order. 0 = nearest neighbour, 1 = linear, 2 = quadratic, etc.. The number of points used in the interpolation will be order+1.
extpolfacExtrapolation fraction. Should normally not be specified, then the default of 0.5 is used.

Definition at line 120 of file interpolation_poly.cc.

References gridpos(), is_size(), and ConstVectorView::nelem().

Referenced by abs_lookupTestAccMC(), choose_abs_nls_pert(), choose_abs_t_pert(), XsecRecord::Extract(), GriddedFieldLatLonRegridHelper(), GriddedFieldZToPRegridHelper(), gridpos_poly(), gridpos_poly_cyclic_longitudinal(), gridpos_poly_longitudinal(), jacobianCalcFreqShift(), jacobianCalcFreqStretch(), MagFieldsCalc(), MagFieldsFromAltitudeRawCalc(), p2gridpos_poly(), scat_dataCalc(), scat_dataReduceT(), sensor_responseFillFgrid(), SingleCalculatePartitionFctFromData(), SingleCalculatePartitionFctFromData_dT(), ssd_tinterp_parameters(), surface_reflectivityFromGriddedField6(), surface_scalar_reflectivityFromGriddedField4(), test07(), test08(), and WindFieldsCalc().

◆ gridpos_poly() [2/2]

void gridpos_poly ( GridPosPoly gp,
ConstVectorView  old_grid,
const Numeric new_grid,
const Index  order,
const Numeric extpolfac 
)

gridpos_poly

Creates a grid position structure for higher order interpolation.

This is a gateway to the function for arrays of GridPosPoly, to be used for e.g. "red interpolation".

Return values
gpThe GridPos structure.
Parameters
old_gridThe original grid.
new_gridThe position where we want to have the interpolated value.
orderInterpolation order. 1 = linear, 2 = quadratic, etc.. The number of points used in the interpolation will be order+1.
extpolfacExtrapolation factor. Default value is 0.5, which means that extrapolation of half of the last grid distance is allowed. You don't have to specify this.
Author
Stefan Buehler
Date
2008-03-06

Definition at line 241 of file interpolation_poly.cc.

References gridpos_poly().

◆ gridpos_poly_cyclic_longitudinal() [1/2]

void gridpos_poly_cyclic_longitudinal ( ArrayOfGridPosPoly gp,
ConstVectorView  old_grid,
ConstVectorView  new_grid,
const Index  order,
const Numeric extpolfac 
)

Set up grid positions for higher order interpolation.

This function performs the same task as gridpos, but for arbitrary orders of interpolation. It is especially for cyclic interpolation of longitudes. The distance between the first and the last point in the original grid has to span 360 degrees.

Parameters
[out]gpAn array of grid positions.
[in]old_gridOriginal grid.
[in]new_gridNew grid.
[in]orderInterpolation order. 1 = linear, 2 = quadratic, etc.. The number of points used in the interpolation will be order+1.
[in]extpolfacExtrapolation fraction. Should normally not be specified, then the default of 0.5 is used.
Author
Oliver Lemke
Date
12-07-10

Definition at line 326 of file interpolation_poly.cc.

References gridpos_poly(), is_lon_cyclic(), and ConstVectorView::nelem().

Referenced by gridpos_poly_cyclic_longitudinal(), and gridpos_poly_longitudinal().

◆ gridpos_poly_cyclic_longitudinal() [2/2]

void gridpos_poly_cyclic_longitudinal ( GridPosPoly gp,
ConstVectorView  old_grid,
const Numeric new_grid,
const Index  order,
const Numeric extpolfac 
)

gridpos_poly_cyclic_longitudinal

Creates a grid position structure for higher order interpolation for cyclic longitudinal grids.

This is a gateway to the function for arrays of GridPosPoly, to be used for e.g. "red interpolation".

Return values
gpThe GridPos structure.
Parameters
old_gridThe original grid.
new_gridThe position where we want to have the interpolated value.
orderInterpolation order. 1 = linear, 2 = quadratic, etc.. The number of points used in the interpolation will be order+1.
extpolfacExtrapolation factor. Default value is 0.5, which means that extrapolation of half of the last grid distance is allowed. You don't have to specify this.
Author
Jana Mendrok (copied from gridpos_poly equivalent by Stefan Buehler)
Date
2017-03-03

Definition at line 417 of file interpolation_poly.cc.

References gridpos_poly_cyclic_longitudinal().

◆ gridpos_poly_longitudinal() [1/2]

void gridpos_poly_longitudinal ( const String error_msg,
ArrayOfGridPosPoly gp,
ConstVectorView  old_grid,
ConstVectorView  new_grid,
const Index  order,
const Numeric extpolfac 
)

Set up grid positions for higher order interpolation on longitudes.

This function performs the same task as gridpos, but for arbitrary orders of interpolation. It is especially for interpolation of longitudes. If necessary, it will shift the given longitudes up or down by 360 degrees. For a global longitude grid, it will do cyclic interpolation.

The formula for calculating the weights w is taken from Numerical Recipes, 2nd edition, section 3.1, eq. 3.1.1.

Parameters
[in]error_msgMessage for potential runtime error
[out]gpAn array of grid positions.
[in]old_gridOriginal grid.
[in]new_gridNew grid.
[in]orderInterpolation order. 1 = linear, 2 = quadratic, etc.. The number of points used in the interpolation will be order+1.
[in]extpolfacExtrapolation fraction. Should normally not be specified, then the default of 0.5 is used.
Author
Oliver Lemke
Date
12-07-10

Definition at line 275 of file interpolation_poly.cc.

References chk_interpolation_grids(), gridpos_poly(), gridpos_poly_cyclic_longitudinal(), is_lon_cyclic(), and ConstVectorView::nelem().

Referenced by GriddedFieldLatLonRegridHelper(), and gridpos_poly_longitudinal().

◆ gridpos_poly_longitudinal() [2/2]

void gridpos_poly_longitudinal ( const String error_msg,
GridPosPoly gp,
ConstVectorView  old_grid,
const Numeric new_grid,
const Index  order,
const Numeric extpolfac 
)

gridpos_poly_longitudinal

Creates a grid position structure for higher order interpolation for longitudinal grids.

This is a gateway to the function for arrays of GridPosPoly, to be used for e.g. "red interpolation".

Parameters
[in]error_msgMessage for potential runtime error
Return values
gpThe GridPos structure.
Parameters
old_gridThe original grid.
new_gridThe position where we want to have the interpolated value.
orderInterpolation order. 1 = linear, 2 = quadratic, etc.. The number of points used in the interpolation will be order+1.
extpolfacExtrapolation factor. Default value is 0.5, which means that extrapolation of half of the last grid distance is allowed. You don't have to specify this.
Author
Jana Mendrok (copied from gridpos_poly equivalent by Stefan Buehler)
Date
2017-03-03

Definition at line 381 of file interpolation_poly.cc.

References gridpos_poly_longitudinal().

◆ IMAX()

Index IMAX ( Index  a,
Index  b 
)

Return the maximum of two integer numbers.

This function is based on a macro from Numerical Receipes. The original macro:

static Index imaxarg1, imaxarg2; #define IMAX(a,b) (imaxarg1=(a), imaxarg2=(b),(imaxarg1) > (imaxarg2) ? \ (imaxarg1) : (imaxarg2))

The macro can cause trouble if used in parallel regions, so we use this function instead.

Parameters
aInput a.
bInput b.
Returns
The maximum of a and b.

Definition at line 64 of file interpolation_poly.cc.

◆ IMIN()

Index IMIN ( Index  a,
Index  b 
)

Return the minimum of two integer numbers.

This function is based on a macro from Numerical Receipes. The original macro:

static Index iminarg1, iminarg2; #define IMIN(a,b) (iminarg1=(a), iminarg2=(b),(iminarg1) < (iminarg2) ? \ (iminarg1) : (iminarg2))

The macro can cause trouble if used in parallel regions, so we use this function instead.

Parameters
aInput a.
bInput b.
Returns
The minimum of a and b.

Definition at line 83 of file interpolation_poly.cc.

◆ interp() [1/17]

Numeric interp ( ConstVectorView  itw,
ConstMatrixView  a,
const GridPosPoly tr,
const GridPosPoly tc 
)

Red 2D Interpolate.

"Red" interpolation returns just a scalar.

The dimension of itw must be consistent with the interpolation order (o) and the dimension (n) of the interpolation (i.e., (o+1)^n).

Parameters
itwInterpolation weights.
aThe field to interpolate.
trThe grid position for the row dimension.
tcThe grid position for the column dimension.
Returns
Interpolated value.
Author
Stefan Buehler <sbuehler(at)ltu.se>
Date
2008-03-06

Definition at line 771 of file interpolation_poly.cc.

References CACHEIDX, is_same_within_epsilon(), is_size(), ConstVectorView::nelem(), ConstVectorView::sum(), and GridPosPoly::w.

◆ interp() [2/17]

Numeric interp ( ConstVectorView  itw,
ConstTensor3View  a,
const GridPosPoly tp,
const GridPosPoly tr,
const GridPosPoly tc 
)

Red 3D Interpolate.

"Red" interpolation returns just a scalar.

The dimension of itw must be consistent with the interpolation order (o) and the dimension (n) of the interpolation (i.e., (o+1)^n).

Parameters
itwInterpolation weights.
aThe field to interpolate.
tpThe grid position for the page dimension.
trThe grid position for the row dimension.
tcThe grid position for the column dimension.
Returns
Interpolated value.
Author
Stefan Buehler <sbuehler(at)ltu.se>
Date
2008-03-06

Definition at line 814 of file interpolation_poly.cc.

References CACHEIDX, is_same_within_epsilon(), is_size(), ConstVectorView::nelem(), ConstVectorView::sum(), and GridPosPoly::w.

◆ interp() [3/17]

Numeric interp ( ConstVectorView  itw,
ConstTensor4View  a,
const GridPosPoly tb,
const GridPosPoly tp,
const GridPosPoly tr,
const GridPosPoly tc 
)

Red 4D Interpolate.

"Red" interpolation returns just a scalar.

The dimension of itw must be consistent with the interpolation order (o) and the dimension (n) of the interpolation (i.e., (o+1)^n).

Parameters
itwInterpolation weights.
aThe field to interpolate.
tbThe grid position for the book dimension.
tpThe grid position for the page dimension.
trThe grid position for the row dimension.
tcThe grid position for the column dimension.
Returns
Interpolated value.
Author
Stefan Buehler <sbuehler(at)ltu.se>
Date
2008-03-06

Definition at line 861 of file interpolation_poly.cc.

References CACHEIDX, is_same_within_epsilon(), is_size(), ConstVectorView::nelem(), ConstVectorView::sum(), and GridPosPoly::w.

◆ interp() [4/17]

Numeric interp ( ConstVectorView  itw,
ConstTensor5View  a,
const GridPosPoly ts,
const GridPosPoly tb,
const GridPosPoly tp,
const GridPosPoly tr,
const GridPosPoly tc 
)

Red 5D Interpolate.

"Red" interpolation returns just a scalar.

The dimension of itw must be consistent with the interpolation order (o) and the dimension (n) of the interpolation (i.e., (o+1)^n).

Parameters
itwInterpolation weights.
aThe field to interpolate.
tsThe grid position for the shelf dimension.
tbThe grid position for the book dimension.
tpThe grid position for the page dimension.
trThe grid position for the row dimension.
tcThe grid position for the column dimension.
Returns
Interpolated value.
Author
Stefan Buehler <sbuehler(at)ltu.se>
Date
2008-03-06

Definition at line 913 of file interpolation_poly.cc.

References CACHEIDX, is_same_within_epsilon(), is_size(), ConstVectorView::nelem(), ConstVectorView::sum(), and GridPosPoly::w.

◆ interp() [5/17]

Numeric interp ( ConstVectorView  itw,
ConstTensor6View  a,
const GridPosPoly tv,
const GridPosPoly ts,
const GridPosPoly tb,
const GridPosPoly tp,
const GridPosPoly tr,
const GridPosPoly tc 
)

Red 6D Interpolate.

"Red" interpolation returns just a scalar.

The dimension of itw must be consistent with the interpolation order (o) and the dimension (n) of the interpolation (i.e., (o+1)^n).

Parameters
itwInterpolation weights.
aThe field to interpolate.
tvThe grid position for the vitrine dimension.
tsThe grid position for the shelf dimension.
tbThe grid position for the book dimension.
tpThe grid position for the page dimension.
trThe grid position for the row dimension.
tcThe grid position for the column dimension.
Returns
Interpolated value.
Author
Stefan Buehler <sbuehler(at)ltu.se>
Date
2008-03-06

Definition at line 970 of file interpolation_poly.cc.

References CACHEIDX, is_same_within_epsilon(), is_size(), ConstVectorView::nelem(), ConstVectorView::sum(), and GridPosPoly::w.

◆ interp() [6/17]

Numeric interp ( ConstVectorView  itw,
ConstVectorView  a,
const GridPosPoly tc 
)

Red 1D Interpolate.

"Red" interpolation returns just a scalar.

The dimension of itw must be consistent with the interpolation order (o) and the dimension (n) of the interpolation (i.e., (o+1)^n).

Parameters
itwInterpolation weights.
aThe field to interpolate.
tcThe grid position for the column dimension.
Returns
Interpolated value.
Author
Stefan Buehler <sbuehler(at)ltu.se>
Date
2008-03-06

Definition at line 734 of file interpolation_poly.cc.

References CACHEIDX, is_same_within_epsilon(), is_size(), ConstVectorView::nelem(), ConstVectorView::sum(), and GridPosPoly::w.

◆ interp() [7/17]

void interp ( MatrixView  ia,
ConstTensor3View  itw,
ConstMatrixView  a,
const ArrayOfGridPosPoly rgp,
const ArrayOfGridPosPoly cgp 
)

Interpolate 2D field to another 2D field.

This performs a "green" type interpolation of the field, that means that the grid position Arrays are interpreted as defining the grids for the interpolated field.

This function can be easily distinguished from the other interpolation function (that creates a sequence of interpolated values), because of the dimension of ia and itw.

The size of ia and itw in all dimensions must be consistent with the grid position Arrays.

Return values
iaInterpolated field.
Parameters
itwInterpolation weights.
aThe field to interpolate.
rgpThe grid position Array for the row dimension.
cgpThe grid position Array for the column dimension.
Author
Stefan Buehler <sbuehler(at)ltu.se>
Date
2008-03-06

Definition at line 2188 of file interpolation_poly.cc.

References CACHEIDX, is_same_within_epsilon(), is_size(), joker, Array< base >::nelem(), and w().

◆ interp() [8/17]

void interp ( Tensor3View  ia,
ConstTensor4View  itw,
ConstTensor3View  a,
const ArrayOfGridPosPoly pgp,
const ArrayOfGridPosPoly rgp,
const ArrayOfGridPosPoly cgp 
)

Interpolate 3D field to another 3D field.

This performs a "green" type interpolation of the field, that means that the grid position Arrays are interpreted as defining the grids for the interpolated field.

This function can be easily distinguished from the other interpolation function (that creates a sequence of interpolated values), because of the dimension of ia and itw.

The size of ia and itw in all dimensions must be consistent with the grid position Arrays.

Return values
iaInterpolated field.
Parameters
itwInterpolation weights.
aThe field to interpolate.
pgpThe grid position Array for the page dimension.
rgpThe grid position Array for the row dimension.
cgpThe grid position Array for the column dimension.
Author
Stefan Buehler <sbuehler(at)ltu.se>
Date
2008-03-06

Definition at line 2253 of file interpolation_poly.cc.

References CACHEIDX, is_same_within_epsilon(), is_size(), joker, Array< base >::nelem(), and w().

◆ interp() [9/17]

void interp ( Tensor4View  ia,
ConstTensor5View  itw,
ConstTensor4View  a,
const ArrayOfGridPosPoly bgp,
const ArrayOfGridPosPoly pgp,
const ArrayOfGridPosPoly rgp,
const ArrayOfGridPosPoly cgp 
)

Interpolate 4D field to another 4D field.

This performs a "green" type interpolation of the field, that means that the grid position Arrays are interpreted as defining the grids for the interpolated field.

This function can be easily distinguished from the other interpolation function (that creates a sequence of interpolated values), because of the dimension of ia and itw.

The size of ia and itw in all dimensions must be consistent with the grid position Arrays.

Return values
iaInterpolated field.
Parameters
itwInterpolation weights.
aThe field to interpolate.
bgpThe grid position Array for the book dimension.
pgpThe grid position Array for the page dimension.
rgpThe grid position Array for the row dimension.
cgpThe grid position Array for the column dimension.
Author
Stefan Buehler <sbuehler(at)ltu.se>
Date
2008-03-06

Definition at line 2325 of file interpolation_poly.cc.

References CACHEIDX, is_same_within_epsilon(), is_size(), joker, Array< base >::nelem(), and w().

◆ interp() [10/17]

void interp ( Tensor5View  ia,
ConstTensor6View  itw,
ConstTensor5View  a,
const ArrayOfGridPosPoly sgp,
const ArrayOfGridPosPoly bgp,
const ArrayOfGridPosPoly pgp,
const ArrayOfGridPosPoly rgp,
const ArrayOfGridPosPoly cgp 
)

Interpolate 5D field to another 5D field.

This performs a "green" type interpolation of the field, that means that the grid position Arrays are interpreted as defining the grids for the interpolated field.

This function can be easily distinguished from the other interpolation function (that creates a sequence of interpolated values), because of the dimension of ia and itw.

The size of ia and itw in all dimensions must be consistent with the grid position Arrays.

Return values
iaInterpolated field.
Parameters
itwInterpolation weights.
aThe field to interpolate.
sgpThe grid position Array for the shelf dimension.
bgpThe grid position Array for the book dimension.
pgpThe grid position Array for the page dimension.
rgpThe grid position Array for the row dimension.
cgpThe grid position Array for the column dimension.
Author
Stefan Buehler <sbuehler(at)ltu.se>
Date
2008-03-06

Definition at line 2410 of file interpolation_poly.cc.

References CACHEIDX, is_same_within_epsilon(), is_size(), joker, Array< base >::nelem(), ns, and w().

◆ interp() [11/17]

void interp ( Tensor6View  ia,
ConstTensor7View  itw,
ConstTensor6View  a,
const ArrayOfGridPosPoly vgp,
const ArrayOfGridPosPoly sgp,
const ArrayOfGridPosPoly bgp,
const ArrayOfGridPosPoly pgp,
const ArrayOfGridPosPoly rgp,
const ArrayOfGridPosPoly cgp 
)

Interpolate 6D field to another 6D field.

This performs a "green" type interpolation of the field, that means that the grid position Arrays are interpreted as defining the grids for the interpolated field.

This function can be easily distinguished from the other interpolation function (that creates a sequence of interpolated values), because of the dimension of ia and itw.

The size of ia and itw in all dimensions must be consistent with the grid position Arrays.

Return values
iaInterpolated field.
Parameters
itwInterpolation weights.
aThe field to interpolate.
vgpThe grid position Array for the vitrine dimension.
sgpThe grid position Array for the shelf dimension.
bgpThe grid position Array for the book dimension.
pgpThe grid position Array for the page dimension.
rgpThe grid position Array for the row dimension.
cgpThe grid position Array for the column dimension.
Author
Stefan Buehler <sbuehler(at)ltu.se>
Date
2008-03-06

Definition at line 2505 of file interpolation_poly.cc.

References CACHEIDX, is_same_within_epsilon(), is_size(), joker, Array< base >::nelem(), ns, and w().

◆ interp() [12/17]

void interp ( VectorView  ia,
ConstMatrixView  itw,
ConstMatrixView  a,
const ArrayOfGridPosPoly rgp,
const ArrayOfGridPosPoly cgp 
)

Interpolate 2D field to a sequence of positions.

This performs a "blue" type interpolation of the field, that means that the grid position Arrays are interpreted as defining a sequence of positions. ALL GRID POSITION ARRAYS MUST HAVE THE SAME LENGTH!

The output vector ia also must have the same length. And the dimension of itw must be consistent with this.

This function can be easily distinguished from the other interpolation function (that creates an entire field of interpolated values), because of the dimension of ia and itw.

Return values
iaVector containing the interpolated field values.
Parameters
itwInterpolation weights.
aThe field to interpolate.
rgpThe grid position Array for the row dimension.
cgpThe grid position Array for the column dimension.
Author
Stefan Buehler <sbuehler(at)ltu.se>
Date
2008-03-06

Definition at line 1456 of file interpolation_poly.cc.

References CACHEIDX, is_same_within_epsilon(), is_size(), joker, Array< base >::nelem(), and w().

◆ interp() [13/17]

void interp ( VectorView  ia,
ConstMatrixView  itw,
ConstTensor3View  a,
const ArrayOfGridPosPoly pgp,
const ArrayOfGridPosPoly rgp,
const ArrayOfGridPosPoly cgp 
)

Interpolate 3D field to a sequence of positions.

This performs a "blue" type interpolation of the field, that means that the grid position Arrays are interpreted as defining a sequence of positions. ALL GRID POSITION ARRAYS MUST HAVE THE SAME LENGTH!

The output vector ia also must have the same length. And the dimension of itw must be consistent with this.

This function can be easily distinguished from the other interpolation function (that creates an entire field of interpolated values), because of the dimension of ia and itw.

Return values
iaVector containing the interpolated field values.
Parameters
itwInterpolation weights.
aThe field to interpolate.
pgpThe grid position Array for the page dimension.
rgpThe grid position Array for the row dimension.
cgpThe grid position Array for the column dimension.
Author
Stefan Buehler <sbuehler(at)ltu.se>
Date
2008-03-06

Definition at line 1517 of file interpolation_poly.cc.

References CACHEIDX, is_same_within_epsilon(), is_size(), joker, Array< base >::nelem(), and w().

◆ interp() [14/17]

void interp ( VectorView  ia,
ConstMatrixView  itw,
ConstTensor4View  a,
const ArrayOfGridPosPoly bgp,
const ArrayOfGridPosPoly pgp,
const ArrayOfGridPosPoly rgp,
const ArrayOfGridPosPoly cgp 
)

Interpolate 4D field to a sequence of positions.

This performs a "blue" type interpolation of the field, that means that the grid position Arrays are interpreted as defining a sequence of positions. ALL GRID POSITION ARRAYS MUST HAVE THE SAME LENGTH!

The output vector ia also must have the same length. And the dimension of itw must be consistent with this.

This function can be easily distinguished from the other interpolation function (that creates an entire field of interpolated values), because of the dimension of ia and itw.

Return values
iaVector containing the interpolated field values.
Parameters
itwInterpolation weights.
aThe field to interpolate.
bgpThe grid position Array for the book dimension.
pgpThe grid position Array for the page dimension.
rgpThe grid position Array for the row dimension.
cgpThe grid position Array for the column dimension.
Author
Stefan Buehler <sbuehler(at)ltu.se>
Date
2008-03-06

Definition at line 1585 of file interpolation_poly.cc.

References CACHEIDX, is_same_within_epsilon(), is_size(), joker, Array< base >::nelem(), and w().

◆ interp() [15/17]

void interp ( VectorView  ia,
ConstMatrixView  itw,
ConstTensor5View  a,
const ArrayOfGridPosPoly sgp,
const ArrayOfGridPosPoly bgp,
const ArrayOfGridPosPoly pgp,
const ArrayOfGridPosPoly rgp,
const ArrayOfGridPosPoly cgp 
)

Interpolate 5D field to a sequence of positions.

This performs a "blue" type interpolation of the field, that means that the grid position Arrays are interpreted as defining a sequence of positions. ALL GRID POSITION ARRAYS MUST HAVE THE SAME LENGTH!

The output vector ia also must have the same length. And the dimension of itw must be consistent with this.

This function can be easily distinguished from the other interpolation function (that creates an entire field of interpolated values), because of the dimension of ia and itw.

Return values
iaVector containing the interpolated field values.
Parameters
itwInterpolation weights.
aThe field to interpolate.
sgpThe grid position Array for the shelf dimension.
bgpThe grid position Array for the book dimension.
pgpThe grid position Array for the page dimension.
rgpThe grid position Array for the row dimension.
cgpThe grid position Array for the column dimension.
Author
Stefan Buehler <sbuehler(at)ltu.se>
Date
2008-03-06

Definition at line 1661 of file interpolation_poly.cc.

References CACHEIDX, is_same_within_epsilon(), is_size(), joker, Array< base >::nelem(), and w().

◆ interp() [16/17]

void interp ( VectorView  ia,
ConstMatrixView  itw,
ConstTensor6View  a,
const ArrayOfGridPosPoly vgp,
const ArrayOfGridPosPoly sgp,
const ArrayOfGridPosPoly bgp,
const ArrayOfGridPosPoly pgp,
const ArrayOfGridPosPoly rgp,
const ArrayOfGridPosPoly cgp 
)

Interpolate 6D field to a sequence of positions.

This performs a "blue" type interpolation of the field, that means that the grid position Arrays are interpreted as defining a sequence of positions. ALL GRID POSITION ARRAYS MUST HAVE THE SAME LENGTH!

The output vector ia also must have the same length. And the dimension of itw must be consistent with this.

This function can be easily distinguished from the other interpolation function (that creates an entire field of interpolated values), because of the dimension of ia and itw.

Return values
iaVector containing the interpolated field values.
Parameters
itwInterpolation weights.
aThe field to interpolate.
vgpThe grid position Array for the vitrine dimension.
sgpThe grid position Array for the shelf dimension.
bgpThe grid position Array for the book dimension.
pgpThe grid position Array for the page dimension.
rgpThe grid position Array for the row dimension.
cgpThe grid position Array for the column dimension.
Author
Stefan Buehler <sbuehler(at)ltu.se>
Date
2008-03-06

Definition at line 1743 of file interpolation_poly.cc.

References CACHEIDX, is_same_within_epsilon(), is_size(), joker, Array< base >::nelem(), and w().

◆ interp() [17/17]

void interp ( VectorView  ia,
ConstMatrixView  itw,
ConstVectorView  a,
const ArrayOfGridPosPoly cgp 
)

Interpolate 1D field.

For this 1D case there is no distinction between "blue" and "green" type interpolation.

The output vector ia must have the same length as the grid position vector cgp. And the dimension of itw must be consistent with this.

Return values
iaVector containing the interpolated field values.
Parameters
itwInterpolation weights.
aThe field to interpolate.
cgpThe grid position Array for the column dimension.
Author
Stefan Buehler <sbuehler(at)ltu.se>
Date
2008-03-06

Definition at line 1401 of file interpolation_poly.cc.

References CACHEIDX, is_same_within_epsilon(), is_size(), joker, Array< base >::nelem(), and w().

◆ interpweights() [1/17]

void interpweights ( MatrixView  itw,
const ArrayOfGridPosPoly bgp,
const ArrayOfGridPosPoly pgp,
const ArrayOfGridPosPoly rgp,
const ArrayOfGridPosPoly cgp 
)

Compute 4D interpolation weights for a sequence of positions.

Compute the weights for a "blue" type interpolation of the field, that means that the grid position Arrays are interpreted as defining a sequence of positions. ALL GRID POSITION ARRAYS MUST HAVE THE SAME LENGTH!

The dimensions of itw must be also consistent with this.

Note that we still do not need the actual field for this step.

This function can be easily distinguished from the other interpweights function (for "green" interpolation), because the output is a Matrix, whereas in the other case it is a Tensor with one more dimension than there are input grid position Arrays.

Return values
itwInterpolation weights.
Parameters
bgpThe grid position Array for the book dimension.
pgpThe grid position Array for the page dimension.
rgpThe grid position Array for the row dimension.
cgpThe grid position Array for the column dimension.
Author
Stefan Buehler <sbuehler(at)ltu.se>
Date
2008-03-06

Definition at line 1207 of file interpolation_poly.cc.

References CACHEW, is_size(), Array< base >::nelem(), and w().

◆ interpweights() [2/17]

void interpweights ( MatrixView  itw,
const ArrayOfGridPosPoly cgp 
)

Compute 1D interpolation weights.

For this 1D case there is no distinction between "blue" and "green" type interpolation.

The dimensions of itw must be consistent with cgp.

Note that we still do not need the actual field for this step.

Return values
itwInterpolation weights.
Parameters
cgpThe grid position Array for the column dimension.
Author
Stefan Buehler <sbuehler(at)ltu.se>
Date
2008-03-06

Definition at line 1029 of file interpolation_poly.cc.

References CACHEW, is_size(), Array< base >::nelem(), and w().

◆ interpweights() [3/17]

void interpweights ( MatrixView  itw,
const ArrayOfGridPosPoly pgp,
const ArrayOfGridPosPoly rgp,
const ArrayOfGridPosPoly cgp 
)

Compute 3D interpolation weights for a sequence of positions.

Compute the weights for a "blue" type interpolation of the field, that means that the grid position Arrays are interpreted as defining a sequence of positions. ALL GRID POSITION ARRAYS MUST HAVE THE SAME LENGTH!

The dimensions of itw must be also consistent with this.

Note that we still do not need the actual field for this step.

This function can be easily distinguished from the other interpweights function (for "green" interpolation), because the output is a Matrix, whereas in the other case it is a Tensor with one more dimension than there are input grid position Arrays.

Return values
itwInterpolation weights.
Parameters
pgpThe grid position Array for the page dimension.
rgpThe grid position Array for the row dimension.
cgpThe grid position Array for the column dimension.
Author
Stefan Buehler <sbuehler(at)ltu.se>
Date
2008-03-06

Definition at line 1153 of file interpolation_poly.cc.

References CACHEW, is_size(), Array< base >::nelem(), and w().

◆ interpweights() [4/17]

void interpweights ( MatrixView  itw,
const ArrayOfGridPosPoly rgp,
const ArrayOfGridPosPoly cgp 
)

Compute 2D interpolation weights for a sequence of positions.

Compute the weights for a "blue" type interpolation of the field, that means that the grid position Arrays are interpreted as defining a sequence of positions. ALL GRID POSITION ARRAYS MUST HAVE THE SAME LENGTH!

The dimensions of itw must be also consistent with this.

Note that we still do not need the actual field for this step.

This function can be easily distinguished from the other interpweights function (for "green" interpolation), because the output is a Matrix, whereas in the other case it is a Tensor with one more dimension than there are input grid position Arrays.

Return values
itwInterpolation weights.
Parameters
rgpThe grid position Array for the row dimension.
cgpThe grid position Array for the column dimension.
Author
Stefan Buehler <sbuehler(at)ltu.se>
Date
2008-03-06

Definition at line 1098 of file interpolation_poly.cc.

References CACHEW, is_size(), Array< base >::nelem(), and w().

◆ interpweights() [5/17]

void interpweights ( MatrixView  itw,
const ArrayOfGridPosPoly sgp,
const ArrayOfGridPosPoly bgp,
const ArrayOfGridPosPoly pgp,
const ArrayOfGridPosPoly rgp,
const ArrayOfGridPosPoly cgp 
)

Compute 5D interpolation weights for a sequence of positions.

Compute the weights for a "blue" type interpolation of the field, that means that the grid position Arrays are interpreted as defining a sequence of positions. ALL GRID POSITION ARRAYS MUST HAVE THE SAME LENGTH!

The dimensions of itw must be also consistent with this.

Note that we still do not need the actual field for this step.

This function can be easily distinguished from the other interpweights function (for "green" interpolation), because the output is a Matrix, whereas in the other case it is a Tensor with one more dimension than there are input grid position Arrays.

Return values
itwInterpolation weights.
Parameters
sgpThe grid position Array for the shelf dimension.
bgpThe grid position Array for the book dimension.
pgpThe grid position Array for the page dimension.
rgpThe grid position Array for the row dimension.
cgpThe grid position Array for the column dimension.
Author
Stefan Buehler <sbuehler(at)ltu.se>
Date
2008-03-06

Definition at line 1269 of file interpolation_poly.cc.

References CACHEW, is_size(), Array< base >::nelem(), and w().

◆ interpweights() [6/17]

void interpweights ( MatrixView  itw,
const ArrayOfGridPosPoly vgp,
const ArrayOfGridPosPoly sgp,
const ArrayOfGridPosPoly bgp,
const ArrayOfGridPosPoly pgp,
const ArrayOfGridPosPoly rgp,
const ArrayOfGridPosPoly cgp 
)

Compute 6D interpolation weights for a sequence of positions.

Compute the weights for a "blue" type interpolation of the field, that means that the grid position Arrays are interpreted as defining a sequence of positions. ALL GRID POSITION ARRAYS MUST HAVE THE SAME LENGTH!

The dimensions of itw must be also consistent with this.

Note that we still do not need the actual field for this step.

This function can be easily distinguished from the other interpweights function (for "green" interpolation), because the output is a Matrix, whereas in the other case it is a Tensor with one more dimension than there are input grid position Arrays.

Return values
itwInterpolation weights.
Parameters
vgpThe grid position Array for the vitrine dimension.
sgpThe grid position Array for the shelf dimension.
bgpThe grid position Array for the book dimension.
pgpThe grid position Array for the page dimension.
rgpThe grid position Array for the row dimension.
cgpThe grid position Array for the column dimension.
Author
Stefan Buehler <sbuehler(at)ltu.se>
Date
2008-03-06

Definition at line 1337 of file interpolation_poly.cc.

References CACHEW, is_size(), Array< base >::nelem(), and w().

◆ interpweights() [7/17]

void interpweights ( Tensor3View  itw,
const ArrayOfGridPosPoly rgp,
const ArrayOfGridPosPoly cgp 
)

Compute 2D interpolation weights for an entire field.

Compute the weights for a "green" type interpolation of the field, that means that the grid position Arrays are interpreted as defining the grids for the interpolated field.

The dimensions of itw must be consistent with this.

Note that we still do not need the actual field for this step.

This function can be easily distinguished from the other interpweights function (for "green" interpolation), because the output is a Tensor with one more dimension than the number of grid position Arrays.

Return values
itwInterpolation weights
Parameters
rgpThe grid position Array for the row dimension.
cgpThe grid position Array for the column dimension.
Author
Stefan Buehler <sbuehler(at)ltu.se>
Date
2008-03-06

Definition at line 1830 of file interpolation_poly.cc.

References CACHEW, is_size(), Array< base >::nelem(), and w().

◆ interpweights() [8/17]

void interpweights ( Tensor4View  itw,
const ArrayOfGridPosPoly pgp,
const ArrayOfGridPosPoly rgp,
const ArrayOfGridPosPoly cgp 
)

Compute 3D interpolation weights for an entire field.

Compute the weights for a "green" type interpolation of the field, that means that the grid position Arrays are interpreted as defining the grids for the interpolated field.

The dimensions of itw must be consistent with this.

Note that we still do not need the actual field for this step.

This function can be easily distinguished from the other interpweights function (for "green" interpolation), because the output is a Tensor with one more dimension than the number of grid position Arrays.

Return values
itwInterpolation weights
Parameters
pgpThe grid position Array for the page dimension.
rgpThe grid position Array for the row dimension.
cgpThe grid position Array for the column dimension.
Author
Stefan Buehler <sbuehler(at)ltu.se>
Date
2008-03-06

Definition at line 1889 of file interpolation_poly.cc.

References CACHEW, is_size(), Array< base >::nelem(), and w().

◆ interpweights() [9/17]

void interpweights ( Tensor5View  itw,
const ArrayOfGridPosPoly bgp,
const ArrayOfGridPosPoly pgp,
const ArrayOfGridPosPoly rgp,
const ArrayOfGridPosPoly cgp 
)

Compute 4D interpolation weights for an entire field.

Compute the weights for a "green" type interpolation of the field, that means that the grid position Arrays are interpreted as defining the grids for the interpolated field.

The dimensions of itw must be consistent with this.

Note that we still do not need the actual field for this step.

This function can be easily distinguished from the other interpweights function (for "green" interpolation), because the output is a Tensor with one more dimension than the number of grid position Arrays.

Return values
itwInterpolation weights
Parameters
bgpThe grid position Array for the book dimension.
pgpThe grid position Array for the page dimension.
rgpThe grid position Array for the row dimension.
cgpThe grid position Array for the column dimension.
Author
Stefan Buehler <sbuehler(at)ltu.se>
Date
2008-03-06

Definition at line 1948 of file interpolation_poly.cc.

References CACHEW, is_size(), Array< base >::nelem(), and w().

◆ interpweights() [10/17]

void interpweights ( Tensor6View  itw,
const ArrayOfGridPosPoly sgp,
const ArrayOfGridPosPoly bgp,
const ArrayOfGridPosPoly pgp,
const ArrayOfGridPosPoly rgp,
const ArrayOfGridPosPoly cgp 
)

Compute 5D interpolation weights for an entire field.

Compute the weights for a "green" type interpolation of the field, that means that the grid position Arrays are interpreted as defining the grids for the interpolated field.

The dimensions of itw must be consistent with this.

Note that we still do not need the actual field for this step.

This function can be easily distinguished from the other interpweights function (for "green" interpolation), because the output is a Tensor with one more dimension than the number of grid position Arrays.

Return values
itwInterpolation weights
Parameters
sgpThe grid position Array for the shelf dimension.
bgpThe grid position Array for the book dimension.
pgpThe grid position Array for the page dimension.
rgpThe grid position Array for the row dimension.
cgpThe grid position Array for the column dimension.
Author
Stefan Buehler <sbuehler(at)ltu.se>
Date
2008-03-06

Definition at line 2020 of file interpolation_poly.cc.

References CACHEW, is_size(), Array< base >::nelem(), ns, and w().

◆ interpweights() [11/17]

void interpweights ( Tensor7View  itw,
const ArrayOfGridPosPoly vgp,
const ArrayOfGridPosPoly sgp,
const ArrayOfGridPosPoly bgp,
const ArrayOfGridPosPoly pgp,
const ArrayOfGridPosPoly rgp,
const ArrayOfGridPosPoly cgp 
)

Compute 6D interpolation weights for an entire field.

Compute the weights for a "green" type interpolation of the field, that means that the grid position Arrays are interpreted as defining the grids for the interpolated field.

The dimensions of itw must be consistent with this.

Note that we still do not need the actual field for this step.

This function can be easily distinguished from the other interpweights function (for "green" interpolation), because the output is a Tensor with one more dimension than the number of grid position Arrays.

Return values
itwInterpolation weights
Parameters
vgpThe grid position Array for the vitrine dimension.
sgpThe grid position Array for the shelf dimension.
bgpThe grid position Array for the book dimension.
pgpThe grid position Array for the page dimension.
rgpThe grid position Array for the row dimension.
cgpThe grid position Array for the column dimension.
Author
Stefan Buehler <sbuehler(at)ltu.se>
Date
2008-03-06

Definition at line 2102 of file interpolation_poly.cc.

References CACHEW, is_size(), Array< base >::nelem(), ns, and w().

◆ interpweights() [12/17]

void interpweights ( VectorView  itw,
const GridPosPoly tb,
const GridPosPoly tp,
const GridPosPoly tr,
const GridPosPoly tc 
)

Red 4D interpolation weights.

"Red" interpolation returns just a scalar, so the weights are stored in a Vector.

The dimension of itw must be consistent with the interpolation order (o) and the dimension (n) of the interpolation (i.e., (o+1)^n).

Return values
itwInterpolation weights.
Parameters
tbThe grid position for the book dimension.
tpThe grid position for the page dimension.
trThe grid position for the row dimension.
tcThe grid position for the column dimension.
Author
Stefan Buehler <sbuehler(at)ltu.se>
Date
2008-03-06

Definition at line 601 of file interpolation_poly.cc.

References CACHEW, is_size(), ConstVectorView::nelem(), and GridPosPoly::w.

◆ interpweights() [13/17]

void interpweights ( VectorView  itw,
const GridPosPoly tc 
)

Red 1D interpolation weights.

"Red" interpolation returns just a scalar, so the weights are stored in a Vector.

The dimension of itw must be consistent with the interpolation order (o) and the dimension (n) of the interpolation (i.e., (o+1)^n).

Return values
itwInterpolation weights.
Parameters
tcThe grid position for the column dimension.
Author
Stefan Buehler <sbuehler(at)ltu.se>
Date
2008-03-06

Definition at line 502 of file interpolation_poly.cc.

References CACHEW, is_size(), ConstVectorView::nelem(), and GridPosPoly::w.

◆ interpweights() [14/17]

void interpweights ( VectorView  itw,
const GridPosPoly tp,
const GridPosPoly tr,
const GridPosPoly tc 
)

Red 3D interpolation weights.

"Red" interpolation returns just a scalar, so the weights are stored in a Vector.

The dimension of itw must be consistent with the interpolation order (o) and the dimension (n) of the interpolation (i.e., (o+1)^n).

Return values
itwInterpolation weights.
Parameters
tpThe grid position for the page dimension.
trThe grid position for the row dimension.
tcThe grid position for the column dimension.
Author
Stefan Buehler <sbuehler(at)ltu.se>
Date
2008-03-06

Definition at line 565 of file interpolation_poly.cc.

References CACHEW, is_size(), ConstVectorView::nelem(), and GridPosPoly::w.

◆ interpweights() [15/17]

void interpweights ( VectorView  itw,
const GridPosPoly tr,
const GridPosPoly tc 
)

Red 2D interpolation weights.

"Red" interpolation returns just a scalar, so the weights are stored in a Vector.

The dimension of itw must be consistent with the interpolation order (o) and the dimension (n) of the interpolation (i.e., (o+1)^n).

Return values
itwInterpolation weights.
Parameters
trThe grid position for the row dimension.
tcThe grid position for the column dimension.
Author
Stefan Buehler <sbuehler(at)ltu.se>
Date
2008-03-06

Definition at line 534 of file interpolation_poly.cc.

References CACHEW, is_size(), ConstVectorView::nelem(), and GridPosPoly::w.

◆ interpweights() [16/17]

void interpweights ( VectorView  itw,
const GridPosPoly ts,
const GridPosPoly tb,
const GridPosPoly tp,
const GridPosPoly tr,
const GridPosPoly tc 
)

Red 5D interpolation weights.

"Red" interpolation returns just a scalar, so the weights are stored in a Vector.

The dimension of itw must be consistent with the interpolation order (o) and the dimension (n) of the interpolation (i.e., (o+1)^n).

Return values
itwInterpolation weights.
Parameters
tsThe grid position for the shelf dimension.
tbThe grid position for the book dimension.
tpThe grid position for the page dimension.
trThe grid position for the row dimension.
tcThe grid position for the column dimension.
Author
Stefan Buehler <sbuehler(at)ltu.se>
Date
2008-03-06

Definition at line 642 of file interpolation_poly.cc.

References CACHEW, is_size(), ConstVectorView::nelem(), and GridPosPoly::w.

◆ interpweights() [17/17]

void interpweights ( VectorView  itw,
const GridPosPoly tv,
const GridPosPoly ts,
const GridPosPoly tb,
const GridPosPoly tp,
const GridPosPoly tr,
const GridPosPoly tc 
)

Red 6D interpolation weights.

"Red" interpolation returns just a scalar, so the weights are stored in a Vector.

The dimension of itw must be consistent with the interpolation order (o) and the dimension (n) of the interpolation (i.e., (o+1)^n).

Return values
itwInterpolation weights.
Parameters
tvThe grid position for the vitrine dimension.
tsThe grid position for the shelf dimension.
tbThe grid position for the book dimension.
tpThe grid position for the page dimension.
trThe grid position for the row dimension.
tcThe grid position for the column dimension.
Author
Stefan Buehler <sbuehler(at)ltu.se>
Date
2008-03-06

Definition at line 688 of file interpolation_poly.cc.

References CACHEW, is_size(), ConstVectorView::nelem(), and GridPosPoly::w.

◆ operator<<()

ostream& operator<< ( ostream &  os,
const GridPosPoly gp 
)

Output operator for GridPosPoly.

This is just intended for testing and debugging.

Parameters
osOutput stream.
gpGrid position.
Returns
The output stream.

Definition at line 472 of file interpolation_poly.cc.

References GridPosPoly::idx, and GridPosPoly::w.

ConstIterator1D
The constant iterator class for sub vectors.
Definition: matpackI.h:420
Zeeman::end
constexpr Rational end(Rational Ju, Rational Jl, Polarization type) noexcept
Gives the largest M for a polarization type of this transition.
Definition: zeemandata.h:108
ARTS::Var::x
Vector x(Workspace &ws) noexcept
Definition: autoarts.h:7346