atlas::interpolation::method::QuasiCubicHorizontalKernel class

Public types

struct Weights
struct WorkSpace
using Stencil = grid::HorizontalStencil<4>

Public static functions

static auto className() -> std::string
static auto stencil_width() -> idx_t constexpr
static auto stencil_size() -> idx_t constexpr
static auto stencil_halo() -> idx_t constexpr

Constructors, destructors, conversion operators

QuasiCubicHorizontalKernel() defaulted
QuasiCubicHorizontalKernel(const functionspace::StructuredColumns& fs, const util::Config& config = util::NoConfig())

Public functions

template<typename stencil_t>
void compute_stencil(const double x, const double y, stencil_t& stencil) const
template<typename stencil_t>
void make_valid_stencil(double& x, double y, stencil_t& stencil, bool retry = true) const
template<typename weights_t>
void compute_weights(double x, double y, weights_t& weights) const
template<typename stencil_t, typename weights_t>
void compute_weights(const double x, const double y, const stencil_t& stencil, weights_t& weights) const
template<typename stencil_t, typename weights_t, typename array_t>
auto interpolate(const stencil_t& stencil, const weights_t& weights, const array_t& input) const -> array_t::value_type
template<typename stencil_t, typename weights_t, typename Value, int Rank>
auto interpolate(const stencil_t& stencil, const weights_t& weights, const array::ArrayView<const Value, Rank>& input, array::ArrayView<Value, Rank>& output, idx_t r) const -> std::enable_if<(Rank==1), void>::type
template<typename stencil_t, typename weights_t, typename Value, int Rank>
auto interpolate(const stencil_t& stencil, const weights_t& weights, const array::ArrayView<const Value, Rank>& input, array::ArrayView<Value, Rank>& output, idx_t r) const -> std::enable_if<(Rank==2), void>::type
template<typename array_t>
auto operator()(double x, double y, const array_t& input) const -> array_t::value_type
template<typename array_t>
auto interpolate(PointXY p, const array_t& input, WorkSpace& ws) const -> array_t::value_type
auto compute_triplets(const idx_t row, const double x, const double y, WorkSpace& ws) const -> Triplets
auto reserve_triplets(size_t N) -> Triplets
auto allocate_triplets(size_t N) -> Triplets
void insert_triplets(const idx_t row, const PointXY& p, Triplets& triplets, WorkSpace& ws) const
void insert_triplets(const idx_t row, double x, double y, Triplets& triplets, WorkSpace& ws) const