ARTS 2.5.0 (git: 9ee3ac6c)
interpolation_lagrange.h File Reference
#include "constants.h"
#include "debug.h"
#include "enums.h"
#include "grids.h"
#include "matpackVII.h"
#include "nonstd.h"
#include <algorithm>
#include <array>
#include <functional>
#include <limits>
#include <memory>
#include <numeric>
#include <type_traits>
#include <vector>

Go to the source code of this file.

Classes

struct  Interpolation::Lagrange
 A Lagrange interpolation computer. More...
 
struct  Interpolation::FixedLagrange< PolyOrder >
 

Namespaces

namespace  Interpolation
 

Typedefs

using LagrangeInterpolation = Interpolation::Lagrange
 
using ArrayOfLagrangeInterpolation = Array< LagrangeInterpolation >
 
using VectorOfVector = Grid< Vector, 1 >
 
using MatrixOfMatrix = Grid< Matrix, 2 >
 
using Tensor3OfTensor3 = Grid< Tensor3, 3 >
 
template<std::size_t N>
using FixedLagrangeInterpolation = Interpolation::FixedLagrange< N >
 

Functions

constexpr Index Interpolation::cycler (const Index n, const Index N) noexcept
 
constexpr Numeric Interpolation::cyclic_clamp (const Numeric x, const std::pair< Numeric, Numeric > xlim) noexcept
 
constexpr Numeric Interpolation::min_cyclic (const Numeric x, const std::pair< Numeric, Numeric > xlim) noexcept
 
constexpr bool Interpolation::full_cycle (const Numeric xo, const Numeric xn, const std::pair< Numeric, Numeric > xlim) noexcept
 
template<class SortedVectorType >
constexpr Index Interpolation::start_pos_finder (const Numeric x, const SortedVectorType &xvec) noexcept
 
constexpr Index Interpolation::IMAX (const Index a, const Index b) noexcept
 Return the maximum of two integer numbers. More...
 
constexpr Index Interpolation::IMIN (const Index a, const Index b) noexcept
 Return the minimum of two integer numbers. More...
 
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}) noexcept
 
 Interpolation::ENUMCLASS (GridType, char, Standard, Cyclic, Log, Log10, Log2, SinDeg, SinRad, CosDeg, CosRad)
 
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}) noexcept
 
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) noexcept
 
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}) noexcept
 
template<class SortedVectorType >
constexpr bool Interpolation::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 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})
 
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})
 
Array< Lagrange > Interpolation::LagrangeVector (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)
 
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})
 
Vector Interpolation::interpweights (const Lagrange &dim0)
 
Grid< Vector, 1 > Interpolation::interpweights (const Array< Lagrange > &dim0)
 
template<std::size_t PolyOrder>
constexpr const std::array< Numeric, PolyOrder+1 > & Interpolation::interpweights (const FixedLagrange< PolyOrder > &dim0)
 
template<std::size_t PolyOrder>
Grid< std::array< Numeric, PolyOrder+1 >, 1 > Interpolation::interpweights (const Array< FixedLagrange< PolyOrder > > &dim0)
 
Vector Interpolation::dinterpweights (const Lagrange &dim0)
 
Grid< Vector, 1 > Interpolation::dinterpweights (const Array< Lagrange > &dim0)
 
template<std::size_t PolyOrder>
constexpr std::array< Numeric, PolyOrder+1 > Interpolation::dinterpweights (const FixedLagrange< PolyOrder > &dim0)
 
template<std::size_t PolyOrder>
Grid< std::array< Numeric, PolyOrder+1 >, 1 > Interpolation::dinterpweights (const Array< FixedLagrange< PolyOrder > > &dim0)
 
Numeric Interpolation::interp (const ConstVectorView &yi, const ConstVectorView &iw, const Lagrange &dim0)
 
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)
 
void Interpolation::reinterp (VectorView out, const ConstVectorView &iy, const Grid< Vector, 1 > &iw, const Array< Lagrange > &dim0)
 
Vector Interpolation::reinterp (const ConstVectorView &iy, const Grid< Vector, 1 > &iw, const Array< Lagrange > &dim0)
 
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)
 
Matrix Interpolation::interpweights (const Lagrange &dim0, const Lagrange &dim1)
 
Grid< Matrix, 2 > Interpolation::interpweights (const Array< Lagrange > &dim0, const Array< Lagrange > &dim1)
 
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)
 
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)
 
Matrix Interpolation::dinterpweights (const Lagrange &dim0, const Lagrange &dim1, Index dim)
 
Grid< Matrix, 2 > Interpolation::dinterpweights (const Array< Lagrange > &dim0, const Array< Lagrange > &dim1, Index dim)
 
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)
 
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)
 
Numeric Interpolation::interp (const ConstMatrixView &yi, const ConstMatrixView &iw, const Lagrange &dim0, const Lagrange &dim1)
 
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)
 
void Interpolation::reinterp (MatrixView out, const ConstMatrixView &iy, const Grid< Matrix, 2 > &iw, const Array< Lagrange > &dim0, const Array< Lagrange > &dim1)
 
Matrix Interpolation::reinterp (const ConstMatrixView &iy, const Grid< Matrix, 2 > &iw, const Array< Lagrange > &dim0, const Array< Lagrange > &dim1)
 
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)
 
Tensor3 Interpolation::interpweights (const Lagrange &dim0, const Lagrange &dim1, const Lagrange &dim2)
 
Grid< Tensor3, 3 > Interpolation::interpweights (const Array< Lagrange > &dim0, const Array< Lagrange > &dim1, const Array< Lagrange > &dim2)
 
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)
 
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)
 
Tensor3 Interpolation::dinterpweights (const Lagrange &dim0, const Lagrange &dim1, const Lagrange &dim2, Index dim)
 
Grid< Tensor3, 3 > Interpolation::dinterpweights (const Array< Lagrange > &dim0, const Array< Lagrange > &dim1, const Array< Lagrange > &dim2, Index dim)
 
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)
 
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)
 
Numeric Interpolation::interp (const ConstTensor3View &yi, const ConstTensor3View &iw, const Lagrange &dim0, const Lagrange &dim1, const Lagrange &dim2)
 
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)
 
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)
 
Tensor3 Interpolation::reinterp (const ConstTensor3View &iy, const Grid< Tensor3, 3 > &iw, const Array< Lagrange > &dim0, const Array< Lagrange > &dim1, const Array< Lagrange > &dim2)
 
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)
 
Tensor4 Interpolation::interpweights (const Lagrange &dim0, const Lagrange &dim1, const Lagrange &dim2, const Lagrange &dim3)
 
Grid< Tensor4, 4 > Interpolation::interpweights (const Array< Lagrange > &dim0, const Array< Lagrange > &dim1, const Array< Lagrange > &dim2, const Array< Lagrange > &dim3)
 
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)
 
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)
 
Tensor4 Interpolation::dinterpweights (const Lagrange &dim0, const Lagrange &dim1, const Lagrange &dim2, const Lagrange &dim3, Index dim)
 
Grid< Tensor4, 4 > Interpolation::dinterpweights (const Array< Lagrange > &dim0, const Array< Lagrange > &dim1, const Array< Lagrange > &dim2, const Array< Lagrange > &dim3, Index dim)
 
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)
 
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)
 
Numeric Interpolation::interp (const ConstTensor4View &yi, const ConstTensor4View &iw, const Lagrange &dim0, const Lagrange &dim1, const Lagrange &dim2, const Lagrange &dim3)
 
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)
 
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)
 
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)
 
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)
 
Tensor5 Interpolation::interpweights (const Lagrange &dim0, const Lagrange &dim1, const Lagrange &dim2, const Lagrange &dim3, const Lagrange &dim4)
 
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)
 
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)
 
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)
 
Tensor5 Interpolation::dinterpweights (const Lagrange &dim0, const Lagrange &dim1, const Lagrange &dim2, const Lagrange &dim3, const Lagrange &dim4, Index dim)
 
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)
 
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)
 
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)
 
Numeric Interpolation::interp (const ConstTensor5View &yi, const ConstTensor5View &iw, const Lagrange &dim0, const Lagrange &dim1, const Lagrange &dim2, const Lagrange &dim3, const Lagrange &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 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)
 
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)
 
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)
 
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)
 
Tensor6 Interpolation::interpweights (const Lagrange &dim0, const Lagrange &dim1, const Lagrange &dim2, const Lagrange &dim3, const Lagrange &dim4, const Lagrange &dim5)
 
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)
 
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)
 
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)
 
Tensor6 Interpolation::dinterpweights (const Lagrange &dim0, const Lagrange &dim1, const Lagrange &dim2, const Lagrange &dim3, const Lagrange &dim4, const Lagrange &dim5, Index dim)
 
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)
 
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)
 
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)
 
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)
 
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)
 
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)
 
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)
 
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)
 
Tensor7 Interpolation::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 > 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)
 
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)
 
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)
 
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)
 
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)
 
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)
 
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)
 
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)
 
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)
 
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)
 
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)
 
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)
 

Typedef Documentation

◆ ArrayOfLagrangeInterpolation

A list of Lagrange interpolation points

Definition at line 3021 of file interpolation_lagrange.h.

◆ FixedLagrangeInterpolation

template<std::size_t N>
using FixedLagrangeInterpolation = Interpolation::FixedLagrange<N>

The fixed Lagrange interpolation base point

Definition at line 3034 of file interpolation_lagrange.h.

◆ LagrangeInterpolation

The Lagrange interpolation base point

Definition at line 3018 of file interpolation_lagrange.h.

◆ MatrixOfMatrix

using MatrixOfMatrix = Grid<Matrix, 2>

A Matrix of Matrix for Lagrange Interpolation

Definition at line 3027 of file interpolation_lagrange.h.

◆ Tensor3OfTensor3

A Tensor3 of Tensor3 for Lagrange Interpolation

Definition at line 3030 of file interpolation_lagrange.h.

◆ VectorOfVector

using VectorOfVector = Grid<Vector, 1>

A Vector of Vector for Lagrange Interpolation

Definition at line 3024 of file interpolation_lagrange.h.