+ print_mem(input_b_re, 0, PARAM_N_t/2, true, true);\r
+\r
+ printf("re_in = [");\r
+ print_mem(input_a_re, 0, PARAM_N_t/2, true, false);\r
+ print_mem(input_b_re, 0, PARAM_N_t/2, true, false);\r
+ printf("];\n");\r
+\r
+/* Write out memory contents for use by the python simulator */\r
+ save_mem_range_to_file(input_a_re->id, 0, PARAM_N_t/2, "Memory/sin_a_re.mm");\r
+ save_mem_range_to_file(input_a_im->id, 0, PARAM_N_t/2, "Memory/sin_a_im.mm");\r
+ save_mem_range_to_file(input_b_re->id, 0, PARAM_N_t/2, "Memory/sin_b_re.mm");\r
+ save_mem_range_to_file(input_b_im->id, 0, PARAM_N_t/2, "Memory/sin_b_im.mm");\r
+ save_mem_range_to_file(twiddle_re->id, 0, PARAM_N_t/2, "Memory/twiddle_re.mm");\r
+ save_mem_range_to_file(twiddle_im->id, 0, PARAM_N_t/2, "Memory/twiddle_im.mm");\r
+}\r
+\r
+void post_run()\r
+{\r
+ if (PARAM_n_t % 2 == 0) {\r
+ /* When the number of stages is even, the \r
+ * outputs end up at the left memories again */\r
+ output_a_re = alloc_mem(P0M0);\r
+ output_a_im = alloc_mem(P1M0);\r
+ output_b_re = alloc_mem(P2M0);\r
+ output_b_im = alloc_mem(P3M0);\r
+ } else {\r
+ output_a_re = alloc_mem(P0M1);\r
+ output_a_im = alloc_mem(P1M1);\r
+ output_b_re = alloc_mem(P2M1);\r
+ output_b_im = alloc_mem(P3M1);\r
+ }\r
+ printf("re_out = [");\r
+ print_mem(output_a_re, 0, PARAM_N_t/2, true, false);\r
+ print_mem(output_b_re, 0, PARAM_N_t/2, true, false);\r
+ printf("];\n");\r
+ printf("im_out = [");\r
+ print_mem(output_a_im, 0, PARAM_N_t/2, true, false);\r
+ print_mem(output_b_im, 0, PARAM_N_t/2, true, false);\r
+ printf("];\n");\r
+ /*\r
+ printf("re(out)\n");\r
+ print_mem(output_a_re, 0, PARAM_N_t/2, false, true);\r
+ print_mem(output_b_re, 0, PARAM_N_t/2, false, true);\r
+ printf("im(out)\n");\r
+ print_mem(output_a_im, 0, PARAM_N_t/2, false, true);\r
+ print_mem(output_b_im, 0, PARAM_N_t/2, false, true);\r
+ */\r
+\r