From e2280a899fc8bafb9902d7e3949f9b8f85f9529a Mon Sep 17 00:00:00 2001 From: Guilhem Lavaux Date: Thu, 2 May 2013 15:04:25 -0400 Subject: [PATCH] Moved plan creation into its subroutine --- src/fourier/base_types.hpp | 1 + src/fourier/details/euclidian_transform.hpp | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/fourier/base_types.hpp b/src/fourier/base_types.hpp index f39e3a5..ff092ef 100644 --- a/src/fourier/base_types.hpp +++ b/src/fourier/base_types.hpp @@ -168,6 +168,7 @@ namespace CosmoTool { protected: FourierTransform() {} + FourierTransform(const FourierTransform& a) { abort(); } public: virtual ~FourierTransform() { } diff --git a/src/fourier/details/euclidian_transform.hpp b/src/fourier/details/euclidian_transform.hpp index e55e990..ba16815 100644 --- a/src/fourier/details/euclidian_transform.hpp +++ b/src/fourier/details/euclidian_transform.hpp @@ -55,11 +55,24 @@ namespace CosmoTool std::vector m_L; public: EuclidianFourierTransform(const DimArray& dims, const std::vector& L) + { + create_plan(dims, L); + } + + void create_plan(const DimArray& dims, const std::vector& L) { assert(L.size() == dims.size()); std::vector dk(L.size()); std::vector swapped_dims(dims.size()); - + + if (realMap != 0) + { + delete realMap; + delete fourierMap; + calls::destroy_plan(m_synthesis); + calls::destroy_plan(m_analysis); + } + m_dims = dims; m_dims_hc = dims; m_dims_hc[0] = dims[0]/2+1;