summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/ffts.h6
-rw-r--r--src/ffts_real.c4
2 files changed, 7 insertions, 3 deletions
diff --git a/include/ffts.h b/include/ffts.h
index 1888982..d17ff04 100644
--- a/include/ffts.h
+++ b/include/ffts.h
@@ -50,10 +50,14 @@ ffts_plan_t *ffts_init_1d(size_t N, int sign);
ffts_plan_t *ffts_init_2d(size_t N1, size_t N2, int sign);
ffts_plan_t *ffts_init_nd(int rank, size_t *Ns, int sign);
+// For real transforms, sign == -1 implies a real-to-complex forwards tranform,
+// and sign == 1 implies a complex-to-real backwards transform
+// The output of a real-to-complex transform is N/2+1 complex numbers, where the
+// redundant outputs have been omitted.
ffts_plan_t *ffts_init_1d_real(size_t N, int sign);
-void ffts_execute(ffts_plan_t * , const void * , void * );
+void ffts_execute(ffts_plan_t * , const void *input, void *output);
void ffts_free(ffts_plan_t *);
#ifdef __cplusplus
diff --git a/src/ffts_real.c b/src/ffts_real.c
index 5f3bb02..03493e1 100644
--- a/src/ffts_real.c
+++ b/src/ffts_real.c
@@ -58,8 +58,8 @@ void ffts_execute_1d_real(ffts_plan_t *p, const void *vin, void *vout) {
for(i=0;i<N/2;i++) {
out[2*i] = buf[2*i]*A[2*i] - buf[2*i+1]*A[2*i+1] + buf[N-2*i]*B[2*i] + buf[N-2*i+1]*B[2*i+1];
out[2*i+1] = buf[2*i+1]*A[2*i] + buf[2*i]*A[2*i+1] + buf[N-2*i]*B[2*i+1] - buf[N-2*i+1]*B[2*i];
- out[2*N - 2*i] = out[2*i];
- out[2*N - 2*i + 1] = -out[2*i+1];
+// out[2*N - 2*i] = out[2*i];
+// out[2*N - 2*i + 1] = -out[2*i+1];
}
out[N] = buf[0] - buf[1];
OpenPOWER on IntegriCloud