diff options
Diffstat (limited to 'log-fourier.cpp')
-rw-r--r-- | log-fourier.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/log-fourier.cpp b/log-fourier.cpp index 9ae70be..9d1f2cb 100644 --- a/log-fourier.cpp +++ b/log-fourier.cpp @@ -64,6 +64,8 @@ std::vector<Complex> LogarithmicFourierTransform::fourier(const std::vector<Real for (unsigned n = 0; n < pad*N; n++) { if (n < N) { a[n] = c[n] * exp((1 - k) * τ(n)); + } else if (n >= (pad - 1) * N) { + a[n] = c[pad*N-n-1] * exp((1 - k) * τ(pad*N-n-1)); } else { a[n] = 0; } @@ -92,6 +94,12 @@ std::vector<Real> LogarithmicFourierTransform::inverse(const std::vector<Complex } else { a[n] = ĉ[n] * std::exp((1 - k) * ω(n)); } + } else if (n >= (pad - 1) * N) { + if (σ < 0) { + a[n] = ĉ[pad*N-n-1] * std::exp((1 - k) * ω(pad*N-n-1)); + } else { + a[n] = std::conj(ĉ[pad*N-n-1]) * std::exp((1 - k) * ω(pad*N-n-1)); + } } else { a[n] = 0; } |