|
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().