diff --git a/src/Morton_shuffler.cpp b/src/Morton_shuffler.cpp index 670ce2cf9deb5bd83b46e233cc4c5d09af27f823..b771b69b07bef0daf739b99dc742b31855f27c70 100644 --- a/src/Morton_shuffler.cpp +++ b/src/Morton_shuffler.cpp @@ -55,11 +55,9 @@ Morton_shuffler::~Morton_shuffler() int Morton_shuffler::shuffle( float *a, + float *rtmp, const char *base_fname) { - // array where shuffled data will be placed - float *rtmp = fftwf_alloc_real(this->drcubbie->local_size); - // shuffle into z order ptrdiff_t z, zz; int rid, zid; @@ -125,7 +123,6 @@ int Morton_shuffler::shuffle( base_fname, this->out_group*this->doutput->sizes[0]); this->doutput->write(temp_char, rtmp); - fftwf_free(rtmp); return EXIT_SUCCESS; } diff --git a/src/Morton_shuffler.hpp b/src/Morton_shuffler.hpp index 3e98ac323bbac60f8e5c70d7c24406197f6e2a48..431b437d817a48d0fcaafa983f663c5aa4799245 100644 --- a/src/Morton_shuffler.hpp +++ b/src/Morton_shuffler.hpp @@ -70,7 +70,10 @@ class Morton_shuffler int nfiles); ~Morton_shuffler(); - int shuffle(float *a, const char *base_fname); + int shuffle( + float *regular_data, + float *shuffled_data, + const char *base_fname); }; #endif//MORTON_SHUFFLER diff --git a/src/RMHD_converter.cpp b/src/RMHD_converter.cpp index d368980df54946a238b7b81399927c97d4f526e7..3f8e1749e76c67a93630169d16e36fedca75ddad 100644 --- a/src/RMHD_converter.cpp +++ b/src/RMHD_converter.cpp @@ -133,7 +133,7 @@ int RMHD_converter::convert( // mix components this->f3r->interleave(this->r3, rtmp, 2); - this->s->shuffle(rtmp, ofile); + this->s->shuffle(rtmp, this->r3, ofile); fftwf_free(rtmp); return EXIT_SUCCESS; diff --git a/src/field_descriptor.cpp b/src/field_descriptor.cpp index df101d1b75bd62d8bc7b5ecd00d5b0405bd34045..df6fe39d583fa3024a93159a41882b5895d30d90 100644 --- a/src/field_descriptor.cpp +++ b/src/field_descriptor.cpp @@ -232,6 +232,7 @@ int field_descriptor::interleave( float *output, int dim) { + // TODO: implement inplace interleaver for (int k = 0; k < this->local_size; k++) for (int j = 0; j < dim; j++) output[k*dim + j] = input[j*this->local_size + k]; diff --git a/test.ipynb b/test.ipynb index da3b33fc4b6d26e6f111c98f39cb83a6f6476658..8a3ffb294494925123fd726303d1f8e1e9094b54 100644 --- a/test.ipynb +++ b/test.ipynb @@ -1,7 +1,7 @@ { "metadata": { "name": "", - "signature": "sha256:3746adfc6567f394973ab357f8a68759f766ba127e0a9a388298c16ebbafbe4e" + "signature": "sha256:b66beda6c64119cb0725443436f940cc3d6a7269d12b4d537c8d44881b89be2c" }, "nbformat": 3, "nbformat_minor": 0, @@ -195,7 +195,7 @@ "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 5 + "prompt_number": 23 }, { "cell_type": "code", @@ -226,7 +226,7 @@ ] } ], - "prompt_number": 6 + "prompt_number": 24 }, { "cell_type": "code",