From 00c4c5bdd92d3df419cab2af1291185a3b864b81 Mon Sep 17 00:00:00 2001
From: Chichi Lalescu <clalesc1@jhu.edu>
Date: Sun, 22 Feb 2015 20:37:00 -0500
Subject: [PATCH] add interleave for complex space

---
 src/field_descriptor.cpp | 17 ++++++++++++++++-
 src/field_descriptor.hpp |  4 ++++
 test.ipynb               |  4 ++--
 3 files changed, 22 insertions(+), 3 deletions(-)

diff --git a/src/field_descriptor.cpp b/src/field_descriptor.cpp
index cfdeb48b..3bbfdc74 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 e60fe02e..271d3d8e 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 cd4fac53..f3f44a60 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",
-- 
GitLab