3#include <isce3/core/forward.h>
4#include <isce3/core/Common.h>
6#include <thrust/host_vector.h>
11namespace isce3{
namespace cuda{
namespace core{
13 class gpuInterpolator {
15 CUDA_HOSTDEV gpuInterpolator() {}
16 CUDA_HOSTDEV
virtual ~gpuInterpolator() {}
17 CUDA_DEV
virtual U interpolate(
double,
double,
const U*,
size_t,
size_t) = 0;
25 CUDA_HOSTDEV gpuBilinearInterpolator(){};
26 CUDA_DEV U interpolate(
double,
double,
const U*,
size_t,
size_t);
35 CUDA_HOSTDEV gpuBicubicInterpolator(){};
36 CUDA_DEV U interpolate(
double,
double,
const U*,
size_t,
size_t);
47 CUDA_HOSTDEV gpuSpline2dInterpolator(
size_t order):_order(order){};
48 CUDA_DEV U interpolate(
double,
double,
const U*,
size_t,
size_t);
60 int _decimationFactor;
64 int _halfKernelLength;
69 CUDA_HOSTDEV gpuSinc2dInterpolator(){};
80 CUDA_HOST gpuSinc2dInterpolator(
81 const int kernelLength,
const int decimationFactor,
82 const double beta = 1.0,
const double pedestal = 0.0);
96 int decimationFactor) :
97 _kernel(device_filter),
98 _decimationFactor(decimationFactor),
99 _kernelLength(kernelLength),
100 _halfKernelLength(kernelLength / 2),
105 _decimationFactor(i._decimationFactor),
106 _kernelLength(i._kernelLength),
107 _halfKernelLength(i._halfKernelLength),
110 CUDA_HOSTDEV ~gpuSinc2dInterpolator();
111 CUDA_DEV U interpolate(
double,
double,
const U*,
size_t,
size_t);
124CUDA_HOST
void compute_normalized_coefficients(
125 const double beta,
const int relfiltlen,
const int decfactor,
126 const double pedestal, thrust::host_vector<double>& filter);
133 CUDA_HOSTDEV gpuNearestNeighborInterpolator(){};
134 CUDA_DEV T interpolate(
double x,
double y,
const T* z,
size_t nx,
size_t ny = 0);
Data structure for a 2D row-major matrix.
Definition Matrix.h:23
Definition gpuInterpolator.h:13
gpuSinc2dInterpolator class derived from abstract gpuInterpolator class
Definition gpuInterpolator.h:55
CUDA_DEV gpuSinc2dInterpolator(double *device_filter, int kernelLength, int decimationFactor)
Device constructor where filter construction is performed on host and the result is passed to constru...
Definition gpuInterpolator.h:95
base interpolator is an abstract base class
Definition BinarySearchFunc.cpp:5