BornAgain
1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
|
Workspace for Fourier convolution. More...
Public Member Functions | |
Workspace () | |
~Workspace () | |
void | clear () |
Private Attributes | |
double * | dst_fft |
result of product of FFT(source) and FFT(kernel) More... | |
int | h_dst |
int | h_fftw |
int | h_kernel |
int | h_offset |
int | h_src |
double * | in_kernel |
adjusted input 'kernel' array More... | |
double * | in_src |
adjusted input 'source' array More... | |
double * | out_kernel |
result of Fourier transformation of kernel More... | |
double * | out_src |
result of Fourier transformation of source More... | |
fftw_plan | p_back |
fftw_plan | p_forw_kernel |
fftw_plan | p_forw_src |
int | w_dst |
int | w_fftw |
int | w_kernel |
int | w_offset |
int | w_src |
Friends | |
class | Convolve |
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 89 of file Convolve.h.
Convolve::Workspace::Workspace | ( | ) |
Definition at line 28 of file Convolve.cpp.
Convolve::Workspace::~Workspace | ( | ) |
Definition at line 52 of file Convolve.cpp.
void Convolve::Workspace::clear | ( | ) |
|
friend |
Definition at line 94 of file Convolve.h.
|
private |
result of product of FFT(source) and FFT(kernel)
Definition at line 110 of file Convolve.h.
Referenced by Convolve::fftconvolve(), Convolve::fftw_circular_convolution(), and Convolve::init().
|
private |
Definition at line 111 of file Convolve.h.
Referenced by Convolve::fftconvolve(), and Convolve::init().
|
private |
Definition at line 100 of file Convolve.h.
Referenced by Convolve::fftconvolve(), Convolve::fftw_circular_convolution(), 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 112 of file Convolve.h.
Referenced by Convolve::fftconvolve(), and Convolve::init().
|
private |
Definition at line 97 of file Convolve.h.
Referenced by Convolve::fftw_circular_convolution(), and Convolve::init().
|
private |
adjusted input 'kernel' array
Definition at line 106 of file Convolve.h.
Referenced by Convolve::fftw_circular_convolution(), and Convolve::init().
|
private |
adjusted input 'source' array
Definition at line 102 of file Convolve.h.
Referenced by Convolve::fftw_circular_convolution(), and Convolve::init().
|
private |
result of Fourier transformation of kernel
Definition at line 108 of file Convolve.h.
Referenced by Convolve::fftw_circular_convolution(), and Convolve::init().
|
private |
result of Fourier transformation of source
Definition at line 104 of file Convolve.h.
Referenced by Convolve::fftw_circular_convolution(), and Convolve::init().
|
private |
Definition at line 115 of file Convolve.h.
Referenced by Convolve::fftw_circular_convolution(), and Convolve::init().
|
private |
Definition at line 114 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 111 of file Convolve.h.
Referenced by Convolve::fftconvolve(), and Convolve::init().
|
private |
Definition at line 100 of file Convolve.h.
Referenced by Convolve::fftconvolve(), Convolve::fftw_circular_convolution(), 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 112 of file Convolve.h.
Referenced by Convolve::fftconvolve(), and Convolve::init().
|
private |
Definition at line 97 of file Convolve.h.
Referenced by Convolve::fftw_circular_convolution(), and Convolve::init().