1 #ifndef PURIFY_KERNELS_H
2 #define PURIFY_KERNELS_H
4 #include "purify/config.h"
9 #include <boost/math/special_functions/bessel.hpp>
10 #include <boost/math/special_functions/sinc.hpp>
33 t_real
gaussian(
const t_real x,
const t_real J);
44 t_real
calc_for_pswf(
const t_real x,
const t_real J,
const t_real alpha);
46 t_real
pswf(
const t_real x,
const t_real J);
48 t_real
ft_pswf(
const t_real x,
const t_real J);
51 const std::function<t_real(t_real)> kernelu);
53 t_real
kernel_zero_interp(
const std::vector<t_real> &samples,
const t_real x,
const t_real J);
57 t_real
pill_box(
const t_real x,
const t_real J);
65 std::tuple<std::function<t_real(t_real)>, std::function<t_real(t_real)>,
66 std::function<t_real(t_real)>, std::function<t_real(t_real)>>
68 const t_real ftsizeu_,
const t_real ftsizev_,
const t_real oversample_ratio);
70 const kernels::kernel kernel_name_,
const t_uint Ju_,
const t_real oversample_ratio);
const std::map< std::string, kernel > kernel_from_string
t_real ft_kaiser_bessel(const t_real x, const t_real J)
Fourier transform of kaiser bessel kernel.
t_real ft_gaussian_general(const t_real x, const t_real J, const t_real sigma)
Fourier transform of general Gaussian kernel.
std::vector< t_real > kernel_samples(const t_int total_samples, const std::function< t_real(t_real)> kernelu)
Calculates samples of a kernel.
t_real kaiser_bessel(const t_real x, const t_real J)
Kaiser-Bessel kernel.
t_real kernel_zero_interp(const std::vector< t_real > &samples, const t_real x, const t_real J)
zeroth order interpolates from samples of kernel
t_real pill_box(const t_real x, const t_real J)
Box car function for kernel.
t_real ft_pswf(const t_real x, const t_real J)
Fourier transform of PSWF kernel.
t_real gaussian_general(const t_real x, const t_real J, const t_real sigma)
Fourier transform of general Gaussian kernel.
t_real kaiser_bessel_general(const t_real x, const t_real J, const t_real alpha)
More general Kaiser-Bessel kernel.
t_real calc_for_pswf(const t_real eta0, const t_real J, const t_real alpha)
Calculates Horner's Rule the standard PSWF for radio astronomy, with a support of J = 6 and alpha = 1...
t_real ft_pill_box(const t_real x, const t_real J)
Fourier transform of box car function, a Sinc function.
t_real gaussian(const t_real x, const t_real J)
Gaussian kernel.
t_real kernel_linear_interp(const Vector< t_real > &samples, const t_real x, const t_real J)
linearly interpolates from samples of kernel
t_real pswf(const t_real x, const t_real J)
PSWF kernel.
t_real ft_gaussian(const t_real x, const t_real J)
Fourier transform of Gaussian kernel.
t_real ft_kaiser_bessel_general(const t_real x, const t_real J, const t_real alpha)
Fourier transform of more general Kaiser-Bessel kernel.
std::tuple< std::function< t_real(t_real)>, std::function< t_real(t_real)> > create_radial_ftkernel(const kernels::kernel kernel_name_, const t_uint Ju_, const t_real oversample_ratio)
std::tuple< std::function< t_real(t_real)>, std::function< t_real(t_real)>, std::function< t_real(t_real)>, std::function< t_real(t_real)> > create_kernels(const kernels::kernel kernel_name_, const t_uint Ju_, const t_uint Jv_, const t_real imsizey_, const t_real imsizex_, const t_real oversample_ratio)