From 96875ddafbf1ff821a4a1fd628c2e4758096700c Mon Sep 17 00:00:00 2001 From: Jaron Kent-Dobias Date: Sat, 5 Apr 2025 11:12:15 -0300 Subject: Save and read fftw wisdom to speed initialization --- fourier.cpp | 2 ++ get_energy.cpp | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/fourier.cpp b/fourier.cpp index 1bef4b9..0c22637 100644 --- a/fourier.cpp +++ b/fourier.cpp @@ -25,8 +25,10 @@ Real ddf(Real λ, unsigned p, unsigned s, Real q) { } FourierTransform::FourierTransform(unsigned n, Real Δω, Real Δτ, unsigned flags) : a(2 * n), â(n + 1), Δω(Δω), Δτ(Δτ) { + fftw_import_wisdom_from_filename("fftw.wisdom"); plan_r2c = fftw_plan_dft_r2c_1d(2 * n, a.data(), reinterpret_cast(â.data()), flags); plan_c2r = fftw_plan_dft_c2r_1d(2 * n, reinterpret_cast(â.data()), a.data(), flags); + fftw_export_wisdom_to_filename("fftw.wisdom"); } FourierTransform::~FourierTransform() { diff --git a/get_energy.cpp b/get_energy.cpp index ae77595..8c610c5 100644 --- a/get_energy.cpp +++ b/get_energy.cpp @@ -55,7 +55,7 @@ int main(int argc, char* argv[]) { Real y = y₀; - FourierTransform fft(n, Δω, Δτ, FFTW_ESTIMATE); + FourierTransform fft(n, Δω, Δτ); std::vector C(2 * n); std::vector R(2 * n); -- cgit v1.2.3-70-g09d2