diff --git a/src/field_descriptor.cpp b/src/field_descriptor.cpp index cfdeb48b990af4fc950238b6466243efbdde737c..3bbfdc74cc0e0071673c73a55c6be6ea68f94eea 100644 --- a/src/field_descriptor.cpp +++ b/src/field_descriptor.cpp @@ -240,7 +240,22 @@ int field_descriptor::interleave( // 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]; + output[k*dim + j] = input[j*this->local_size + k]; + return EXIT_SUCCESS; +} + +int field_descriptor::interleave( + fftw_complex *input, + fftw_complex *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][0] = input[j*this->local_size + k][0]; + output[k*dim + j][1] = input[j*this->local_size + k][1]; + } return EXIT_SUCCESS; } diff --git a/src/field_descriptor.hpp b/src/field_descriptor.hpp index e60fe02ebac2b19ae3439bb66cdb3eb61c9d2ad1..271d3d8e243f42f1f0c5389ab350e134e21cae2a 100644 --- a/src/field_descriptor.hpp +++ b/src/field_descriptor.hpp @@ -59,6 +59,10 @@ class field_descriptor float *input, float *output, int dim); + int interleave( + fftw_complex *input, + fftw_complex *output, + int dim); }; diff --git a/test.ipynb b/test.ipynb index cd4fac53640eb6f97bf719a34db53c776c0ba67f..f3f44a60ef5cfbe9e7110390f1ff97598377eff7 100644 --- a/test.ipynb +++ b/test.ipynb @@ -1,7 +1,7 @@ { "metadata": { "name": "", - "signature": "sha256:aed492730f0495b9d00b7ba907dfed5ad60d60c630d5b2be9985069ccf8932ed" + "signature": "sha256:7dead44f793111d0f8b169a9c6b140d43b9ac207648b3787a6263fd3ff30f493" }, "nbformat": 3, "nbformat_minor": 0, @@ -200,7 +200,7 @@ "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 22 + "prompt_number": 23 }, { "cell_type": "code",