NESSi
v1.0.2
The NonEquilibrium Systems Simulation Library
|
void fourier::complex_dftcor_cubic | ( | double | w, |
double | delta, | ||
double | a, | ||
double | b, | ||
cplx * | endpts, | ||
cplx * | endcor, | ||
double * | corfac | ||
) |
Returns correction factor \(W(\theta)\) and evaluate boundary correction terms needed for cubically corrected DFT.
For a function \(f(t)\), represented on an equidistant grid \(t_n= n h\), \(n=0,\dots,N\), we would like to compute the Fourier integral \(I(\omega) = \int^b_a dt\, e^{i \omega t}f(t)\). Using piecewie cubic interpolation of \(f(t)\), the \(I(\omega)\) can be computed by by cubically corrected discrete Fourier transformation (DFT). The algorithm is explained in
W. H. Press, S. A. Teukolosky, W. T. Vetterling, B. P. Flannery, Numerical Recipes 3rd Edition: The Art of Scientific Computing, Cambridge University Press, 2007, chapter 13.9
complex_dftcor_cubic
computes the required correction factor \(W(\theta)\) and the boundary terms \(\alpha_j(\theta)f_j\), \(j=0,\dots,3\), and \( e^{i\omega(b-a)}\alpha^*_j(\theta)f_{N-j} \) where \(\theta = \omega h\).
w |
|
delta |
|
a |
|
b |
|
endpts |
|
endcor |
|
corfac |
|
Definition at line 182 of file fourier.cpp.
Referenced by dft_cplx().