BornAgain
1.19.79
Open-source research software to simulate and fit neutron and x-ray reflectometry and grazing-incidence small-angle scattering
|
Workspace for Fourier convolution.
Workspace contains input (source and kernel), intermediate and output arrays to run convolution via fft; 'source' it is our signal, 'kernel' it is our resolution function. Sizes of input arrays are adjusted; output arrays are alocated via fftw3 allocation for maximum performance.
Definition at line 87 of file Convolve.h.
Public Member Functions | |
Workspace ()=default | |
~Workspace () | |
void | clear () |
Private Attributes | |
double * | dst_fft {nullptr} |
result of product of FFT(source) and FFT(kernel) More... | |
int | h_dst {0} |
int | h_fftw {0} |
int | h_kernel {0} |
int | h_offset {0} |
int | h_src {0} |
double * | in_kernel {nullptr} |
adjusted input 'kernel' array More... | |
double * | in_src {nullptr} |
adjusted input 'source' array More... | |
double * | out_kernel {nullptr} |
result of Fourier transformation of kernel More... | |
double * | out_src {nullptr} |
result of Fourier transformation of source More... | |
fftw_plan | p_back {nullptr} |
fftw_plan | p_forw_kernel {nullptr} |
fftw_plan | p_forw_src {nullptr} |
int | w_dst {0} |
int | w_fftw {0} |
int | w_kernel {0} |
int | w_offset {0} |
int | w_src {0} |
Friends | |
class | Convolve |
|
default |
Convolve::Workspace::~Workspace | ( | ) |
Definition at line 29 of file Convolve.cpp.
References clear().
void Convolve::Workspace::clear | ( | ) |
Definition at line 34 of file Convolve.cpp.
Referenced by ~Workspace(), and Convolve::init().
|
friend |
Definition at line 92 of file Convolve.h.
|
private |
result of product of FFT(source) and FFT(kernel)
Definition at line 108 of file Convolve.h.
Referenced by Convolve::fftconvolve(), Convolve::fftw_circular_convolution(), and Convolve::init().
|
private |
Definition at line 109 of file Convolve.h.
Referenced by Convolve::fftconvolve(), and Convolve::init().
|
private |
Definition at line 98 of file Convolve.h.
Referenced by Convolve::fftconvolve(), Convolve::fftw_circular_convolution(), and Convolve::init().
|
private |
Definition at line 96 of file Convolve.h.
Referenced by Convolve::fftconvolve(), Convolve::fftw_circular_convolution(), and Convolve::init().
|
private |
Definition at line 110 of file Convolve.h.
Referenced by Convolve::fftconvolve(), and Convolve::init().
|
private |
Definition at line 95 of file Convolve.h.
Referenced by Convolve::fftw_circular_convolution(), and Convolve::init().
|
private |
adjusted input 'kernel' array
Definition at line 104 of file Convolve.h.
Referenced by Convolve::fftw_circular_convolution(), and Convolve::init().
|
private |
adjusted input 'source' array
Definition at line 100 of file Convolve.h.
Referenced by Convolve::fftw_circular_convolution(), and Convolve::init().
|
private |
result of Fourier transformation of kernel
Definition at line 106 of file Convolve.h.
Referenced by Convolve::fftw_circular_convolution(), and Convolve::init().
|
private |
result of Fourier transformation of source
Definition at line 102 of file Convolve.h.
Referenced by Convolve::fftw_circular_convolution(), and Convolve::init().
|
private |
Definition at line 113 of file Convolve.h.
Referenced by Convolve::fftw_circular_convolution(), and Convolve::init().
|
private |
Definition at line 112 of file Convolve.h.
Referenced by Convolve::fftw_circular_convolution(), and Convolve::init().
|
private |
Definition at line 111 of file Convolve.h.
Referenced by Convolve::fftw_circular_convolution(), and Convolve::init().
|
private |
Definition at line 109 of file Convolve.h.
Referenced by Convolve::fftconvolve(), and Convolve::init().
|
private |
Definition at line 98 of file Convolve.h.
Referenced by Convolve::fftconvolve(), Convolve::fftw_circular_convolution(), and Convolve::init().
|
private |
Definition at line 96 of file Convolve.h.
Referenced by Convolve::fftconvolve(), Convolve::fftw_circular_convolution(), and Convolve::init().
|
private |
Definition at line 110 of file Convolve.h.
Referenced by Convolve::fftconvolve(), and Convolve::init().
|
private |
Definition at line 95 of file Convolve.h.
Referenced by Convolve::fftw_circular_convolution(), and Convolve::init().