8 #include <isce3/math/Bessel.h>
10 namespace isce3 {
namespace core {
21 Kernel(
double width) : _halfwidth(fabs(width / 2.0)) {}
33 double width()
const {
return _halfwidth * 2; }
41 class BartlettKernel :
public Kernel<T> {
51 class LinearKernel :
public BartlettKernel<T> {
63 class KnabKernel :
public Kernel<T> {
72 :
Kernel<T>(width), _bandwidth(bandwidth)
92 class NFFTKernel :
public Kernel<T> {
114 class TabulatedKernel :
public Kernel<T> {
121 template<
typename Tin>
126 const std::vector<T>& table()
const {
return _table; }
129 std::vector<T> _table;
136 class ChebyKernel :
public Kernel<T> {
143 template<
typename Tin>
148 const std::vector<T>& coeffs()
const {
return _coeffs; }
151 std::vector<T> _coeffs;
157 #include "Kernels.icc"
NFFTKernel(int m, int n, int fft_size)
Constructor of NFFT kernel.
Definition: Kernels.icc:60
ChebyKernel(const Kernel< Tin > &kernel, int n)
Constructor that computes fit of another Kernel.
Definition: Kernels.icc:140
T operator()(double x) const override
Evaluate kernel at given location in [-halfwidth, halfwidth].
Definition: Kernels.icc:48
double bandwidth() const
Get bandwidth of kernel.
Definition: Kernels.h:78
double width() const
Get width of kernel.
Definition: Kernels.h:33
virtual T operator()(double x) const =0
Evaluate kernel at given location in [-halfwidth, halfwidth].
T operator()(double x) const override
Evaluate kernel at given location in [-halfwidth, halfwidth].
Definition: Kernels.icc:16
Abstract base class for all kernels.
Definition: forward.h:40
T operator()(double x) const override
Evaluate kernel at given location in [-halfwidth, halfwidth].
Definition: Kernels.icc:174
virtual ~Kernel()
Virtual destructor (allow destruction of base Kernel pointer)
Definition: Kernels.h:24
T operator()(double x) const override
Evaluate kernel at given location in [-halfwidth, halfwidth].
Definition: Kernels.icc:121
KnabKernel(double width, double bandwidth)
Constructor of Knab's kernel.
Definition: Kernels.h:71
BartlettKernel(double width)
Triangle function constructor.
Definition: Kernels.h:44
T operator()(double x) const override
Evaluate kernel at given location in [-halfwidth, halfwidth].
Definition: Kernels.icc:73
TabulatedKernel(const Kernel< Tin > &kernel, int n)
Constructor of tabulated kernel.