ARTS 2.5.0 (git: 9ee3ac6c)
Interpolation Namespace Reference

Classes

struct  FixedLagrange
 
struct  Lagrange
 A Lagrange interpolation computer. More...
 

Functions

Array< LagrangeLagrangeVector (const ConstVectorView &xs, const ConstVectorView &xi, const Index polyorder, const Numeric extrapol, const bool do_derivs, const GridType type, const std::pair< Numeric, Numeric > cycle)
 
Vector interpweights (const Lagrange &dim0)
 
Grid< Vector, 1 > interpweights (const Array< Lagrange > &dim0)
 
Vector dinterpweights (const Lagrange &dim0)
 
Grid< Vector, 1 > dinterpweights (const Array< Lagrange > &dim0)
 
Numeric interp (const ConstVectorView &yi, const ConstVectorView &iw, const Lagrange &dim0)
 
void reinterp (VectorView out, const ConstVectorView &iy, const Grid< Vector, 1 > &iw, const Array< Lagrange > &dim0)
 
Vector reinterp (const ConstVectorView &iy, const Grid< Vector, 1 > &iw, const Array< Lagrange > &dim0)
 
Matrix interpweights (const Lagrange &dim0, const Lagrange &dim1)
 
Grid< Matrix, 2 > interpweights (const Array< Lagrange > &dim0, const Array< Lagrange > &dim1)
 
Matrix dinterpweights (const Lagrange &dim0, const Lagrange &dim1, Index dim)
 
Grid< Matrix, 2 > dinterpweights (const Array< Lagrange > &dim0, const Array< Lagrange > &dim1, Index dim)
 
Numeric interp (const ConstMatrixView &yi, const ConstMatrixView &iw, const Lagrange &dim0, const Lagrange &dim1)
 
void reinterp (MatrixView out, const ConstMatrixView &iy, const Grid< Matrix, 2 > &iw, const Array< Lagrange > &dim0, const Array< Lagrange > &dim1)
 
Matrix reinterp (const ConstMatrixView &iy, const Grid< Matrix, 2 > &iw, const Array< Lagrange > &dim0, const Array< Lagrange > &dim1)
 
Tensor3 interpweights (const Lagrange &dim0, const Lagrange &dim1, const Lagrange &dim2)
 
Grid< Tensor3, 3 > interpweights (const Array< Lagrange > &dim0, const Array< Lagrange > &dim1, const Array< Lagrange > &dim2)
 
Tensor3 dinterpweights (const Lagrange &dim0, const Lagrange &dim1, const Lagrange &dim2, Index dim)
 
Grid< Tensor3, 3 > dinterpweights (const Array< Lagrange > &dim0, const Array< Lagrange > &dim1, const Array< Lagrange > &dim2, Index dim)
 
Numeric interp (const ConstTensor3View &yi, const ConstTensor3View &iw, const Lagrange &dim0, const Lagrange &dim1, const Lagrange &dim2)
 
void reinterp (Tensor3View out, const ConstTensor3View &iy, const Grid< Tensor3, 3 > &iw, const Array< Lagrange > &dim0, const Array< Lagrange > &dim1, const Array< Lagrange > &dim2)
 
Tensor3 reinterp (const ConstTensor3View &iy, const Grid< Tensor3, 3 > &iw, const Array< Lagrange > &dim0, const Array< Lagrange > &dim1, const Array< Lagrange > &dim2)
 
Tensor4 interpweights (const Lagrange &dim0, const Lagrange &dim1, const Lagrange &dim2, const Lagrange &dim3)
 
Grid< Tensor4, 4 > interpweights (const Array< Lagrange > &dim0, const Array< Lagrange > &dim1, const Array< Lagrange > &dim2, const Array< Lagrange > &dim3)
 
Tensor4 dinterpweights (const Lagrange &dim0, const Lagrange &dim1, const Lagrange &dim2, const Lagrange &dim3, Index dim)
 
Grid< Tensor4, 4 > dinterpweights (const Array< Lagrange > &dim0, const Array< Lagrange > &dim1, const Array< Lagrange > &dim2, const Array< Lagrange > &dim3, Index dim)
 
Numeric interp (const ConstTensor4View &yi, const ConstTensor4View &iw, const Lagrange &dim0, const Lagrange &dim1, const Lagrange &dim2, const Lagrange &dim3)
 
void reinterp (Tensor4View out, const ConstTensor4View &iy, const Grid< Tensor4, 4 > &iw, const Array< Lagrange > &dim0, const Array< Lagrange > &dim1, const Array< Lagrange > &dim2, const Array< Lagrange > &dim3)
 
Tensor4 reinterp (const ConstTensor4View &iy, const Grid< Tensor4, 4 > &iw, const Array< Lagrange > &dim0, const Array< Lagrange > &dim1, const Array< Lagrange > &dim2, const Array< Lagrange > &dim3)
 
Tensor5 interpweights (const Lagrange &dim0, const Lagrange &dim1, const Lagrange &dim2, const Lagrange &dim3, const Lagrange &dim4)
 
Grid< Tensor5, 5 > interpweights (const Array< Lagrange > &dim0, const Array< Lagrange > &dim1, const Array< Lagrange > &dim2, const Array< Lagrange > &dim3, const Array< Lagrange > &dim4)
 
Tensor5 dinterpweights (const Lagrange &dim0, const Lagrange &dim1, const Lagrange &dim2, const Lagrange &dim3, const Lagrange &dim4, Index dim)
 
Grid< Tensor5, 5 > dinterpweights (const Array< Lagrange > &dim0, const Array< Lagrange > &dim1, const Array< Lagrange > &dim2, const Array< Lagrange > &dim3, const Array< Lagrange > &dim4, Index dim)
 
Numeric interp (const ConstTensor5View &yi, const ConstTensor5View &iw, const Lagrange &dim0, const Lagrange &dim1, const Lagrange &dim2, const Lagrange &dim3, const Lagrange &dim4)
 
void reinterp (Tensor5View out, const ConstTensor5View &iy, const Grid< Tensor5, 5 > &iw, const Array< Lagrange > &dim0, const Array< Lagrange > &dim1, const Array< Lagrange > &dim2, const Array< Lagrange > &dim3, const Array< Lagrange > &dim4)
 
Tensor5 reinterp (const ConstTensor5View &iy, const Grid< Tensor5, 5 > &iw, const Array< Lagrange > &dim0, const Array< Lagrange > &dim1, const Array< Lagrange > &dim2, const Array< Lagrange > &dim3, const Array< Lagrange > &dim4)
 
Tensor6 interpweights (const Lagrange &dim0, const Lagrange &dim1, const Lagrange &dim2, const Lagrange &dim3, const Lagrange &dim4, const Lagrange &dim5)
 
Grid< Tensor6, 6 > interpweights (const Array< Lagrange > &dim0, const Array< Lagrange > &dim1, const Array< Lagrange > &dim2, const Array< Lagrange > &dim3, const Array< Lagrange > &dim4, const Array< Lagrange > &dim5)
 
Tensor6 dinterpweights (const Lagrange &dim0, const Lagrange &dim1, const Lagrange &dim2, const Lagrange &dim3, const Lagrange &dim4, const Lagrange &dim5, Index dim)
 
Grid< Tensor6, 6 > dinterpweights (const Array< Lagrange > &dim0, const Array< Lagrange > &dim1, const Array< Lagrange > &dim2, const Array< Lagrange > &dim3, const Array< Lagrange > &dim4, const Array< Lagrange > &dim5, Index dim)
 
Numeric interp (const ConstTensor6View &yi, const ConstTensor6View &iw, const Lagrange &dim0, const Lagrange &dim1, const Lagrange &dim2, const Lagrange &dim3, const Lagrange &dim4, const Lagrange &dim5)
 
void reinterp (Tensor6View out, const ConstTensor6View &iy, const Grid< Tensor6, 6 > &iw, const Array< Lagrange > &dim0, const Array< Lagrange > &dim1, const Array< Lagrange > &dim2, const Array< Lagrange > &dim3, const Array< Lagrange > &dim4, const Array< Lagrange > &dim5)
 
Tensor6 reinterp (const ConstTensor6View &iy, const Grid< Tensor6, 6 > &iw, const Array< Lagrange > &dim0, const Array< Lagrange > &dim1, const Array< Lagrange > &dim2, const Array< Lagrange > &dim3, const Array< Lagrange > &dim4, const Array< Lagrange > &dim5)
 
Tensor7 interpweights (const Lagrange &dim0, const Lagrange &dim1, const Lagrange &dim2, const Lagrange &dim3, const Lagrange &dim4, const Lagrange &dim5, const Lagrange &dim6)
 
Grid< Tensor7, 7 > interpweights (const Array< Lagrange > &dim0, const Array< Lagrange > &dim1, const Array< Lagrange > &dim2, const Array< Lagrange > &dim3, const Array< Lagrange > &dim4, const Array< Lagrange > &dim5, const Array< Lagrange > &dim6)
 
Tensor7 dinterpweights (const Lagrange &dim0, const Lagrange &dim1, const Lagrange &dim2, const Lagrange &dim3, const Lagrange &dim4, const Lagrange &dim5, const Lagrange &dim6, Index dim)
 
Grid< Tensor7, 7 > dinterpweights (const Array< Lagrange > &dim0, const Array< Lagrange > &dim1, const Array< Lagrange > &dim2, const Array< Lagrange > &dim3, const Array< Lagrange > &dim4, const Array< Lagrange > &dim5, const Array< Lagrange > &dim6, Index dim)
 
Numeric interp (const ConstTensor7View &yi, const ConstTensor7View &iw, const Lagrange &dim0, const Lagrange &dim1, const Lagrange &dim2, const Lagrange &dim3, const Lagrange &dim4, const Lagrange &dim5, const Lagrange &dim6)
 
void reinterp (Tensor7View out, const ConstTensor7View &iy, const Grid< Tensor7, 7 > &iw, const Array< Lagrange > &dim0, const Array< Lagrange > &dim1, const Array< Lagrange > &dim2, const Array< Lagrange > &dim3, const Array< Lagrange > &dim4, const Array< Lagrange > &dim5, const Array< Lagrange > &dim6)
 
Tensor7 reinterp (const ConstTensor7View &iy, const Grid< Tensor7, 7 > &iw, const Array< Lagrange > &dim0, const Array< Lagrange > &dim1, const Array< Lagrange > &dim2, const Array< Lagrange > &dim3, const Array< Lagrange > &dim4, const Array< Lagrange > &dim5, const Array< Lagrange > &dim6)
 
constexpr Index cycler (const Index n, const Index N) noexcept
 
constexpr Numeric cyclic_clamp (const Numeric x, const std::pair< Numeric, Numeric > xlim) noexcept
 
constexpr Numeric min_cyclic (const Numeric x, const std::pair< Numeric, Numeric > xlim) noexcept
 
constexpr bool full_cycle (const Numeric xo, const Numeric xn, const std::pair< Numeric, Numeric > xlim) noexcept
 
template<class SortedVectorType >
constexpr Index start_pos_finder (const Numeric x, const SortedVectorType &xvec) noexcept
 
constexpr Index IMAX (const Index a, const Index b) noexcept
 Return the maximum of two integer numbers. More...
 
constexpr Index IMIN (const Index a, const Index b) noexcept
 Return the minimum of two integer numbers. More...
 
template<class SortedVectorType >
constexpr Index pos_finder (const Index pos0, const Numeric x, const SortedVectorType &xi, const Index polyorder, const bool cyclic, const bool ascending, const std::pair< Numeric, Numeric > cycle={ -180, 180}) noexcept
 
 ENUMCLASS (GridType, char, Standard, Cyclic, Log, Log10, Log2, SinDeg, SinRad, CosDeg, CosRad)
 
template<GridType type, class SortedVectorType >
constexpr Numeric l (const Index p0, const Index n, const Numeric x, const SortedVectorType &xi, const Index j, const std::pair< Numeric, Numeric > cycle={ -180, 180}) noexcept
 
template<GridType type, class SortedVectorType , class LagrangeVectorType >
constexpr double dl_dval (const Index p0, const Index n, const Numeric x, const SortedVectorType &xi, const LagrangeVectorType &li, const Index j, const Index i, const std::pair< Numeric, Numeric > cycle) noexcept
 
template<GridType type, class SortedVectorType , class LagrangeVectorType >
constexpr Numeric dl (const Index p0, const Index n, const Numeric x, const SortedVectorType &xi, const LagrangeVectorType &li, const Index j, const std::pair< Numeric, Numeric > cycle={-180, 180}) noexcept
 
template<class SortedVectorType >
constexpr bool is_ascending (const SortedVectorType &xi) noexcept
 Checks whether the Sorted Vector is ascending or not by checking its first two elements. More...
 
template<class SortedVectorType >
void check_lagrange_interpolation (const SortedVectorType &xi, const Index polyorder=1, const std::pair< Numeric, Numeric > x={std::numeric_limits< Numeric >::infinity(), -std::numeric_limits< Numeric >::infinity()}, const Numeric extrapol=0.5, const GridType type=GridType::Standard, const std::pair< Numeric, Numeric > cycle={-180, 180})
 
template<class SortedVectorType >
void check_lagrange_interpolation (const SortedVectorType &xi, const Index polyorder, const Numeric x, const Numeric extrapol=0.5, const GridType type=GridType::Standard, const std::pair< Numeric, Numeric > cycle={-180, 180})
 
template<std::size_t PolyOrder, class UnsortedVectorType , class SortedVectorType >
Array< FixedLagrange< PolyOrder > > FixedLagrangeVector (const UnsortedVectorType &xs, const SortedVectorType &xi, const bool do_derivs=false, const GridType type=GridType::Standard, const std::pair< Numeric, Numeric > cycle={-180, 180})
 
template<std::size_t PolyOrder>
constexpr const std::array< Numeric, PolyOrder+1 > & interpweights (const FixedLagrange< PolyOrder > &dim0)
 
template<std::size_t PolyOrder>
Grid< std::array< Numeric, PolyOrder+1 >, 1 > interpweights (const Array< FixedLagrange< PolyOrder > > &dim0)
 
template<std::size_t PolyOrder>
constexpr std::array< Numeric, PolyOrder+1 > dinterpweights (const FixedLagrange< PolyOrder > &dim0)
 
template<std::size_t PolyOrder>
Grid< std::array< Numeric, PolyOrder+1 >, 1 > dinterpweights (const Array< FixedLagrange< PolyOrder > > &dim0)
 
template<std::size_t PolyOrder, class VectorType >
constexpr Numeric interp (const VectorType &yi, const std::array< Numeric, PolyOrder+1 > &iw, const FixedLagrange< PolyOrder > &dim0)
 
template<std::size_t PolyOrder>
Vector reinterp (const ConstVectorView &iy, const Grid< std::array< Numeric, PolyOrder+1 >, 1 > &iw, const Array< FixedLagrange< PolyOrder > > &dim0)
 
template<std::size_t PolyOrder0, std::size_t PolyOrder1>
constexpr FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1 > interpweights (const FixedLagrange< PolyOrder0 > &dim0, const FixedLagrange< PolyOrder1 > &dim1)
 
template<std::size_t PolyOrder0, std::size_t PolyOrder1>
Grid< FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1 >, 2 > interpweights (const Array< FixedLagrange< PolyOrder0 > > &dim0, const Array< FixedLagrange< PolyOrder1 > > &dim1)
 
template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t DerivativeDim>
constexpr FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1 > dinterpweights (const FixedLagrange< PolyOrder0 > &dim0, const FixedLagrange< PolyOrder1 > &dim1)
 
template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t DerivativeDim>
Grid< FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1 >, 2 > dinterpweights (const Array< FixedLagrange< PolyOrder0 > > &dim0, const Array< FixedLagrange< PolyOrder1 > > &dim1)
 
template<std::size_t PolyOrder0, std::size_t PolyOrder1, class MatrixType >
constexpr Numeric interp (const MatrixType &yi, const FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1 > &iw, const FixedLagrange< PolyOrder0 > &dim0, const FixedLagrange< PolyOrder1 > &dim1)
 
template<std::size_t PolyOrder0, std::size_t PolyOrder1>
Matrix reinterp (const ConstMatrixView &iy, const Grid< FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1 >, 2 > &iw, const Array< FixedLagrange< PolyOrder0 > > &dim0, const Array< FixedLagrange< PolyOrder1 > > &dim1)
 
template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2>
constexpr FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1 > interpweights (const FixedLagrange< PolyOrder0 > &dim0, const FixedLagrange< PolyOrder1 > &dim1, const FixedLagrange< PolyOrder2 > &dim2)
 
template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2>
Grid< FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1 >, 3 > interpweights (const Array< FixedLagrange< PolyOrder0 > > &dim0, const Array< FixedLagrange< PolyOrder1 > > &dim1, const Array< FixedLagrange< PolyOrder2 > > &dim2)
 
template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t DerivativeDim>
constexpr FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1 > dinterpweights (const FixedLagrange< PolyOrder0 > &dim0, const FixedLagrange< PolyOrder1 > &dim1, const FixedLagrange< PolyOrder2 > &dim2)
 
template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t DerivativeDim>
Grid< FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1 >, 3 > dinterpweights (const Array< FixedLagrange< PolyOrder0 > > &dim0, const Array< FixedLagrange< PolyOrder1 > > &dim1, const Array< FixedLagrange< PolyOrder2 > > &dim2)
 
template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, class Tensor3Type >
constexpr Numeric interp (const Tensor3Type &yi, const FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1 > &iw, const FixedLagrange< PolyOrder0 > &dim0, const FixedLagrange< PolyOrder1 > &dim1, const FixedLagrange< PolyOrder2 > &dim2)
 
template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2>
Tensor3 reinterp (const ConstTensor3View &iy, const Grid< FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1 >, 3 > &iw, const Array< FixedLagrange< PolyOrder0 > > &dim0, const Array< FixedLagrange< PolyOrder1 > > &dim1, const Array< FixedLagrange< PolyOrder2 > > &dim2)
 
template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t PolyOrder3>
constexpr FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1, PolyOrder3+1 > interpweights (const FixedLagrange< PolyOrder0 > &dim0, const FixedLagrange< PolyOrder1 > &dim1, const FixedLagrange< PolyOrder2 > &dim2, const FixedLagrange< PolyOrder3 > &dim3)
 
template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t PolyOrder3>
Grid< FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1, PolyOrder3+1 >, 4 > interpweights (const Array< FixedLagrange< PolyOrder0 > > &dim0, const Array< FixedLagrange< PolyOrder1 > > &dim1, const Array< FixedLagrange< PolyOrder2 > > &dim2, const Array< FixedLagrange< PolyOrder3 > > &dim3)
 
template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t PolyOrder3, std::size_t DerivativeDim>
constexpr FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1, PolyOrder3+1 > dinterpweights (const FixedLagrange< PolyOrder0 > &dim0, const FixedLagrange< PolyOrder1 > &dim1, const FixedLagrange< PolyOrder2 > &dim2, const FixedLagrange< PolyOrder3 > &dim3)
 
template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t PolyOrder3, std::size_t DerivativeDim>
Grid< FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1, PolyOrder3+1 >, 4 > dinterpweights (const Array< FixedLagrange< PolyOrder0 > > &dim0, const Array< FixedLagrange< PolyOrder1 > > &dim1, const Array< FixedLagrange< PolyOrder2 > > &dim2, const Array< FixedLagrange< PolyOrder3 > > &dim3)
 
template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t PolyOrder3, class Tensor4Type >
constexpr Numeric interp (const Tensor4Type &yi, const FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1, PolyOrder3+1 > &iw, const FixedLagrange< PolyOrder0 > &dim0, const FixedLagrange< PolyOrder1 > &dim1, const FixedLagrange< PolyOrder2 > &dim2, const FixedLagrange< PolyOrder3 > &dim3)
 
template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t PolyOrder3>
Tensor4 reinterp (const ConstTensor4View &iy, const Grid< FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1, PolyOrder3+1 >, 4 > &iw, const Array< FixedLagrange< PolyOrder0 > > &dim0, const Array< FixedLagrange< PolyOrder1 > > &dim1, const Array< FixedLagrange< PolyOrder2 > > &dim2, const Array< FixedLagrange< PolyOrder3 > > &dim3)
 
template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t PolyOrder3, std::size_t PolyOrder4>
constexpr FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1, PolyOrder3+1, PolyOrder4+1 > interpweights (const FixedLagrange< PolyOrder0 > &dim0, const FixedLagrange< PolyOrder1 > &dim1, const FixedLagrange< PolyOrder2 > &dim2, const FixedLagrange< PolyOrder3 > &dim3, const FixedLagrange< PolyOrder4 > &dim4)
 
template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t PolyOrder3, std::size_t PolyOrder4>
Grid< FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1, PolyOrder3+1, PolyOrder4+1 >, 5 > interpweights (const Array< FixedLagrange< PolyOrder0 > > &dim0, const Array< FixedLagrange< PolyOrder1 > > &dim1, const Array< FixedLagrange< PolyOrder2 > > &dim2, const Array< FixedLagrange< PolyOrder3 > > &dim3, const Array< FixedLagrange< PolyOrder4 > > &dim4)
 
template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t PolyOrder3, std::size_t PolyOrder4, std::size_t DerivativeDim>
constexpr FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1, PolyOrder3+1, PolyOrder4+1 > dinterpweights (const FixedLagrange< PolyOrder0 > &dim0, const FixedLagrange< PolyOrder1 > &dim1, const FixedLagrange< PolyOrder2 > &dim2, const FixedLagrange< PolyOrder3 > &dim3, const FixedLagrange< PolyOrder4 > &dim4)
 
template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t PolyOrder3, std::size_t PolyOrder4, std::size_t DerivativeDim>
Grid< FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1, PolyOrder3+1, PolyOrder4+1 >, 5 > dinterpweights (const Array< FixedLagrange< PolyOrder0 > > &dim0, const Array< FixedLagrange< PolyOrder1 > > &dim1, const Array< FixedLagrange< PolyOrder2 > > &dim2, const Array< FixedLagrange< PolyOrder3 > > &dim3, const Array< FixedLagrange< PolyOrder4 > > &dim4)
 
template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t PolyOrder3, std::size_t PolyOrder4, class Tensor5Type >
constexpr Numeric interp (const Tensor5Type &yi, const FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1, PolyOrder3+1, PolyOrder4+1 > &iw, const FixedLagrange< PolyOrder0 > &dim0, const FixedLagrange< PolyOrder1 > &dim1, const FixedLagrange< PolyOrder2 > &dim2, const FixedLagrange< PolyOrder3 > &dim3, const FixedLagrange< PolyOrder4 > &dim4)
 
template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t PolyOrder3, std::size_t PolyOrder4>
Tensor5 reinterp (const ConstTensor5View &iy, const Grid< FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1, PolyOrder3+1, PolyOrder4+1 >, 5 > &iw, const FixedLagrange< PolyOrder0 > &dim0, const FixedLagrange< PolyOrder1 > &dim1, const FixedLagrange< PolyOrder2 > &dim2, const FixedLagrange< PolyOrder3 > &dim3, const FixedLagrange< PolyOrder4 > &dim4)
 
template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t PolyOrder3, std::size_t PolyOrder4, std::size_t PolyOrder5>
constexpr FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1, PolyOrder3+1, PolyOrder4+1, PolyOrder5+1 > interpweights (const FixedLagrange< PolyOrder0 > &dim0, const FixedLagrange< PolyOrder1 > &dim1, const FixedLagrange< PolyOrder2 > &dim2, const FixedLagrange< PolyOrder3 > &dim3, const FixedLagrange< PolyOrder4 > &dim4, const FixedLagrange< PolyOrder5 > &dim5)
 
template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t PolyOrder3, std::size_t PolyOrder4, std::size_t PolyOrder5>
Grid< FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1, PolyOrder3+1, PolyOrder4+1, PolyOrder5+1 >, 6 > interpweights (const Array< FixedLagrange< PolyOrder0 > > &dim0, const Array< FixedLagrange< PolyOrder1 > > &dim1, const Array< FixedLagrange< PolyOrder2 > > &dim2, const Array< FixedLagrange< PolyOrder3 > > &dim3, const Array< FixedLagrange< PolyOrder4 > > &dim4, const Array< FixedLagrange< PolyOrder5 > > &dim5)
 
template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t PolyOrder3, std::size_t PolyOrder4, std::size_t PolyOrder5, std::size_t DerivativeDim>
constexpr FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1, PolyOrder3+1, PolyOrder4+1, PolyOrder5+1 > dinterpweights (const FixedLagrange< PolyOrder0 > &dim0, const FixedLagrange< PolyOrder1 > &dim1, const FixedLagrange< PolyOrder2 > &dim2, const FixedLagrange< PolyOrder3 > &dim3, const FixedLagrange< PolyOrder4 > &dim4, const FixedLagrange< PolyOrder5 > &dim5)
 
template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t PolyOrder3, std::size_t PolyOrder4, std::size_t PolyOrder5, std::size_t DerivativeDim>
Grid< FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1, PolyOrder3+1, PolyOrder4+1, PolyOrder5+1 >, 6 > dinterpweights (const Array< FixedLagrange< PolyOrder0 > > &dim0, const Array< FixedLagrange< PolyOrder1 > > &dim1, const Array< FixedLagrange< PolyOrder2 > > &dim2, const Array< FixedLagrange< PolyOrder3 > > &dim3, const Array< FixedLagrange< PolyOrder4 > > &dim4, const Array< FixedLagrange< PolyOrder5 > > &dim5)
 
template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t PolyOrder3, std::size_t PolyOrder4, std::size_t PolyOrder5, class Tensor6Type >
constexpr Numeric interp (const Tensor6Type &yi, const FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1, PolyOrder3+1, PolyOrder4+1, PolyOrder5+1 > &iw, const FixedLagrange< PolyOrder0 > &dim0, const FixedLagrange< PolyOrder1 > &dim1, const FixedLagrange< PolyOrder2 > &dim2, const FixedLagrange< PolyOrder3 > &dim3, const FixedLagrange< PolyOrder4 > &dim4, const FixedLagrange< PolyOrder5 > &dim5)
 
template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t PolyOrder3, std::size_t PolyOrder4, std::size_t PolyOrder5>
Tensor6 reinterp (const ConstTensor6View &iy, const Grid< FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1, PolyOrder3+1, PolyOrder4+1, PolyOrder5+1 >, 6 > &iw, const Array< FixedLagrange< PolyOrder0 > > &dim0, const Array< FixedLagrange< PolyOrder1 > > &dim1, const Array< FixedLagrange< PolyOrder2 > > &dim2, const Array< FixedLagrange< PolyOrder3 > > &dim3, const Array< FixedLagrange< PolyOrder4 > > &dim4, const Array< FixedLagrange< PolyOrder5 > > &dim5)
 
template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t PolyOrder3, std::size_t PolyOrder4, std::size_t PolyOrder5, std::size_t PolyOrder6>
constexpr FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1, PolyOrder3+1, PolyOrder4+1, PolyOrder5+1, PolyOrder6+1 > interpweights (const FixedLagrange< PolyOrder0 > &dim0, const FixedLagrange< PolyOrder1 > &dim1, const FixedLagrange< PolyOrder2 > &dim2, const FixedLagrange< PolyOrder3 > &dim3, const FixedLagrange< PolyOrder4 > &dim4, const FixedLagrange< PolyOrder5 > &dim5, const FixedLagrange< PolyOrder6 > &dim6)
 
template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t PolyOrder3, std::size_t PolyOrder4, std::size_t PolyOrder5, std::size_t PolyOrder6>
Grid< FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1, PolyOrder3+1, PolyOrder4+1, PolyOrder5+1, PolyOrder6+1 >, 7 > interpweights (const Array< FixedLagrange< PolyOrder0 > > &dim0, const Array< FixedLagrange< PolyOrder1 > > &dim1, const Array< FixedLagrange< PolyOrder2 > > &dim2, const Array< FixedLagrange< PolyOrder3 > > &dim3, const Array< FixedLagrange< PolyOrder4 > > &dim4, const Array< FixedLagrange< PolyOrder5 > > &dim5, const Array< FixedLagrange< PolyOrder6 > > &dim6)
 
template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t PolyOrder3, std::size_t PolyOrder4, std::size_t PolyOrder5, std::size_t PolyOrder6, std::size_t DerivativeDim>
constexpr FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1, PolyOrder3+1, PolyOrder4+1, PolyOrder5+1, PolyOrder6+1 > dinterpweights (const FixedLagrange< PolyOrder0 > &dim0, const FixedLagrange< PolyOrder1 > &dim1, const FixedLagrange< PolyOrder2 > &dim2, const FixedLagrange< PolyOrder3 > &dim3, const FixedLagrange< PolyOrder4 > &dim4, const FixedLagrange< PolyOrder5 > &dim5, const FixedLagrange< PolyOrder6 > &dim6)
 
template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t PolyOrder3, std::size_t PolyOrder4, std::size_t PolyOrder5, std::size_t PolyOrder6, std::size_t DerivativeDim>
Grid< FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1, PolyOrder3+1, PolyOrder4+1, PolyOrder5+1, PolyOrder6+1 >, 7 > dinterpweights (const Array< FixedLagrange< PolyOrder0 > > &dim0, const Array< FixedLagrange< PolyOrder1 > > &dim1, const Array< FixedLagrange< PolyOrder2 > > &dim2, const Array< FixedLagrange< PolyOrder3 > > &dim3, const Array< FixedLagrange< PolyOrder4 > > &dim4, const Array< FixedLagrange< PolyOrder5 > > &dim5, const Array< FixedLagrange< PolyOrder6 > > &dim6)
 
template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t PolyOrder3, std::size_t PolyOrder4, std::size_t PolyOrder5, std::size_t PolyOrder6, class Tensor7Type >
constexpr Numeric interp (const Tensor7Type &yi, const FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1, PolyOrder3+1, PolyOrder4+1, PolyOrder5+1, PolyOrder6+1 > &iw, const FixedLagrange< PolyOrder0 > &dim0, const FixedLagrange< PolyOrder1 > &dim1, const FixedLagrange< PolyOrder2 > &dim2, const FixedLagrange< PolyOrder3 > &dim3, const FixedLagrange< PolyOrder4 > &dim4, const FixedLagrange< PolyOrder5 > &dim5, const FixedLagrange< PolyOrder6 > &dim6)
 
template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t PolyOrder3, std::size_t PolyOrder4, std::size_t PolyOrder5, std::size_t PolyOrder6>
Tensor7 reinterp (const ConstTensor7View &iy, const Grid< FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1, PolyOrder3+1, PolyOrder4+1, PolyOrder5+1, PolyOrder6+1 >, 7 > &iw, const Array< FixedLagrange< PolyOrder0 > > &dim0, const Array< FixedLagrange< PolyOrder1 > > &dim1, const Array< FixedLagrange< PolyOrder2 > > &dim2, const Array< FixedLagrange< PolyOrder3 > > &dim3, const Array< FixedLagrange< PolyOrder4 > > &dim4, const Array< FixedLagrange< PolyOrder5 > > &dim5, const Array< FixedLagrange< PolyOrder6 > > &dim6)
 

Function Documentation

◆ check_lagrange_interpolation() [1/2]

template<class SortedVectorType >
void Interpolation::check_lagrange_interpolation ( const SortedVectorType &  xi,
const Index  polyorder,
const Numeric  x,
const Numeric  extrapol = 0.5,
const GridType  type = GridType::Standard,
const std::pair< Numeric, Numeric cycle = {-180, 180} 
)

Checks the interpolation grid and throws if it is bad

Parameters
[in]xiOld grid positions
[in]polyorderPolynominal degree
[in]xNew grid position
[in]extrapolLevel of extrapolation
[in]typeType of Lagrange
[in]cycleSize of a cycle if Cyclic type

Definition at line 439 of file interpolation_lagrange.h.

◆ check_lagrange_interpolation() [2/2]

template<class SortedVectorType >
void Interpolation::check_lagrange_interpolation ( const SortedVectorType &  xi,
const Index  polyorder = 1,
const std::pair< Numeric, Numeric x = {std::numeric_limits<Numeric>::infinity(), -std::numeric_limits<Numeric>::infinity()},
const Numeric  extrapol = 0.5,
const GridType  type = GridType::Standard,
const std::pair< Numeric, Numeric cycle = {-180, 180} 
)

Checks the interpolation grid and throws if it is bad

Parameters
[in]xiOld grid positions
[in]polyorderPolynominal degree
[in]x{Min new x, Max new x}
[in]extrapolLevel of extrapolation
[in]typeType of Lagrange
[in]cycleSize of a cycle if Cyclic type

Definition at line 403 of file interpolation_lagrange.h.

Referenced by LagrangeVector().

◆ cycler()

constexpr Index Interpolation::cycler ( const Index  n,
const Index  N 
)
constexprnoexcept

Cycle once back through a list

Parameters
[in]nIndex in a list 0 <= n < 2*N
[in]NIndex size of a list
Returns
n - N if n >= N else n

Definition at line 26 of file interpolation_lagrange.h.

References N.

Referenced by dl_dval(), and interp().

◆ cyclic_clamp()

constexpr Numeric Interpolation::cyclic_clamp ( const Numeric  x,
const std::pair< Numeric, Numeric xlim 
)
constexprnoexcept

Clamp the value within a cycle by recursion

Note that your compiler will have a hard limit on recursion. If this is reached, this function will fail. If you even encounter this issue, the code below must be updated

Parameters
[in]xValue to clamp
[in]xlim[Lower, Upper) bound of cycle
Returns
Value of x in the cycle [Lower, Upper)

Definition at line 39 of file interpolation_lagrange.h.

References cyclic_clamp().

Referenced by cyclic_clamp(), dl_dval(), and test26().

◆ dinterpweights() [1/28]

template<std::size_t PolyOrder>
Grid< std::array< Numeric, PolyOrder+1 >, 1 > Interpolation::dinterpweights ( const Array< FixedLagrange< PolyOrder > > &  dim0)

Interpolation weights derivative for a 1D reduction

Parameters
[in]dim0- Interpolation along dimension 0
Returns
Vector - interpweights derivative along 0th dimension

Definition at line 955 of file interpolation_lagrange.h.

References dinterpweights().

◆ dinterpweights() [2/28]

template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t DerivativeDim>
Grid< FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1 >, 2 > Interpolation::dinterpweights ( const Array< FixedLagrange< PolyOrder0 > > &  dim0,
const Array< FixedLagrange< PolyOrder1 > > &  dim1 
)

Interpolation weights derivative for a 2D reduction

Parameters
[in]dim0- Interpolation along dimension 0
[in]dim1- Interpolation along dimension 1
[in]dim- Axis along which to compute the derivatives
Returns
Matrix - interpweights derivative along dim dimension

Definition at line 1154 of file interpolation_lagrange.h.

◆ dinterpweights() [3/28]

template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t DerivativeDim>
Grid< FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1 >, 3 > Interpolation::dinterpweights ( const Array< FixedLagrange< PolyOrder0 > > &  dim0,
const Array< FixedLagrange< PolyOrder1 > > &  dim1,
const Array< FixedLagrange< PolyOrder2 > > &  dim2 
)

Interpolation weights derivative for a 3D reduction

Parameters
[in]dim0- Interpolation along dimension 0
[in]dim1- Interpolation along dimension 1
[in]dim2- Interpolation along dimension 2
[in]dim- Axis along which to compute the derivatives
Returns
Tensor3 - interpweights derivative along dim dimension

Definition at line 1397 of file interpolation_lagrange.h.

◆ dinterpweights() [4/28]

template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t PolyOrder3, std::size_t DerivativeDim>
Grid< FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1, PolyOrder3+1 >, 4 > Interpolation::dinterpweights ( const Array< FixedLagrange< PolyOrder0 > > &  dim0,
const Array< FixedLagrange< PolyOrder1 > > &  dim1,
const Array< FixedLagrange< PolyOrder2 > > &  dim2,
const Array< FixedLagrange< PolyOrder3 > > &  dim3 
)

Interpolation weights derivative for a 4D reduction

Parameters
[in]dim0- Interpolation along dimension 0
[in]dim1- Interpolation along dimension 1
[in]dim2- Interpolation along dimension 2
[in]dim3- Interpolation along dimension 3
[in]dim- Axis along which to compute the derivatives
Returns
Tensor4 - interpweights derivative along dim dimension

Definition at line 1690 of file interpolation_lagrange.h.

◆ dinterpweights() [5/28]

template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t PolyOrder3, std::size_t PolyOrder4, std::size_t DerivativeDim>
Grid< FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1, PolyOrder3+1, PolyOrder4+1 >, 5 > Interpolation::dinterpweights ( const Array< FixedLagrange< PolyOrder0 > > &  dim0,
const Array< FixedLagrange< PolyOrder1 > > &  dim1,
const Array< FixedLagrange< PolyOrder2 > > &  dim2,
const Array< FixedLagrange< PolyOrder3 > > &  dim3,
const Array< FixedLagrange< PolyOrder4 > > &  dim4 
)

Interpolation weights derivative for a 5D reduction

Parameters
[in]dim0- Interpolation along dimension 0
[in]dim1- Interpolation along dimension 1
[in]dim2- Interpolation along dimension 2
[in]dim3- Interpolation along dimension 3
[in]dim4- Interpolation along dimension 4
[in]dim- Axis along which to compute the derivatives
Returns
Tensor5 - interpweights derivative along dim dimension

Definition at line 2024 of file interpolation_lagrange.h.

◆ dinterpweights() [6/28]

template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t PolyOrder3, std::size_t PolyOrder4, std::size_t PolyOrder5, std::size_t DerivativeDim>
Grid< FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1, PolyOrder3+1, PolyOrder4+1, PolyOrder5+1 >, 6 > Interpolation::dinterpweights ( const Array< FixedLagrange< PolyOrder0 > > &  dim0,
const Array< FixedLagrange< PolyOrder1 > > &  dim1,
const Array< FixedLagrange< PolyOrder2 > > &  dim2,
const Array< FixedLagrange< PolyOrder3 > > &  dim3,
const Array< FixedLagrange< PolyOrder4 > > &  dim4,
const Array< FixedLagrange< PolyOrder5 > > &  dim5 
)

Interpolation weights derivative for a 6D reduction

Parameters
[in]dim0- Interpolation along dimension 0
[in]dim1- Interpolation along dimension 1
[in]dim2- Interpolation along dimension 2
[in]dim3- Interpolation along dimension 3
[in]dim4- Interpolation along dimension 4
[in]dim5- Interpolation along dimension 5
[in]dim- Axis along which to compute the derivatives
Returns
Tensor6 - interpweights derivative along dim dimension

Definition at line 2397 of file interpolation_lagrange.h.

◆ dinterpweights() [7/28]

template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t PolyOrder3, std::size_t PolyOrder4, std::size_t PolyOrder5, std::size_t PolyOrder6, std::size_t DerivativeDim>
Grid< FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1, PolyOrder3+1, PolyOrder4+1, PolyOrder5+1, PolyOrder6+1 >, 7 > Interpolation::dinterpweights ( const Array< FixedLagrange< PolyOrder0 > > &  dim0,
const Array< FixedLagrange< PolyOrder1 > > &  dim1,
const Array< FixedLagrange< PolyOrder2 > > &  dim2,
const Array< FixedLagrange< PolyOrder3 > > &  dim3,
const Array< FixedLagrange< PolyOrder4 > > &  dim4,
const Array< FixedLagrange< PolyOrder5 > > &  dim5,
const Array< FixedLagrange< PolyOrder6 > > &  dim6 
)

Interpolation weights derivative for a 7D reduction

Parameters
[in]dim0- Interpolation along dimension 0
[in]dim1- Interpolation along dimension 1
[in]dim2- Interpolation along dimension 2
[in]dim3- Interpolation along dimension 3
[in]dim4- Interpolation along dimension 4
[in]dim5- Interpolation along dimension 5
[in]dim6- Interpolation along dimension 6
[in]dim- Axis along which to compute the derivatives
Returns
Tensor7 - interpweights derivative along dim dimension

Definition at line 2814 of file interpolation_lagrange.h.

◆ dinterpweights() [8/28]

Grid< Vector, 1 > Interpolation::dinterpweights ( const Array< Lagrange > &  dim0)

Interpolation weights derivative for a 1D reduction

Parameters
[in]dim0- Interpolation along dimension 0
Returns
Vector - interpweights derivative along 0th dimension

Definition at line 49 of file interpolation_lagrange.cc.

References dinterpweights().

◆ dinterpweights() [9/28]

Grid< Tensor7, 7 > Interpolation::dinterpweights ( const Array< Lagrange > &  dim0,
const Array< Lagrange > &  dim1,
const Array< Lagrange > &  dim2,
const Array< Lagrange > &  dim3,
const Array< Lagrange > &  dim4,
const Array< Lagrange > &  dim5,
const Array< Lagrange > &  dim6,
Index  dim 
)

Interpolation weights derivative for a 7D reduction

Parameters
[in]dim0- Interpolation along dimension 0
[in]dim1- Interpolation along dimension 1
[in]dim2- Interpolation along dimension 2
[in]dim3- Interpolation along dimension 3
[in]dim4- Interpolation along dimension 4
[in]dim5- Interpolation along dimension 5
[in]dim6- Interpolation along dimension 6
[in]dim- Axis along which to compute the derivatives
Returns
Tensor7 - interpweights derivative along dim dimension

Definition at line 760 of file interpolation_lagrange.cc.

◆ dinterpweights() [10/28]

Grid< Tensor6, 6 > Interpolation::dinterpweights ( const Array< Lagrange > &  dim0,
const Array< Lagrange > &  dim1,
const Array< Lagrange > &  dim2,
const Array< Lagrange > &  dim3,
const Array< Lagrange > &  dim4,
const Array< Lagrange > &  dim5,
Index  dim 
)

Interpolation weights derivative for a 6D reduction

Parameters
[in]dim0- Interpolation along dimension 0
[in]dim1- Interpolation along dimension 1
[in]dim2- Interpolation along dimension 2
[in]dim3- Interpolation along dimension 3
[in]dim4- Interpolation along dimension 4
[in]dim5- Interpolation along dimension 5
[in]dim- Axis along which to compute the derivatives
Returns
Tensor6 - interpweights derivative along dim dimension

Definition at line 593 of file interpolation_lagrange.cc.

◆ dinterpweights() [11/28]

Grid< Tensor5, 5 > Interpolation::dinterpweights ( const Array< Lagrange > &  dim0,
const Array< Lagrange > &  dim1,
const Array< Lagrange > &  dim2,
const Array< Lagrange > &  dim3,
const Array< Lagrange > &  dim4,
Index  dim 
)

Interpolation weights derivative for a 5D reduction

Parameters
[in]dim0- Interpolation along dimension 0
[in]dim1- Interpolation along dimension 1
[in]dim2- Interpolation along dimension 2
[in]dim3- Interpolation along dimension 3
[in]dim4- Interpolation along dimension 4
[in]dim- Axis along which to compute the derivatives
Returns
Tensor5 - interpweights derivative along dim dimension

Definition at line 448 of file interpolation_lagrange.cc.

◆ dinterpweights() [12/28]

Grid< Tensor4, 4 > Interpolation::dinterpweights ( const Array< Lagrange > &  dim0,
const Array< Lagrange > &  dim1,
const Array< Lagrange > &  dim2,
const Array< Lagrange > &  dim3,
Index  dim 
)

Interpolation weights derivative for a 4D reduction

Parameters
[in]dim0- Interpolation along dimension 0
[in]dim1- Interpolation along dimension 1
[in]dim2- Interpolation along dimension 2
[in]dim3- Interpolation along dimension 3
[in]dim- Axis along which to compute the derivatives
Returns
Tensor4 - interpweights derivative along dim dimension

Definition at line 320 of file interpolation_lagrange.cc.

◆ dinterpweights() [13/28]

Grid< Tensor3, 3 > Interpolation::dinterpweights ( const Array< Lagrange > &  dim0,
const Array< Lagrange > &  dim1,
const Array< Lagrange > &  dim2,
Index  dim 
)

Interpolation weights derivative for a 3D reduction

Parameters
[in]dim0- Interpolation along dimension 0
[in]dim1- Interpolation along dimension 1
[in]dim2- Interpolation along dimension 2
[in]dim- Axis along which to compute the derivatives
Returns
Tensor3 - interpweights derivative along dim dimension

Definition at line 215 of file interpolation_lagrange.cc.

◆ dinterpweights() [14/28]

Grid< Matrix, 2 > Interpolation::dinterpweights ( const Array< Lagrange > &  dim0,
const Array< Lagrange > &  dim1,
Index  dim 
)

Interpolation weights derivative for a 2D reduction

Parameters
[in]dim0- Interpolation along dimension 0
[in]dim1- Interpolation along dimension 1
[in]dim- Axis along which to compute the derivatives
Returns
Matrix - interpweights derivative along dim dimension

Definition at line 124 of file interpolation_lagrange.cc.

References dinterpweights().

◆ dinterpweights() [15/28]

template<std::size_t PolyOrder>
constexpr std::array< Numeric, PolyOrder+1 > Interpolation::dinterpweights ( const FixedLagrange< PolyOrder > &  dim0)
constexpr

Interpolation weights derivative for a 1D reduction

Parameters
[in]dim0- Interpolation along dimension 0
Returns
Vector - interpweights derivative along 0th dimension

Definition at line 944 of file interpolation_lagrange.h.

References Interpolation::FixedLagrange< PolyOrder >::dlx.

◆ dinterpweights() [16/28]

template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t DerivativeDim>
constexpr FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1 > Interpolation::dinterpweights ( const FixedLagrange< PolyOrder0 > &  dim0,
const FixedLagrange< PolyOrder1 > &  dim1 
)
constexpr

Interpolation weights derivative for a 2D reduction

Parameters
[in]dim0- Interpolation along dimension 0
[in]dim1- Interpolation along dimension 1
[in]dim- Axis along which to compute the derivatives
Returns
Matrix - interpweights derivative along dim dimension

Definition at line 1132 of file interpolation_lagrange.h.

References Interpolation::FixedLagrange< PolyOrder >::dlx, Interpolation::FixedLagrange< PolyOrder >::lx, and Interpolation::FixedLagrange< PolyOrder >::size().

◆ dinterpweights() [17/28]

template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t DerivativeDim>
constexpr FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1 > Interpolation::dinterpweights ( const FixedLagrange< PolyOrder0 > &  dim0,
const FixedLagrange< PolyOrder1 > &  dim1,
const FixedLagrange< PolyOrder2 > &  dim2 
)
constexpr

Interpolation weights derivative for a 3D reduction

Parameters
[in]dim0- Interpolation along dimension 0
[in]dim1- Interpolation along dimension 1
[in]dim2- Interpolation along dimension 2
[in]dim- Axis along which to compute the derivatives
Returns
Tensor3 - interpweights derivative along dim dimension

Definition at line 1371 of file interpolation_lagrange.h.

References Interpolation::FixedLagrange< PolyOrder >::size().

◆ dinterpweights() [18/28]

template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t PolyOrder3, std::size_t DerivativeDim>
constexpr FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1, PolyOrder3+1 > Interpolation::dinterpweights ( const FixedLagrange< PolyOrder0 > &  dim0,
const FixedLagrange< PolyOrder1 > &  dim1,
const FixedLagrange< PolyOrder2 > &  dim2,
const FixedLagrange< PolyOrder3 > &  dim3 
)
constexpr

Interpolation weights derivative for a 4D reduction

Parameters
[in]dim0- Interpolation along dimension 0
[in]dim1- Interpolation along dimension 1
[in]dim2- Interpolation along dimension 2
[in]dim3- Interpolation along dimension 3
[in]dim- Axis along which to compute the derivatives
Returns
Tensor4 - interpweights derivative along dim dimension

Definition at line 1655 of file interpolation_lagrange.h.

References Interpolation::FixedLagrange< PolyOrder >::size().

◆ dinterpweights() [19/28]

template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t PolyOrder3, std::size_t PolyOrder4, std::size_t DerivativeDim>
constexpr FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1, PolyOrder3+1, PolyOrder4+1 > Interpolation::dinterpweights ( const FixedLagrange< PolyOrder0 > &  dim0,
const FixedLagrange< PolyOrder1 > &  dim1,
const FixedLagrange< PolyOrder2 > &  dim2,
const FixedLagrange< PolyOrder3 > &  dim3,
const FixedLagrange< PolyOrder4 > &  dim4 
)
constexpr

Interpolation weights derivative for a 5D reduction

Parameters
[in]dim0- Interpolation along dimension 0
[in]dim1- Interpolation along dimension 1
[in]dim2- Interpolation along dimension 2
[in]dim3- Interpolation along dimension 3
[in]dim4- Interpolation along dimension 4
[in]dim- Axis along which to compute the derivatives
Returns
Tensor5 - interpweights derivative along dim dimension

Definition at line 1984 of file interpolation_lagrange.h.

References Interpolation::FixedLagrange< PolyOrder >::size().

◆ dinterpweights() [20/28]

template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t PolyOrder3, std::size_t PolyOrder4, std::size_t PolyOrder5, std::size_t DerivativeDim>
constexpr FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1, PolyOrder3+1, PolyOrder4+1, PolyOrder5+1 > Interpolation::dinterpweights ( const FixedLagrange< PolyOrder0 > &  dim0,
const FixedLagrange< PolyOrder1 > &  dim1,
const FixedLagrange< PolyOrder2 > &  dim2,
const FixedLagrange< PolyOrder3 > &  dim3,
const FixedLagrange< PolyOrder4 > &  dim4,
const FixedLagrange< PolyOrder5 > &  dim5 
)
constexpr

Interpolation weights derivative for a 6D reduction

Parameters
[in]dim0- Interpolation along dimension 0
[in]dim1- Interpolation along dimension 1
[in]dim2- Interpolation along dimension 2
[in]dim3- Interpolation along dimension 3
[in]dim4- Interpolation along dimension 4
[in]dim5- Interpolation along dimension 5
[in]dim- Axis along which to compute the derivatives
Returns
Tensor6 - interpweights derivative along dim dimension

Definition at line 2352 of file interpolation_lagrange.h.

References Interpolation::FixedLagrange< PolyOrder >::size().

◆ dinterpweights() [21/28]

template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t PolyOrder3, std::size_t PolyOrder4, std::size_t PolyOrder5, std::size_t PolyOrder6, std::size_t DerivativeDim>
constexpr FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1, PolyOrder3+1, PolyOrder4+1, PolyOrder5+1, PolyOrder6+1 > Interpolation::dinterpweights ( const FixedLagrange< PolyOrder0 > &  dim0,
const FixedLagrange< PolyOrder1 > &  dim1,
const FixedLagrange< PolyOrder2 > &  dim2,
const FixedLagrange< PolyOrder3 > &  dim3,
const FixedLagrange< PolyOrder4 > &  dim4,
const FixedLagrange< PolyOrder5 > &  dim5,
const FixedLagrange< PolyOrder6 > &  dim6 
)
constexpr

Interpolation weights derivative for a 7D reduction

Parameters
[in]dim0- Interpolation along dimension 0
[in]dim1- Interpolation along dimension 1
[in]dim2- Interpolation along dimension 2
[in]dim3- Interpolation along dimension 3
[in]dim4- Interpolation along dimension 4
[in]dim5- Interpolation along dimension 5
[in]dim6- Interpolation along dimension 6
[in]dim- Axis along which to compute the derivatives
Returns
Tensor7 - interpweights derivative along dim dimension

Definition at line 2765 of file interpolation_lagrange.h.

References Interpolation::FixedLagrange< PolyOrder >::size().

◆ dinterpweights() [22/28]

Vector Interpolation::dinterpweights ( const Lagrange dim0)

Interpolation weights derivative for a 1D reduction

Parameters
[in]dim0- Interpolation along dimension 0
Returns
Vector - interpweights derivative along 0th dimension

Definition at line 47 of file interpolation_lagrange.cc.

References Interpolation::Lagrange::dlx.

Referenced by dinterpweights(), test14(), test17(), test18(), test19(), test20(), test21(), test22(), test23(), test25(), and test26().

◆ dinterpweights() [23/28]

Tensor7 Interpolation::dinterpweights ( const Lagrange dim0,
const Lagrange dim1,
const Lagrange dim2,
const Lagrange dim3,
const Lagrange dim4,
const Lagrange dim5,
const Lagrange dim6,
Index  dim 
)

Interpolation weights derivative for a 7D reduction

Parameters
[in]dim0- Interpolation along dimension 0
[in]dim1- Interpolation along dimension 1
[in]dim2- Interpolation along dimension 2
[in]dim3- Interpolation along dimension 3
[in]dim4- Interpolation along dimension 4
[in]dim5- Interpolation along dimension 5
[in]dim6- Interpolation along dimension 6
[in]dim- Axis along which to compute the derivatives
Returns
Tensor7 - interpweights derivative along dim dimension

Definition at line 736 of file interpolation_lagrange.cc.

References Interpolation::Lagrange::size().

◆ dinterpweights() [24/28]

Tensor6 Interpolation::dinterpweights ( const Lagrange dim0,
const Lagrange dim1,
const Lagrange dim2,
const Lagrange dim3,
const Lagrange dim4,
const Lagrange dim5,
Index  dim 
)

Interpolation weights derivative for a 6D reduction

Parameters
[in]dim0- Interpolation along dimension 0
[in]dim1- Interpolation along dimension 1
[in]dim2- Interpolation along dimension 2
[in]dim3- Interpolation along dimension 3
[in]dim4- Interpolation along dimension 4
[in]dim5- Interpolation along dimension 5
[in]dim- Axis along which to compute the derivatives
Returns
Tensor6 - interpweights derivative along dim dimension

Definition at line 573 of file interpolation_lagrange.cc.

References Interpolation::Lagrange::size().

◆ dinterpweights() [25/28]

Tensor5 Interpolation::dinterpweights ( const Lagrange dim0,
const Lagrange dim1,
const Lagrange dim2,
const Lagrange dim3,
const Lagrange dim4,
Index  dim 
)

Interpolation weights derivative for a 5D reduction

Parameters
[in]dim0- Interpolation along dimension 0
[in]dim1- Interpolation along dimension 1
[in]dim2- Interpolation along dimension 2
[in]dim3- Interpolation along dimension 3
[in]dim4- Interpolation along dimension 4
[in]dim- Axis along which to compute the derivatives
Returns
Tensor5 - interpweights derivative along dim dimension

Definition at line 431 of file interpolation_lagrange.cc.

References Interpolation::Lagrange::size().

◆ dinterpweights() [26/28]

Tensor4 Interpolation::dinterpweights ( const Lagrange dim0,
const Lagrange dim1,
const Lagrange dim2,
const Lagrange dim3,
Index  dim 
)

Interpolation weights derivative for a 4D reduction

Parameters
[in]dim0- Interpolation along dimension 0
[in]dim1- Interpolation along dimension 1
[in]dim2- Interpolation along dimension 2
[in]dim3- Interpolation along dimension 3
[in]dim- Axis along which to compute the derivatives
Returns
Tensor4 - interpweights derivative along dim dimension

Definition at line 306 of file interpolation_lagrange.cc.

References Interpolation::Lagrange::size().

◆ dinterpweights() [27/28]

Tensor3 Interpolation::dinterpweights ( const Lagrange dim0,
const Lagrange dim1,
const Lagrange dim2,
Index  dim 
)

Interpolation weights derivative for a 3D reduction

Parameters
[in]dim0- Interpolation along dimension 0
[in]dim1- Interpolation along dimension 1
[in]dim2- Interpolation along dimension 2
[in]dim- Axis along which to compute the derivatives
Returns
Tensor3 - interpweights derivative along dim dimension

Definition at line 203 of file interpolation_lagrange.cc.

References Interpolation::Lagrange::size().

◆ dinterpweights() [28/28]

Matrix Interpolation::dinterpweights ( const Lagrange dim0,
const Lagrange dim1,
Index  dim 
)

Interpolation weights derivative for a 2D reduction

Parameters
[in]dim0- Interpolation along dimension 0
[in]dim1- Interpolation along dimension 1
[in]dim- Axis along which to compute the derivatives
Returns
Matrix - interpweights derivative along dim dimension

Definition at line 115 of file interpolation_lagrange.cc.

References Interpolation::Lagrange::dlx, Interpolation::Lagrange::lx, and Interpolation::Lagrange::size().

◆ dl()

template<GridType type, class SortedVectorType , class LagrangeVectorType >
constexpr Numeric Interpolation::dl ( const Index  p0,
const Index  n,
const Numeric  x,
const SortedVectorType &  xi,
const LagrangeVectorType &  li,
const Index  j,
const std::pair< Numeric, Numeric cycle = {-180, 180} 
)
constexprnoexcept

Computes the derivatives of the weights for a given coefficient

Parameters
[in]p0The origin position
[in]nThe number of weights
[in]xThe position for the weights
[in]xiThe sorted vector of values
[in]liThe Lagrange weights
[in]jThe current coefficient
[in]cycleThe size of a cycle (optional)

Definition at line 371 of file interpolation_lagrange.h.

Referenced by defocusing_general_sub(), get_pmom(), get_ppath_transmat(), and mcPathTraceRadar().

◆ dl_dval()

template<GridType type, class SortedVectorType , class LagrangeVectorType >
constexpr double Interpolation::dl_dval ( const Index  p0,
const Index  n,
const Numeric  x,
const SortedVectorType &  xi,
const LagrangeVectorType &  li,
const Index  j,
const Index  i,
const std::pair< Numeric, Numeric cycle 
)
constexprnoexcept

Computes the derivatives of the weights for a given coefficient for a given weight

If x is on the grid, this is more expensive than if x is not on the grid

Parameters
[in]p0The origin position
[in]nThe number of weights
[in]xThe position for the weights
[in]xiThe sorted vector of values
[in]liThe Lagrange weights
[in]jThe current coefficient
[in]iThe current wight Index
[in]cycleThe size of a cycle (optional)

Definition at line 290 of file interpolation_lagrange.h.

References cycler(), cyclic_clamp(), full_cycle(), min_cyclic(), N, and Hitran::type.

◆ ENUMCLASS()

Interpolation::ENUMCLASS ( GridType  ,
char  ,
Standard  ,
Cyclic  ,
Log  ,
Log10  ,
Log2  ,
SinDeg  ,
SinRad  ,
CosDeg  ,
CosRad   
)

Type of Lagrange interpolation weights

Note that Cyclic interpolation has reduced poly-order crossing the cycle if both the start and the end of the cycle are in the original x-data and the polyorder is above 1.

Note that all derivatives are linear regardless of the type

◆ FixedLagrangeVector()

template<std::size_t PolyOrder, class UnsortedVectorType , class SortedVectorType >
Array< FixedLagrange< PolyOrder > > Interpolation::FixedLagrangeVector ( const UnsortedVectorType &  xs,
const SortedVectorType &  xi,
const bool  do_derivs = false,
const GridType  type = GridType::Standard,
const std::pair< Numeric, Numeric cycle = {-180, 180} 
)

Gets a vector of Lagrange interpolation points

Estimates start position using start_pos_finder

Parameters
[in]xNew grid positions
[in]xiOld grid positions
[in]do_derivsFlag to activate derivative calculations
[in]typeType of Lagrange
[in]cycleSize of a cycle if Cyclic type
Returns
vector of FixedLagrange

Definition at line 857 of file interpolation_lagrange.h.

◆ full_cycle()

constexpr bool Interpolation::full_cycle ( const Numeric  xo,
const Numeric  xn,
const std::pair< Numeric, Numeric xlim 
)
constexprnoexcept

Find if the end points represent a full cycle

Parameters
[in]xoStart position of grid
[in]xnEnd position of grid
[in]xlim[Lower, Upper) bound of cycle
Returns
true if xlim = [xo, xn] or xlim = [xn, xo]

Definition at line 70 of file interpolation_lagrange.h.

Referenced by dl_dval().

◆ IMAX()

constexpr Index Interpolation::IMAX ( const Index  a,
const Index  b 
)
constexprnoexcept

Return the maximum of two integer numbers.

T his function is based on a macro from Numerical Rec*eipes. 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 113 of file interpolation_lagrange.h.

References a, and b.

◆ IMIN()

constexpr Index Interpolation::IMIN ( const Index  a,
const Index  b 
)
constexprnoexcept

Return the minimum of two integer numbers.

T his function is based on a macro from Numerical Rec*eipes. 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 132 of file interpolation_lagrange.h.

References a, and b.

◆ interp() [1/14]

Numeric Interpolation::interp ( const ConstMatrixView yi,
const ConstMatrixView iw,
const Lagrange dim0,
const Lagrange dim1 
)

Squashing interpolation routine

Parameters
[in]yi- Original data to squash
[in]iw- Interpolation weights or their derivatives from the Lagrange routines
[in]dim0- Lagrange weights along the dimension
[in]dim1- Lagrange weights along the dimension
Returns
Numeric of interpolated value

Definition at line 137 of file interpolation_lagrange.cc.

References cycler(), ConstMatrixView::ncols(), ConstMatrixView::nrows(), Interpolation::Lagrange::pos, and Interpolation::Lagrange::size().

◆ interp() [2/14]

Numeric Interpolation::interp ( const ConstTensor3View yi,
const ConstTensor3View iw,
const Lagrange dim0,
const Lagrange dim1,
const Lagrange dim2 
)

Squashing interpolation routine

Parameters
[in]yi- Original data to squash
[in]iw- Interpolation weights or their derivatives from the Lagrange routines
[in]dim0- Lagrange weights along the dimension
[in]dim1- Lagrange weights along the dimension
[in]dim2- Lagrange weights along the dimension
Returns
Numeric of interpolated value

Definition at line 230 of file interpolation_lagrange.cc.

References ConstTensor3View::ncols(), ConstTensor3View::npages(), ConstTensor3View::nrows(), and Interpolation::Lagrange::size().

◆ interp() [3/14]

Numeric Interpolation::interp ( const ConstTensor4View yi,
const ConstTensor4View iw,
const Lagrange dim0,
const Lagrange dim1,
const Lagrange dim2,
const Lagrange dim3 
)

Squashing interpolation routine

Parameters
[in]yi- Original data to squash
[in]iw- Interpolation weights or their derivatives from the Lagrange routines
[in]dim0- Lagrange weights along the dimension
[in]dim1- Lagrange weights along the dimension
[in]dim2- Lagrange weights along the dimension
[in]dim3- Lagrange weights along the dimension
Returns
Numeric of interpolated value

Definition at line 338 of file interpolation_lagrange.cc.

References ConstTensor4View::nbooks(), ConstTensor4View::ncols(), ConstTensor4View::npages(), ConstTensor4View::nrows(), and Interpolation::Lagrange::size().

◆ interp() [4/14]

Numeric Interpolation::interp ( const ConstTensor5View yi,
const ConstTensor5View iw,
const Lagrange dim0,
const Lagrange dim1,
const Lagrange dim2,
const Lagrange dim3,
const Lagrange dim4 
)

Squashing interpolation routine

Parameters
[in]yi- Original data to squash
[in]iw- Interpolation weights or their derivatives from the Lagrange routines
[in]dim0- Lagrange weights along the dimension
[in]dim1- Lagrange weights along the dimension
[in]dim2- Lagrange weights along the dimension
[in]dim3- Lagrange weights along the dimension
[in]dim4- Lagrange weights along the dimension
Returns
Numeric of interpolated value

Definition at line 469 of file interpolation_lagrange.cc.

References M, ConstTensor5View::nbooks(), ConstTensor5View::ncols(), ConstTensor5View::npages(), ConstTensor5View::nrows(), ConstTensor5View::nshelves(), and Interpolation::Lagrange::size().

◆ interp() [5/14]

Numeric Interpolation::interp ( const ConstTensor6View yi,
const ConstTensor6View iw,
const Lagrange dim0,
const Lagrange dim1,
const Lagrange dim2,
const Lagrange dim3,
const Lagrange dim4,
const Lagrange dim5 
)

Squashing interpolation routine

Parameters
[in]yi- Original data to squash
[in]iw- Interpolation weights or their derivatives from the Lagrange routines
[in]dim0- Lagrange weights along the dimension
[in]dim1- Lagrange weights along the dimension
[in]dim2- Lagrange weights along the dimension
[in]dim3- Lagrange weights along the dimension
[in]dim4- Lagrange weights along the dimension
[in]dim5- Lagrange weights along the dimension
Returns
Numeric of interpolated value

Definition at line 616 of file interpolation_lagrange.cc.

References M, N, ConstTensor6View::nbooks(), ConstTensor6View::ncols(), ConstTensor6View::npages(), ConstTensor6View::nrows(), ConstTensor6View::nshelves(), ConstTensor6View::nvitrines(), and Interpolation::Lagrange::size().

◆ interp() [6/14]

Numeric Interpolation::interp ( const ConstTensor7View yi,
const ConstTensor7View iw,
const Lagrange dim0,
const Lagrange dim1,
const Lagrange dim2,
const Lagrange dim3,
const Lagrange dim4,
const Lagrange dim5,
const Lagrange dim6 
)

Squashing interpolation routine

Parameters
[in]yi- Original data to squash
[in]iw- Interpolation weights or their derivatives from the Lagrange routines
[in]dim0- Lagrange weights along the dimension
[in]dim1- Lagrange weights along the dimension
[in]dim2- Lagrange weights along the dimension
[in]dim3- Lagrange weights along the dimension
[in]dim4- Lagrange weights along the dimension
[in]dim5- Lagrange weights along the dimension
[in]dim6- Lagrange weights along the dimension
Returns
Numeric of interpolated value

Definition at line 786 of file interpolation_lagrange.cc.

References M, N, ConstTensor7View::nbooks(), ConstTensor7View::ncols(), ConstTensor7View::nlibraries(), ConstTensor7View::npages(), ConstTensor7View::nrows(), ConstTensor7View::nshelves(), ConstTensor7View::nvitrines(), and Interpolation::Lagrange::size().

◆ interp() [7/14]

Numeric Interpolation::interp ( const ConstVectorView yi,
const ConstVectorView iw,
const Lagrange dim0 
)

Squashing interpolation routine

Parameters
[in]yi- Original data to squash
[in]iw- Interpolation weights or their derivatives from the Lagrange routines
[in]dim0- Lagrange weights along the dimension
Returns
Numeric of interpolated value

Definition at line 60 of file interpolation_lagrange.cc.

References cycler(), Interpolation::Lagrange::pos, ConstVectorView::size(), and Interpolation::Lagrange::size().

Referenced by reinterp().

◆ interp() [8/14]

template<std::size_t PolyOrder0, std::size_t PolyOrder1, class MatrixType >
constexpr Numeric Interpolation::interp ( const MatrixType yi,
const FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1 > &  iw,
const FixedLagrange< PolyOrder0 > &  dim0,
const FixedLagrange< PolyOrder1 > &  dim1 
)
constexpr

Squashing interpolation routine

Parameters
[in]yi- Original data to squash
[in]iw- Interpolation weights or their derivatives from the Lagrange routines
[in]dim0- Lagrange weights along the dimension
[in]dim1- Lagrange weights along the dimension
Returns
Numeric of interpolated value

Definition at line 1194 of file interpolation_lagrange.h.

References cycler(), Interpolation::FixedLagrange< PolyOrder >::pos, and Interpolation::FixedLagrange< PolyOrder >::size().

◆ interp() [9/14]

template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, class Tensor3Type >
constexpr Numeric Interpolation::interp ( const Tensor3Type &  yi,
const FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1 > &  iw,
const FixedLagrange< PolyOrder0 > &  dim0,
const FixedLagrange< PolyOrder1 > &  dim1,
const FixedLagrange< PolyOrder2 > &  dim2 
)
constexpr

Squashing interpolation routine

Parameters
[in]yi- Original data to squash
[in]iw- Interpolation weights or their derivatives from the Lagrange routines
[in]dim0- Lagrange weights along the dimension
[in]dim1- Lagrange weights along the dimension
[in]dim2- Lagrange weights along the dimension
Returns
Numeric of interpolated value

Definition at line 1441 of file interpolation_lagrange.h.

References Interpolation::FixedLagrange< PolyOrder >::size().

◆ interp() [10/14]

template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t PolyOrder3, class Tensor4Type >
constexpr Numeric Interpolation::interp ( const Tensor4Type &  yi,
const FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1, PolyOrder3+1 > &  iw,
const FixedLagrange< PolyOrder0 > &  dim0,
const FixedLagrange< PolyOrder1 > &  dim1,
const FixedLagrange< PolyOrder2 > &  dim2,
const FixedLagrange< PolyOrder3 > &  dim3 
)
constexpr

Squashing interpolation routine

Parameters
[in]yi- Original data to squash
[in]iw- Interpolation weights or their derivatives from the Lagrange routines
[in]dim0- Lagrange weights along the dimension
[in]dim1- Lagrange weights along the dimension
[in]dim2- Lagrange weights along the dimension
[in]dim3- Lagrange weights along the dimension
Returns
Numeric of interpolated value

Definition at line 1740 of file interpolation_lagrange.h.

References Interpolation::FixedLagrange< PolyOrder >::size().

◆ interp() [11/14]

template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t PolyOrder3, std::size_t PolyOrder4, class Tensor5Type >
constexpr Numeric Interpolation::interp ( const Tensor5Type &  yi,
const FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1, PolyOrder3+1, PolyOrder4+1 > &  iw,
const FixedLagrange< PolyOrder0 > &  dim0,
const FixedLagrange< PolyOrder1 > &  dim1,
const FixedLagrange< PolyOrder2 > &  dim2,
const FixedLagrange< PolyOrder3 > &  dim3,
const FixedLagrange< PolyOrder4 > &  dim4 
)
constexpr

Squashing interpolation routine

Parameters
[in]yi- Original data to squash
[in]iw- Interpolation weights or their derivatives from the Lagrange routines
[in]dim0- Lagrange weights along the dimension
[in]dim1- Lagrange weights along the dimension
[in]dim2- Lagrange weights along the dimension
[in]dim3- Lagrange weights along the dimension
[in]dim4- Lagrange weights along the dimension
Returns
Numeric of interpolated value

Definition at line 2080 of file interpolation_lagrange.h.

References M, and Interpolation::FixedLagrange< PolyOrder >::size().

◆ interp() [12/14]

template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t PolyOrder3, std::size_t PolyOrder4, std::size_t PolyOrder5, class Tensor6Type >
constexpr Numeric Interpolation::interp ( const Tensor6Type &  yi,
const FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1, PolyOrder3+1, PolyOrder4+1, PolyOrder5+1 > &  iw,
const FixedLagrange< PolyOrder0 > &  dim0,
const FixedLagrange< PolyOrder1 > &  dim1,
const FixedLagrange< PolyOrder2 > &  dim2,
const FixedLagrange< PolyOrder3 > &  dim3,
const FixedLagrange< PolyOrder4 > &  dim4,
const FixedLagrange< PolyOrder5 > &  dim5 
)
constexpr

Squashing interpolation routine

Parameters
[in]yi- Original data to squash
[in]iw- Interpolation weights or their derivatives from the Lagrange routines
[in]dim0- Lagrange weights along the dimension
[in]dim1- Lagrange weights along the dimension
[in]dim2- Lagrange weights along the dimension
[in]dim3- Lagrange weights along the dimension
[in]dim4- Lagrange weights along the dimension
[in]dim5- Lagrange weights along the dimension
Returns
Numeric of interpolated value

Definition at line 2459 of file interpolation_lagrange.h.

References M, N, and Interpolation::FixedLagrange< PolyOrder >::size().

◆ interp() [13/14]

template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t PolyOrder3, std::size_t PolyOrder4, std::size_t PolyOrder5, std::size_t PolyOrder6, class Tensor7Type >
constexpr Numeric Interpolation::interp ( const Tensor7Type &  yi,
const FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1, PolyOrder3+1, PolyOrder4+1, PolyOrder5+1, PolyOrder6+1 > &  iw,
const FixedLagrange< PolyOrder0 > &  dim0,
const FixedLagrange< PolyOrder1 > &  dim1,
const FixedLagrange< PolyOrder2 > &  dim2,
const FixedLagrange< PolyOrder3 > &  dim3,
const FixedLagrange< PolyOrder4 > &  dim4,
const FixedLagrange< PolyOrder5 > &  dim5,
const FixedLagrange< PolyOrder6 > &  dim6 
)
constexpr

Squashing interpolation routine

Parameters
[in]yi- Original data to squash
[in]iw- Interpolation weights or their derivatives from the Lagrange routines
[in]dim0- Lagrange weights along the dimension
[in]dim1- Lagrange weights along the dimension
[in]dim2- Lagrange weights along the dimension
[in]dim3- Lagrange weights along the dimension
[in]dim4- Lagrange weights along the dimension
[in]dim5- Lagrange weights along the dimension
[in]dim6- Lagrange weights along the dimension
Returns
Numeric of interpolated value

Definition at line 2884 of file interpolation_lagrange.h.

References M, N, and Interpolation::FixedLagrange< PolyOrder >::size().

◆ interp() [14/14]

template<std::size_t PolyOrder, class VectorType >
constexpr Numeric Interpolation::interp ( const VectorType &  yi,
const std::array< Numeric, PolyOrder+1 > &  iw,
const FixedLagrange< PolyOrder > &  dim0 
)
constexpr

Squashing fixed interpolation routine

Parameters
[in]yi- Original data to squash
[in]iw- Interpolation weights or their derivatives from the Lagrange routines
[in]dim0- Lagrange weights along the dimension
Returns
Numeric of interpolated value

Definition at line 987 of file interpolation_lagrange.h.

References cycler(), Interpolation::FixedLagrange< PolyOrder >::pos, and Interpolation::FixedLagrange< PolyOrder >::size().

◆ interpweights() [1/28]

template<std::size_t PolyOrder>
Grid< std::array< Numeric, PolyOrder+1 >, 1 > Interpolation::interpweights ( const Array< FixedLagrange< PolyOrder > > &  dim0)

Interpolation weights for a 1D reduction

Parameters
[in]dim0- Interpolation along dimension 0
Returns
Vector - interpweights

Definition at line 913 of file interpolation_lagrange.h.

References interpweights().

◆ interpweights() [2/28]

template<std::size_t PolyOrder0, std::size_t PolyOrder1>
Grid< FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1 >, 2 > Interpolation::interpweights ( const Array< FixedLagrange< PolyOrder0 > > &  dim0,
const Array< FixedLagrange< PolyOrder1 > > &  dim1 
)

Interpolation weights for a 2D reduction

Parameters
[in]dim0- Interpolation along dimension 0
[in]dim1- Interpolation along dimension 1
Returns
Matrix - interpweights

Definition at line 1089 of file interpolation_lagrange.h.

References interpweights().

◆ interpweights() [3/28]

template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2>
Grid< FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1 >, 3 > Interpolation::interpweights ( const Array< FixedLagrange< PolyOrder0 > > &  dim0,
const Array< FixedLagrange< PolyOrder1 > > &  dim1,
const Array< FixedLagrange< PolyOrder2 > > &  dim2 
)

Interpolation weights for a 3D reduction

Parameters
[in]dim0- Interpolation along dimension 0
[in]dim1- Interpolation along dimension 1
[in]dim2- Interpolation along dimension 2
Returns
Tensor3 - interpweights

Definition at line 1321 of file interpolation_lagrange.h.

◆ interpweights() [4/28]

template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t PolyOrder3>
Grid< FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1, PolyOrder3+1 >, 4 > Interpolation::interpweights ( const Array< FixedLagrange< PolyOrder0 > > &  dim0,
const Array< FixedLagrange< PolyOrder1 > > &  dim1,
const Array< FixedLagrange< PolyOrder2 > > &  dim2,
const Array< FixedLagrange< PolyOrder3 > > &  dim3 
)

Interpolation weights for a 4D reduction

Parameters
[in]dim0- Interpolation along dimension 0
[in]dim1- Interpolation along dimension 1
[in]dim2- Interpolation along dimension 2
[in]dim3- Interpolation along dimension 3
Returns
Tensor4 - interpweights

Definition at line 1595 of file interpolation_lagrange.h.

◆ interpweights() [5/28]

template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t PolyOrder3, std::size_t PolyOrder4>
Grid< FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1, PolyOrder3+1, PolyOrder4+1 >, 5 > Interpolation::interpweights ( const Array< FixedLagrange< PolyOrder0 > > &  dim0,
const Array< FixedLagrange< PolyOrder1 > > &  dim1,
const Array< FixedLagrange< PolyOrder2 > > &  dim2,
const Array< FixedLagrange< PolyOrder3 > > &  dim3,
const Array< FixedLagrange< PolyOrder4 > > &  dim4 
)

Interpolation weights for a 5D reduction

Parameters
[in]dim0- Interpolation along dimension 0
[in]dim1- Interpolation along dimension 1
[in]dim2- Interpolation along dimension 2
[in]dim3- Interpolation along dimension 3
[in]dim4- Interpolation along dimension 4
Returns
Tensor5 - interpweights

Definition at line 1916 of file interpolation_lagrange.h.

◆ interpweights() [6/28]

template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t PolyOrder3, std::size_t PolyOrder4, std::size_t PolyOrder5>
Grid< FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1, PolyOrder3+1, PolyOrder4+1, PolyOrder5+1 >, 6 > Interpolation::interpweights ( const Array< FixedLagrange< PolyOrder0 > > &  dim0,
const Array< FixedLagrange< PolyOrder1 > > &  dim1,
const Array< FixedLagrange< PolyOrder2 > > &  dim2,
const Array< FixedLagrange< PolyOrder3 > > &  dim3,
const Array< FixedLagrange< PolyOrder4 > > &  dim4,
const Array< FixedLagrange< PolyOrder5 > > &  dim5 
)

Interpolation weights for a 6D reduction

Parameters
[in]dim0- Interpolation along dimension 0
[in]dim1- Interpolation along dimension 1
[in]dim2- Interpolation along dimension 2
[in]dim3- Interpolation along dimension 3
[in]dim4- Interpolation along dimension 4
[in]dim5- Interpolation along dimension 5
Returns
Tensor6 - interpweights

Definition at line 2276 of file interpolation_lagrange.h.

◆ interpweights() [7/28]

template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t PolyOrder3, std::size_t PolyOrder4, std::size_t PolyOrder5, std::size_t PolyOrder6>
Grid< FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1, PolyOrder3+1, PolyOrder4+1, PolyOrder5+1, PolyOrder6+1 >, 7 > Interpolation::interpweights ( const Array< FixedLagrange< PolyOrder0 > > &  dim0,
const Array< FixedLagrange< PolyOrder1 > > &  dim1,
const Array< FixedLagrange< PolyOrder2 > > &  dim2,
const Array< FixedLagrange< PolyOrder3 > > &  dim3,
const Array< FixedLagrange< PolyOrder4 > > &  dim4,
const Array< FixedLagrange< PolyOrder5 > > &  dim5,
const Array< FixedLagrange< PolyOrder6 > > &  dim6 
)

Interpolation weights for a 7D reduction

Parameters
[in]dim0- Interpolation along dimension 0
[in]dim1- Interpolation along dimension 1
[in]dim2- Interpolation along dimension 2
[in]dim3- Interpolation along dimension 3
[in]dim4- Interpolation along dimension 4
[in]dim5- Interpolation along dimension 5
[in]dim6- Interpolation along dimension 6
Returns
Tensor7 - interpweights

Definition at line 2679 of file interpolation_lagrange.h.

◆ interpweights() [8/28]

Grid< Vector, 1 > Interpolation::interpweights ( const Array< Lagrange > &  dim0)

Interpolation weights for a 1D reduction

Parameters
[in]dim0- Interpolation along dimension 0
Returns
Vector - interpweights

Definition at line 37 of file interpolation_lagrange.cc.

References interpweights().

◆ interpweights() [9/28]

Grid< Matrix, 2 > Interpolation::interpweights ( const Array< Lagrange > &  dim0,
const Array< Lagrange > &  dim1 
)

Interpolation weights for a 2D reduction

Parameters
[in]dim0- Interpolation along dimension 0
[in]dim1- Interpolation along dimension 1
Returns
Matrix - interpweights

Definition at line 102 of file interpolation_lagrange.cc.

References interpweights().

◆ interpweights() [10/28]

Grid< Tensor3, 3 > Interpolation::interpweights ( const Array< Lagrange > &  dim0,
const Array< Lagrange > &  dim1,
const Array< Lagrange > &  dim2 
)

Interpolation weights for a 3D reduction

Parameters
[in]dim0- Interpolation along dimension 0
[in]dim1- Interpolation along dimension 1
[in]dim2- Interpolation along dimension 2
Returns
Tensor3 - interpweights

Definition at line 188 of file interpolation_lagrange.cc.

◆ interpweights() [11/28]

Grid< Tensor4, 4 > Interpolation::interpweights ( const Array< Lagrange > &  dim0,
const Array< Lagrange > &  dim1,
const Array< Lagrange > &  dim2,
const Array< Lagrange > &  dim3 
)

Interpolation weights for a 4D reduction

Parameters
[in]dim0- Interpolation along dimension 0
[in]dim1- Interpolation along dimension 1
[in]dim2- Interpolation along dimension 2
[in]dim3- Interpolation along dimension 3
Returns
Tensor4 - interpweights

Definition at line 289 of file interpolation_lagrange.cc.

◆ interpweights() [12/28]

Grid< Tensor5, 5 > Interpolation::interpweights ( const Array< Lagrange > &  dim0,
const Array< Lagrange > &  dim1,
const Array< Lagrange > &  dim2,
const Array< Lagrange > &  dim3,
const Array< Lagrange > &  dim4 
)

Interpolation weights for a 5D reduction

Parameters
[in]dim0- Interpolation along dimension 0
[in]dim1- Interpolation along dimension 1
[in]dim2- Interpolation along dimension 2
[in]dim3- Interpolation along dimension 3
[in]dim4- Interpolation along dimension 4
Returns
Tensor5 - interpweights

Definition at line 410 of file interpolation_lagrange.cc.

◆ interpweights() [13/28]

Grid< Tensor6, 6 > Interpolation::interpweights ( const Array< Lagrange > &  dim0,
const Array< Lagrange > &  dim1,
const Array< Lagrange > &  dim2,
const Array< Lagrange > &  dim3,
const Array< Lagrange > &  dim4,
const Array< Lagrange > &  dim5 
)

Interpolation weights for a 6D reduction

Parameters
[in]dim0- Interpolation along dimension 0
[in]dim1- Interpolation along dimension 1
[in]dim2- Interpolation along dimension 2
[in]dim3- Interpolation along dimension 3
[in]dim4- Interpolation along dimension 4
[in]dim5- Interpolation along dimension 5
Returns
Tensor6 - interpweights

Definition at line 550 of file interpolation_lagrange.cc.

◆ interpweights() [14/28]

Grid< Tensor7, 7 > Interpolation::interpweights ( const Array< Lagrange > &  dim0,
const Array< Lagrange > &  dim1,
const Array< Lagrange > &  dim2,
const Array< Lagrange > &  dim3,
const Array< Lagrange > &  dim4,
const Array< Lagrange > &  dim5,
const Array< Lagrange > &  dim6 
)

Interpolation weights for a 7D reduction

Parameters
[in]dim0- Interpolation along dimension 0
[in]dim1- Interpolation along dimension 1
[in]dim2- Interpolation along dimension 2
[in]dim3- Interpolation along dimension 3
[in]dim4- Interpolation along dimension 4
[in]dim5- Interpolation along dimension 5
[in]dim6- Interpolation along dimension 6
Returns
Tensor7 - interpweights

Definition at line 710 of file interpolation_lagrange.cc.

◆ interpweights() [15/28]

template<std::size_t PolyOrder>
constexpr const std::array< Numeric, PolyOrder+1 > & Interpolation::interpweights ( const FixedLagrange< PolyOrder > &  dim0)
constexpr

Interpolation weights for a 1D reduction

Parameters
[in]dim0- Interpolation along dimension 0
Returns
Vector - interpweights

Definition at line 902 of file interpolation_lagrange.h.

References Interpolation::FixedLagrange< PolyOrder >::lx.

◆ interpweights() [16/28]

template<std::size_t PolyOrder0, std::size_t PolyOrder1>
constexpr FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1 > Interpolation::interpweights ( const FixedLagrange< PolyOrder0 > &  dim0,
const FixedLagrange< PolyOrder1 > &  dim1 
)
constexpr

Interpolation weights for a 2D reduction

Parameters
[in]dim0- Interpolation along dimension 0
[in]dim1- Interpolation along dimension 1
Returns
Matrix - interpweights

Definition at line 1073 of file interpolation_lagrange.h.

References Interpolation::FixedLagrange< PolyOrder >::lx, and Interpolation::FixedLagrange< PolyOrder >::size().

◆ interpweights() [17/28]

template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2>
constexpr FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1 > Interpolation::interpweights ( const FixedLagrange< PolyOrder0 > &  dim0,
const FixedLagrange< PolyOrder1 > &  dim1,
const FixedLagrange< PolyOrder2 > &  dim2 
)
constexpr

Interpolation weights for a 3D reduction

Parameters
[in]dim0- Interpolation along dimension 0
[in]dim1- Interpolation along dimension 1
[in]dim2- Interpolation along dimension 2
Returns
Tensor3 - interpweights

Definition at line 1300 of file interpolation_lagrange.h.

References Interpolation::FixedLagrange< PolyOrder >::size().

◆ interpweights() [18/28]

template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t PolyOrder3>
constexpr FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1, PolyOrder3+1 > Interpolation::interpweights ( const FixedLagrange< PolyOrder0 > &  dim0,
const FixedLagrange< PolyOrder1 > &  dim1,
const FixedLagrange< PolyOrder2 > &  dim2,
const FixedLagrange< PolyOrder3 > &  dim3 
)
constexpr

Interpolation weights for a 4D reduction

Parameters
[in]dim0- Interpolation along dimension 0
[in]dim1- Interpolation along dimension 1
[in]dim2- Interpolation along dimension 2
[in]dim3- Interpolation along dimension 3
Returns
Tensor4 - interpweights

Definition at line 1567 of file interpolation_lagrange.h.

References Interpolation::FixedLagrange< PolyOrder >::size().

◆ interpweights() [19/28]

template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t PolyOrder3, std::size_t PolyOrder4>
constexpr FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1, PolyOrder3+1, PolyOrder4+1 > Interpolation::interpweights ( const FixedLagrange< PolyOrder0 > &  dim0,
const FixedLagrange< PolyOrder1 > &  dim1,
const FixedLagrange< PolyOrder2 > &  dim2,
const FixedLagrange< PolyOrder3 > &  dim3,
const FixedLagrange< PolyOrder4 > &  dim4 
)
constexpr

Interpolation weights for a 5D reduction

Parameters
[in]dim0- Interpolation along dimension 0
[in]dim1- Interpolation along dimension 1
[in]dim2- Interpolation along dimension 2
[in]dim3- Interpolation along dimension 3
[in]dim4- Interpolation along dimension 4
Returns
Tensor5 - interpweights

Definition at line 1883 of file interpolation_lagrange.h.

References Interpolation::FixedLagrange< PolyOrder >::size().

◆ interpweights() [20/28]

template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t PolyOrder3, std::size_t PolyOrder4, std::size_t PolyOrder5>
constexpr FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1, PolyOrder3+1, PolyOrder4+1, PolyOrder5+1 > Interpolation::interpweights ( const FixedLagrange< PolyOrder0 > &  dim0,
const FixedLagrange< PolyOrder1 > &  dim1,
const FixedLagrange< PolyOrder2 > &  dim2,
const FixedLagrange< PolyOrder3 > &  dim3,
const FixedLagrange< PolyOrder4 > &  dim4,
const FixedLagrange< PolyOrder5 > &  dim5 
)
constexpr

Interpolation weights for a 6D reduction

Parameters
[in]dim0- Interpolation along dimension 0
[in]dim1- Interpolation along dimension 1
[in]dim2- Interpolation along dimension 2
[in]dim3- Interpolation along dimension 3
[in]dim4- Interpolation along dimension 4
[in]dim5- Interpolation along dimension 5
Returns
Tensor6 - interpweights

Definition at line 2240 of file interpolation_lagrange.h.

References Interpolation::FixedLagrange< PolyOrder >::size().

◆ interpweights() [21/28]

template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t PolyOrder3, std::size_t PolyOrder4, std::size_t PolyOrder5, std::size_t PolyOrder6>
constexpr FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1, PolyOrder3+1, PolyOrder4+1, PolyOrder5+1, PolyOrder6+1 > Interpolation::interpweights ( const FixedLagrange< PolyOrder0 > &  dim0,
const FixedLagrange< PolyOrder1 > &  dim1,
const FixedLagrange< PolyOrder2 > &  dim2,
const FixedLagrange< PolyOrder3 > &  dim3,
const FixedLagrange< PolyOrder4 > &  dim4,
const FixedLagrange< PolyOrder5 > &  dim5,
const FixedLagrange< PolyOrder6 > &  dim6 
)
constexpr

Interpolation weights for a 7D reduction

Parameters
[in]dim0- Interpolation along dimension 0
[in]dim1- Interpolation along dimension 1
[in]dim2- Interpolation along dimension 2
[in]dim3- Interpolation along dimension 3
[in]dim4- Interpolation along dimension 4
[in]dim5- Interpolation along dimension 5
[in]dim6- Interpolation along dimension 6
Returns
Tensor7 - interpweights

Definition at line 2638 of file interpolation_lagrange.h.

References Interpolation::FixedLagrange< PolyOrder >::size().

◆ interpweights() [22/28]

Vector Interpolation::interpweights ( const Lagrange dim0)

Interpolation weights for a 1D reduction

Parameters
[in]dim0- Interpolation along dimension 0
Returns
Vector - interpweights

Definition at line 35 of file interpolation_lagrange.cc.

References Interpolation::Lagrange::lx.

Referenced by interpweights().

◆ interpweights() [23/28]

Matrix Interpolation::interpweights ( const Lagrange dim0,
const Lagrange dim1 
)

Interpolation weights for a 2D reduction

Parameters
[in]dim0- Interpolation along dimension 0
[in]dim1- Interpolation along dimension 1
Returns
Matrix - interpweights

Definition at line 95 of file interpolation_lagrange.cc.

References Interpolation::Lagrange::lx, and Interpolation::Lagrange::size().

◆ interpweights() [24/28]

Tensor3 Interpolation::interpweights ( const Lagrange dim0,
const Lagrange dim1,
const Lagrange dim2 
)

Interpolation weights for a 3D reduction

Parameters
[in]dim0- Interpolation along dimension 0
[in]dim1- Interpolation along dimension 1
[in]dim2- Interpolation along dimension 2
Returns
Tensor3 - interpweights

Definition at line 178 of file interpolation_lagrange.cc.

References Interpolation::Lagrange::size().

◆ interpweights() [25/28]

Tensor4 Interpolation::interpweights ( const Lagrange dim0,
const Lagrange dim1,
const Lagrange dim2,
const Lagrange dim3 
)

Interpolation weights for a 4D reduction

Parameters
[in]dim0- Interpolation along dimension 0
[in]dim1- Interpolation along dimension 1
[in]dim2- Interpolation along dimension 2
[in]dim3- Interpolation along dimension 3
Returns
Tensor4 - interpweights

Definition at line 278 of file interpolation_lagrange.cc.

References Interpolation::Lagrange::size().

◆ interpweights() [26/28]

Tensor5 Interpolation::interpweights ( const Lagrange dim0,
const Lagrange dim1,
const Lagrange dim2,
const Lagrange dim3,
const Lagrange dim4 
)

Interpolation weights for a 5D reduction

Parameters
[in]dim0- Interpolation along dimension 0
[in]dim1- Interpolation along dimension 1
[in]dim2- Interpolation along dimension 2
[in]dim3- Interpolation along dimension 3
[in]dim4- Interpolation along dimension 4
Returns
Tensor5 - interpweights

Definition at line 396 of file interpolation_lagrange.cc.

References Interpolation::Lagrange::size().

◆ interpweights() [27/28]

Tensor6 Interpolation::interpweights ( const Lagrange dim0,
const Lagrange dim1,
const Lagrange dim2,
const Lagrange dim3,
const Lagrange dim4,
const Lagrange dim5 
)

Interpolation weights for a 6D reduction

Parameters
[in]dim0- Interpolation along dimension 0
[in]dim1- Interpolation along dimension 1
[in]dim2- Interpolation along dimension 2
[in]dim3- Interpolation along dimension 3
[in]dim4- Interpolation along dimension 4
[in]dim5- Interpolation along dimension 5
Returns
Tensor6 - interpweights

Definition at line 534 of file interpolation_lagrange.cc.

References Interpolation::Lagrange::size().

◆ interpweights() [28/28]

Tensor7 Interpolation::interpweights ( const Lagrange dim0,
const Lagrange dim1,
const Lagrange dim2,
const Lagrange dim3,
const Lagrange dim4,
const Lagrange dim5,
const Lagrange dim6 
)

Interpolation weights for a 7D reduction

Parameters
[in]dim0- Interpolation along dimension 0
[in]dim1- Interpolation along dimension 1
[in]dim2- Interpolation along dimension 2
[in]dim3- Interpolation along dimension 3
[in]dim4- Interpolation along dimension 4
[in]dim5- Interpolation along dimension 5
[in]dim6- Interpolation along dimension 6
Returns
Tensor7 - interpweights

Definition at line 691 of file interpolation_lagrange.cc.

References Interpolation::Lagrange::size().

◆ is_ascending()

template<class SortedVectorType >
constexpr bool Interpolation::is_ascending ( const SortedVectorType &  xi)
constexprnoexcept

Checks whether the Sorted Vector is ascending or not by checking its first two elements.

Definition at line 387 of file interpolation_lagrange.h.

◆ l()

template<GridType type, class SortedVectorType >
constexpr Numeric Interpolation::l ( const Index  p0,
const Index  n,
const Numeric  x,
const SortedVectorType &  xi,
const Index  j,
const std::pair< Numeric, Numeric cycle = { -180, 180} 
)
constexprnoexcept

Computes the weights for a given coefficient

Parameters
[in]p0The origin position
[in]nThe number of weights
[in]xThe position for the weights
[in]xiThe sorted vector of values
[in]jThe current coefficient
[in]cycleThe size of a cycle (optional)

Definition at line 214 of file interpolation_lagrange.h.

Referenced by antenna2d_interp_response(), AtmFieldsAndParticleBulkPropFieldFromCompact(), calcBaselineFit(), cart2poslos(), chk_matrix_ncols(), chk_matrix_nrows(), chk_size(), chk_vector_length(), clebsqr_(), clebsqr_0_(), cloudboxSetAutomatically(), debug_tensor7view_get_elem(), do_gridcell_2d_byltest(), do_gridcell_3d_byltest(), Absorption::LineMixing::ecs_eigenvalue_adaptation_test(), fill_tensor7(), find_first_unique_in_lower(), geompath_from_r1_to_r2(), geompath_r_at_l(), Tensor7View::get(), ConstTensor7View::get(), get_pmom(), lm_hitran_2017::hitran_lm_eigenvalue_adaptation_test(), is_size(), jacobianAddShapeCatalogParameters(), jacobianCalcFreqStretch(), jacobianCalcPolyfit(), jacobianCalcSinefit(), jacobianFromYbatch(), Absorption::Lines::Match(), mblock_dlos_gridUniformCircular(), MPM02H2OAbsModel(), MPM85O2AbsModel(), MPM87H2OAbsModel(), MPM87O2AbsModel(), MPM89H2OAbsModel(), MPM89O2AbsModel(), MPM92O2AbsModel(), MPM93H2OAbsModel(), MPM93O2AbsModel(), Absorption::nelem(), Tensor7View::operator()(), ConstTensor7View::operator()(), operator<<(), Interpolation::FixedLagrange< PolyOrder >::operator=(), Interpolation::Lagrange::operator=(), opt_prop_bulkCalc(), plevel_crossing_2d(), polynomial_basis_func(), PWR93O2AbsModel(), PWR98H2OAbsModel(), r_crossing_2d(), r_crossing_3d(), raytrace_1d_linear_basic(), raytrace_2d_linear_basic(), lm_hitran_2017::readw(), Tensor7::resize(), InteractiveWorkspace::set_tensor3_variable(), stokes2pol(), surf_radius_at_l(), surface_scalar_reflectivityFromSurface_rmatrix(), Tensor7::Tensor7(), test_lusolve1D(), test_lusolve4D(), TRE05O2AbsModel(), unitl(), VectorClip(), xml_read_from_stream(), and xml_write_to_stream().

◆ LagrangeVector()

Array< Lagrange > Interpolation::LagrangeVector ( const ConstVectorView x,
const ConstVectorView xi,
const Index  polyorder,
const Numeric  extrapol = 0.5,
const bool  do_derivs = false,
const GridType  type = GridType::Standard,
const std::pair< Numeric, Numeric cycle = {-180, 180} 
)

Gets a vector of Lagrange interpolation points

Estimates start position using start_pos_finder

Parameters
[in]xNew grid positions
[in]xiOld grid positions
[in]polyorderPolynominal degree
[in]extrapolLevel of extrapolation
[in]do_derivsFlag to activate derivative calculations
[in]typeType of Lagrange
[in]cycleSize of a cycle if Cyclic type
Returns
vector of Lagrange

Definition at line 5 of file interpolation_lagrange.cc.

References check_lagrange_interpolation(), max, min, ConstVectorView::size(), start_pos_finder(), and Hitran::type.

Referenced by GasAbsLookup::Adapt(), AtmFieldPRegridHelper(), GasAbsLookup::Extract(), GriddedFieldLatLonRegridHelper(), GriddedFieldPRegridHelper(), GriddedFieldZToPRegridHelper(), MagFieldsCalc(), MagFieldsFromAltitudeRawCalc(), scat_dataCalc(), sensor_responseFillFgrid(), ssd_tinterp_parameters(), test09(), test11(), test16(), and WindFieldsCalc().

◆ min_cyclic()

constexpr Numeric Interpolation::min_cyclic ( const Numeric  x,
const std::pair< Numeric, Numeric xlim 
)
constexprnoexcept

Find the absolute minimum in a cycle

Parameters
[in]xA position relative to a cycle
[in]xlim[Lower, Upper) bound of cycle
Returns
x-dx, x, or x+dx, whichever absolute is the smallest, where dx=Upper-Lower

Definition at line 54 of file interpolation_lagrange.h.

References nonstd::abs(), and dx.

Referenced by dl_dval().

◆ pos_finder()

template<class SortedVectorType >
constexpr Index Interpolation::pos_finder ( const Index  pos0,
const Numeric  x,
const SortedVectorType &  xi,
const Index  polyorder,
const bool  cyclic,
const bool  ascending,
const std::pair< Numeric, Numeric cycle = { -180, 180} 
)
constexprnoexcept

Finds the position of interpolation of x in xi

Will first find the first position with one lower value to the side of the point before adjusting so that x is in the center of a multiple interpolation order curve

Parameters
[in]pos0Estimation of the first position, must be [0, xi.size())
[in]xCoordinate to find a position for
[in]xiOriginal sorted grid
[in]polyorderPolynominal orders
[in]cyclicThe sorting is cyclic (1, 2, 3, 0.5, 1.5...)
[in]ascendingThe sorting is ascending (1, 2, 3...)
[in]cycleThe size of a cycle (optional; increasing first->second)

Definition at line 149 of file interpolation_lagrange.h.

Referenced by choose_abs_nls_pert(), and choose_abs_t_pert().

◆ reinterp() [1/21]

template<std::size_t PolyOrder0, std::size_t PolyOrder1>
Matrix Interpolation::reinterp ( const ConstMatrixView iy,
const Grid< FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1 >, 2 > &  iw,
const Array< FixedLagrange< PolyOrder0 > > &  dim0,
const Array< FixedLagrange< PolyOrder1 > > &  dim1 
)

Reinterpreting interpolation routine

Parameters
[in]yi- Original data to squash
[in]iw- Interpolation weights grid or their derivatives from the Lagrange routines
[in]dim0- Lagrange weights along the dimension
[in]dim1- Lagrange weights along the dimension
Returns
Matrix of interpolated value

Definition at line 1249 of file interpolation_lagrange.h.

References interp().

◆ reinterp() [2/21]

Matrix Interpolation::reinterp ( const ConstMatrixView iy,
const Grid< Matrix, 2 > &  iw,
const Array< Lagrange > &  dim0,
const Array< Lagrange > &  dim1 
)

Reinterpreting interpolation routine

Parameters
[in]yi- Original data to squash
[in]iw- Interpolation weights grid or their derivatives from the Lagrange routines
[in]dim0- Lagrange weights along the dimension
[in]dim1- Lagrange weights along the dimension
Returns
Matrix of interpolated value

Definition at line 160 of file interpolation_lagrange.cc.

References interp().

◆ reinterp() [3/21]

template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2>
Tensor3 Interpolation::reinterp ( const ConstTensor3View iy,
const Grid< FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1 >, 3 > &  iw,
const Array< FixedLagrange< PolyOrder0 > > &  dim0,
const Array< FixedLagrange< PolyOrder1 > > &  dim1,
const Array< FixedLagrange< PolyOrder2 > > &  dim2 
)

Reinterpreting interpolation routine

Parameters
[in]yi- Original data to squash
[in]iw- Interpolation weights grid or their derivatives from the Lagrange routines
[in]dim0- Lagrange weights along the dimension
[in]dim1- Lagrange weights along the dimension
[in]dim2- Lagrange weights along the dimension
Returns
Tensor3 of interpolated value

Definition at line 1507 of file interpolation_lagrange.h.

◆ reinterp() [4/21]

Tensor3 Interpolation::reinterp ( const ConstTensor3View iy,
const Grid< Tensor3, 3 > &  iw,
const Array< Lagrange > &  dim0,
const Array< Lagrange > &  dim1,
const Array< Lagrange > &  dim2 
)

Reinterpreting interpolation routine

Parameters
[in]yi- Original data to squash
[in]iw- Interpolation weights grid or their derivatives from the Lagrange routines
[in]dim0- Lagrange weights along the dimension
[in]dim1- Lagrange weights along the dimension
[in]dim2- Lagrange weights along the dimension
Returns
Tensor3 of interpolated value

Definition at line 258 of file interpolation_lagrange.cc.

◆ reinterp() [5/21]

template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t PolyOrder3>
Tensor4 Interpolation::reinterp ( const ConstTensor4View iy,
const Grid< FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1, PolyOrder3+1 >, 4 > &  iw,
const Array< FixedLagrange< PolyOrder0 > > &  dim0,
const Array< FixedLagrange< PolyOrder1 > > &  dim1,
const Array< FixedLagrange< PolyOrder2 > > &  dim2,
const Array< FixedLagrange< PolyOrder3 > > &  dim3 
)

Reinterpreting interpolation routine

Parameters
[in]yi- Original data to squash
[in]iw- Interpolation weights grid or their derivatives from the Lagrange routines
[in]dim0- Lagrange weights along the dimension
[in]dim1- Lagrange weights along the dimension
[in]dim2- Lagrange weights along the dimension
[in]dim3- Lagrange weights along the dimension
Returns
Tensor4 of interpolated value

Definition at line 1815 of file interpolation_lagrange.h.

◆ reinterp() [6/21]

Tensor4 Interpolation::reinterp ( const ConstTensor4View iy,
const Grid< Tensor4, 4 > &  iw,
const Array< Lagrange > &  dim0,
const Array< Lagrange > &  dim1,
const Array< Lagrange > &  dim2,
const Array< Lagrange > &  dim3 
)

Reinterpreting interpolation routine

Parameters
[in]yi- Original data to squash
[in]iw- Interpolation weights grid or their derivatives from the Lagrange routines
[in]dim0- Lagrange weights along the dimension
[in]dim1- Lagrange weights along the dimension
[in]dim2- Lagrange weights along the dimension
[in]dim3- Lagrange weights along the dimension
Returns
Tensor4 of interpolated value

Definition at line 373 of file interpolation_lagrange.cc.

◆ reinterp() [7/21]

template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t PolyOrder3, std::size_t PolyOrder4>
Tensor5 Interpolation::reinterp ( const ConstTensor5View iy,
const Grid< FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1, PolyOrder3+1, PolyOrder4+1 >, 5 > &  iw,
const FixedLagrange< PolyOrder0 > &  dim0,
const FixedLagrange< PolyOrder1 > &  dim1,
const FixedLagrange< PolyOrder2 > &  dim2,
const FixedLagrange< PolyOrder3 > &  dim3,
const FixedLagrange< PolyOrder4 > &  dim4 
)

Reinterpreting interpolation routine

Parameters
[in]yi- Original data to squash
[in]iw- Interpolation weights grid or their derivatives from the Lagrange routines
[in]dim0- Lagrange weights along the dimension
[in]dim1- Lagrange weights along the dimension
[in]dim2- Lagrange weights along the dimension
[in]dim3- Lagrange weights along the dimension
[in]dim4- Lagrange weights along the dimension
Returns
Tensor5 of interpolated value

Definition at line 2165 of file interpolation_lagrange.h.

References Interpolation::FixedLagrange< PolyOrder >::size().

◆ reinterp() [8/21]

Tensor5 Interpolation::reinterp ( const ConstTensor5View iy,
const Grid< Tensor5, 5 > &  iw,
const Array< Lagrange > &  dim0,
const Array< Lagrange > &  dim1,
const Array< Lagrange > &  dim2,
const Array< Lagrange > &  dim3,
const Array< Lagrange > &  dim4 
)

Reinterpreting interpolation routine

Parameters
[in]yi- Original data to squash
[in]iw- Interpolation weights grid or their derivatives from the Lagrange routines
[in]dim0- Lagrange weights along the dimension
[in]dim1- Lagrange weights along the dimension
[in]dim2- Lagrange weights along the dimension
[in]dim3- Lagrange weights along the dimension
[in]dim4- Lagrange weights along the dimension
Returns
Tensor5 of interpolated value

Definition at line 509 of file interpolation_lagrange.cc.

◆ reinterp() [9/21]

template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t PolyOrder3, std::size_t PolyOrder4, std::size_t PolyOrder5>
Tensor6 Interpolation::reinterp ( const ConstTensor6View iy,
const Grid< FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1, PolyOrder3+1, PolyOrder4+1, PolyOrder5+1 >, 6 > &  iw,
const Array< FixedLagrange< PolyOrder0 > > &  dim0,
const Array< FixedLagrange< PolyOrder1 > > &  dim1,
const Array< FixedLagrange< PolyOrder2 > > &  dim2,
const Array< FixedLagrange< PolyOrder3 > > &  dim3,
const Array< FixedLagrange< PolyOrder4 > > &  dim4,
const Array< FixedLagrange< PolyOrder5 > > &  dim5 
)

Reinterpreting interpolation routine

Parameters
[in]yi- Original data to squash
[in]iw- Interpolation weights grid or their derivatives from the Lagrange routines
[in]dim0- Lagrange weights along the dimension
[in]dim1- Lagrange weights along the dimension
[in]dim2- Lagrange weights along the dimension
[in]dim3- Lagrange weights along the dimension
[in]dim4- Lagrange weights along the dimension
[in]dim5- Lagrange weights along the dimension
Returns
Tensor6 of interpolated value

Definition at line 2552 of file interpolation_lagrange.h.

◆ reinterp() [10/21]

Tensor6 Interpolation::reinterp ( const ConstTensor6View iy,
const Grid< Tensor6, 6 > &  iw,
const Array< Lagrange > &  dim0,
const Array< Lagrange > &  dim1,
const Array< Lagrange > &  dim2,
const Array< Lagrange > &  dim3,
const Array< Lagrange > &  dim4,
const Array< Lagrange > &  dim5 
)

Reinterpreting interpolation routine

Parameters
[in]yi- Original data to squash
[in]iw- Interpolation weights grid or their derivatives from the Lagrange routines
[in]dim0- Lagrange weights along the dimension
[in]dim1- Lagrange weights along the dimension
[in]dim2- Lagrange weights along the dimension
[in]dim3- Lagrange weights along the dimension
[in]dim4- Lagrange weights along the dimension
[in]dim5- Lagrange weights along the dimension
Returns
Tensor6 of interpolated value

Definition at line 662 of file interpolation_lagrange.cc.

◆ reinterp() [11/21]

template<std::size_t PolyOrder0, std::size_t PolyOrder1, std::size_t PolyOrder2, std::size_t PolyOrder3, std::size_t PolyOrder4, std::size_t PolyOrder5, std::size_t PolyOrder6>
Tensor7 Interpolation::reinterp ( const ConstTensor7View iy,
const Grid< FixedGrid< Numeric, PolyOrder0+1, PolyOrder1+1, PolyOrder2+1, PolyOrder3+1, PolyOrder4+1, PolyOrder5+1, PolyOrder6+1 >, 7 > &  iw,
const Array< FixedLagrange< PolyOrder0 > > &  dim0,
const Array< FixedLagrange< PolyOrder1 > > &  dim1,
const Array< FixedLagrange< PolyOrder2 > > &  dim2,
const Array< FixedLagrange< PolyOrder3 > > &  dim3,
const Array< FixedLagrange< PolyOrder4 > > &  dim4,
const Array< FixedLagrange< PolyOrder5 > > &  dim5,
const Array< FixedLagrange< PolyOrder6 > > &  dim6 
)

Reinterpreting interpolation routine

Parameters
[in]yi- Original data to squash
[in]iw- Interpolation weights grid or their derivatives from the Lagrange routines
[in]dim0- Lagrange weights along the dimension
[in]dim1- Lagrange weights along the dimension
[in]dim2- Lagrange weights along the dimension
[in]dim3- Lagrange weights along the dimension
[in]dim4- Lagrange weights along the dimension
[in]dim5- Lagrange weights along the dimension
[in]dim6- Lagrange weights along the dimension
Returns
Tensor7 of interpolated value

Definition at line 2988 of file interpolation_lagrange.h.

◆ reinterp() [12/21]

Tensor7 Interpolation::reinterp ( const ConstTensor7View iy,
const Grid< Tensor7, 7 > &  iw,
const Array< Lagrange > &  dim0,
const Array< Lagrange > &  dim1,
const Array< Lagrange > &  dim2,
const Array< Lagrange > &  dim3,
const Array< Lagrange > &  dim4,
const Array< Lagrange > &  dim5,
const Array< Lagrange > &  dim6 
)

Reinterpreting interpolation routine

Parameters
[in]yi- Original data to squash
[in]iw- Interpolation weights grid or their derivatives from the Lagrange routines
[in]dim0- Lagrange weights along the dimension
[in]dim1- Lagrange weights along the dimension
[in]dim2- Lagrange weights along the dimension
[in]dim3- Lagrange weights along the dimension
[in]dim4- Lagrange weights along the dimension
[in]dim5- Lagrange weights along the dimension
[in]dim6- Lagrange weights along the dimension
Returns
Tensor7 of interpolated value

Definition at line 837 of file interpolation_lagrange.cc.

◆ reinterp() [13/21]

template<std::size_t PolyOrder>
Vector Interpolation::reinterp ( const ConstVectorView iy,
const Grid< std::array< Numeric, PolyOrder+1 >, 1 > &  iw,
const Array< FixedLagrange< PolyOrder > > &  dim0 
)

Reinterpreting fixed interpolation routine

Parameters
[in]yi- Original data to squash
[in]iw- Interpolation weights grid or their derivatives from the Lagrange routines
[in]dim0- Lagrange weights along the dimension
Returns
Vector of interpolated value

Definition at line 1033 of file interpolation_lagrange.h.

References interp().

◆ reinterp() [14/21]

Vector Interpolation::reinterp ( const ConstVectorView iy,
const Grid< Vector, 1 > &  iw,
const Array< Lagrange > &  dim0 
)

Reinterpreting interpolation routine

Parameters
[in]yi- Original data to squash
[in]iw- Interpolation weights grid or their derivatives from the Lagrange routines
[in]dim0- Lagrange weights along the dimension
Returns
Vector of interpolated value

Definition at line 79 of file interpolation_lagrange.cc.

References interp().

◆ reinterp() [15/21]

void Interpolation::reinterp ( MatrixView  out,
const ConstMatrixView iy,
const Grid< Matrix, 2 > &  iw,
const Array< Lagrange > &  dim0,
const Array< Lagrange > &  dim1 
)

Reinterpreting interpolation routine

Parameters
[in,out]out- Reinterpreted field
[in]yi- Original data to squash
[in]iw- Interpolation weights grid or their derivatives from the Lagrange routines
[in]dim0- Lagrange weights along the dimension
[in]dim1- Lagrange weights along the dimension
Returns
Matrix of interpolated value

Definition at line 152 of file interpolation_lagrange.cc.

References interp().

◆ reinterp() [16/21]

void Interpolation::reinterp ( Tensor3View  out,
const ConstTensor3View iy,
const Grid< Tensor3, 3 > &  iw,
const Array< Lagrange > &  dim0,
const Array< Lagrange > &  dim1,
const Array< Lagrange > &  dim2 
)

Reinterpreting interpolation routine

Parameters
[in,out]out- Reinterpreted field
[in]yi- Original data to squash
[in]iw- Interpolation weights grid or their derivatives from the Lagrange routines
[in]dim0- Lagrange weights along the dimension
[in]dim1- Lagrange weights along the dimension
[in]dim2- Lagrange weights along the dimension
Returns
Tensor3 of interpolated value

Definition at line 248 of file interpolation_lagrange.cc.

◆ reinterp() [17/21]

void Interpolation::reinterp ( Tensor4View  out,
const ConstTensor4View iy,
const Grid< Tensor4, 4 > &  iw,
const Array< Lagrange > &  dim0,
const Array< Lagrange > &  dim1,
const Array< Lagrange > &  dim2,
const Array< Lagrange > &  dim3 
)

Reinterpreting interpolation routine

Parameters
[in,out]out- Reinterpreted field
[in]yi- Original data to squash
[in]iw- Interpolation weights grid or their derivatives from the Lagrange routines
[in]dim0- Lagrange weights along the dimension
[in]dim1- Lagrange weights along the dimension
[in]dim2- Lagrange weights along the dimension
[in]dim3- Lagrange weights along the dimension
Returns
Tensor4 of interpolated value

Definition at line 360 of file interpolation_lagrange.cc.

◆ reinterp() [18/21]

void Interpolation::reinterp ( Tensor5View  out,
const ConstTensor5View iy,
const Grid< Tensor5, 5 > &  iw,
const Array< Lagrange > &  dim0,
const Array< Lagrange > &  dim1,
const Array< Lagrange > &  dim2,
const Array< Lagrange > &  dim3,
const Array< Lagrange > &  dim4 
)

Reinterpreting interpolation routine

Parameters
[in,out]out- Reinterpreted field
[in]yi- Original data to squash
[in]iw- Interpolation weights grid or their derivatives from the Lagrange routines
[in]dim0- Lagrange weights along the dimension
[in]dim1- Lagrange weights along the dimension
[in]dim2- Lagrange weights along the dimension
[in]dim3- Lagrange weights along the dimension
[in]dim4- Lagrange weights along the dimension
Returns
Tensor5 of interpolated value

Definition at line 494 of file interpolation_lagrange.cc.

◆ reinterp() [19/21]

void Interpolation::reinterp ( Tensor6View  out,
const ConstTensor6View iy,
const Grid< Tensor6, 6 > &  iw,
const Array< Lagrange > &  dim0,
const Array< Lagrange > &  dim1,
const Array< Lagrange > &  dim2,
const Array< Lagrange > &  dim3,
const Array< Lagrange > &  dim4,
const Array< Lagrange > &  dim5 
)

Reinterpreting interpolation routine

Parameters
[in,out]out- Reinterpreted field
[in]yi- Original data to squash
[in]iw- Interpolation weights grid or their derivatives from the Lagrange routines
[in]dim0- Lagrange weights along the dimension
[in]dim1- Lagrange weights along the dimension
[in]dim2- Lagrange weights along the dimension
[in]dim3- Lagrange weights along the dimension
[in]dim4- Lagrange weights along the dimension
[in]dim5- Lagrange weights along the dimension
Returns
Tensor6 of interpolated value

Definition at line 644 of file interpolation_lagrange.cc.

◆ reinterp() [20/21]

void Interpolation::reinterp ( Tensor7View  out,
const ConstTensor7View iy,
const Grid< Tensor7, 7 > &  iw,
const Array< Lagrange > &  dim0,
const Array< Lagrange > &  dim1,
const Array< Lagrange > &  dim2,
const Array< Lagrange > &  dim3,
const Array< Lagrange > &  dim4,
const Array< Lagrange > &  dim5,
const Array< Lagrange > &  dim6 
)

Reinterpreting interpolation routine

Parameters
[in,out]out- Reinterpreted field
[in]yi- Original data to squash
[in]iw- Interpolation weights grid or their derivatives from the Lagrange routines
[in]dim0- Lagrange weights along the dimension
[in]dim1- Lagrange weights along the dimension
[in]dim2- Lagrange weights along the dimension
[in]dim3- Lagrange weights along the dimension
[in]dim4- Lagrange weights along the dimension
[in]dim5- Lagrange weights along the dimension
[in]dim6- Lagrange weights along the dimension
Returns
Tensor7 of interpolated value

Definition at line 817 of file interpolation_lagrange.cc.

◆ reinterp() [21/21]

void Interpolation::reinterp ( VectorView  out,
const ConstVectorView iy,
const Grid< Vector, 1 > &  iw,
const Array< Lagrange > &  dim0 
)

Reinterpreting interpolation routine

Parameters
[in,out]out- Reinterpreted field
[in]yi- Original data to squash
[in]iw- Interpolation weights grid or their derivatives from the Lagrange routines
[in]dim0- Lagrange weights along the dimension
Returns
Vector of interpolated value

Definition at line 73 of file interpolation_lagrange.cc.

References interp().

Referenced by AtmFieldPRegrid(), XsecRecord::Extract(), FouComp_1ScatElem(), GriddedFieldLatLonRegrid(), GriddedFieldPRegrid(), GriddedFieldZToPRegrid(), jacobianCalcFreqShift(), jacobianCalcFreqStretch(), MagFieldsCalc(), MagFieldsFromAltitudeRawCalc(), opt_prop_1ScatElem(), pha_mat_1ScatElem(), scat_dataCalc(), test09(), test11(), test14(), and WindFieldsCalc().

◆ start_pos_finder()

template<class SortedVectorType >
constexpr Index Interpolation::start_pos_finder ( const Numeric  x,
const SortedVectorType &  xvec 
)
constexprnoexcept

Find an estimation of the start position in a linearly separated grid (useful as a start position esitmated

Parameters
[in]xThe position
[in]xvecThe grid
Returns
Estimated position of x [0, xvec.size())

Definition at line 85 of file interpolation_lagrange.h.

Referenced by LagrangeVector().