From fc7d01ebfb5682df2fbbd6c668cce1569e0d9df5 Mon Sep 17 00:00:00 2001 From: Jaron Kent-Dobias Date: Wed, 9 Apr 2025 16:52:26 -0300 Subject: Rewrote the original integrator to use a new approach. --- fourier.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'fourier.cpp') diff --git a/fourier.cpp b/fourier.cpp index 07f8fdc..bc4b633 100644 --- a/fourier.cpp +++ b/fourier.cpp @@ -64,6 +64,25 @@ std::vector FourierTransform::fourier() { return ĉ; } +std::vector FourierTransform::convolve(const std::vector& Γh, const std::vector& R) { + a[0] = 0; + for (unsigned i = 1; i < n; i++) { + a[i] = R[i]; + a[2 * n - i] = -R[i]; + } + fftw_execute(plan_r2c); + for (unsigned i = 1; i < n + 1; i++) { + â[i] *= Γh[i] * (Δτ * M_PI); + } + fftw_execute(plan_c2r); + std::vector dC(n); + for (unsigned i = 0; i < n; i++) { + dC[i] = a[i] * (Δω / (2 * M_PI)); + } + + return dC; +} + std::vector FourierTransform::inverse(const std::vector& ĉ) { for (unsigned i = 0; i < n + 1; i++) { â[i] = ĉ[i]; -- cgit v1.2.3-70-g09d2