/* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ #include #include #include "fftw.h" /**************** import/export using file ***************/ static void file_emitter(char c, void *data) { putc(c,(FILE *) data); } void fftw_export_wisdom_to_file(FILE *output_file) { if (output_file) fftw_export_wisdom(file_emitter,(void *) output_file); } static int file_get_input(void *data) { return getc((FILE *) data); } fftw_status fftw_import_wisdom_from_file(FILE *input_file) { if (!input_file) return FFTW_FAILURE; return fftw_import_wisdom(file_get_input, (void *) input_file); } /*************** import/export using string **************/ static void emission_counter(char c, void *data) { int *counter = (int *) data; ++*counter; } static void string_emitter(char c, void *data) { char **output_string = (char **) data; *((*output_string)++) = c; **output_string = 0; } char *fftw_export_wisdom_to_string(void) { int string_length = 0; char *s, *s2; fftw_export_wisdom(emission_counter, (void *) &string_length); s = fftw_malloc(sizeof(char) * (string_length + 1)); if (!s) return 0; s2 = s; fftw_export_wisdom(string_emitter, (void *) &s2); if (s + string_length != s2) fftw_die("Unexpected output string length!"); return s; } static int string_get_input(void *data) { char **input_string = (char **) data; if (**input_string) return *((*input_string)++); else return 0; } fftw_status fftw_import_wisdom_from_string(const char *input_string) { const char *s = input_string; if (!input_string) return FFTW_FAILURE; return fftw_import_wisdom(string_get_input, (void *) &s); } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* config.c -- this file contains all the codelets the system knows about */ /* $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ #if defined FFTW_USING_CILK #include #include #endif #include "fftw.h" /* the signature is the same as the size, for now */ #define NOTW_CODELET(x) { x, x, fftw_no_twiddle_##x } #define NOTWI_CODELET(x) { x, x, fftwi_no_twiddle_##x } extern notw_codelet fftw_no_twiddle_1; extern notw_codelet fftw_no_twiddle_2; extern notw_codelet fftw_no_twiddle_3; extern notw_codelet fftw_no_twiddle_4; extern notw_codelet fftw_no_twiddle_5; extern notw_codelet fftw_no_twiddle_6; extern notw_codelet fftw_no_twiddle_7; extern notw_codelet fftw_no_twiddle_8; extern notw_codelet fftw_no_twiddle_9; extern notw_codelet fftw_no_twiddle_10; extern notw_codelet fftw_no_twiddle_11; extern notw_codelet fftw_no_twiddle_12; extern notw_codelet fftw_no_twiddle_13; extern notw_codelet fftw_no_twiddle_14; extern notw_codelet fftw_no_twiddle_15; extern notw_codelet fftw_no_twiddle_16; extern notw_codelet fftw_no_twiddle_32; extern notw_codelet fftw_no_twiddle_64; extern notw_codelet fftwi_no_twiddle_1; extern notw_codelet fftwi_no_twiddle_2; extern notw_codelet fftwi_no_twiddle_3; extern notw_codelet fftwi_no_twiddle_4; extern notw_codelet fftwi_no_twiddle_5; extern notw_codelet fftwi_no_twiddle_6; extern notw_codelet fftwi_no_twiddle_7; extern notw_codelet fftwi_no_twiddle_8; extern notw_codelet fftwi_no_twiddle_9; extern notw_codelet fftwi_no_twiddle_10; extern notw_codelet fftwi_no_twiddle_11; extern notw_codelet fftwi_no_twiddle_12; extern notw_codelet fftwi_no_twiddle_13; extern notw_codelet fftwi_no_twiddle_14; extern notw_codelet fftwi_no_twiddle_15; extern notw_codelet fftwi_no_twiddle_16; extern notw_codelet fftwi_no_twiddle_32; extern notw_codelet fftwi_no_twiddle_64; config_notw fftw_config_notw[] = { NOTW_CODELET(1), NOTW_CODELET(2), NOTW_CODELET(3), NOTW_CODELET(4), NOTW_CODELET(5), NOTW_CODELET(6), NOTW_CODELET(7), NOTW_CODELET(8), NOTW_CODELET(9), NOTW_CODELET(10), NOTW_CODELET(11), NOTW_CODELET(12), NOTW_CODELET(13), NOTW_CODELET(14), NOTW_CODELET(15), NOTW_CODELET(16), NOTW_CODELET(32), NOTW_CODELET(64), {0, 0, (notw_codelet *) 0} }; config_notw fftwi_config_notw[] = { NOTWI_CODELET(1), NOTWI_CODELET(2), NOTWI_CODELET(3), NOTWI_CODELET(4), NOTWI_CODELET(5), NOTWI_CODELET(6), NOTWI_CODELET(7), NOTWI_CODELET(8), NOTWI_CODELET(9), NOTWI_CODELET(10), NOTWI_CODELET(11), NOTWI_CODELET(12), NOTWI_CODELET(13), NOTWI_CODELET(14), NOTWI_CODELET(15), NOTWI_CODELET(16), NOTWI_CODELET(32), NOTWI_CODELET(64), {0, 0, (notw_codelet *) 0} }; /* the signature is the same as the size, for now */ #define TWIDDLE_CODELET(x) { x, x, fftw_twiddle_##x } #define TWIDDLEI_CODELET(x) { x, x, fftwi_twiddle_##x } extern twiddle_codelet fftw_twiddle_2; extern twiddle_codelet fftw_twiddle_3; extern twiddle_codelet fftw_twiddle_4; extern twiddle_codelet fftw_twiddle_5; extern twiddle_codelet fftw_twiddle_6; extern twiddle_codelet fftw_twiddle_7; extern twiddle_codelet fftw_twiddle_8; extern twiddle_codelet fftw_twiddle_9; extern twiddle_codelet fftw_twiddle_10; extern twiddle_codelet fftw_twiddle_16; extern twiddle_codelet fftw_twiddle_32; extern twiddle_codelet fftw_twiddle_64; extern twiddle_codelet fftwi_twiddle_2; extern twiddle_codelet fftwi_twiddle_3; extern twiddle_codelet fftwi_twiddle_4; extern twiddle_codelet fftwi_twiddle_5; extern twiddle_codelet fftwi_twiddle_6; extern twiddle_codelet fftwi_twiddle_7; extern twiddle_codelet fftwi_twiddle_8; extern twiddle_codelet fftwi_twiddle_9; extern twiddle_codelet fftwi_twiddle_10; extern twiddle_codelet fftwi_twiddle_16; extern twiddle_codelet fftwi_twiddle_32; extern twiddle_codelet fftwi_twiddle_64; config_twiddle fftw_config_twiddle[] = { TWIDDLE_CODELET(2), TWIDDLE_CODELET(3), TWIDDLE_CODELET(4), TWIDDLE_CODELET(5), TWIDDLE_CODELET(6), TWIDDLE_CODELET(7), TWIDDLE_CODELET(8), TWIDDLE_CODELET(9), TWIDDLE_CODELET(10), TWIDDLE_CODELET(16), TWIDDLE_CODELET(32), TWIDDLE_CODELET(64), {0, 0, (twiddle_codelet *) 0} }; config_twiddle fftwi_config_twiddle[] = { TWIDDLEI_CODELET(2), TWIDDLEI_CODELET(3), TWIDDLEI_CODELET(4), TWIDDLEI_CODELET(5), TWIDDLEI_CODELET(6), TWIDDLEI_CODELET(7), TWIDDLEI_CODELET(8), TWIDDLEI_CODELET(9), TWIDDLEI_CODELET(10), TWIDDLEI_CODELET(16), TWIDDLEI_CODELET(32), TWIDDLEI_CODELET(64), {0, 0, (twiddle_codelet *) 0} }; /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* * executor.c -- execute the fft */ /* $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ #include "fftw.h" #include #include char *fftw_version = "FFTW V1.1 ($Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $)"; /* * This function is called in other files, so we cannot declare * it as static. */ void fftw_strided_copy(int n, FFTW_COMPLEX *in, int ostride, FFTW_COMPLEX *out) { int i; FFTW_REAL r0, r1, i0, i1; FFTW_REAL r2, r3, i2, i3; i = 0; if (n & 3) for (; i < (n & 3); ++i) { out[i * ostride] = in[i]; } for (; i < n; i += 4) { r0 = c_re(in[i]); i0 = c_im(in[i]); r1 = c_re(in[i + 1]); i1 = c_im(in[i + 1]); r2 = c_re(in[i + 2]); i2 = c_im(in[i + 2]); r3 = c_re(in[i + 3]); i3 = c_im(in[i + 3]); c_re(out[i * ostride]) = r0; c_im(out[i * ostride]) = i0; c_re(out[(i + 1) * ostride]) = r1; c_im(out[(i + 1) * ostride]) = i1; c_re(out[(i + 2) * ostride]) = r2; c_im(out[(i + 2) * ostride]) = i2; c_re(out[(i + 3) * ostride]) = r3; c_im(out[(i + 3) * ostride]) = i3; } } /* * Do *not* declare simple executor as static--we need to call it * from executor_cilk.cilk...also, preface its name with "fftw_" * to avoid any possible name collisions. */ void fftw_executor_simple(int n, const FFTW_COMPLEX *in, FFTW_COMPLEX *out, fftw_plan_node *p, int istride, int ostride) { switch (p->type) { case FFTW_NOTW: (p->nodeu.notw.codelet) (in, out, istride, ostride); break; case FFTW_TWIDDLE: { int r = p->nodeu.twiddle.size; int m = n / r; int i; twiddle_codelet *codelet; FFTW_COMPLEX *W; for (i = 0; i < r; ++i) { fftw_executor_simple(m, in + i * istride, out + i * (m * ostride), p->nodeu.twiddle.recurse, istride * r, ostride); } codelet = p->nodeu.twiddle.codelet; W = p->nodeu.twiddle.tw->twarray; codelet(out, W, m * ostride, m, ostride); break; } case FFTW_GENERIC: { int r = p->nodeu.generic.size; int m = n / r; int i; generic_codelet *codelet; FFTW_COMPLEX *W; for (i = 0; i < r; ++i) { fftw_executor_simple(m, in + i * istride, out + i * (m * ostride), p->nodeu.generic.recurse, istride * r, ostride); } codelet = p->nodeu.generic.codelet; W = p->nodeu.generic.tw->twarray; codelet(out, W, m, r, n, ostride); break; } default: fftw_die("BUG in executor: illegal plan\n"); break; } } static void executor_simple_inplace(int n, FFTW_COMPLEX *in, FFTW_COMPLEX *out, fftw_plan_node *p, int istride) { switch (p->type) { case FFTW_NOTW: (p->nodeu.notw.codelet) (in, in, istride, istride); break; default: { FFTW_COMPLEX *tmp; if (out) tmp = out; else tmp = (FFTW_COMPLEX *) fftw_malloc(n * sizeof(FFTW_COMPLEX)); fftw_executor_simple(n, in, tmp, p, istride, 1); fftw_strided_copy(n, tmp, istride, in); if (!out) fftw_free(tmp); } } } static void executor_many(int n, const FFTW_COMPLEX *in, FFTW_COMPLEX *out, fftw_plan_node *p, int istride, int ostride, int howmany, int idist, int odist) { switch (p->type) { case FFTW_NOTW: { int s; notw_codelet *codelet = p->nodeu.notw.codelet; for (s = 0; s < howmany; ++s) codelet(in + s * idist, out + s * odist, istride, ostride); break; } default: { int s; for (s = 0; s < howmany; ++s) { fftw_executor_simple(n, in + s * idist, out + s * odist, p, istride, ostride); } } } } static void executor_many_inplace(int n, FFTW_COMPLEX *in, FFTW_COMPLEX *out, fftw_plan_node *p, int istride, int howmany, int idist) { switch (p->type) { case FFTW_NOTW: { int s; notw_codelet *codelet = p->nodeu.notw.codelet; for (s = 0; s < howmany; ++s) codelet(in + s * idist, in + s * idist, istride, istride); break; } default: { int s; FFTW_COMPLEX *tmp; if (out) tmp = out; else tmp = (FFTW_COMPLEX *) fftw_malloc(n * sizeof(FFTW_COMPLEX)); for (s = 0; s < howmany; ++s) { fftw_executor_simple(n, in + s * idist, tmp, p, istride, 1); fftw_strided_copy(n, tmp, istride, in + s * idist); } if (!out) fftw_free(tmp); } } } /* user interface */ void fftw(fftw_plan plan, int howmany, FFTW_COMPLEX *in, int istride, int idist, FFTW_COMPLEX *out, int ostride, int odist) { int n = plan->n; if (plan->flags & FFTW_IN_PLACE) { if (howmany == 1) { executor_simple_inplace(n, in, out, plan->root, istride); } else { executor_many_inplace(n, in, out, plan->root, istride, howmany, idist); } } else { if (howmany == 1) { fftw_executor_simple(n, in, out, plan->root, istride, ostride); } else { executor_many(n, in, out, plan->root, istride, ostride, howmany, idist, odist); } } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ #include #include "fftw.h" /* Prototypes for functions used internally in this file: */ static void fftw2d_out_of_place_aux(fftwnd_plan p, int howmany, FFTW_COMPLEX *in, int istride, int idist, FFTW_COMPLEX *out, int ostride, int odist); static void fftw3d_out_of_place_aux(fftwnd_plan p, int howmany, FFTW_COMPLEX *in, int istride, int idist, FFTW_COMPLEX *out, int ostride, int odist); static void fftwnd_out_of_place_aux(fftwnd_plan p, int howmany, FFTW_COMPLEX *in, int istride, int idist, FFTW_COMPLEX *out, int ostride, int odist); static void fftw2d_in_place_aux(fftwnd_plan p, int howmany, FFTW_COMPLEX *in_out, int istride, int idist); static void fftw3d_in_place_aux(fftwnd_plan p, int howmany, FFTW_COMPLEX *in_out, int istride, int idist); static void fftwnd_in_place_aux(fftwnd_plan p, int howmany, FFTW_COMPLEX *in_out, int istride, int idist); /*********** Initializing the FFTWND Auxiliary Data **********/ fftwnd_plan fftw2d_create_plan(int nx, int ny, fftw_direction dir, int flags) { int n[2]; n[0] = nx; n[1] = ny; return fftwnd_create_plan(2, n, dir, flags); } fftwnd_plan fftw3d_create_plan(int nx, int ny, int nz, fftw_direction dir, int flags) { int n[3]; n[0] = nx; n[1] = ny; n[2] = nz; return fftwnd_create_plan(3, n, dir, flags); } fftwnd_plan fftwnd_create_plan(int rank, const int *n, fftw_direction dir, int flags) { int i, j, max_dim = 0; fftwnd_plan p; int cur_flags; if (rank < 0) return 0; for (i = 0; i < rank; ++i) if (n[i] <= 0) return 0; p = (fftwnd_plan) fftw_malloc(sizeof(fftwnd_aux_data)); p->n = 0; p->n_before = 0; p->n_after = 0; p->plans = 0; p->work = 0; p->rank = rank; p->is_in_place = flags & FFTW_IN_PLACE; if (rank == 0) return 0; p->n = (int *) fftw_malloc(sizeof(int) * rank); p->n_before = (int *) fftw_malloc(sizeof(int) * rank); p->n_after = (int *) fftw_malloc(sizeof(int) * rank); p->plans = (fftw_plan *) fftw_malloc(rank * sizeof(fftw_plan)); p->n_before[0] = 1; p->n_after[rank - 1] = 1; for (i = 0; i < rank; ++i) { p->n[i] = n[i]; if (i) { p->n_before[i] = p->n_before[i - 1] * n[i - 1]; p->n_after[rank - 1 - i] = p->n_after[rank - i] * n[rank - i]; } if (i < rank - 1 || (flags & FFTW_IN_PLACE)) { /* fft's except the last dimension are always in-place */ cur_flags = flags | FFTW_IN_PLACE; for (j = i - 1; j >= 0 && n[i] != n[j]; --j); if (n[i] > max_dim) max_dim = n[i]; } else { cur_flags = flags; /* we must create a separate plan for the last dimension */ j = -1; } if (j >= 0) { /* * If a plan already exists for this size * array, reuse it: */ p->plans[i] = p->plans[j]; } else { /* generate a new plan: */ p->plans[i] = fftw_create_plan(n[i], dir, cur_flags); if (!p->plans[i]) { fftwnd_destroy_plan(p); return 0; } } } /* Create work array for in-place FFTs: */ if (max_dim > 0) p->work = (FFTW_COMPLEX *) fftw_malloc(sizeof(FFTW_COMPLEX) * max_dim); return p; } /************* Freeing the FFTWND Auxiliary Data *************/ void fftwnd_destroy_plan(fftwnd_plan plan) { if (plan) { if (plan->plans) { int i, j; for (i = 0; i < plan->rank; ++i) { for (j = i - 1; j >= 0 && plan->plans[i] != plan->plans[j]; --j); if (j < 0 && plan->plans[i]) fftw_destroy_plan(plan->plans[i]); } fftw_free(plan->plans); } if (plan->n) fftw_free(plan->n); if (plan->n_before) fftw_free(plan->n_before); if (plan->n_after) fftw_free(plan->n_after); if (plan->work) fftw_free(plan->work); fftw_free(plan); } } /************** Computing the N-Dimensional FFT **************/ void fftwnd(fftwnd_plan plan, int howmany, FFTW_COMPLEX *in, int istride, int idist, FFTW_COMPLEX *out, int ostride, int odist) { if (plan->is_in_place) /* fft is in-place */ switch (plan->rank) { case 0: break; case 1: fftw(plan->plans[0], howmany, in, istride, idist, plan->work, 1, 0); break; case 2: fftw2d_in_place_aux(plan, howmany, in, istride, idist); break; case 3: fftw3d_in_place_aux(plan, howmany, in, istride, idist); break; default: fftwnd_in_place_aux(plan, howmany, in, istride, idist); } else { if (in == out || out == 0) fftw_die("Illegal attempt to perform in-place FFT!\n"); switch (plan->rank) { case 0: break; case 1: fftw(plan->plans[0], howmany, in, istride, idist, out, ostride, odist); break; case 2: fftw2d_out_of_place_aux(plan, howmany, in, istride, idist, out, ostride, odist); break; case 3: fftw3d_out_of_place_aux(plan, howmany, in, istride, idist, out, ostride, odist); break; default: fftwnd_out_of_place_aux(plan, howmany, in, istride, idist, out, ostride, odist); } } } static void fftw2d_out_of_place_aux(fftwnd_plan p, int howmany, FFTW_COMPLEX *in, int istride, int idist, FFTW_COMPLEX *out, int ostride, int odist) { int fft_iter; fftw_plan p0, p1; int n0, n1; p0 = p->plans[0]; p1 = p->plans[1]; n0 = p->n[0]; n1 = p->n[1]; for (fft_iter = 0; fft_iter < howmany; ++fft_iter) { /* FFT y dimension (out-of-place): */ fftw(p1, n0, in + fft_iter * idist, istride, n1 * istride, out + fft_iter * odist, ostride, n1 * ostride); /* FFT x dimension (in-place): */ fftw(p0, n1, out + fft_iter * odist, n1 * ostride, ostride, p->work, 1, 1); } } static void fftw3d_out_of_place_aux(fftwnd_plan p, int howmany, FFTW_COMPLEX *in, int istride, int idist, FFTW_COMPLEX *out, int ostride, int odist) { int fft_iter; int i; fftw_plan p0, p1, p2; int n0, n1, n2; p0 = p->plans[0]; p1 = p->plans[1]; p2 = p->plans[2]; n0 = p->n[0]; n1 = p->n[1]; n2 = p->n[2]; for (fft_iter = 0; fft_iter < howmany; ++fft_iter) { /* FFT z dimension (out-of-place): */ fftw(p2, n0 * n1, in + fft_iter * idist, istride, n2 * istride, out + fft_iter * odist, ostride, n2 * ostride); /* FFT y dimension (in-place): */ for (i = 0; i < n0; ++i) fftw(p1, n2, out + fft_iter * odist + i * n1 * n2 * ostride, n2 * ostride, ostride, p->work, 1, 0); /* FFT x dimension (in-place): */ fftw(p0, n1 * n2, out + fft_iter * odist, n1 * n2 * ostride, ostride, p->work, 1, 0); } } static void fftwnd_out_of_place_aux(fftwnd_plan p, int howmany, FFTW_COMPLEX *in, int istride, int idist, FFTW_COMPLEX *out, int ostride, int odist) { int fft_iter; int j, i; /* Do FFT for rank > 3: */ for (fft_iter = 0; fft_iter < howmany; ++fft_iter) { /* do last dimension (out-of-place): */ fftw(p->plans[p->rank - 1], p->n_before[p->rank - 1], in + fft_iter * idist, istride, p->n[p->rank - 1] * istride, out + fft_iter * odist, ostride, p->n[p->rank - 1] * ostride); /* do first dimension (in-place): */ fftw(p->plans[0], p->n_after[0], out + fft_iter * odist, p->n_after[0] * ostride, ostride, p->work, 1, 0); /* do other dimensions (in-place): */ for (j = 1; j < p->rank - 1; ++j) for (i = 0; i < p->n_before[j]; ++i) fftw(p->plans[j], p->n_after[j], out + fft_iter * odist + i * ostride * p->n[j] * p->n_after[j], p->n_after[j] * ostride, ostride, p->work, 1, 0); } } static void fftw2d_in_place_aux(fftwnd_plan p, int howmany, FFTW_COMPLEX *in_out, int istride, int idist) { int fft_iter; fftw_plan p0, p1; int n0, n1; p0 = p->plans[0]; p1 = p->plans[1]; n0 = p->n[0]; n1 = p->n[1]; for (fft_iter = 0; fft_iter < howmany; ++fft_iter) { /* FFT y dimension: */ fftw(p1, n0, in_out + fft_iter * idist, istride, istride * n1, p->work, 1, 0); /* FFT x dimension: */ fftw(p0, n1, in_out + fft_iter * idist, istride * n1, istride, p->work, 1, 0); } } static void fftw3d_in_place_aux(fftwnd_plan p, int howmany, FFTW_COMPLEX *in_out, int istride, int idist) { int i; int fft_iter; fftw_plan p0, p1, p2; int n0, n1, n2; p0 = p->plans[0]; p1 = p->plans[1]; p2 = p->plans[2]; n0 = p->n[0]; n1 = p->n[1]; n2 = p->n[2]; for (fft_iter = 0; fft_iter < howmany; ++fft_iter) { /* FFT z dimension: */ fftw(p2, n0 * n1, in_out + fft_iter * idist, istride, n2 * istride, p->work, 1, 0); /* FFT y dimension: */ for (i = 0; i < n0; ++i) fftw(p1, n2, in_out + fft_iter * idist + i * n1 * n2 * istride, n2 * istride, istride, p->work, 1, 0); /* FFT x dimension: */ fftw(p0, n1 * n2, in_out + fft_iter * idist, n1 * n2 * istride, istride, p->work, 1, 0); } } static void fftwnd_in_place_aux(fftwnd_plan p, int howmany, FFTW_COMPLEX *in_out, int istride, int idist) /* Do FFT for rank > 3: */ { int fft_iter; int j, i; for (fft_iter = 0; fft_iter < howmany; ++fft_iter) { /* do last dimension: */ fftw(p->plans[p->rank - 1], p->n_before[p->rank - 1], in_out + fft_iter * idist, istride, p->n[p->rank - 1] * istride, p->work, 1, 0); /* do first dimension: */ fftw(p->plans[0], p->n_after[0], in_out + fft_iter * idist, p->n_after[0] * istride, istride, p->work, 1, 0); /* do other dimensions: */ for (j = 1; j < p->rank - 1; ++j) for (i = 0; i < p->n_before[j]; ++i) fftw(p->plans[j], p->n_after[j], in_out + fft_iter * idist + i * istride * p->n[j] * p->n_after[j], p->n_after[j] * istride, istride, p->work, 1, 0); } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 0 FP additions and 0 FP multiplications */ void fftw_no_twiddle_1(const FFTW_COMPLEX *in, FFTW_COMPLEX *out, int istride, int ostride) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; tre0_0_0 = c_re(in[0]); tim0_0_0 = c_im(in[0]); c_re(out[0]) = tre0_0_0; c_im(out[0]) = tim0_0_0; } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 108 FP additions and 32 FP multiplications */ void fftw_no_twiddle_10(const FFTW_COMPLEX *in, FFTW_COMPLEX *out, int istride, int ostride) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_0_1; FFTW_REAL tim0_0_1; FFTW_REAL tre0_0_2; FFTW_REAL tim0_0_2; FFTW_REAL tre0_0_3; FFTW_REAL tim0_0_3; FFTW_REAL tre0_0_4; FFTW_REAL tim0_0_4; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_1_1; FFTW_REAL tim0_1_1; FFTW_REAL tre0_1_2; FFTW_REAL tim0_1_2; FFTW_REAL tre0_1_3; FFTW_REAL tim0_1_3; FFTW_REAL tre0_1_4; FFTW_REAL tim0_1_4; { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(in[0]); tim1_0_0 = c_im(in[0]); tre1_1_0 = c_re(in[5 * istride]); tim1_1_0 = c_im(in[5 * istride]); tre0_0_0 = tre1_0_0 + tre1_1_0; tim0_0_0 = tim1_0_0 + tim1_1_0; tre0_1_0 = tre1_0_0 - tre1_1_0; tim0_1_0 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(in[2 * istride]); tim1_0_0 = c_im(in[2 * istride]); tre1_1_0 = c_re(in[7 * istride]); tim1_1_0 = c_im(in[7 * istride]); tre0_0_1 = tre1_0_0 + tre1_1_0; tim0_0_1 = tim1_0_0 + tim1_1_0; tre0_1_1 = tre1_0_0 - tre1_1_0; tim0_1_1 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(in[4 * istride]); tim1_0_0 = c_im(in[4 * istride]); tre1_1_0 = c_re(in[9 * istride]); tim1_1_0 = c_im(in[9 * istride]); tre0_0_2 = tre1_0_0 + tre1_1_0; tim0_0_2 = tim1_0_0 + tim1_1_0; tre0_1_2 = tre1_0_0 - tre1_1_0; tim0_1_2 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(in[6 * istride]); tim1_0_0 = c_im(in[6 * istride]); tre1_1_0 = c_re(in[istride]); tim1_1_0 = c_im(in[istride]); tre0_0_3 = tre1_0_0 + tre1_1_0; tim0_0_3 = tim1_0_0 + tim1_1_0; tre0_1_3 = tre1_0_0 - tre1_1_0; tim0_1_3 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(in[8 * istride]); tim1_0_0 = c_im(in[8 * istride]); tre1_1_0 = c_re(in[3 * istride]); tim1_1_0 = c_im(in[3 * istride]); tre0_0_4 = tre1_0_0 + tre1_1_0; tim0_0_4 = tim1_0_0 + tim1_1_0; tre0_1_4 = tre1_0_0 - tre1_1_0; tim0_1_4 = tim1_0_0 - tim1_1_0; } c_re(out[0]) = tre0_0_0 + tre0_0_1 + tre0_0_2 + tre0_0_3 + tre0_0_4; c_im(out[0]) = tim0_0_0 + tim0_0_1 + tim0_0_2 + tim0_0_3 + tim0_0_4; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K309016994) * (tre0_0_1 + tre0_0_4)) - (((FFTW_REAL) FFTW_K809016994) * (tre0_0_2 + tre0_0_3)); tre2_1_0 = (((FFTW_REAL) FFTW_K951056516) * (tim0_0_1 - tim0_0_4)) + (((FFTW_REAL) FFTW_K587785252) * (tim0_0_2 - tim0_0_3)); c_re(out[6 * ostride]) = tre2_0_0 + tre2_1_0; c_re(out[4 * ostride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K309016994) * (tim0_0_1 + tim0_0_4)) - (((FFTW_REAL) FFTW_K809016994) * (tim0_0_2 + tim0_0_3)); tim2_1_0 = (((FFTW_REAL) FFTW_K951056516) * (tre0_0_4 - tre0_0_1)) + (((FFTW_REAL) FFTW_K587785252) * (tre0_0_3 - tre0_0_2)); c_im(out[6 * ostride]) = tim2_0_0 + tim2_1_0; c_im(out[4 * ostride]) = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K309016994) * (tre0_0_2 + tre0_0_3)) - (((FFTW_REAL) FFTW_K809016994) * (tre0_0_1 + tre0_0_4)); tre2_1_0 = (((FFTW_REAL) FFTW_K587785252) * (tim0_0_1 - tim0_0_4)) + (((FFTW_REAL) FFTW_K951056516) * (tim0_0_3 - tim0_0_2)); c_re(out[2 * ostride]) = tre2_0_0 + tre2_1_0; c_re(out[8 * ostride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K309016994) * (tim0_0_2 + tim0_0_3)) - (((FFTW_REAL) FFTW_K809016994) * (tim0_0_1 + tim0_0_4)); tim2_1_0 = (((FFTW_REAL) FFTW_K587785252) * (tre0_0_4 - tre0_0_1)) + (((FFTW_REAL) FFTW_K951056516) * (tre0_0_2 - tre0_0_3)); c_im(out[2 * ostride]) = tim2_0_0 + tim2_1_0; c_im(out[8 * ostride]) = tim2_0_0 - tim2_1_0; } c_re(out[5 * ostride]) = tre0_1_0 + tre0_1_1 + tre0_1_2 + tre0_1_3 + tre0_1_4; c_im(out[5 * ostride]) = tim0_1_0 + tim0_1_1 + tim0_1_2 + tim0_1_3 + tim0_1_4; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_1_0 + (((FFTW_REAL) FFTW_K309016994) * (tre0_1_1 + tre0_1_4)) - (((FFTW_REAL) FFTW_K809016994) * (tre0_1_2 + tre0_1_3)); tre2_1_0 = (((FFTW_REAL) FFTW_K951056516) * (tim0_1_1 - tim0_1_4)) + (((FFTW_REAL) FFTW_K587785252) * (tim0_1_2 - tim0_1_3)); c_re(out[ostride]) = tre2_0_0 + tre2_1_0; c_re(out[9 * ostride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_1_0 + (((FFTW_REAL) FFTW_K309016994) * (tim0_1_1 + tim0_1_4)) - (((FFTW_REAL) FFTW_K809016994) * (tim0_1_2 + tim0_1_3)); tim2_1_0 = (((FFTW_REAL) FFTW_K951056516) * (tre0_1_4 - tre0_1_1)) + (((FFTW_REAL) FFTW_K587785252) * (tre0_1_3 - tre0_1_2)); c_im(out[ostride]) = tim2_0_0 + tim2_1_0; c_im(out[9 * ostride]) = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_1_0 + (((FFTW_REAL) FFTW_K309016994) * (tre0_1_2 + tre0_1_3)) - (((FFTW_REAL) FFTW_K809016994) * (tre0_1_1 + tre0_1_4)); tre2_1_0 = (((FFTW_REAL) FFTW_K587785252) * (tim0_1_1 - tim0_1_4)) + (((FFTW_REAL) FFTW_K951056516) * (tim0_1_3 - tim0_1_2)); c_re(out[7 * ostride]) = tre2_0_0 + tre2_1_0; c_re(out[3 * ostride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_1_0 + (((FFTW_REAL) FFTW_K309016994) * (tim0_1_2 + tim0_1_3)) - (((FFTW_REAL) FFTW_K809016994) * (tim0_1_1 + tim0_1_4)); tim2_1_0 = (((FFTW_REAL) FFTW_K587785252) * (tre0_1_4 - tre0_1_1)) + (((FFTW_REAL) FFTW_K951056516) * (tre0_1_2 - tre0_1_3)); c_im(out[7 * ostride]) = tim2_0_0 + tim2_1_0; c_im(out[3 * ostride]) = tim2_0_0 - tim2_1_0; } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 230 FP additions and 100 FP multiplications */ void fftw_no_twiddle_11(const FFTW_COMPLEX *in, FFTW_COMPLEX *out, int istride, int ostride) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_2_0; FFTW_REAL tim0_2_0; FFTW_REAL tre0_3_0; FFTW_REAL tim0_3_0; FFTW_REAL tre0_4_0; FFTW_REAL tim0_4_0; FFTW_REAL tre0_5_0; FFTW_REAL tim0_5_0; FFTW_REAL tre0_6_0; FFTW_REAL tim0_6_0; FFTW_REAL tre0_7_0; FFTW_REAL tim0_7_0; FFTW_REAL tre0_8_0; FFTW_REAL tim0_8_0; FFTW_REAL tre0_9_0; FFTW_REAL tim0_9_0; FFTW_REAL tre0_10_0; FFTW_REAL tim0_10_0; tre0_0_0 = c_re(in[0]); tim0_0_0 = c_im(in[0]); tre0_1_0 = c_re(in[istride]); tim0_1_0 = c_im(in[istride]); tre0_2_0 = c_re(in[2 * istride]); tim0_2_0 = c_im(in[2 * istride]); tre0_3_0 = c_re(in[3 * istride]); tim0_3_0 = c_im(in[3 * istride]); tre0_4_0 = c_re(in[4 * istride]); tim0_4_0 = c_im(in[4 * istride]); tre0_5_0 = c_re(in[5 * istride]); tim0_5_0 = c_im(in[5 * istride]); tre0_6_0 = c_re(in[6 * istride]); tim0_6_0 = c_im(in[6 * istride]); tre0_7_0 = c_re(in[7 * istride]); tim0_7_0 = c_im(in[7 * istride]); tre0_8_0 = c_re(in[8 * istride]); tim0_8_0 = c_im(in[8 * istride]); tre0_9_0 = c_re(in[9 * istride]); tim0_9_0 = c_im(in[9 * istride]); tre0_10_0 = c_re(in[10 * istride]); tim0_10_0 = c_im(in[10 * istride]); c_re(out[0]) = tre0_0_0 + tre0_1_0 + tre0_2_0 + tre0_3_0 + tre0_4_0 + tre0_5_0 + tre0_6_0 + tre0_7_0 + tre0_8_0 + tre0_9_0 + tre0_10_0; c_im(out[0]) = tim0_0_0 + tim0_1_0 + tim0_2_0 + tim0_3_0 + tim0_4_0 + tim0_5_0 + tim0_6_0 + tim0_7_0 + tim0_8_0 + tim0_9_0 + tim0_10_0; { FFTW_REAL tre1_0_0; FFTW_REAL tre1_1_0; tre1_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K841253532) * (tre0_1_0 + tre0_10_0)) + (((FFTW_REAL) FFTW_K415415013) * (tre0_2_0 + tre0_9_0)) - (((FFTW_REAL) FFTW_K959492973) * (tre0_5_0 + tre0_6_0)) - (((FFTW_REAL) FFTW_K654860733) * (tre0_4_0 + tre0_7_0)) - (((FFTW_REAL) FFTW_K142314838) * (tre0_3_0 + tre0_8_0)); tre1_1_0 = (((FFTW_REAL) FFTW_K540640817) * (tim0_1_0 - tim0_10_0)) + (((FFTW_REAL) FFTW_K909631995) * (tim0_2_0 - tim0_9_0)) + (((FFTW_REAL) FFTW_K989821441) * (tim0_3_0 - tim0_8_0)) + (((FFTW_REAL) FFTW_K755749574) * (tim0_4_0 - tim0_7_0)) + (((FFTW_REAL) FFTW_K281732556) * (tim0_5_0 - tim0_6_0)); c_re(out[ostride]) = tre1_0_0 + tre1_1_0; c_re(out[10 * ostride]) = tre1_0_0 - tre1_1_0; } { FFTW_REAL tim1_0_0; FFTW_REAL tim1_1_0; tim1_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K841253532) * (tim0_1_0 + tim0_10_0)) + (((FFTW_REAL) FFTW_K415415013) * (tim0_2_0 + tim0_9_0)) - (((FFTW_REAL) FFTW_K959492973) * (tim0_5_0 + tim0_6_0)) - (((FFTW_REAL) FFTW_K654860733) * (tim0_4_0 + tim0_7_0)) - (((FFTW_REAL) FFTW_K142314838) * (tim0_3_0 + tim0_8_0)); tim1_1_0 = (((FFTW_REAL) FFTW_K540640817) * (tre0_10_0 - tre0_1_0)) + (((FFTW_REAL) FFTW_K909631995) * (tre0_9_0 - tre0_2_0)) + (((FFTW_REAL) FFTW_K989821441) * (tre0_8_0 - tre0_3_0)) + (((FFTW_REAL) FFTW_K755749574) * (tre0_7_0 - tre0_4_0)) + (((FFTW_REAL) FFTW_K281732556) * (tre0_6_0 - tre0_5_0)); c_im(out[ostride]) = tim1_0_0 + tim1_1_0; c_im(out[10 * ostride]) = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tre1_1_0; tre1_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K415415013) * (tre0_1_0 + tre0_10_0)) + (((FFTW_REAL) FFTW_K841253532) * (tre0_5_0 + tre0_6_0)) - (((FFTW_REAL) FFTW_K142314838) * (tre0_4_0 + tre0_7_0)) - (((FFTW_REAL) FFTW_K959492973) * (tre0_3_0 + tre0_8_0)) - (((FFTW_REAL) FFTW_K654860733) * (tre0_2_0 + tre0_9_0)); tre1_1_0 = (((FFTW_REAL) FFTW_K909631995) * (tim0_1_0 - tim0_10_0)) + (((FFTW_REAL) FFTW_K755749574) * (tim0_2_0 - tim0_9_0)) + (((FFTW_REAL) FFTW_K281732556) * (tim0_8_0 - tim0_3_0)) + (((FFTW_REAL) FFTW_K989821441) * (tim0_7_0 - tim0_4_0)) + (((FFTW_REAL) FFTW_K540640817) * (tim0_6_0 - tim0_5_0)); c_re(out[2 * ostride]) = tre1_0_0 + tre1_1_0; c_re(out[9 * ostride]) = tre1_0_0 - tre1_1_0; } { FFTW_REAL tim1_0_0; FFTW_REAL tim1_1_0; tim1_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K415415013) * (tim0_1_0 + tim0_10_0)) + (((FFTW_REAL) FFTW_K841253532) * (tim0_5_0 + tim0_6_0)) - (((FFTW_REAL) FFTW_K142314838) * (tim0_4_0 + tim0_7_0)) - (((FFTW_REAL) FFTW_K959492973) * (tim0_3_0 + tim0_8_0)) - (((FFTW_REAL) FFTW_K654860733) * (tim0_2_0 + tim0_9_0)); tim1_1_0 = (((FFTW_REAL) FFTW_K909631995) * (tre0_10_0 - tre0_1_0)) + (((FFTW_REAL) FFTW_K755749574) * (tre0_9_0 - tre0_2_0)) + (((FFTW_REAL) FFTW_K281732556) * (tre0_3_0 - tre0_8_0)) + (((FFTW_REAL) FFTW_K989821441) * (tre0_4_0 - tre0_7_0)) + (((FFTW_REAL) FFTW_K540640817) * (tre0_5_0 - tre0_6_0)); c_im(out[2 * ostride]) = tim1_0_0 + tim1_1_0; c_im(out[9 * ostride]) = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tre1_1_0; tre1_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K415415013) * (tre0_3_0 + tre0_8_0)) + (((FFTW_REAL) FFTW_K841253532) * (tre0_4_0 + tre0_7_0)) - (((FFTW_REAL) FFTW_K654860733) * (tre0_5_0 + tre0_6_0)) - (((FFTW_REAL) FFTW_K959492973) * (tre0_2_0 + tre0_9_0)) - (((FFTW_REAL) FFTW_K142314838) * (tre0_1_0 + tre0_10_0)); tre1_1_0 = (((FFTW_REAL) FFTW_K989821441) * (tim0_1_0 - tim0_10_0)) + (((FFTW_REAL) FFTW_K281732556) * (tim0_9_0 - tim0_2_0)) + (((FFTW_REAL) FFTW_K909631995) * (tim0_8_0 - tim0_3_0)) + (((FFTW_REAL) FFTW_K540640817) * (tim0_4_0 - tim0_7_0)) + (((FFTW_REAL) FFTW_K755749574) * (tim0_5_0 - tim0_6_0)); c_re(out[3 * ostride]) = tre1_0_0 + tre1_1_0; c_re(out[8 * ostride]) = tre1_0_0 - tre1_1_0; } { FFTW_REAL tim1_0_0; FFTW_REAL tim1_1_0; tim1_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K415415013) * (tim0_3_0 + tim0_8_0)) + (((FFTW_REAL) FFTW_K841253532) * (tim0_4_0 + tim0_7_0)) - (((FFTW_REAL) FFTW_K654860733) * (tim0_5_0 + tim0_6_0)) - (((FFTW_REAL) FFTW_K959492973) * (tim0_2_0 + tim0_9_0)) - (((FFTW_REAL) FFTW_K142314838) * (tim0_1_0 + tim0_10_0)); tim1_1_0 = (((FFTW_REAL) FFTW_K989821441) * (tre0_10_0 - tre0_1_0)) + (((FFTW_REAL) FFTW_K281732556) * (tre0_2_0 - tre0_9_0)) + (((FFTW_REAL) FFTW_K909631995) * (tre0_3_0 - tre0_8_0)) + (((FFTW_REAL) FFTW_K540640817) * (tre0_7_0 - tre0_4_0)) + (((FFTW_REAL) FFTW_K755749574) * (tre0_6_0 - tre0_5_0)); c_im(out[3 * ostride]) = tim1_0_0 + tim1_1_0; c_im(out[8 * ostride]) = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tre1_1_0; tre1_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K841253532) * (tre0_3_0 + tre0_8_0)) + (((FFTW_REAL) FFTW_K415415013) * (tre0_5_0 + tre0_6_0)) - (((FFTW_REAL) FFTW_K959492973) * (tre0_4_0 + tre0_7_0)) - (((FFTW_REAL) FFTW_K142314838) * (tre0_2_0 + tre0_9_0)) - (((FFTW_REAL) FFTW_K654860733) * (tre0_1_0 + tre0_10_0)); tre1_1_0 = (((FFTW_REAL) FFTW_K755749574) * (tim0_1_0 - tim0_10_0)) + (((FFTW_REAL) FFTW_K989821441) * (tim0_9_0 - tim0_2_0)) + (((FFTW_REAL) FFTW_K540640817) * (tim0_3_0 - tim0_8_0)) + (((FFTW_REAL) FFTW_K281732556) * (tim0_4_0 - tim0_7_0)) + (((FFTW_REAL) FFTW_K909631995) * (tim0_6_0 - tim0_5_0)); c_re(out[4 * ostride]) = tre1_0_0 + tre1_1_0; c_re(out[7 * ostride]) = tre1_0_0 - tre1_1_0; } { FFTW_REAL tim1_0_0; FFTW_REAL tim1_1_0; tim1_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K841253532) * (tim0_3_0 + tim0_8_0)) + (((FFTW_REAL) FFTW_K415415013) * (tim0_5_0 + tim0_6_0)) - (((FFTW_REAL) FFTW_K959492973) * (tim0_4_0 + tim0_7_0)) - (((FFTW_REAL) FFTW_K142314838) * (tim0_2_0 + tim0_9_0)) - (((FFTW_REAL) FFTW_K654860733) * (tim0_1_0 + tim0_10_0)); tim1_1_0 = (((FFTW_REAL) FFTW_K755749574) * (tre0_10_0 - tre0_1_0)) + (((FFTW_REAL) FFTW_K989821441) * (tre0_2_0 - tre0_9_0)) + (((FFTW_REAL) FFTW_K540640817) * (tre0_8_0 - tre0_3_0)) + (((FFTW_REAL) FFTW_K281732556) * (tre0_7_0 - tre0_4_0)) + (((FFTW_REAL) FFTW_K909631995) * (tre0_5_0 - tre0_6_0)); c_im(out[4 * ostride]) = tim1_0_0 + tim1_1_0; c_im(out[7 * ostride]) = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tre1_1_0; tre1_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K841253532) * (tre0_2_0 + tre0_9_0)) + (((FFTW_REAL) FFTW_K415415013) * (tre0_4_0 + tre0_7_0)) - (((FFTW_REAL) FFTW_K142314838) * (tre0_5_0 + tre0_6_0)) - (((FFTW_REAL) FFTW_K654860733) * (tre0_3_0 + tre0_8_0)) - (((FFTW_REAL) FFTW_K959492973) * (tre0_1_0 + tre0_10_0)); tre1_1_0 = (((FFTW_REAL) FFTW_K281732556) * (tim0_1_0 - tim0_10_0)) + (((FFTW_REAL) FFTW_K540640817) * (tim0_9_0 - tim0_2_0)) + (((FFTW_REAL) FFTW_K755749574) * (tim0_3_0 - tim0_8_0)) + (((FFTW_REAL) FFTW_K909631995) * (tim0_7_0 - tim0_4_0)) + (((FFTW_REAL) FFTW_K989821441) * (tim0_5_0 - tim0_6_0)); c_re(out[5 * ostride]) = tre1_0_0 + tre1_1_0; c_re(out[6 * ostride]) = tre1_0_0 - tre1_1_0; } { FFTW_REAL tim1_0_0; FFTW_REAL tim1_1_0; tim1_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K841253532) * (tim0_2_0 + tim0_9_0)) + (((FFTW_REAL) FFTW_K415415013) * (tim0_4_0 + tim0_7_0)) - (((FFTW_REAL) FFTW_K142314838) * (tim0_5_0 + tim0_6_0)) - (((FFTW_REAL) FFTW_K654860733) * (tim0_3_0 + tim0_8_0)) - (((FFTW_REAL) FFTW_K959492973) * (tim0_1_0 + tim0_10_0)); tim1_1_0 = (((FFTW_REAL) FFTW_K281732556) * (tre0_10_0 - tre0_1_0)) + (((FFTW_REAL) FFTW_K540640817) * (tre0_2_0 - tre0_9_0)) + (((FFTW_REAL) FFTW_K755749574) * (tre0_8_0 - tre0_3_0)) + (((FFTW_REAL) FFTW_K909631995) * (tre0_4_0 - tre0_7_0)) + (((FFTW_REAL) FFTW_K989821441) * (tre0_6_0 - tre0_5_0)); c_im(out[5 * ostride]) = tim1_0_0 + tim1_1_0; c_im(out[6 * ostride]) = tim1_0_0 - tim1_1_0; } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 104 FP additions and 16 FP multiplications */ void fftw_no_twiddle_12(const FFTW_COMPLEX *in, FFTW_COMPLEX *out, int istride, int ostride) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_0_1; FFTW_REAL tim0_0_1; FFTW_REAL tre0_0_2; FFTW_REAL tim0_0_2; FFTW_REAL tre0_0_3; FFTW_REAL tim0_0_3; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_1_1; FFTW_REAL tim0_1_1; FFTW_REAL tre0_1_2; FFTW_REAL tim0_1_2; FFTW_REAL tre0_1_3; FFTW_REAL tim0_1_3; FFTW_REAL tre0_2_0; FFTW_REAL tim0_2_0; FFTW_REAL tre0_2_1; FFTW_REAL tim0_2_1; FFTW_REAL tre0_2_2; FFTW_REAL tim0_2_2; FFTW_REAL tre0_2_3; FFTW_REAL tim0_2_3; { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_2_0; FFTW_REAL tim1_2_0; tre1_0_0 = c_re(in[0]); tim1_0_0 = c_im(in[0]); tre1_1_0 = c_re(in[4 * istride]); tim1_1_0 = c_im(in[4 * istride]); tre1_2_0 = c_re(in[8 * istride]); tim1_2_0 = c_im(in[8 * istride]); tre0_0_0 = tre1_0_0 + tre1_1_0 + tre1_2_0; tim0_0_0 = tim1_0_0 + tim1_1_0 + tim1_2_0; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tre1_1_0 + tre1_2_0)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim1_1_0 - tim1_2_0); tre0_1_0 = tre2_0_0 + tre2_1_0; tre0_2_0 = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tim1_1_0 + tim1_2_0)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre1_2_0 - tre1_1_0); tim0_1_0 = tim2_0_0 + tim2_1_0; tim0_2_0 = tim2_0_0 - tim2_1_0; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_2_0; FFTW_REAL tim1_2_0; tre1_0_0 = c_re(in[3 * istride]); tim1_0_0 = c_im(in[3 * istride]); tre1_1_0 = c_re(in[7 * istride]); tim1_1_0 = c_im(in[7 * istride]); tre1_2_0 = c_re(in[11 * istride]); tim1_2_0 = c_im(in[11 * istride]); tre0_0_1 = tre1_0_0 + tre1_1_0 + tre1_2_0; tim0_0_1 = tim1_0_0 + tim1_1_0 + tim1_2_0; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tre1_1_0 + tre1_2_0)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim1_1_0 - tim1_2_0); tre0_1_1 = tre2_0_0 + tre2_1_0; tre0_2_1 = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tim1_1_0 + tim1_2_0)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre1_2_0 - tre1_1_0); tim0_1_1 = tim2_0_0 + tim2_1_0; tim0_2_1 = tim2_0_0 - tim2_1_0; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_2_0; FFTW_REAL tim1_2_0; tre1_0_0 = c_re(in[6 * istride]); tim1_0_0 = c_im(in[6 * istride]); tre1_1_0 = c_re(in[10 * istride]); tim1_1_0 = c_im(in[10 * istride]); tre1_2_0 = c_re(in[2 * istride]); tim1_2_0 = c_im(in[2 * istride]); tre0_0_2 = tre1_0_0 + tre1_1_0 + tre1_2_0; tim0_0_2 = tim1_0_0 + tim1_1_0 + tim1_2_0; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tre1_1_0 + tre1_2_0)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim1_1_0 - tim1_2_0); tre0_1_2 = tre2_0_0 + tre2_1_0; tre0_2_2 = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tim1_1_0 + tim1_2_0)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre1_2_0 - tre1_1_0); tim0_1_2 = tim2_0_0 + tim2_1_0; tim0_2_2 = tim2_0_0 - tim2_1_0; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_2_0; FFTW_REAL tim1_2_0; tre1_0_0 = c_re(in[9 * istride]); tim1_0_0 = c_im(in[9 * istride]); tre1_1_0 = c_re(in[istride]); tim1_1_0 = c_im(in[istride]); tre1_2_0 = c_re(in[5 * istride]); tim1_2_0 = c_im(in[5 * istride]); tre0_0_3 = tre1_0_0 + tre1_1_0 + tre1_2_0; tim0_0_3 = tim1_0_0 + tim1_1_0 + tim1_2_0; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tre1_1_0 + tre1_2_0)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim1_1_0 - tim1_2_0); tre0_1_3 = tre2_0_0 + tre2_1_0; tre0_2_3 = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tim1_1_0 + tim1_2_0)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre1_2_0 - tre1_1_0); tim0_1_3 = tim2_0_0 + tim2_1_0; tim0_2_3 = tim2_0_0 - tim2_1_0; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; tre1_0_0 = tre0_0_0 + tre0_0_2; tim1_0_0 = tim0_0_0 + tim0_0_2; tre1_1_0 = tre0_0_0 - tre0_0_2; tim1_1_0 = tim0_0_0 - tim0_0_2; tre1_0_1 = tre0_0_1 + tre0_0_3; tim1_0_1 = tim0_0_1 + tim0_0_3; tre1_1_1 = tre0_0_1 - tre0_0_3; tim1_1_1 = tim0_0_1 - tim0_0_3; c_re(out[0]) = tre1_0_0 + tre1_0_1; c_im(out[0]) = tim1_0_0 + tim1_0_1; c_re(out[6 * ostride]) = tre1_0_0 - tre1_0_1; c_im(out[6 * ostride]) = tim1_0_0 - tim1_0_1; c_re(out[9 * ostride]) = tre1_1_0 + tim1_1_1; c_im(out[9 * ostride]) = tim1_1_0 - tre1_1_1; c_re(out[3 * ostride]) = tre1_1_0 - tim1_1_1; c_im(out[3 * ostride]) = tim1_1_0 + tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; tre1_0_0 = tre0_1_0 + tre0_1_2; tim1_0_0 = tim0_1_0 + tim0_1_2; tre1_1_0 = tre0_1_0 - tre0_1_2; tim1_1_0 = tim0_1_0 - tim0_1_2; tre1_0_1 = tre0_1_1 + tre0_1_3; tim1_0_1 = tim0_1_1 + tim0_1_3; tre1_1_1 = tre0_1_1 - tre0_1_3; tim1_1_1 = tim0_1_1 - tim0_1_3; c_re(out[4 * ostride]) = tre1_0_0 + tre1_0_1; c_im(out[4 * ostride]) = tim1_0_0 + tim1_0_1; c_re(out[10 * ostride]) = tre1_0_0 - tre1_0_1; c_im(out[10 * ostride]) = tim1_0_0 - tim1_0_1; c_re(out[ostride]) = tre1_1_0 + tim1_1_1; c_im(out[ostride]) = tim1_1_0 - tre1_1_1; c_re(out[7 * ostride]) = tre1_1_0 - tim1_1_1; c_im(out[7 * ostride]) = tim1_1_0 + tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; tre1_0_0 = tre0_2_0 + tre0_2_2; tim1_0_0 = tim0_2_0 + tim0_2_2; tre1_1_0 = tre0_2_0 - tre0_2_2; tim1_1_0 = tim0_2_0 - tim0_2_2; tre1_0_1 = tre0_2_1 + tre0_2_3; tim1_0_1 = tim0_2_1 + tim0_2_3; tre1_1_1 = tre0_2_1 - tre0_2_3; tim1_1_1 = tim0_2_1 - tim0_2_3; c_re(out[8 * ostride]) = tre1_0_0 + tre1_0_1; c_im(out[8 * ostride]) = tim1_0_0 + tim1_0_1; c_re(out[2 * ostride]) = tre1_0_0 - tre1_0_1; c_im(out[2 * ostride]) = tim1_0_0 - tim1_0_1; c_re(out[5 * ostride]) = tre1_1_0 + tim1_1_1; c_im(out[5 * ostride]) = tim1_1_0 - tre1_1_1; c_re(out[11 * ostride]) = tre1_1_0 - tim1_1_1; c_im(out[11 * ostride]) = tim1_1_0 + tre1_1_1; } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 324 FP additions and 144 FP multiplications */ void fftw_no_twiddle_13(const FFTW_COMPLEX *in, FFTW_COMPLEX *out, int istride, int ostride) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_2_0; FFTW_REAL tim0_2_0; FFTW_REAL tre0_3_0; FFTW_REAL tim0_3_0; FFTW_REAL tre0_4_0; FFTW_REAL tim0_4_0; FFTW_REAL tre0_5_0; FFTW_REAL tim0_5_0; FFTW_REAL tre0_6_0; FFTW_REAL tim0_6_0; FFTW_REAL tre0_7_0; FFTW_REAL tim0_7_0; FFTW_REAL tre0_8_0; FFTW_REAL tim0_8_0; FFTW_REAL tre0_9_0; FFTW_REAL tim0_9_0; FFTW_REAL tre0_10_0; FFTW_REAL tim0_10_0; FFTW_REAL tre0_11_0; FFTW_REAL tim0_11_0; FFTW_REAL tre0_12_0; FFTW_REAL tim0_12_0; tre0_0_0 = c_re(in[0]); tim0_0_0 = c_im(in[0]); tre0_1_0 = c_re(in[istride]); tim0_1_0 = c_im(in[istride]); tre0_2_0 = c_re(in[2 * istride]); tim0_2_0 = c_im(in[2 * istride]); tre0_3_0 = c_re(in[3 * istride]); tim0_3_0 = c_im(in[3 * istride]); tre0_4_0 = c_re(in[4 * istride]); tim0_4_0 = c_im(in[4 * istride]); tre0_5_0 = c_re(in[5 * istride]); tim0_5_0 = c_im(in[5 * istride]); tre0_6_0 = c_re(in[6 * istride]); tim0_6_0 = c_im(in[6 * istride]); tre0_7_0 = c_re(in[7 * istride]); tim0_7_0 = c_im(in[7 * istride]); tre0_8_0 = c_re(in[8 * istride]); tim0_8_0 = c_im(in[8 * istride]); tre0_9_0 = c_re(in[9 * istride]); tim0_9_0 = c_im(in[9 * istride]); tre0_10_0 = c_re(in[10 * istride]); tim0_10_0 = c_im(in[10 * istride]); tre0_11_0 = c_re(in[11 * istride]); tim0_11_0 = c_im(in[11 * istride]); tre0_12_0 = c_re(in[12 * istride]); tim0_12_0 = c_im(in[12 * istride]); c_re(out[0]) = tre0_0_0 + tre0_1_0 + tre0_2_0 + tre0_3_0 + tre0_4_0 + tre0_5_0 + tre0_6_0 + tre0_7_0 + tre0_8_0 + tre0_9_0 + tre0_10_0 + tre0_11_0 + tre0_12_0; c_im(out[0]) = tim0_0_0 + tim0_1_0 + tim0_2_0 + tim0_3_0 + tim0_4_0 + tim0_5_0 + tim0_6_0 + tim0_7_0 + tim0_8_0 + tim0_9_0 + tim0_10_0 + tim0_11_0 + tim0_12_0; { FFTW_REAL tre1_0_0; FFTW_REAL tre1_1_0; tre1_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K885456025) * (tre0_1_0 + tre0_12_0)) + (((FFTW_REAL) FFTW_K568064746) * (tre0_2_0 + tre0_11_0)) + (((FFTW_REAL) FFTW_K120536680) * (tre0_3_0 + tre0_10_0)) - (((FFTW_REAL) FFTW_K970941817) * (tre0_6_0 + tre0_7_0)) - (((FFTW_REAL) FFTW_K748510748) * (tre0_5_0 + tre0_8_0)) - (((FFTW_REAL) FFTW_K354604887) * (tre0_4_0 + tre0_9_0)); tre1_1_0 = (((FFTW_REAL) FFTW_K464723172) * (tim0_1_0 - tim0_12_0)) + (((FFTW_REAL) FFTW_K822983865) * (tim0_2_0 - tim0_11_0)) + (((FFTW_REAL) FFTW_K992708874) * (tim0_3_0 - tim0_10_0)) + (((FFTW_REAL) FFTW_K935016242) * (tim0_4_0 - tim0_9_0)) + (((FFTW_REAL) FFTW_K663122658) * (tim0_5_0 - tim0_8_0)) + (((FFTW_REAL) FFTW_K239315664) * (tim0_6_0 - tim0_7_0)); c_re(out[ostride]) = tre1_0_0 + tre1_1_0; c_re(out[12 * ostride]) = tre1_0_0 - tre1_1_0; } { FFTW_REAL tim1_0_0; FFTW_REAL tim1_1_0; tim1_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K885456025) * (tim0_1_0 + tim0_12_0)) + (((FFTW_REAL) FFTW_K568064746) * (tim0_2_0 + tim0_11_0)) + (((FFTW_REAL) FFTW_K120536680) * (tim0_3_0 + tim0_10_0)) - (((FFTW_REAL) FFTW_K970941817) * (tim0_6_0 + tim0_7_0)) - (((FFTW_REAL) FFTW_K748510748) * (tim0_5_0 + tim0_8_0)) - (((FFTW_REAL) FFTW_K354604887) * (tim0_4_0 + tim0_9_0)); tim1_1_0 = (((FFTW_REAL) FFTW_K464723172) * (tre0_12_0 - tre0_1_0)) + (((FFTW_REAL) FFTW_K822983865) * (tre0_11_0 - tre0_2_0)) + (((FFTW_REAL) FFTW_K992708874) * (tre0_10_0 - tre0_3_0)) + (((FFTW_REAL) FFTW_K935016242) * (tre0_9_0 - tre0_4_0)) + (((FFTW_REAL) FFTW_K663122658) * (tre0_8_0 - tre0_5_0)) + (((FFTW_REAL) FFTW_K239315664) * (tre0_7_0 - tre0_6_0)); c_im(out[ostride]) = tim1_0_0 + tim1_1_0; c_im(out[12 * ostride]) = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tre1_1_0; tre1_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K568064746) * (tre0_1_0 + tre0_12_0)) + (((FFTW_REAL) FFTW_K120536680) * (tre0_5_0 + tre0_8_0)) + (((FFTW_REAL) FFTW_K885456025) * (tre0_6_0 + tre0_7_0)) - (((FFTW_REAL) FFTW_K748510748) * (tre0_4_0 + tre0_9_0)) - (((FFTW_REAL) FFTW_K970941817) * (tre0_3_0 + tre0_10_0)) - (((FFTW_REAL) FFTW_K354604887) * (tre0_2_0 + tre0_11_0)); tre1_1_0 = (((FFTW_REAL) FFTW_K822983865) * (tim0_1_0 - tim0_12_0)) + (((FFTW_REAL) FFTW_K935016242) * (tim0_2_0 - tim0_11_0)) + (((FFTW_REAL) FFTW_K239315664) * (tim0_3_0 - tim0_10_0)) + (((FFTW_REAL) FFTW_K663122658) * (tim0_9_0 - tim0_4_0)) + (((FFTW_REAL) FFTW_K992708874) * (tim0_8_0 - tim0_5_0)) + (((FFTW_REAL) FFTW_K464723172) * (tim0_7_0 - tim0_6_0)); c_re(out[2 * ostride]) = tre1_0_0 + tre1_1_0; c_re(out[11 * ostride]) = tre1_0_0 - tre1_1_0; } { FFTW_REAL tim1_0_0; FFTW_REAL tim1_1_0; tim1_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K568064746) * (tim0_1_0 + tim0_12_0)) + (((FFTW_REAL) FFTW_K120536680) * (tim0_5_0 + tim0_8_0)) + (((FFTW_REAL) FFTW_K885456025) * (tim0_6_0 + tim0_7_0)) - (((FFTW_REAL) FFTW_K748510748) * (tim0_4_0 + tim0_9_0)) - (((FFTW_REAL) FFTW_K970941817) * (tim0_3_0 + tim0_10_0)) - (((FFTW_REAL) FFTW_K354604887) * (tim0_2_0 + tim0_11_0)); tim1_1_0 = (((FFTW_REAL) FFTW_K822983865) * (tre0_12_0 - tre0_1_0)) + (((FFTW_REAL) FFTW_K935016242) * (tre0_11_0 - tre0_2_0)) + (((FFTW_REAL) FFTW_K239315664) * (tre0_10_0 - tre0_3_0)) + (((FFTW_REAL) FFTW_K663122658) * (tre0_4_0 - tre0_9_0)) + (((FFTW_REAL) FFTW_K992708874) * (tre0_5_0 - tre0_8_0)) + (((FFTW_REAL) FFTW_K464723172) * (tre0_6_0 - tre0_7_0)); c_im(out[2 * ostride]) = tim1_0_0 + tim1_1_0; c_im(out[11 * ostride]) = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tre1_1_0; tre1_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K120536680) * (tre0_1_0 + tre0_12_0)) + (((FFTW_REAL) FFTW_K885456025) * (tre0_4_0 + tre0_9_0)) + (((FFTW_REAL) FFTW_K568064746) * (tre0_5_0 + tre0_8_0)) - (((FFTW_REAL) FFTW_K748510748) * (tre0_6_0 + tre0_7_0)) - (((FFTW_REAL) FFTW_K354604887) * (tre0_3_0 + tre0_10_0)) - (((FFTW_REAL) FFTW_K970941817) * (tre0_2_0 + tre0_11_0)); tre1_1_0 = (((FFTW_REAL) FFTW_K992708874) * (tim0_1_0 - tim0_12_0)) + (((FFTW_REAL) FFTW_K239315664) * (tim0_2_0 - tim0_11_0)) + (((FFTW_REAL) FFTW_K935016242) * (tim0_10_0 - tim0_3_0)) + (((FFTW_REAL) FFTW_K464723172) * (tim0_9_0 - tim0_4_0)) + (((FFTW_REAL) FFTW_K822983865) * (tim0_5_0 - tim0_8_0)) + (((FFTW_REAL) FFTW_K663122658) * (tim0_6_0 - tim0_7_0)); c_re(out[3 * ostride]) = tre1_0_0 + tre1_1_0; c_re(out[10 * ostride]) = tre1_0_0 - tre1_1_0; } { FFTW_REAL tim1_0_0; FFTW_REAL tim1_1_0; tim1_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K120536680) * (tim0_1_0 + tim0_12_0)) + (((FFTW_REAL) FFTW_K885456025) * (tim0_4_0 + tim0_9_0)) + (((FFTW_REAL) FFTW_K568064746) * (tim0_5_0 + tim0_8_0)) - (((FFTW_REAL) FFTW_K748510748) * (tim0_6_0 + tim0_7_0)) - (((FFTW_REAL) FFTW_K354604887) * (tim0_3_0 + tim0_10_0)) - (((FFTW_REAL) FFTW_K970941817) * (tim0_2_0 + tim0_11_0)); tim1_1_0 = (((FFTW_REAL) FFTW_K992708874) * (tre0_12_0 - tre0_1_0)) + (((FFTW_REAL) FFTW_K239315664) * (tre0_11_0 - tre0_2_0)) + (((FFTW_REAL) FFTW_K935016242) * (tre0_3_0 - tre0_10_0)) + (((FFTW_REAL) FFTW_K464723172) * (tre0_4_0 - tre0_9_0)) + (((FFTW_REAL) FFTW_K822983865) * (tre0_8_0 - tre0_5_0)) + (((FFTW_REAL) FFTW_K663122658) * (tre0_7_0 - tre0_6_0)); c_im(out[3 * ostride]) = tim1_0_0 + tim1_1_0; c_im(out[10 * ostride]) = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tre1_1_0; tre1_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K885456025) * (tre0_3_0 + tre0_10_0)) + (((FFTW_REAL) FFTW_K120536680) * (tre0_4_0 + tre0_9_0)) + (((FFTW_REAL) FFTW_K568064746) * (tre0_6_0 + tre0_7_0)) - (((FFTW_REAL) FFTW_K970941817) * (tre0_5_0 + tre0_8_0)) - (((FFTW_REAL) FFTW_K748510748) * (tre0_2_0 + tre0_11_0)) - (((FFTW_REAL) FFTW_K354604887) * (tre0_1_0 + tre0_12_0)); tre1_1_0 = (((FFTW_REAL) FFTW_K935016242) * (tim0_1_0 - tim0_12_0)) + (((FFTW_REAL) FFTW_K663122658) * (tim0_11_0 - tim0_2_0)) + (((FFTW_REAL) FFTW_K464723172) * (tim0_10_0 - tim0_3_0)) + (((FFTW_REAL) FFTW_K992708874) * (tim0_4_0 - tim0_9_0)) + (((FFTW_REAL) FFTW_K239315664) * (tim0_8_0 - tim0_5_0)) + (((FFTW_REAL) FFTW_K822983865) * (tim0_7_0 - tim0_6_0)); c_re(out[4 * ostride]) = tre1_0_0 + tre1_1_0; c_re(out[9 * ostride]) = tre1_0_0 - tre1_1_0; } { FFTW_REAL tim1_0_0; FFTW_REAL tim1_1_0; tim1_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K885456025) * (tim0_3_0 + tim0_10_0)) + (((FFTW_REAL) FFTW_K120536680) * (tim0_4_0 + tim0_9_0)) + (((FFTW_REAL) FFTW_K568064746) * (tim0_6_0 + tim0_7_0)) - (((FFTW_REAL) FFTW_K970941817) * (tim0_5_0 + tim0_8_0)) - (((FFTW_REAL) FFTW_K748510748) * (tim0_2_0 + tim0_11_0)) - (((FFTW_REAL) FFTW_K354604887) * (tim0_1_0 + tim0_12_0)); tim1_1_0 = (((FFTW_REAL) FFTW_K935016242) * (tre0_12_0 - tre0_1_0)) + (((FFTW_REAL) FFTW_K663122658) * (tre0_2_0 - tre0_11_0)) + (((FFTW_REAL) FFTW_K464723172) * (tre0_3_0 - tre0_10_0)) + (((FFTW_REAL) FFTW_K992708874) * (tre0_9_0 - tre0_4_0)) + (((FFTW_REAL) FFTW_K239315664) * (tre0_5_0 - tre0_8_0)) + (((FFTW_REAL) FFTW_K822983865) * (tre0_6_0 - tre0_7_0)); c_im(out[4 * ostride]) = tim1_0_0 + tim1_1_0; c_im(out[9 * ostride]) = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tre1_1_0; tre1_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K120536680) * (tre0_2_0 + tre0_11_0)) + (((FFTW_REAL) FFTW_K568064746) * (tre0_3_0 + tre0_10_0)) + (((FFTW_REAL) FFTW_K885456025) * (tre0_5_0 + tre0_8_0)) - (((FFTW_REAL) FFTW_K354604887) * (tre0_6_0 + tre0_7_0)) - (((FFTW_REAL) FFTW_K970941817) * (tre0_4_0 + tre0_9_0)) - (((FFTW_REAL) FFTW_K748510748) * (tre0_1_0 + tre0_12_0)); tre1_1_0 = (((FFTW_REAL) FFTW_K663122658) * (tim0_1_0 - tim0_12_0)) + (((FFTW_REAL) FFTW_K992708874) * (tim0_11_0 - tim0_2_0)) + (((FFTW_REAL) FFTW_K822983865) * (tim0_3_0 - tim0_10_0)) + (((FFTW_REAL) FFTW_K239315664) * (tim0_9_0 - tim0_4_0)) + (((FFTW_REAL) FFTW_K464723172) * (tim0_8_0 - tim0_5_0)) + (((FFTW_REAL) FFTW_K935016242) * (tim0_6_0 - tim0_7_0)); c_re(out[5 * ostride]) = tre1_0_0 + tre1_1_0; c_re(out[8 * ostride]) = tre1_0_0 - tre1_1_0; } { FFTW_REAL tim1_0_0; FFTW_REAL tim1_1_0; tim1_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K120536680) * (tim0_2_0 + tim0_11_0)) + (((FFTW_REAL) FFTW_K568064746) * (tim0_3_0 + tim0_10_0)) + (((FFTW_REAL) FFTW_K885456025) * (tim0_5_0 + tim0_8_0)) - (((FFTW_REAL) FFTW_K354604887) * (tim0_6_0 + tim0_7_0)) - (((FFTW_REAL) FFTW_K970941817) * (tim0_4_0 + tim0_9_0)) - (((FFTW_REAL) FFTW_K748510748) * (tim0_1_0 + tim0_12_0)); tim1_1_0 = (((FFTW_REAL) FFTW_K663122658) * (tre0_12_0 - tre0_1_0)) + (((FFTW_REAL) FFTW_K992708874) * (tre0_2_0 - tre0_11_0)) + (((FFTW_REAL) FFTW_K822983865) * (tre0_10_0 - tre0_3_0)) + (((FFTW_REAL) FFTW_K239315664) * (tre0_4_0 - tre0_9_0)) + (((FFTW_REAL) FFTW_K464723172) * (tre0_5_0 - tre0_8_0)) + (((FFTW_REAL) FFTW_K935016242) * (tre0_7_0 - tre0_6_0)); c_im(out[5 * ostride]) = tim1_0_0 + tim1_1_0; c_im(out[8 * ostride]) = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tre1_1_0; tre1_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K885456025) * (tre0_2_0 + tre0_11_0)) + (((FFTW_REAL) FFTW_K568064746) * (tre0_4_0 + tre0_9_0)) + (((FFTW_REAL) FFTW_K120536680) * (tre0_6_0 + tre0_7_0)) - (((FFTW_REAL) FFTW_K354604887) * (tre0_5_0 + tre0_8_0)) - (((FFTW_REAL) FFTW_K748510748) * (tre0_3_0 + tre0_10_0)) - (((FFTW_REAL) FFTW_K970941817) * (tre0_1_0 + tre0_12_0)); tre1_1_0 = (((FFTW_REAL) FFTW_K239315664) * (tim0_1_0 - tim0_12_0)) + (((FFTW_REAL) FFTW_K464723172) * (tim0_11_0 - tim0_2_0)) + (((FFTW_REAL) FFTW_K663122658) * (tim0_3_0 - tim0_10_0)) + (((FFTW_REAL) FFTW_K822983865) * (tim0_9_0 - tim0_4_0)) + (((FFTW_REAL) FFTW_K935016242) * (tim0_5_0 - tim0_8_0)) + (((FFTW_REAL) FFTW_K992708874) * (tim0_7_0 - tim0_6_0)); c_re(out[6 * ostride]) = tre1_0_0 + tre1_1_0; c_re(out[7 * ostride]) = tre1_0_0 - tre1_1_0; } { FFTW_REAL tim1_0_0; FFTW_REAL tim1_1_0; tim1_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K885456025) * (tim0_2_0 + tim0_11_0)) + (((FFTW_REAL) FFTW_K568064746) * (tim0_4_0 + tim0_9_0)) + (((FFTW_REAL) FFTW_K120536680) * (tim0_6_0 + tim0_7_0)) - (((FFTW_REAL) FFTW_K354604887) * (tim0_5_0 + tim0_8_0)) - (((FFTW_REAL) FFTW_K748510748) * (tim0_3_0 + tim0_10_0)) - (((FFTW_REAL) FFTW_K970941817) * (tim0_1_0 + tim0_12_0)); tim1_1_0 = (((FFTW_REAL) FFTW_K239315664) * (tre0_12_0 - tre0_1_0)) + (((FFTW_REAL) FFTW_K464723172) * (tre0_2_0 - tre0_11_0)) + (((FFTW_REAL) FFTW_K663122658) * (tre0_10_0 - tre0_3_0)) + (((FFTW_REAL) FFTW_K822983865) * (tre0_4_0 - tre0_9_0)) + (((FFTW_REAL) FFTW_K935016242) * (tre0_8_0 - tre0_5_0)) + (((FFTW_REAL) FFTW_K992708874) * (tre0_6_0 - tre0_7_0)); c_im(out[6 * ostride]) = tim1_0_0 + tim1_1_0; c_im(out[7 * ostride]) = tim1_0_0 - tim1_1_0; } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 208 FP additions and 72 FP multiplications */ void fftw_no_twiddle_14(const FFTW_COMPLEX *in, FFTW_COMPLEX *out, int istride, int ostride) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_0_1; FFTW_REAL tim0_0_1; FFTW_REAL tre0_0_2; FFTW_REAL tim0_0_2; FFTW_REAL tre0_0_3; FFTW_REAL tim0_0_3; FFTW_REAL tre0_0_4; FFTW_REAL tim0_0_4; FFTW_REAL tre0_0_5; FFTW_REAL tim0_0_5; FFTW_REAL tre0_0_6; FFTW_REAL tim0_0_6; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_1_1; FFTW_REAL tim0_1_1; FFTW_REAL tre0_1_2; FFTW_REAL tim0_1_2; FFTW_REAL tre0_1_3; FFTW_REAL tim0_1_3; FFTW_REAL tre0_1_4; FFTW_REAL tim0_1_4; FFTW_REAL tre0_1_5; FFTW_REAL tim0_1_5; FFTW_REAL tre0_1_6; FFTW_REAL tim0_1_6; { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(in[0]); tim1_0_0 = c_im(in[0]); tre1_1_0 = c_re(in[7 * istride]); tim1_1_0 = c_im(in[7 * istride]); tre0_0_0 = tre1_0_0 + tre1_1_0; tim0_0_0 = tim1_0_0 + tim1_1_0; tre0_1_0 = tre1_0_0 - tre1_1_0; tim0_1_0 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(in[2 * istride]); tim1_0_0 = c_im(in[2 * istride]); tre1_1_0 = c_re(in[9 * istride]); tim1_1_0 = c_im(in[9 * istride]); tre0_0_1 = tre1_0_0 + tre1_1_0; tim0_0_1 = tim1_0_0 + tim1_1_0; tre0_1_1 = tre1_0_0 - tre1_1_0; tim0_1_1 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(in[4 * istride]); tim1_0_0 = c_im(in[4 * istride]); tre1_1_0 = c_re(in[11 * istride]); tim1_1_0 = c_im(in[11 * istride]); tre0_0_2 = tre1_0_0 + tre1_1_0; tim0_0_2 = tim1_0_0 + tim1_1_0; tre0_1_2 = tre1_0_0 - tre1_1_0; tim0_1_2 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(in[6 * istride]); tim1_0_0 = c_im(in[6 * istride]); tre1_1_0 = c_re(in[13 * istride]); tim1_1_0 = c_im(in[13 * istride]); tre0_0_3 = tre1_0_0 + tre1_1_0; tim0_0_3 = tim1_0_0 + tim1_1_0; tre0_1_3 = tre1_0_0 - tre1_1_0; tim0_1_3 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(in[8 * istride]); tim1_0_0 = c_im(in[8 * istride]); tre1_1_0 = c_re(in[istride]); tim1_1_0 = c_im(in[istride]); tre0_0_4 = tre1_0_0 + tre1_1_0; tim0_0_4 = tim1_0_0 + tim1_1_0; tre0_1_4 = tre1_0_0 - tre1_1_0; tim0_1_4 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(in[10 * istride]); tim1_0_0 = c_im(in[10 * istride]); tre1_1_0 = c_re(in[3 * istride]); tim1_1_0 = c_im(in[3 * istride]); tre0_0_5 = tre1_0_0 + tre1_1_0; tim0_0_5 = tim1_0_0 + tim1_1_0; tre0_1_5 = tre1_0_0 - tre1_1_0; tim0_1_5 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(in[12 * istride]); tim1_0_0 = c_im(in[12 * istride]); tre1_1_0 = c_re(in[5 * istride]); tim1_1_0 = c_im(in[5 * istride]); tre0_0_6 = tre1_0_0 + tre1_1_0; tim0_0_6 = tim1_0_0 + tim1_1_0; tre0_1_6 = tre1_0_0 - tre1_1_0; tim0_1_6 = tim1_0_0 - tim1_1_0; } c_re(out[0]) = tre0_0_0 + tre0_0_1 + tre0_0_2 + tre0_0_3 + tre0_0_4 + tre0_0_5 + tre0_0_6; c_im(out[0]) = tim0_0_0 + tim0_0_1 + tim0_0_2 + tim0_0_3 + tim0_0_4 + tim0_0_5 + tim0_0_6; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K623489801) * (tre0_0_1 + tre0_0_6)) - (((FFTW_REAL) FFTW_K900968867) * (tre0_0_3 + tre0_0_4)) - (((FFTW_REAL) FFTW_K222520933) * (tre0_0_2 + tre0_0_5)); tre2_1_0 = (((FFTW_REAL) FFTW_K781831482) * (tim0_0_1 - tim0_0_6)) + (((FFTW_REAL) FFTW_K974927912) * (tim0_0_2 - tim0_0_5)) + (((FFTW_REAL) FFTW_K433883739) * (tim0_0_3 - tim0_0_4)); c_re(out[8 * ostride]) = tre2_0_0 + tre2_1_0; c_re(out[6 * ostride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K623489801) * (tim0_0_1 + tim0_0_6)) - (((FFTW_REAL) FFTW_K900968867) * (tim0_0_3 + tim0_0_4)) - (((FFTW_REAL) FFTW_K222520933) * (tim0_0_2 + tim0_0_5)); tim2_1_0 = (((FFTW_REAL) FFTW_K781831482) * (tre0_0_6 - tre0_0_1)) + (((FFTW_REAL) FFTW_K974927912) * (tre0_0_5 - tre0_0_2)) + (((FFTW_REAL) FFTW_K433883739) * (tre0_0_4 - tre0_0_3)); c_im(out[8 * ostride]) = tim2_0_0 + tim2_1_0; c_im(out[6 * ostride]) = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K623489801) * (tre0_0_3 + tre0_0_4)) - (((FFTW_REAL) FFTW_K900968867) * (tre0_0_2 + tre0_0_5)) - (((FFTW_REAL) FFTW_K222520933) * (tre0_0_1 + tre0_0_6)); tre2_1_0 = (((FFTW_REAL) FFTW_K974927912) * (tim0_0_1 - tim0_0_6)) + (((FFTW_REAL) FFTW_K433883739) * (tim0_0_5 - tim0_0_2)) + (((FFTW_REAL) FFTW_K781831482) * (tim0_0_4 - tim0_0_3)); c_re(out[2 * ostride]) = tre2_0_0 + tre2_1_0; c_re(out[12 * ostride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K623489801) * (tim0_0_3 + tim0_0_4)) - (((FFTW_REAL) FFTW_K900968867) * (tim0_0_2 + tim0_0_5)) - (((FFTW_REAL) FFTW_K222520933) * (tim0_0_1 + tim0_0_6)); tim2_1_0 = (((FFTW_REAL) FFTW_K974927912) * (tre0_0_6 - tre0_0_1)) + (((FFTW_REAL) FFTW_K433883739) * (tre0_0_2 - tre0_0_5)) + (((FFTW_REAL) FFTW_K781831482) * (tre0_0_3 - tre0_0_4)); c_im(out[2 * ostride]) = tim2_0_0 + tim2_1_0; c_im(out[12 * ostride]) = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K623489801) * (tre0_0_2 + tre0_0_5)) - (((FFTW_REAL) FFTW_K222520933) * (tre0_0_3 + tre0_0_4)) - (((FFTW_REAL) FFTW_K900968867) * (tre0_0_1 + tre0_0_6)); tre2_1_0 = (((FFTW_REAL) FFTW_K433883739) * (tim0_0_1 - tim0_0_6)) + (((FFTW_REAL) FFTW_K781831482) * (tim0_0_5 - tim0_0_2)) + (((FFTW_REAL) FFTW_K974927912) * (tim0_0_3 - tim0_0_4)); c_re(out[10 * ostride]) = tre2_0_0 + tre2_1_0; c_re(out[4 * ostride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K623489801) * (tim0_0_2 + tim0_0_5)) - (((FFTW_REAL) FFTW_K222520933) * (tim0_0_3 + tim0_0_4)) - (((FFTW_REAL) FFTW_K900968867) * (tim0_0_1 + tim0_0_6)); tim2_1_0 = (((FFTW_REAL) FFTW_K433883739) * (tre0_0_6 - tre0_0_1)) + (((FFTW_REAL) FFTW_K781831482) * (tre0_0_2 - tre0_0_5)) + (((FFTW_REAL) FFTW_K974927912) * (tre0_0_4 - tre0_0_3)); c_im(out[10 * ostride]) = tim2_0_0 + tim2_1_0; c_im(out[4 * ostride]) = tim2_0_0 - tim2_1_0; } c_re(out[7 * ostride]) = tre0_1_0 + tre0_1_1 + tre0_1_2 + tre0_1_3 + tre0_1_4 + tre0_1_5 + tre0_1_6; c_im(out[7 * ostride]) = tim0_1_0 + tim0_1_1 + tim0_1_2 + tim0_1_3 + tim0_1_4 + tim0_1_5 + tim0_1_6; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_1_0 + (((FFTW_REAL) FFTW_K623489801) * (tre0_1_1 + tre0_1_6)) - (((FFTW_REAL) FFTW_K900968867) * (tre0_1_3 + tre0_1_4)) - (((FFTW_REAL) FFTW_K222520933) * (tre0_1_2 + tre0_1_5)); tre2_1_0 = (((FFTW_REAL) FFTW_K781831482) * (tim0_1_1 - tim0_1_6)) + (((FFTW_REAL) FFTW_K974927912) * (tim0_1_2 - tim0_1_5)) + (((FFTW_REAL) FFTW_K433883739) * (tim0_1_3 - tim0_1_4)); c_re(out[ostride]) = tre2_0_0 + tre2_1_0; c_re(out[13 * ostride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_1_0 + (((FFTW_REAL) FFTW_K623489801) * (tim0_1_1 + tim0_1_6)) - (((FFTW_REAL) FFTW_K900968867) * (tim0_1_3 + tim0_1_4)) - (((FFTW_REAL) FFTW_K222520933) * (tim0_1_2 + tim0_1_5)); tim2_1_0 = (((FFTW_REAL) FFTW_K781831482) * (tre0_1_6 - tre0_1_1)) + (((FFTW_REAL) FFTW_K974927912) * (tre0_1_5 - tre0_1_2)) + (((FFTW_REAL) FFTW_K433883739) * (tre0_1_4 - tre0_1_3)); c_im(out[ostride]) = tim2_0_0 + tim2_1_0; c_im(out[13 * ostride]) = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_1_0 + (((FFTW_REAL) FFTW_K623489801) * (tre0_1_3 + tre0_1_4)) - (((FFTW_REAL) FFTW_K900968867) * (tre0_1_2 + tre0_1_5)) - (((FFTW_REAL) FFTW_K222520933) * (tre0_1_1 + tre0_1_6)); tre2_1_0 = (((FFTW_REAL) FFTW_K974927912) * (tim0_1_1 - tim0_1_6)) + (((FFTW_REAL) FFTW_K433883739) * (tim0_1_5 - tim0_1_2)) + (((FFTW_REAL) FFTW_K781831482) * (tim0_1_4 - tim0_1_3)); c_re(out[9 * ostride]) = tre2_0_0 + tre2_1_0; c_re(out[5 * ostride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_1_0 + (((FFTW_REAL) FFTW_K623489801) * (tim0_1_3 + tim0_1_4)) - (((FFTW_REAL) FFTW_K900968867) * (tim0_1_2 + tim0_1_5)) - (((FFTW_REAL) FFTW_K222520933) * (tim0_1_1 + tim0_1_6)); tim2_1_0 = (((FFTW_REAL) FFTW_K974927912) * (tre0_1_6 - tre0_1_1)) + (((FFTW_REAL) FFTW_K433883739) * (tre0_1_2 - tre0_1_5)) + (((FFTW_REAL) FFTW_K781831482) * (tre0_1_3 - tre0_1_4)); c_im(out[9 * ostride]) = tim2_0_0 + tim2_1_0; c_im(out[5 * ostride]) = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_1_0 + (((FFTW_REAL) FFTW_K623489801) * (tre0_1_2 + tre0_1_5)) - (((FFTW_REAL) FFTW_K222520933) * (tre0_1_3 + tre0_1_4)) - (((FFTW_REAL) FFTW_K900968867) * (tre0_1_1 + tre0_1_6)); tre2_1_0 = (((FFTW_REAL) FFTW_K433883739) * (tim0_1_1 - tim0_1_6)) + (((FFTW_REAL) FFTW_K781831482) * (tim0_1_5 - tim0_1_2)) + (((FFTW_REAL) FFTW_K974927912) * (tim0_1_3 - tim0_1_4)); c_re(out[3 * ostride]) = tre2_0_0 + tre2_1_0; c_re(out[11 * ostride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_1_0 + (((FFTW_REAL) FFTW_K623489801) * (tim0_1_2 + tim0_1_5)) - (((FFTW_REAL) FFTW_K222520933) * (tim0_1_3 + tim0_1_4)) - (((FFTW_REAL) FFTW_K900968867) * (tim0_1_1 + tim0_1_6)); tim2_1_0 = (((FFTW_REAL) FFTW_K433883739) * (tre0_1_6 - tre0_1_1)) + (((FFTW_REAL) FFTW_K781831482) * (tre0_1_2 - tre0_1_5)) + (((FFTW_REAL) FFTW_K974927912) * (tre0_1_4 - tre0_1_3)); c_im(out[3 * ostride]) = tim2_0_0 + tim2_1_0; c_im(out[11 * ostride]) = tim2_0_0 - tim2_1_0; } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 202 FP additions and 68 FP multiplications */ void fftw_no_twiddle_15(const FFTW_COMPLEX *in, FFTW_COMPLEX *out, int istride, int ostride) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_0_1; FFTW_REAL tim0_0_1; FFTW_REAL tre0_0_2; FFTW_REAL tim0_0_2; FFTW_REAL tre0_0_3; FFTW_REAL tim0_0_3; FFTW_REAL tre0_0_4; FFTW_REAL tim0_0_4; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_1_1; FFTW_REAL tim0_1_1; FFTW_REAL tre0_1_2; FFTW_REAL tim0_1_2; FFTW_REAL tre0_1_3; FFTW_REAL tim0_1_3; FFTW_REAL tre0_1_4; FFTW_REAL tim0_1_4; FFTW_REAL tre0_2_0; FFTW_REAL tim0_2_0; FFTW_REAL tre0_2_1; FFTW_REAL tim0_2_1; FFTW_REAL tre0_2_2; FFTW_REAL tim0_2_2; FFTW_REAL tre0_2_3; FFTW_REAL tim0_2_3; FFTW_REAL tre0_2_4; FFTW_REAL tim0_2_4; { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_2_0; FFTW_REAL tim1_2_0; tre1_0_0 = c_re(in[0]); tim1_0_0 = c_im(in[0]); tre1_1_0 = c_re(in[5 * istride]); tim1_1_0 = c_im(in[5 * istride]); tre1_2_0 = c_re(in[10 * istride]); tim1_2_0 = c_im(in[10 * istride]); tre0_0_0 = tre1_0_0 + tre1_1_0 + tre1_2_0; tim0_0_0 = tim1_0_0 + tim1_1_0 + tim1_2_0; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tre1_1_0 + tre1_2_0)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim1_1_0 - tim1_2_0); tre0_1_0 = tre2_0_0 + tre2_1_0; tre0_2_0 = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tim1_1_0 + tim1_2_0)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre1_2_0 - tre1_1_0); tim0_1_0 = tim2_0_0 + tim2_1_0; tim0_2_0 = tim2_0_0 - tim2_1_0; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_2_0; FFTW_REAL tim1_2_0; tre1_0_0 = c_re(in[3 * istride]); tim1_0_0 = c_im(in[3 * istride]); tre1_1_0 = c_re(in[8 * istride]); tim1_1_0 = c_im(in[8 * istride]); tre1_2_0 = c_re(in[13 * istride]); tim1_2_0 = c_im(in[13 * istride]); tre0_0_1 = tre1_0_0 + tre1_1_0 + tre1_2_0; tim0_0_1 = tim1_0_0 + tim1_1_0 + tim1_2_0; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tre1_1_0 + tre1_2_0)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim1_1_0 - tim1_2_0); tre0_1_1 = tre2_0_0 + tre2_1_0; tre0_2_1 = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tim1_1_0 + tim1_2_0)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre1_2_0 - tre1_1_0); tim0_1_1 = tim2_0_0 + tim2_1_0; tim0_2_1 = tim2_0_0 - tim2_1_0; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_2_0; FFTW_REAL tim1_2_0; tre1_0_0 = c_re(in[6 * istride]); tim1_0_0 = c_im(in[6 * istride]); tre1_1_0 = c_re(in[11 * istride]); tim1_1_0 = c_im(in[11 * istride]); tre1_2_0 = c_re(in[istride]); tim1_2_0 = c_im(in[istride]); tre0_0_2 = tre1_0_0 + tre1_1_0 + tre1_2_0; tim0_0_2 = tim1_0_0 + tim1_1_0 + tim1_2_0; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tre1_1_0 + tre1_2_0)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim1_1_0 - tim1_2_0); tre0_1_2 = tre2_0_0 + tre2_1_0; tre0_2_2 = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tim1_1_0 + tim1_2_0)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre1_2_0 - tre1_1_0); tim0_1_2 = tim2_0_0 + tim2_1_0; tim0_2_2 = tim2_0_0 - tim2_1_0; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_2_0; FFTW_REAL tim1_2_0; tre1_0_0 = c_re(in[9 * istride]); tim1_0_0 = c_im(in[9 * istride]); tre1_1_0 = c_re(in[14 * istride]); tim1_1_0 = c_im(in[14 * istride]); tre1_2_0 = c_re(in[4 * istride]); tim1_2_0 = c_im(in[4 * istride]); tre0_0_3 = tre1_0_0 + tre1_1_0 + tre1_2_0; tim0_0_3 = tim1_0_0 + tim1_1_0 + tim1_2_0; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tre1_1_0 + tre1_2_0)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim1_1_0 - tim1_2_0); tre0_1_3 = tre2_0_0 + tre2_1_0; tre0_2_3 = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tim1_1_0 + tim1_2_0)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre1_2_0 - tre1_1_0); tim0_1_3 = tim2_0_0 + tim2_1_0; tim0_2_3 = tim2_0_0 - tim2_1_0; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_2_0; FFTW_REAL tim1_2_0; tre1_0_0 = c_re(in[12 * istride]); tim1_0_0 = c_im(in[12 * istride]); tre1_1_0 = c_re(in[2 * istride]); tim1_1_0 = c_im(in[2 * istride]); tre1_2_0 = c_re(in[7 * istride]); tim1_2_0 = c_im(in[7 * istride]); tre0_0_4 = tre1_0_0 + tre1_1_0 + tre1_2_0; tim0_0_4 = tim1_0_0 + tim1_1_0 + tim1_2_0; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tre1_1_0 + tre1_2_0)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim1_1_0 - tim1_2_0); tre0_1_4 = tre2_0_0 + tre2_1_0; tre0_2_4 = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tim1_1_0 + tim1_2_0)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre1_2_0 - tre1_1_0); tim0_1_4 = tim2_0_0 + tim2_1_0; tim0_2_4 = tim2_0_0 - tim2_1_0; } } c_re(out[0]) = tre0_0_0 + tre0_0_1 + tre0_0_2 + tre0_0_3 + tre0_0_4; c_im(out[0]) = tim0_0_0 + tim0_0_1 + tim0_0_2 + tim0_0_3 + tim0_0_4; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K309016994) * (tre0_0_1 + tre0_0_4)) - (((FFTW_REAL) FFTW_K809016994) * (tre0_0_2 + tre0_0_3)); tre2_1_0 = (((FFTW_REAL) FFTW_K951056516) * (tim0_0_1 - tim0_0_4)) + (((FFTW_REAL) FFTW_K587785252) * (tim0_0_2 - tim0_0_3)); c_re(out[6 * ostride]) = tre2_0_0 + tre2_1_0; c_re(out[9 * ostride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K309016994) * (tim0_0_1 + tim0_0_4)) - (((FFTW_REAL) FFTW_K809016994) * (tim0_0_2 + tim0_0_3)); tim2_1_0 = (((FFTW_REAL) FFTW_K951056516) * (tre0_0_4 - tre0_0_1)) + (((FFTW_REAL) FFTW_K587785252) * (tre0_0_3 - tre0_0_2)); c_im(out[6 * ostride]) = tim2_0_0 + tim2_1_0; c_im(out[9 * ostride]) = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K309016994) * (tre0_0_2 + tre0_0_3)) - (((FFTW_REAL) FFTW_K809016994) * (tre0_0_1 + tre0_0_4)); tre2_1_0 = (((FFTW_REAL) FFTW_K587785252) * (tim0_0_1 - tim0_0_4)) + (((FFTW_REAL) FFTW_K951056516) * (tim0_0_3 - tim0_0_2)); c_re(out[12 * ostride]) = tre2_0_0 + tre2_1_0; c_re(out[3 * ostride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K309016994) * (tim0_0_2 + tim0_0_3)) - (((FFTW_REAL) FFTW_K809016994) * (tim0_0_1 + tim0_0_4)); tim2_1_0 = (((FFTW_REAL) FFTW_K587785252) * (tre0_0_4 - tre0_0_1)) + (((FFTW_REAL) FFTW_K951056516) * (tre0_0_2 - tre0_0_3)); c_im(out[12 * ostride]) = tim2_0_0 + tim2_1_0; c_im(out[3 * ostride]) = tim2_0_0 - tim2_1_0; } c_re(out[10 * ostride]) = tre0_1_0 + tre0_1_1 + tre0_1_2 + tre0_1_3 + tre0_1_4; c_im(out[10 * ostride]) = tim0_1_0 + tim0_1_1 + tim0_1_2 + tim0_1_3 + tim0_1_4; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_1_0 + (((FFTW_REAL) FFTW_K309016994) * (tre0_1_1 + tre0_1_4)) - (((FFTW_REAL) FFTW_K809016994) * (tre0_1_2 + tre0_1_3)); tre2_1_0 = (((FFTW_REAL) FFTW_K951056516) * (tim0_1_1 - tim0_1_4)) + (((FFTW_REAL) FFTW_K587785252) * (tim0_1_2 - tim0_1_3)); c_re(out[ostride]) = tre2_0_0 + tre2_1_0; c_re(out[4 * ostride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_1_0 + (((FFTW_REAL) FFTW_K309016994) * (tim0_1_1 + tim0_1_4)) - (((FFTW_REAL) FFTW_K809016994) * (tim0_1_2 + tim0_1_3)); tim2_1_0 = (((FFTW_REAL) FFTW_K951056516) * (tre0_1_4 - tre0_1_1)) + (((FFTW_REAL) FFTW_K587785252) * (tre0_1_3 - tre0_1_2)); c_im(out[ostride]) = tim2_0_0 + tim2_1_0; c_im(out[4 * ostride]) = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_1_0 + (((FFTW_REAL) FFTW_K309016994) * (tre0_1_2 + tre0_1_3)) - (((FFTW_REAL) FFTW_K809016994) * (tre0_1_1 + tre0_1_4)); tre2_1_0 = (((FFTW_REAL) FFTW_K587785252) * (tim0_1_1 - tim0_1_4)) + (((FFTW_REAL) FFTW_K951056516) * (tim0_1_3 - tim0_1_2)); c_re(out[7 * ostride]) = tre2_0_0 + tre2_1_0; c_re(out[13 * ostride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_1_0 + (((FFTW_REAL) FFTW_K309016994) * (tim0_1_2 + tim0_1_3)) - (((FFTW_REAL) FFTW_K809016994) * (tim0_1_1 + tim0_1_4)); tim2_1_0 = (((FFTW_REAL) FFTW_K587785252) * (tre0_1_4 - tre0_1_1)) + (((FFTW_REAL) FFTW_K951056516) * (tre0_1_2 - tre0_1_3)); c_im(out[7 * ostride]) = tim2_0_0 + tim2_1_0; c_im(out[13 * ostride]) = tim2_0_0 - tim2_1_0; } c_re(out[5 * ostride]) = tre0_2_0 + tre0_2_1 + tre0_2_2 + tre0_2_3 + tre0_2_4; c_im(out[5 * ostride]) = tim0_2_0 + tim0_2_1 + tim0_2_2 + tim0_2_3 + tim0_2_4; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_2_0 + (((FFTW_REAL) FFTW_K309016994) * (tre0_2_1 + tre0_2_4)) - (((FFTW_REAL) FFTW_K809016994) * (tre0_2_2 + tre0_2_3)); tre2_1_0 = (((FFTW_REAL) FFTW_K951056516) * (tim0_2_1 - tim0_2_4)) + (((FFTW_REAL) FFTW_K587785252) * (tim0_2_2 - tim0_2_3)); c_re(out[11 * ostride]) = tre2_0_0 + tre2_1_0; c_re(out[14 * ostride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_2_0 + (((FFTW_REAL) FFTW_K309016994) * (tim0_2_1 + tim0_2_4)) - (((FFTW_REAL) FFTW_K809016994) * (tim0_2_2 + tim0_2_3)); tim2_1_0 = (((FFTW_REAL) FFTW_K951056516) * (tre0_2_4 - tre0_2_1)) + (((FFTW_REAL) FFTW_K587785252) * (tre0_2_3 - tre0_2_2)); c_im(out[11 * ostride]) = tim2_0_0 + tim2_1_0; c_im(out[14 * ostride]) = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_2_0 + (((FFTW_REAL) FFTW_K309016994) * (tre0_2_2 + tre0_2_3)) - (((FFTW_REAL) FFTW_K809016994) * (tre0_2_1 + tre0_2_4)); tre2_1_0 = (((FFTW_REAL) FFTW_K587785252) * (tim0_2_1 - tim0_2_4)) + (((FFTW_REAL) FFTW_K951056516) * (tim0_2_3 - tim0_2_2)); c_re(out[2 * ostride]) = tre2_0_0 + tre2_1_0; c_re(out[8 * ostride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_2_0 + (((FFTW_REAL) FFTW_K309016994) * (tim0_2_2 + tim0_2_3)) - (((FFTW_REAL) FFTW_K809016994) * (tim0_2_1 + tim0_2_4)); tim2_1_0 = (((FFTW_REAL) FFTW_K587785252) * (tre0_2_4 - tre0_2_1)) + (((FFTW_REAL) FFTW_K951056516) * (tre0_2_2 - tre0_2_3)); c_im(out[2 * ostride]) = tim2_0_0 + tim2_1_0; c_im(out[8 * ostride]) = tim2_0_0 - tim2_1_0; } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 144 FP additions and 24 FP multiplications */ void fftw_no_twiddle_16(const FFTW_COMPLEX *in, FFTW_COMPLEX *out, int istride, int ostride) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_0_1; FFTW_REAL tim0_0_1; FFTW_REAL tre0_0_2; FFTW_REAL tim0_0_2; FFTW_REAL tre0_0_3; FFTW_REAL tim0_0_3; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_1_1; FFTW_REAL tim0_1_1; FFTW_REAL tre0_1_2; FFTW_REAL tim0_1_2; FFTW_REAL tre0_1_3; FFTW_REAL tim0_1_3; FFTW_REAL tre0_2_0; FFTW_REAL tim0_2_0; FFTW_REAL tre0_2_1; FFTW_REAL tim0_2_1; FFTW_REAL tre0_2_2; FFTW_REAL tim0_2_2; FFTW_REAL tre0_2_3; FFTW_REAL tim0_2_3; FFTW_REAL tre0_3_0; FFTW_REAL tim0_3_0; FFTW_REAL tre0_3_1; FFTW_REAL tim0_3_1; FFTW_REAL tre0_3_2; FFTW_REAL tim0_3_2; FFTW_REAL tre0_3_3; FFTW_REAL tim0_3_3; { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[0]); tim2_0_0 = c_im(in[0]); tre2_1_0 = c_re(in[8 * istride]); tim2_1_0 = c_im(in[8 * istride]); tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[4 * istride]); tim2_0_0 = c_im(in[4 * istride]); tre2_1_0 = c_re(in[12 * istride]); tim2_1_0 = c_im(in[12 * istride]); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } tre0_0_0 = tre1_0_0 + tre1_0_1; tim0_0_0 = tim1_0_0 + tim1_0_1; tre0_2_0 = tre1_0_0 - tre1_0_1; tim0_2_0 = tim1_0_0 - tim1_0_1; tre0_1_0 = tre1_1_0 + tim1_1_1; tim0_1_0 = tim1_1_0 - tre1_1_1; tre0_3_0 = tre1_1_0 - tim1_1_1; tim0_3_0 = tim1_1_0 + tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[istride]); tim2_0_0 = c_im(in[istride]); tre2_1_0 = c_re(in[9 * istride]); tim2_1_0 = c_im(in[9 * istride]); tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[5 * istride]); tim2_0_0 = c_im(in[5 * istride]); tre2_1_0 = c_re(in[13 * istride]); tim2_1_0 = c_im(in[13 * istride]); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } tre0_0_1 = tre1_0_0 + tre1_0_1; tim0_0_1 = tim1_0_0 + tim1_0_1; tre0_2_1 = tre1_0_0 - tre1_0_1; tim0_2_1 = tim1_0_0 - tim1_0_1; tre0_1_1 = tre1_1_0 + tim1_1_1; tim0_1_1 = tim1_1_0 - tre1_1_1; tre0_3_1 = tre1_1_0 - tim1_1_1; tim0_3_1 = tim1_1_0 + tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[2 * istride]); tim2_0_0 = c_im(in[2 * istride]); tre2_1_0 = c_re(in[10 * istride]); tim2_1_0 = c_im(in[10 * istride]); tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[6 * istride]); tim2_0_0 = c_im(in[6 * istride]); tre2_1_0 = c_re(in[14 * istride]); tim2_1_0 = c_im(in[14 * istride]); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } tre0_0_2 = tre1_0_0 + tre1_0_1; tim0_0_2 = tim1_0_0 + tim1_0_1; tre0_2_2 = tre1_0_0 - tre1_0_1; tim0_2_2 = tim1_0_0 - tim1_0_1; tre0_1_2 = tre1_1_0 + tim1_1_1; tim0_1_2 = tim1_1_0 - tre1_1_1; tre0_3_2 = tre1_1_0 - tim1_1_1; tim0_3_2 = tim1_1_0 + tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[3 * istride]); tim2_0_0 = c_im(in[3 * istride]); tre2_1_0 = c_re(in[11 * istride]); tim2_1_0 = c_im(in[11 * istride]); tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[7 * istride]); tim2_0_0 = c_im(in[7 * istride]); tre2_1_0 = c_re(in[15 * istride]); tim2_1_0 = c_im(in[15 * istride]); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } tre0_0_3 = tre1_0_0 + tre1_0_1; tim0_0_3 = tim1_0_0 + tim1_0_1; tre0_2_3 = tre1_0_0 - tre1_0_1; tim0_2_3 = tim1_0_0 - tim1_0_1; tre0_1_3 = tre1_1_0 + tim1_1_1; tim0_1_3 = tim1_1_0 - tre1_1_1; tre0_3_3 = tre1_1_0 - tim1_1_1; tim0_3_3 = tim1_1_0 + tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; tre1_0_0 = tre0_0_0 + tre0_0_2; tim1_0_0 = tim0_0_0 + tim0_0_2; tre1_1_0 = tre0_0_0 - tre0_0_2; tim1_1_0 = tim0_0_0 - tim0_0_2; tre1_0_1 = tre0_0_1 + tre0_0_3; tim1_0_1 = tim0_0_1 + tim0_0_3; tre1_1_1 = tre0_0_1 - tre0_0_3; tim1_1_1 = tim0_0_1 - tim0_0_3; c_re(out[0]) = tre1_0_0 + tre1_0_1; c_im(out[0]) = tim1_0_0 + tim1_0_1; c_re(out[8 * ostride]) = tre1_0_0 - tre1_0_1; c_im(out[8 * ostride]) = tim1_0_0 - tim1_0_1; c_re(out[4 * ostride]) = tre1_1_0 + tim1_1_1; c_im(out[4 * ostride]) = tim1_1_0 - tre1_1_1; c_re(out[12 * ostride]) = tre1_1_0 - tim1_1_1; c_im(out[12 * ostride]) = tim1_1_0 + tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_1_2 + tim0_1_2); tim2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_1_2 - tre0_1_2); tre1_0_0 = tre0_1_0 + tre2_1_0; tim1_0_0 = tim0_1_0 + tim2_1_0; tre1_1_0 = tre0_1_0 - tre2_1_0; tim1_1_0 = tim0_1_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K923879532) * tre0_1_1) + (((FFTW_REAL) FFTW_K382683432) * tim0_1_1); tim2_0_0 = (((FFTW_REAL) FFTW_K923879532) * tim0_1_1) - (((FFTW_REAL) FFTW_K382683432) * tre0_1_1); tre2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_1_3) + (((FFTW_REAL) FFTW_K923879532) * tim0_1_3); tim2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_1_3) - (((FFTW_REAL) FFTW_K923879532) * tre0_1_3); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } c_re(out[ostride]) = tre1_0_0 + tre1_0_1; c_im(out[ostride]) = tim1_0_0 + tim1_0_1; c_re(out[9 * ostride]) = tre1_0_0 - tre1_0_1; c_im(out[9 * ostride]) = tim1_0_0 - tim1_0_1; c_re(out[5 * ostride]) = tre1_1_0 + tim1_1_1; c_im(out[5 * ostride]) = tim1_1_0 - tre1_1_1; c_re(out[13 * ostride]) = tre1_1_0 - tim1_1_1; c_im(out[13 * ostride]) = tim1_1_0 + tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; tre1_0_0 = tre0_2_0 + tim0_2_2; tim1_0_0 = tim0_2_0 - tre0_2_2; tre1_1_0 = tre0_2_0 - tim0_2_2; tim1_1_0 = tim0_2_0 + tre0_2_2; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_2_1 + tim0_2_1); tim2_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_2_1 - tre0_2_1); tre2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_2_3 - tre0_2_3); tim2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_2_3 + tre0_2_3); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 - tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 + tim2_1_0; } c_re(out[2 * ostride]) = tre1_0_0 + tre1_0_1; c_im(out[2 * ostride]) = tim1_0_0 + tim1_0_1; c_re(out[10 * ostride]) = tre1_0_0 - tre1_0_1; c_im(out[10 * ostride]) = tim1_0_0 - tim1_0_1; c_re(out[6 * ostride]) = tre1_1_0 + tim1_1_1; c_im(out[6 * ostride]) = tim1_1_0 - tre1_1_1; c_re(out[14 * ostride]) = tre1_1_0 - tim1_1_1; c_im(out[14 * ostride]) = tim1_1_0 + tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_3_2 - tre0_3_2); tim2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_3_2 + tre0_3_2); tre1_0_0 = tre0_3_0 + tre2_1_0; tim1_0_0 = tim0_3_0 - tim2_1_0; tre1_1_0 = tre0_3_0 - tre2_1_0; tim1_1_0 = tim0_3_0 + tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_3_1) + (((FFTW_REAL) FFTW_K923879532) * tim0_3_1); tim2_0_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_3_1) - (((FFTW_REAL) FFTW_K923879532) * tre0_3_1); tre2_1_0 = (((FFTW_REAL) FFTW_K923879532) * tre0_3_3) + (((FFTW_REAL) FFTW_K382683432) * tim0_3_3); tim2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_3_3) - (((FFTW_REAL) FFTW_K923879532) * tim0_3_3); tre1_0_1 = tre2_0_0 - tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 + tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } c_re(out[3 * ostride]) = tre1_0_0 + tre1_0_1; c_im(out[3 * ostride]) = tim1_0_0 + tim1_0_1; c_re(out[11 * ostride]) = tre1_0_0 - tre1_0_1; c_im(out[11 * ostride]) = tim1_0_0 - tim1_0_1; c_re(out[7 * ostride]) = tre1_1_0 + tim1_1_1; c_im(out[7 * ostride]) = tim1_1_0 - tre1_1_1; c_re(out[15 * ostride]) = tre1_1_0 - tim1_1_1; c_im(out[15 * ostride]) = tim1_1_0 + tre1_1_1; } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 4 FP additions and 0 FP multiplications */ void fftw_no_twiddle_2(const FFTW_COMPLEX *in, FFTW_COMPLEX *out, int istride, int ostride) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; tre0_0_0 = c_re(in[0]); tim0_0_0 = c_im(in[0]); tre0_1_0 = c_re(in[istride]); tim0_1_0 = c_im(in[istride]); c_re(out[0]) = tre0_0_0 + tre0_1_0; c_im(out[0]) = tim0_0_0 + tim0_1_0; c_re(out[ostride]) = tre0_0_0 - tre0_1_0; c_im(out[ostride]) = tim0_0_0 - tim0_1_0; } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 14 FP additions and 4 FP multiplications */ void fftw_no_twiddle_3(const FFTW_COMPLEX *in, FFTW_COMPLEX *out, int istride, int ostride) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_2_0; FFTW_REAL tim0_2_0; tre0_0_0 = c_re(in[0]); tim0_0_0 = c_im(in[0]); tre0_1_0 = c_re(in[istride]); tim0_1_0 = c_im(in[istride]); tre0_2_0 = c_re(in[2 * istride]); tim0_2_0 = c_im(in[2 * istride]); c_re(out[0]) = tre0_0_0 + tre0_1_0 + tre0_2_0; c_im(out[0]) = tim0_0_0 + tim0_1_0 + tim0_2_0; { FFTW_REAL tre1_0_0; FFTW_REAL tre1_1_0; tre1_0_0 = tre0_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tre0_1_0 + tre0_2_0)); tre1_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim0_1_0 - tim0_2_0); c_re(out[ostride]) = tre1_0_0 + tre1_1_0; c_re(out[2 * ostride]) = tre1_0_0 - tre1_1_0; } { FFTW_REAL tim1_0_0; FFTW_REAL tim1_1_0; tim1_0_0 = tim0_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tim0_1_0 + tim0_2_0)); tim1_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre0_2_0 - tre0_1_0); c_im(out[ostride]) = tim1_0_0 + tim1_1_0; c_im(out[2 * ostride]) = tim1_0_0 - tim1_1_0; } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 376 FP additions and 88 FP multiplications */ void fftw_no_twiddle_32(const FFTW_COMPLEX *in, FFTW_COMPLEX *out, int istride, int ostride) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_0_1; FFTW_REAL tim0_0_1; FFTW_REAL tre0_0_2; FFTW_REAL tim0_0_2; FFTW_REAL tre0_0_3; FFTW_REAL tim0_0_3; FFTW_REAL tre0_0_4; FFTW_REAL tim0_0_4; FFTW_REAL tre0_0_5; FFTW_REAL tim0_0_5; FFTW_REAL tre0_0_6; FFTW_REAL tim0_0_6; FFTW_REAL tre0_0_7; FFTW_REAL tim0_0_7; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_1_1; FFTW_REAL tim0_1_1; FFTW_REAL tre0_1_2; FFTW_REAL tim0_1_2; FFTW_REAL tre0_1_3; FFTW_REAL tim0_1_3; FFTW_REAL tre0_1_4; FFTW_REAL tim0_1_4; FFTW_REAL tre0_1_5; FFTW_REAL tim0_1_5; FFTW_REAL tre0_1_6; FFTW_REAL tim0_1_6; FFTW_REAL tre0_1_7; FFTW_REAL tim0_1_7; FFTW_REAL tre0_2_0; FFTW_REAL tim0_2_0; FFTW_REAL tre0_2_1; FFTW_REAL tim0_2_1; FFTW_REAL tre0_2_2; FFTW_REAL tim0_2_2; FFTW_REAL tre0_2_3; FFTW_REAL tim0_2_3; FFTW_REAL tre0_2_4; FFTW_REAL tim0_2_4; FFTW_REAL tre0_2_5; FFTW_REAL tim0_2_5; FFTW_REAL tre0_2_6; FFTW_REAL tim0_2_6; FFTW_REAL tre0_2_7; FFTW_REAL tim0_2_7; FFTW_REAL tre0_3_0; FFTW_REAL tim0_3_0; FFTW_REAL tre0_3_1; FFTW_REAL tim0_3_1; FFTW_REAL tre0_3_2; FFTW_REAL tim0_3_2; FFTW_REAL tre0_3_3; FFTW_REAL tim0_3_3; FFTW_REAL tre0_3_4; FFTW_REAL tim0_3_4; FFTW_REAL tre0_3_5; FFTW_REAL tim0_3_5; FFTW_REAL tre0_3_6; FFTW_REAL tim0_3_6; FFTW_REAL tre0_3_7; FFTW_REAL tim0_3_7; { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[0]); tim2_0_0 = c_im(in[0]); tre2_1_0 = c_re(in[16 * istride]); tim2_1_0 = c_im(in[16 * istride]); tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[8 * istride]); tim2_0_0 = c_im(in[8 * istride]); tre2_1_0 = c_re(in[24 * istride]); tim2_1_0 = c_im(in[24 * istride]); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } tre0_0_0 = tre1_0_0 + tre1_0_1; tim0_0_0 = tim1_0_0 + tim1_0_1; tre0_2_0 = tre1_0_0 - tre1_0_1; tim0_2_0 = tim1_0_0 - tim1_0_1; tre0_1_0 = tre1_1_0 + tim1_1_1; tim0_1_0 = tim1_1_0 - tre1_1_1; tre0_3_0 = tre1_1_0 - tim1_1_1; tim0_3_0 = tim1_1_0 + tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[istride]); tim2_0_0 = c_im(in[istride]); tre2_1_0 = c_re(in[17 * istride]); tim2_1_0 = c_im(in[17 * istride]); tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[9 * istride]); tim2_0_0 = c_im(in[9 * istride]); tre2_1_0 = c_re(in[25 * istride]); tim2_1_0 = c_im(in[25 * istride]); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } tre0_0_1 = tre1_0_0 + tre1_0_1; tim0_0_1 = tim1_0_0 + tim1_0_1; tre0_2_1 = tre1_0_0 - tre1_0_1; tim0_2_1 = tim1_0_0 - tim1_0_1; tre0_1_1 = tre1_1_0 + tim1_1_1; tim0_1_1 = tim1_1_0 - tre1_1_1; tre0_3_1 = tre1_1_0 - tim1_1_1; tim0_3_1 = tim1_1_0 + tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[2 * istride]); tim2_0_0 = c_im(in[2 * istride]); tre2_1_0 = c_re(in[18 * istride]); tim2_1_0 = c_im(in[18 * istride]); tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[10 * istride]); tim2_0_0 = c_im(in[10 * istride]); tre2_1_0 = c_re(in[26 * istride]); tim2_1_0 = c_im(in[26 * istride]); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } tre0_0_2 = tre1_0_0 + tre1_0_1; tim0_0_2 = tim1_0_0 + tim1_0_1; tre0_2_2 = tre1_0_0 - tre1_0_1; tim0_2_2 = tim1_0_0 - tim1_0_1; tre0_1_2 = tre1_1_0 + tim1_1_1; tim0_1_2 = tim1_1_0 - tre1_1_1; tre0_3_2 = tre1_1_0 - tim1_1_1; tim0_3_2 = tim1_1_0 + tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[3 * istride]); tim2_0_0 = c_im(in[3 * istride]); tre2_1_0 = c_re(in[19 * istride]); tim2_1_0 = c_im(in[19 * istride]); tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[11 * istride]); tim2_0_0 = c_im(in[11 * istride]); tre2_1_0 = c_re(in[27 * istride]); tim2_1_0 = c_im(in[27 * istride]); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } tre0_0_3 = tre1_0_0 + tre1_0_1; tim0_0_3 = tim1_0_0 + tim1_0_1; tre0_2_3 = tre1_0_0 - tre1_0_1; tim0_2_3 = tim1_0_0 - tim1_0_1; tre0_1_3 = tre1_1_0 + tim1_1_1; tim0_1_3 = tim1_1_0 - tre1_1_1; tre0_3_3 = tre1_1_0 - tim1_1_1; tim0_3_3 = tim1_1_0 + tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[4 * istride]); tim2_0_0 = c_im(in[4 * istride]); tre2_1_0 = c_re(in[20 * istride]); tim2_1_0 = c_im(in[20 * istride]); tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[12 * istride]); tim2_0_0 = c_im(in[12 * istride]); tre2_1_0 = c_re(in[28 * istride]); tim2_1_0 = c_im(in[28 * istride]); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } tre0_0_4 = tre1_0_0 + tre1_0_1; tim0_0_4 = tim1_0_0 + tim1_0_1; tre0_2_4 = tre1_0_0 - tre1_0_1; tim0_2_4 = tim1_0_0 - tim1_0_1; tre0_1_4 = tre1_1_0 + tim1_1_1; tim0_1_4 = tim1_1_0 - tre1_1_1; tre0_3_4 = tre1_1_0 - tim1_1_1; tim0_3_4 = tim1_1_0 + tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[5 * istride]); tim2_0_0 = c_im(in[5 * istride]); tre2_1_0 = c_re(in[21 * istride]); tim2_1_0 = c_im(in[21 * istride]); tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[13 * istride]); tim2_0_0 = c_im(in[13 * istride]); tre2_1_0 = c_re(in[29 * istride]); tim2_1_0 = c_im(in[29 * istride]); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } tre0_0_5 = tre1_0_0 + tre1_0_1; tim0_0_5 = tim1_0_0 + tim1_0_1; tre0_2_5 = tre1_0_0 - tre1_0_1; tim0_2_5 = tim1_0_0 - tim1_0_1; tre0_1_5 = tre1_1_0 + tim1_1_1; tim0_1_5 = tim1_1_0 - tre1_1_1; tre0_3_5 = tre1_1_0 - tim1_1_1; tim0_3_5 = tim1_1_0 + tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[6 * istride]); tim2_0_0 = c_im(in[6 * istride]); tre2_1_0 = c_re(in[22 * istride]); tim2_1_0 = c_im(in[22 * istride]); tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[14 * istride]); tim2_0_0 = c_im(in[14 * istride]); tre2_1_0 = c_re(in[30 * istride]); tim2_1_0 = c_im(in[30 * istride]); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } tre0_0_6 = tre1_0_0 + tre1_0_1; tim0_0_6 = tim1_0_0 + tim1_0_1; tre0_2_6 = tre1_0_0 - tre1_0_1; tim0_2_6 = tim1_0_0 - tim1_0_1; tre0_1_6 = tre1_1_0 + tim1_1_1; tim0_1_6 = tim1_1_0 - tre1_1_1; tre0_3_6 = tre1_1_0 - tim1_1_1; tim0_3_6 = tim1_1_0 + tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[7 * istride]); tim2_0_0 = c_im(in[7 * istride]); tre2_1_0 = c_re(in[23 * istride]); tim2_1_0 = c_im(in[23 * istride]); tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[15 * istride]); tim2_0_0 = c_im(in[15 * istride]); tre2_1_0 = c_re(in[31 * istride]); tim2_1_0 = c_im(in[31 * istride]); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } tre0_0_7 = tre1_0_0 + tre1_0_1; tim0_0_7 = tim1_0_0 + tim1_0_1; tre0_2_7 = tre1_0_0 - tre1_0_1; tim0_2_7 = tim1_0_0 - tim1_0_1; tre0_1_7 = tre1_1_0 + tim1_1_1; tim0_1_7 = tim1_1_0 - tre1_1_1; tre0_3_7 = tre1_1_0 - tim1_1_1; tim0_3_7 = tim1_1_0 + tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; tre1_0_0 = tre0_0_0 + tre0_0_4; tim1_0_0 = tim0_0_0 + tim0_0_4; tre1_1_0 = tre0_0_0 - tre0_0_4; tim1_1_0 = tim0_0_0 - tim0_0_4; tre1_0_1 = tre0_0_1 + tre0_0_5; tim1_0_1 = tim0_0_1 + tim0_0_5; tre1_1_1 = tre0_0_1 - tre0_0_5; tim1_1_1 = tim0_0_1 - tim0_0_5; tre1_0_2 = tre0_0_2 + tre0_0_6; tim1_0_2 = tim0_0_2 + tim0_0_6; tre1_1_2 = tre0_0_2 - tre0_0_6; tim1_1_2 = tim0_0_2 - tim0_0_6; tre1_0_3 = tre0_0_3 + tre0_0_7; tim1_0_3 = tim0_0_3 + tim0_0_7; tre1_1_3 = tre0_0_3 - tre0_0_7; tim1_1_3 = tim0_0_3 - tim0_0_7; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; c_re(out[0]) = tre2_0_0 + tre2_0_1; c_im(out[0]) = tim2_0_0 + tim2_0_1; c_re(out[16 * ostride]) = tre2_0_0 - tre2_0_1; c_im(out[16 * ostride]) = tim2_0_0 - tim2_0_1; c_re(out[8 * ostride]) = tre2_1_0 + tim2_1_1; c_im(out[8 * ostride]) = tim2_1_0 - tre2_1_1; c_re(out[24 * ostride]) = tre2_1_0 - tim2_1_1; c_im(out[24 * ostride]) = tim2_1_0 + tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 + tim1_1_2; tim2_0_0 = tim1_1_0 - tre1_1_2; tre2_1_0 = tre1_1_0 - tim1_1_2; tim2_1_0 = tim1_1_0 + tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 + tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 - tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 - tre1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 + tre1_1_3); tre2_0_1 = tre3_0_0 + tre3_1_0; tim2_0_1 = tim3_0_0 - tim3_1_0; tre2_1_1 = tre3_0_0 - tre3_1_0; tim2_1_1 = tim3_0_0 + tim3_1_0; } c_re(out[4 * ostride]) = tre2_0_0 + tre2_0_1; c_im(out[4 * ostride]) = tim2_0_0 + tim2_0_1; c_re(out[20 * ostride]) = tre2_0_0 - tre2_0_1; c_im(out[20 * ostride]) = tim2_0_0 - tim2_0_1; c_re(out[12 * ostride]) = tre2_1_0 + tim2_1_1; c_im(out[12 * ostride]) = tim2_1_0 - tre2_1_1; c_re(out[28 * ostride]) = tre2_1_0 - tim2_1_1; c_im(out[28 * ostride]) = tim2_1_0 + tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_1_4 + tim0_1_4); tim2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_1_4 - tre0_1_4); tre1_0_0 = tre0_1_0 + tre2_1_0; tim1_0_0 = tim0_1_0 + tim2_1_0; tre1_1_0 = tre0_1_0 - tre2_1_0; tim1_1_0 = tim0_1_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K980785280) * tre0_1_1) + (((FFTW_REAL) FFTW_K195090322) * tim0_1_1); tim2_0_0 = (((FFTW_REAL) FFTW_K980785280) * tim0_1_1) - (((FFTW_REAL) FFTW_K195090322) * tre0_1_1); tre2_1_0 = (((FFTW_REAL) FFTW_K555570233) * tre0_1_5) + (((FFTW_REAL) FFTW_K831469612) * tim0_1_5); tim2_1_0 = (((FFTW_REAL) FFTW_K555570233) * tim0_1_5) - (((FFTW_REAL) FFTW_K831469612) * tre0_1_5); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K923879532) * tre0_1_2) + (((FFTW_REAL) FFTW_K382683432) * tim0_1_2); tim2_0_0 = (((FFTW_REAL) FFTW_K923879532) * tim0_1_2) - (((FFTW_REAL) FFTW_K382683432) * tre0_1_2); tre2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_1_6) + (((FFTW_REAL) FFTW_K923879532) * tim0_1_6); tim2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_1_6) - (((FFTW_REAL) FFTW_K923879532) * tre0_1_6); tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K831469612) * tre0_1_3) + (((FFTW_REAL) FFTW_K555570233) * tim0_1_3); tim2_0_0 = (((FFTW_REAL) FFTW_K831469612) * tim0_1_3) - (((FFTW_REAL) FFTW_K555570233) * tre0_1_3); tre2_1_0 = (((FFTW_REAL) FFTW_K195090322) * tre0_1_7) + (((FFTW_REAL) FFTW_K980785280) * tim0_1_7); tim2_1_0 = (((FFTW_REAL) FFTW_K195090322) * tim0_1_7) - (((FFTW_REAL) FFTW_K980785280) * tre0_1_7); tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; c_re(out[ostride]) = tre2_0_0 + tre2_0_1; c_im(out[ostride]) = tim2_0_0 + tim2_0_1; c_re(out[17 * ostride]) = tre2_0_0 - tre2_0_1; c_im(out[17 * ostride]) = tim2_0_0 - tim2_0_1; c_re(out[9 * ostride]) = tre2_1_0 + tim2_1_1; c_im(out[9 * ostride]) = tim2_1_0 - tre2_1_1; c_re(out[25 * ostride]) = tre2_1_0 - tim2_1_1; c_im(out[25 * ostride]) = tim2_1_0 + tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 + tim1_1_2; tim2_0_0 = tim1_1_0 - tre1_1_2; tre2_1_0 = tre1_1_0 - tim1_1_2; tim2_1_0 = tim1_1_0 + tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 + tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 - tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 - tre1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 + tre1_1_3); tre2_0_1 = tre3_0_0 + tre3_1_0; tim2_0_1 = tim3_0_0 - tim3_1_0; tre2_1_1 = tre3_0_0 - tre3_1_0; tim2_1_1 = tim3_0_0 + tim3_1_0; } c_re(out[5 * ostride]) = tre2_0_0 + tre2_0_1; c_im(out[5 * ostride]) = tim2_0_0 + tim2_0_1; c_re(out[21 * ostride]) = tre2_0_0 - tre2_0_1; c_im(out[21 * ostride]) = tim2_0_0 - tim2_0_1; c_re(out[13 * ostride]) = tre2_1_0 + tim2_1_1; c_im(out[13 * ostride]) = tim2_1_0 - tre2_1_1; c_re(out[29 * ostride]) = tre2_1_0 - tim2_1_1; c_im(out[29 * ostride]) = tim2_1_0 + tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; tre1_0_0 = tre0_2_0 + tim0_2_4; tim1_0_0 = tim0_2_0 - tre0_2_4; tre1_1_0 = tre0_2_0 - tim0_2_4; tim1_1_0 = tim0_2_0 + tre0_2_4; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K923879532) * tre0_2_1) + (((FFTW_REAL) FFTW_K382683432) * tim0_2_1); tim2_0_0 = (((FFTW_REAL) FFTW_K923879532) * tim0_2_1) - (((FFTW_REAL) FFTW_K382683432) * tre0_2_1); tre2_1_0 = (((FFTW_REAL) FFTW_K923879532) * tim0_2_5) - (((FFTW_REAL) FFTW_K382683432) * tre0_2_5); tim2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_2_5) + (((FFTW_REAL) FFTW_K923879532) * tre0_2_5); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 - tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 + tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_2_2 + tim0_2_2); tim2_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_2_2 - tre0_2_2); tre2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_2_6 - tre0_2_6); tim2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_2_6 + tre0_2_6); tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 - tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 + tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_2_3) + (((FFTW_REAL) FFTW_K923879532) * tim0_2_3); tim2_0_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_2_3) - (((FFTW_REAL) FFTW_K923879532) * tre0_2_3); tre2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_2_7) - (((FFTW_REAL) FFTW_K923879532) * tre0_2_7); tim2_1_0 = (((FFTW_REAL) FFTW_K923879532) * tim0_2_7) + (((FFTW_REAL) FFTW_K382683432) * tre0_2_7); tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 - tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 + tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; c_re(out[2 * ostride]) = tre2_0_0 + tre2_0_1; c_im(out[2 * ostride]) = tim2_0_0 + tim2_0_1; c_re(out[18 * ostride]) = tre2_0_0 - tre2_0_1; c_im(out[18 * ostride]) = tim2_0_0 - tim2_0_1; c_re(out[10 * ostride]) = tre2_1_0 + tim2_1_1; c_im(out[10 * ostride]) = tim2_1_0 - tre2_1_1; c_re(out[26 * ostride]) = tre2_1_0 - tim2_1_1; c_im(out[26 * ostride]) = tim2_1_0 + tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 + tim1_1_2; tim2_0_0 = tim1_1_0 - tre1_1_2; tre2_1_0 = tre1_1_0 - tim1_1_2; tim2_1_0 = tim1_1_0 + tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 + tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 - tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 - tre1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 + tre1_1_3); tre2_0_1 = tre3_0_0 + tre3_1_0; tim2_0_1 = tim3_0_0 - tim3_1_0; tre2_1_1 = tre3_0_0 - tre3_1_0; tim2_1_1 = tim3_0_0 + tim3_1_0; } c_re(out[6 * ostride]) = tre2_0_0 + tre2_0_1; c_im(out[6 * ostride]) = tim2_0_0 + tim2_0_1; c_re(out[22 * ostride]) = tre2_0_0 - tre2_0_1; c_im(out[22 * ostride]) = tim2_0_0 - tim2_0_1; c_re(out[14 * ostride]) = tre2_1_0 + tim2_1_1; c_im(out[14 * ostride]) = tim2_1_0 - tre2_1_1; c_re(out[30 * ostride]) = tre2_1_0 - tim2_1_1; c_im(out[30 * ostride]) = tim2_1_0 + tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_3_4 - tre0_3_4); tim2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_3_4 + tre0_3_4); tre1_0_0 = tre0_3_0 + tre2_1_0; tim1_0_0 = tim0_3_0 - tim2_1_0; tre1_1_0 = tre0_3_0 - tre2_1_0; tim1_1_0 = tim0_3_0 + tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K831469612) * tre0_3_1) + (((FFTW_REAL) FFTW_K555570233) * tim0_3_1); tim2_0_0 = (((FFTW_REAL) FFTW_K831469612) * tim0_3_1) - (((FFTW_REAL) FFTW_K555570233) * tre0_3_1); tre2_1_0 = (((FFTW_REAL) FFTW_K195090322) * tim0_3_5) - (((FFTW_REAL) FFTW_K980785280) * tre0_3_5); tim2_1_0 = (((FFTW_REAL) FFTW_K980785280) * tim0_3_5) + (((FFTW_REAL) FFTW_K195090322) * tre0_3_5); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 - tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 + tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_3_2) + (((FFTW_REAL) FFTW_K923879532) * tim0_3_2); tim2_0_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_3_2) - (((FFTW_REAL) FFTW_K923879532) * tre0_3_2); tre2_1_0 = (((FFTW_REAL) FFTW_K923879532) * tre0_3_6) + (((FFTW_REAL) FFTW_K382683432) * tim0_3_6); tim2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_3_6) - (((FFTW_REAL) FFTW_K923879532) * tim0_3_6); tre1_0_2 = tre2_0_0 - tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 + tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K980785280) * tim0_3_3) - (((FFTW_REAL) FFTW_K195090322) * tre0_3_3); tim2_0_0 = (((FFTW_REAL) FFTW_K195090322) * tim0_3_3) + (((FFTW_REAL) FFTW_K980785280) * tre0_3_3); tre2_1_0 = (((FFTW_REAL) FFTW_K555570233) * tre0_3_7) + (((FFTW_REAL) FFTW_K831469612) * tim0_3_7); tim2_1_0 = (((FFTW_REAL) FFTW_K831469612) * tre0_3_7) - (((FFTW_REAL) FFTW_K555570233) * tim0_3_7); tre1_0_3 = tre2_0_0 - tre2_1_0; tim1_0_3 = tim2_1_0 - tim2_0_0; tre1_1_3 = tre2_0_0 + tre2_1_0; tim1_1_3 = (-(tim2_0_0 + tim2_1_0)); } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; c_re(out[3 * ostride]) = tre2_0_0 + tre2_0_1; c_im(out[3 * ostride]) = tim2_0_0 + tim2_0_1; c_re(out[19 * ostride]) = tre2_0_0 - tre2_0_1; c_im(out[19 * ostride]) = tim2_0_0 - tim2_0_1; c_re(out[11 * ostride]) = tre2_1_0 + tim2_1_1; c_im(out[11 * ostride]) = tim2_1_0 - tre2_1_1; c_re(out[27 * ostride]) = tre2_1_0 - tim2_1_1; c_im(out[27 * ostride]) = tim2_1_0 + tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 + tim1_1_2; tim2_0_0 = tim1_1_0 - tre1_1_2; tre2_1_0 = tre1_1_0 - tim1_1_2; tim2_1_0 = tim1_1_0 + tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 + tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 - tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 - tre1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 + tre1_1_3); tre2_0_1 = tre3_0_0 + tre3_1_0; tim2_0_1 = tim3_0_0 - tim3_1_0; tre2_1_1 = tre3_0_0 - tre3_1_0; tim2_1_1 = tim3_0_0 + tim3_1_0; } c_re(out[7 * ostride]) = tre2_0_0 + tre2_0_1; c_im(out[7 * ostride]) = tim2_0_0 + tim2_0_1; c_re(out[23 * ostride]) = tre2_0_0 - tre2_0_1; c_im(out[23 * ostride]) = tim2_0_0 - tim2_0_1; c_re(out[15 * ostride]) = tre2_1_0 + tim2_1_1; c_im(out[15 * ostride]) = tim2_1_0 - tre2_1_1; c_re(out[31 * ostride]) = tre2_1_0 - tim2_1_1; c_im(out[31 * ostride]) = tim2_1_0 + tre2_1_1; } } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 16 FP additions and 0 FP multiplications */ void fftw_no_twiddle_4(const FFTW_COMPLEX *in, FFTW_COMPLEX *out, int istride, int ostride) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_0_1; FFTW_REAL tim0_0_1; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_1_1; FFTW_REAL tim0_1_1; { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(in[0]); tim1_0_0 = c_im(in[0]); tre1_1_0 = c_re(in[2 * istride]); tim1_1_0 = c_im(in[2 * istride]); tre0_0_0 = tre1_0_0 + tre1_1_0; tim0_0_0 = tim1_0_0 + tim1_1_0; tre0_1_0 = tre1_0_0 - tre1_1_0; tim0_1_0 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(in[istride]); tim1_0_0 = c_im(in[istride]); tre1_1_0 = c_re(in[3 * istride]); tim1_1_0 = c_im(in[3 * istride]); tre0_0_1 = tre1_0_0 + tre1_1_0; tim0_0_1 = tim1_0_0 + tim1_1_0; tre0_1_1 = tre1_0_0 - tre1_1_0; tim0_1_1 = tim1_0_0 - tim1_1_0; } c_re(out[0]) = tre0_0_0 + tre0_0_1; c_im(out[0]) = tim0_0_0 + tim0_0_1; c_re(out[2 * ostride]) = tre0_0_0 - tre0_0_1; c_im(out[2 * ostride]) = tim0_0_0 - tim0_0_1; c_re(out[ostride]) = tre0_1_0 + tim0_1_1; c_im(out[ostride]) = tim0_1_0 - tre0_1_1; c_re(out[3 * ostride]) = tre0_1_0 - tim0_1_1; c_im(out[3 * ostride]) = tim0_1_0 + tre0_1_1; } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 44 FP additions and 16 FP multiplications */ void fftw_no_twiddle_5(const FFTW_COMPLEX *in, FFTW_COMPLEX *out, int istride, int ostride) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_2_0; FFTW_REAL tim0_2_0; FFTW_REAL tre0_3_0; FFTW_REAL tim0_3_0; FFTW_REAL tre0_4_0; FFTW_REAL tim0_4_0; tre0_0_0 = c_re(in[0]); tim0_0_0 = c_im(in[0]); tre0_1_0 = c_re(in[istride]); tim0_1_0 = c_im(in[istride]); tre0_2_0 = c_re(in[2 * istride]); tim0_2_0 = c_im(in[2 * istride]); tre0_3_0 = c_re(in[3 * istride]); tim0_3_0 = c_im(in[3 * istride]); tre0_4_0 = c_re(in[4 * istride]); tim0_4_0 = c_im(in[4 * istride]); c_re(out[0]) = tre0_0_0 + tre0_1_0 + tre0_2_0 + tre0_3_0 + tre0_4_0; c_im(out[0]) = tim0_0_0 + tim0_1_0 + tim0_2_0 + tim0_3_0 + tim0_4_0; { FFTW_REAL tre1_0_0; FFTW_REAL tre1_1_0; tre1_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K309016994) * (tre0_1_0 + tre0_4_0)) - (((FFTW_REAL) FFTW_K809016994) * (tre0_2_0 + tre0_3_0)); tre1_1_0 = (((FFTW_REAL) FFTW_K951056516) * (tim0_1_0 - tim0_4_0)) + (((FFTW_REAL) FFTW_K587785252) * (tim0_2_0 - tim0_3_0)); c_re(out[ostride]) = tre1_0_0 + tre1_1_0; c_re(out[4 * ostride]) = tre1_0_0 - tre1_1_0; } { FFTW_REAL tim1_0_0; FFTW_REAL tim1_1_0; tim1_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K309016994) * (tim0_1_0 + tim0_4_0)) - (((FFTW_REAL) FFTW_K809016994) * (tim0_2_0 + tim0_3_0)); tim1_1_0 = (((FFTW_REAL) FFTW_K951056516) * (tre0_4_0 - tre0_1_0)) + (((FFTW_REAL) FFTW_K587785252) * (tre0_3_0 - tre0_2_0)); c_im(out[ostride]) = tim1_0_0 + tim1_1_0; c_im(out[4 * ostride]) = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tre1_1_0; tre1_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K309016994) * (tre0_2_0 + tre0_3_0)) - (((FFTW_REAL) FFTW_K809016994) * (tre0_1_0 + tre0_4_0)); tre1_1_0 = (((FFTW_REAL) FFTW_K587785252) * (tim0_1_0 - tim0_4_0)) + (((FFTW_REAL) FFTW_K951056516) * (tim0_3_0 - tim0_2_0)); c_re(out[2 * ostride]) = tre1_0_0 + tre1_1_0; c_re(out[3 * ostride]) = tre1_0_0 - tre1_1_0; } { FFTW_REAL tim1_0_0; FFTW_REAL tim1_1_0; tim1_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K309016994) * (tim0_2_0 + tim0_3_0)) - (((FFTW_REAL) FFTW_K809016994) * (tim0_1_0 + tim0_4_0)); tim1_1_0 = (((FFTW_REAL) FFTW_K587785252) * (tre0_4_0 - tre0_1_0)) + (((FFTW_REAL) FFTW_K951056516) * (tre0_2_0 - tre0_3_0)); c_im(out[2 * ostride]) = tim1_0_0 + tim1_1_0; c_im(out[3 * ostride]) = tim1_0_0 - tim1_1_0; } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 40 FP additions and 8 FP multiplications */ void fftw_no_twiddle_6(const FFTW_COMPLEX *in, FFTW_COMPLEX *out, int istride, int ostride) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_0_1; FFTW_REAL tim0_0_1; FFTW_REAL tre0_0_2; FFTW_REAL tim0_0_2; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_1_1; FFTW_REAL tim0_1_1; FFTW_REAL tre0_1_2; FFTW_REAL tim0_1_2; { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(in[0]); tim1_0_0 = c_im(in[0]); tre1_1_0 = c_re(in[3 * istride]); tim1_1_0 = c_im(in[3 * istride]); tre0_0_0 = tre1_0_0 + tre1_1_0; tim0_0_0 = tim1_0_0 + tim1_1_0; tre0_1_0 = tre1_0_0 - tre1_1_0; tim0_1_0 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(in[2 * istride]); tim1_0_0 = c_im(in[2 * istride]); tre1_1_0 = c_re(in[5 * istride]); tim1_1_0 = c_im(in[5 * istride]); tre0_0_1 = tre1_0_0 + tre1_1_0; tim0_0_1 = tim1_0_0 + tim1_1_0; tre0_1_1 = tre1_0_0 - tre1_1_0; tim0_1_1 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(in[4 * istride]); tim1_0_0 = c_im(in[4 * istride]); tre1_1_0 = c_re(in[istride]); tim1_1_0 = c_im(in[istride]); tre0_0_2 = tre1_0_0 + tre1_1_0; tim0_0_2 = tim1_0_0 + tim1_1_0; tre0_1_2 = tre1_0_0 - tre1_1_0; tim0_1_2 = tim1_0_0 - tim1_1_0; } c_re(out[0]) = tre0_0_0 + tre0_0_1 + tre0_0_2; c_im(out[0]) = tim0_0_0 + tim0_0_1 + tim0_0_2; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tre0_0_1 + tre0_0_2)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim0_0_1 - tim0_0_2); c_re(out[4 * ostride]) = tre2_0_0 + tre2_1_0; c_re(out[2 * ostride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tim0_0_1 + tim0_0_2)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre0_0_2 - tre0_0_1); c_im(out[4 * ostride]) = tim2_0_0 + tim2_1_0; c_im(out[2 * ostride]) = tim2_0_0 - tim2_1_0; } c_re(out[3 * ostride]) = tre0_1_0 + tre0_1_1 + tre0_1_2; c_im(out[3 * ostride]) = tim0_1_0 + tim0_1_1 + tim0_1_2; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_1_0 - (((FFTW_REAL) FFTW_K499999999) * (tre0_1_1 + tre0_1_2)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim0_1_1 - tim0_1_2); c_re(out[ostride]) = tre2_0_0 + tre2_1_0; c_re(out[5 * ostride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_1_0 - (((FFTW_REAL) FFTW_K499999999) * (tim0_1_1 + tim0_1_2)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre0_1_2 - tre0_1_1); c_im(out[ostride]) = tim2_0_0 + tim2_1_0; c_im(out[5 * ostride]) = tim2_0_0 - tim2_1_0; } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 928 FP additions and 248 FP multiplications */ void fftw_no_twiddle_64(const FFTW_COMPLEX *in, FFTW_COMPLEX *out, int istride, int ostride) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_0_1; FFTW_REAL tim0_0_1; FFTW_REAL tre0_0_2; FFTW_REAL tim0_0_2; FFTW_REAL tre0_0_3; FFTW_REAL tim0_0_3; FFTW_REAL tre0_0_4; FFTW_REAL tim0_0_4; FFTW_REAL tre0_0_5; FFTW_REAL tim0_0_5; FFTW_REAL tre0_0_6; FFTW_REAL tim0_0_6; FFTW_REAL tre0_0_7; FFTW_REAL tim0_0_7; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_1_1; FFTW_REAL tim0_1_1; FFTW_REAL tre0_1_2; FFTW_REAL tim0_1_2; FFTW_REAL tre0_1_3; FFTW_REAL tim0_1_3; FFTW_REAL tre0_1_4; FFTW_REAL tim0_1_4; FFTW_REAL tre0_1_5; FFTW_REAL tim0_1_5; FFTW_REAL tre0_1_6; FFTW_REAL tim0_1_6; FFTW_REAL tre0_1_7; FFTW_REAL tim0_1_7; FFTW_REAL tre0_2_0; FFTW_REAL tim0_2_0; FFTW_REAL tre0_2_1; FFTW_REAL tim0_2_1; FFTW_REAL tre0_2_2; FFTW_REAL tim0_2_2; FFTW_REAL tre0_2_3; FFTW_REAL tim0_2_3; FFTW_REAL tre0_2_4; FFTW_REAL tim0_2_4; FFTW_REAL tre0_2_5; FFTW_REAL tim0_2_5; FFTW_REAL tre0_2_6; FFTW_REAL tim0_2_6; FFTW_REAL tre0_2_7; FFTW_REAL tim0_2_7; FFTW_REAL tre0_3_0; FFTW_REAL tim0_3_0; FFTW_REAL tre0_3_1; FFTW_REAL tim0_3_1; FFTW_REAL tre0_3_2; FFTW_REAL tim0_3_2; FFTW_REAL tre0_3_3; FFTW_REAL tim0_3_3; FFTW_REAL tre0_3_4; FFTW_REAL tim0_3_4; FFTW_REAL tre0_3_5; FFTW_REAL tim0_3_5; FFTW_REAL tre0_3_6; FFTW_REAL tim0_3_6; FFTW_REAL tre0_3_7; FFTW_REAL tim0_3_7; FFTW_REAL tre0_4_0; FFTW_REAL tim0_4_0; FFTW_REAL tre0_4_1; FFTW_REAL tim0_4_1; FFTW_REAL tre0_4_2; FFTW_REAL tim0_4_2; FFTW_REAL tre0_4_3; FFTW_REAL tim0_4_3; FFTW_REAL tre0_4_4; FFTW_REAL tim0_4_4; FFTW_REAL tre0_4_5; FFTW_REAL tim0_4_5; FFTW_REAL tre0_4_6; FFTW_REAL tim0_4_6; FFTW_REAL tre0_4_7; FFTW_REAL tim0_4_7; FFTW_REAL tre0_5_0; FFTW_REAL tim0_5_0; FFTW_REAL tre0_5_1; FFTW_REAL tim0_5_1; FFTW_REAL tre0_5_2; FFTW_REAL tim0_5_2; FFTW_REAL tre0_5_3; FFTW_REAL tim0_5_3; FFTW_REAL tre0_5_4; FFTW_REAL tim0_5_4; FFTW_REAL tre0_5_5; FFTW_REAL tim0_5_5; FFTW_REAL tre0_5_6; FFTW_REAL tim0_5_6; FFTW_REAL tre0_5_7; FFTW_REAL tim0_5_7; FFTW_REAL tre0_6_0; FFTW_REAL tim0_6_0; FFTW_REAL tre0_6_1; FFTW_REAL tim0_6_1; FFTW_REAL tre0_6_2; FFTW_REAL tim0_6_2; FFTW_REAL tre0_6_3; FFTW_REAL tim0_6_3; FFTW_REAL tre0_6_4; FFTW_REAL tim0_6_4; FFTW_REAL tre0_6_5; FFTW_REAL tim0_6_5; FFTW_REAL tre0_6_6; FFTW_REAL tim0_6_6; FFTW_REAL tre0_6_7; FFTW_REAL tim0_6_7; FFTW_REAL tre0_7_0; FFTW_REAL tim0_7_0; FFTW_REAL tre0_7_1; FFTW_REAL tim0_7_1; FFTW_REAL tre0_7_2; FFTW_REAL tim0_7_2; FFTW_REAL tre0_7_3; FFTW_REAL tim0_7_3; FFTW_REAL tre0_7_4; FFTW_REAL tim0_7_4; FFTW_REAL tre0_7_5; FFTW_REAL tim0_7_5; FFTW_REAL tre0_7_6; FFTW_REAL tim0_7_6; FFTW_REAL tre0_7_7; FFTW_REAL tim0_7_7; { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[0]); tim2_0_0 = c_im(in[0]); tre2_1_0 = c_re(in[32 * istride]); tim2_1_0 = c_im(in[32 * istride]); tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[8 * istride]); tim2_0_0 = c_im(in[8 * istride]); tre2_1_0 = c_re(in[40 * istride]); tim2_1_0 = c_im(in[40 * istride]); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[16 * istride]); tim2_0_0 = c_im(in[16 * istride]); tre2_1_0 = c_re(in[48 * istride]); tim2_1_0 = c_im(in[48 * istride]); tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[24 * istride]); tim2_0_0 = c_im(in[24 * istride]); tre2_1_0 = c_re(in[56 * istride]); tim2_1_0 = c_im(in[56 * istride]); tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; tre0_0_0 = tre2_0_0 + tre2_0_1; tim0_0_0 = tim2_0_0 + tim2_0_1; tre0_4_0 = tre2_0_0 - tre2_0_1; tim0_4_0 = tim2_0_0 - tim2_0_1; tre0_2_0 = tre2_1_0 + tim2_1_1; tim0_2_0 = tim2_1_0 - tre2_1_1; tre0_6_0 = tre2_1_0 - tim2_1_1; tim0_6_0 = tim2_1_0 + tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 + tim1_1_2; tim2_0_0 = tim1_1_0 - tre1_1_2; tre2_1_0 = tre1_1_0 - tim1_1_2; tim2_1_0 = tim1_1_0 + tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 + tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 - tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 - tre1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 + tre1_1_3); tre2_0_1 = tre3_0_0 + tre3_1_0; tim2_0_1 = tim3_0_0 - tim3_1_0; tre2_1_1 = tre3_0_0 - tre3_1_0; tim2_1_1 = tim3_0_0 + tim3_1_0; } tre0_1_0 = tre2_0_0 + tre2_0_1; tim0_1_0 = tim2_0_0 + tim2_0_1; tre0_5_0 = tre2_0_0 - tre2_0_1; tim0_5_0 = tim2_0_0 - tim2_0_1; tre0_3_0 = tre2_1_0 + tim2_1_1; tim0_3_0 = tim2_1_0 - tre2_1_1; tre0_7_0 = tre2_1_0 - tim2_1_1; tim0_7_0 = tim2_1_0 + tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[istride]); tim2_0_0 = c_im(in[istride]); tre2_1_0 = c_re(in[33 * istride]); tim2_1_0 = c_im(in[33 * istride]); tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[9 * istride]); tim2_0_0 = c_im(in[9 * istride]); tre2_1_0 = c_re(in[41 * istride]); tim2_1_0 = c_im(in[41 * istride]); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[17 * istride]); tim2_0_0 = c_im(in[17 * istride]); tre2_1_0 = c_re(in[49 * istride]); tim2_1_0 = c_im(in[49 * istride]); tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[25 * istride]); tim2_0_0 = c_im(in[25 * istride]); tre2_1_0 = c_re(in[57 * istride]); tim2_1_0 = c_im(in[57 * istride]); tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; tre0_0_1 = tre2_0_0 + tre2_0_1; tim0_0_1 = tim2_0_0 + tim2_0_1; tre0_4_1 = tre2_0_0 - tre2_0_1; tim0_4_1 = tim2_0_0 - tim2_0_1; tre0_2_1 = tre2_1_0 + tim2_1_1; tim0_2_1 = tim2_1_0 - tre2_1_1; tre0_6_1 = tre2_1_0 - tim2_1_1; tim0_6_1 = tim2_1_0 + tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 + tim1_1_2; tim2_0_0 = tim1_1_0 - tre1_1_2; tre2_1_0 = tre1_1_0 - tim1_1_2; tim2_1_0 = tim1_1_0 + tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 + tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 - tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 - tre1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 + tre1_1_3); tre2_0_1 = tre3_0_0 + tre3_1_0; tim2_0_1 = tim3_0_0 - tim3_1_0; tre2_1_1 = tre3_0_0 - tre3_1_0; tim2_1_1 = tim3_0_0 + tim3_1_0; } tre0_1_1 = tre2_0_0 + tre2_0_1; tim0_1_1 = tim2_0_0 + tim2_0_1; tre0_5_1 = tre2_0_0 - tre2_0_1; tim0_5_1 = tim2_0_0 - tim2_0_1; tre0_3_1 = tre2_1_0 + tim2_1_1; tim0_3_1 = tim2_1_0 - tre2_1_1; tre0_7_1 = tre2_1_0 - tim2_1_1; tim0_7_1 = tim2_1_0 + tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[2 * istride]); tim2_0_0 = c_im(in[2 * istride]); tre2_1_0 = c_re(in[34 * istride]); tim2_1_0 = c_im(in[34 * istride]); tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[10 * istride]); tim2_0_0 = c_im(in[10 * istride]); tre2_1_0 = c_re(in[42 * istride]); tim2_1_0 = c_im(in[42 * istride]); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[18 * istride]); tim2_0_0 = c_im(in[18 * istride]); tre2_1_0 = c_re(in[50 * istride]); tim2_1_0 = c_im(in[50 * istride]); tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[26 * istride]); tim2_0_0 = c_im(in[26 * istride]); tre2_1_0 = c_re(in[58 * istride]); tim2_1_0 = c_im(in[58 * istride]); tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; tre0_0_2 = tre2_0_0 + tre2_0_1; tim0_0_2 = tim2_0_0 + tim2_0_1; tre0_4_2 = tre2_0_0 - tre2_0_1; tim0_4_2 = tim2_0_0 - tim2_0_1; tre0_2_2 = tre2_1_0 + tim2_1_1; tim0_2_2 = tim2_1_0 - tre2_1_1; tre0_6_2 = tre2_1_0 - tim2_1_1; tim0_6_2 = tim2_1_0 + tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 + tim1_1_2; tim2_0_0 = tim1_1_0 - tre1_1_2; tre2_1_0 = tre1_1_0 - tim1_1_2; tim2_1_0 = tim1_1_0 + tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 + tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 - tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 - tre1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 + tre1_1_3); tre2_0_1 = tre3_0_0 + tre3_1_0; tim2_0_1 = tim3_0_0 - tim3_1_0; tre2_1_1 = tre3_0_0 - tre3_1_0; tim2_1_1 = tim3_0_0 + tim3_1_0; } tre0_1_2 = tre2_0_0 + tre2_0_1; tim0_1_2 = tim2_0_0 + tim2_0_1; tre0_5_2 = tre2_0_0 - tre2_0_1; tim0_5_2 = tim2_0_0 - tim2_0_1; tre0_3_2 = tre2_1_0 + tim2_1_1; tim0_3_2 = tim2_1_0 - tre2_1_1; tre0_7_2 = tre2_1_0 - tim2_1_1; tim0_7_2 = tim2_1_0 + tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[3 * istride]); tim2_0_0 = c_im(in[3 * istride]); tre2_1_0 = c_re(in[35 * istride]); tim2_1_0 = c_im(in[35 * istride]); tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[11 * istride]); tim2_0_0 = c_im(in[11 * istride]); tre2_1_0 = c_re(in[43 * istride]); tim2_1_0 = c_im(in[43 * istride]); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[19 * istride]); tim2_0_0 = c_im(in[19 * istride]); tre2_1_0 = c_re(in[51 * istride]); tim2_1_0 = c_im(in[51 * istride]); tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[27 * istride]); tim2_0_0 = c_im(in[27 * istride]); tre2_1_0 = c_re(in[59 * istride]); tim2_1_0 = c_im(in[59 * istride]); tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; tre0_0_3 = tre2_0_0 + tre2_0_1; tim0_0_3 = tim2_0_0 + tim2_0_1; tre0_4_3 = tre2_0_0 - tre2_0_1; tim0_4_3 = tim2_0_0 - tim2_0_1; tre0_2_3 = tre2_1_0 + tim2_1_1; tim0_2_3 = tim2_1_0 - tre2_1_1; tre0_6_3 = tre2_1_0 - tim2_1_1; tim0_6_3 = tim2_1_0 + tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 + tim1_1_2; tim2_0_0 = tim1_1_0 - tre1_1_2; tre2_1_0 = tre1_1_0 - tim1_1_2; tim2_1_0 = tim1_1_0 + tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 + tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 - tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 - tre1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 + tre1_1_3); tre2_0_1 = tre3_0_0 + tre3_1_0; tim2_0_1 = tim3_0_0 - tim3_1_0; tre2_1_1 = tre3_0_0 - tre3_1_0; tim2_1_1 = tim3_0_0 + tim3_1_0; } tre0_1_3 = tre2_0_0 + tre2_0_1; tim0_1_3 = tim2_0_0 + tim2_0_1; tre0_5_3 = tre2_0_0 - tre2_0_1; tim0_5_3 = tim2_0_0 - tim2_0_1; tre0_3_3 = tre2_1_0 + tim2_1_1; tim0_3_3 = tim2_1_0 - tre2_1_1; tre0_7_3 = tre2_1_0 - tim2_1_1; tim0_7_3 = tim2_1_0 + tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[4 * istride]); tim2_0_0 = c_im(in[4 * istride]); tre2_1_0 = c_re(in[36 * istride]); tim2_1_0 = c_im(in[36 * istride]); tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[12 * istride]); tim2_0_0 = c_im(in[12 * istride]); tre2_1_0 = c_re(in[44 * istride]); tim2_1_0 = c_im(in[44 * istride]); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[20 * istride]); tim2_0_0 = c_im(in[20 * istride]); tre2_1_0 = c_re(in[52 * istride]); tim2_1_0 = c_im(in[52 * istride]); tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[28 * istride]); tim2_0_0 = c_im(in[28 * istride]); tre2_1_0 = c_re(in[60 * istride]); tim2_1_0 = c_im(in[60 * istride]); tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; tre0_0_4 = tre2_0_0 + tre2_0_1; tim0_0_4 = tim2_0_0 + tim2_0_1; tre0_4_4 = tre2_0_0 - tre2_0_1; tim0_4_4 = tim2_0_0 - tim2_0_1; tre0_2_4 = tre2_1_0 + tim2_1_1; tim0_2_4 = tim2_1_0 - tre2_1_1; tre0_6_4 = tre2_1_0 - tim2_1_1; tim0_6_4 = tim2_1_0 + tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 + tim1_1_2; tim2_0_0 = tim1_1_0 - tre1_1_2; tre2_1_0 = tre1_1_0 - tim1_1_2; tim2_1_0 = tim1_1_0 + tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 + tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 - tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 - tre1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 + tre1_1_3); tre2_0_1 = tre3_0_0 + tre3_1_0; tim2_0_1 = tim3_0_0 - tim3_1_0; tre2_1_1 = tre3_0_0 - tre3_1_0; tim2_1_1 = tim3_0_0 + tim3_1_0; } tre0_1_4 = tre2_0_0 + tre2_0_1; tim0_1_4 = tim2_0_0 + tim2_0_1; tre0_5_4 = tre2_0_0 - tre2_0_1; tim0_5_4 = tim2_0_0 - tim2_0_1; tre0_3_4 = tre2_1_0 + tim2_1_1; tim0_3_4 = tim2_1_0 - tre2_1_1; tre0_7_4 = tre2_1_0 - tim2_1_1; tim0_7_4 = tim2_1_0 + tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[5 * istride]); tim2_0_0 = c_im(in[5 * istride]); tre2_1_0 = c_re(in[37 * istride]); tim2_1_0 = c_im(in[37 * istride]); tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[13 * istride]); tim2_0_0 = c_im(in[13 * istride]); tre2_1_0 = c_re(in[45 * istride]); tim2_1_0 = c_im(in[45 * istride]); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[21 * istride]); tim2_0_0 = c_im(in[21 * istride]); tre2_1_0 = c_re(in[53 * istride]); tim2_1_0 = c_im(in[53 * istride]); tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[29 * istride]); tim2_0_0 = c_im(in[29 * istride]); tre2_1_0 = c_re(in[61 * istride]); tim2_1_0 = c_im(in[61 * istride]); tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; tre0_0_5 = tre2_0_0 + tre2_0_1; tim0_0_5 = tim2_0_0 + tim2_0_1; tre0_4_5 = tre2_0_0 - tre2_0_1; tim0_4_5 = tim2_0_0 - tim2_0_1; tre0_2_5 = tre2_1_0 + tim2_1_1; tim0_2_5 = tim2_1_0 - tre2_1_1; tre0_6_5 = tre2_1_0 - tim2_1_1; tim0_6_5 = tim2_1_0 + tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 + tim1_1_2; tim2_0_0 = tim1_1_0 - tre1_1_2; tre2_1_0 = tre1_1_0 - tim1_1_2; tim2_1_0 = tim1_1_0 + tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 + tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 - tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 - tre1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 + tre1_1_3); tre2_0_1 = tre3_0_0 + tre3_1_0; tim2_0_1 = tim3_0_0 - tim3_1_0; tre2_1_1 = tre3_0_0 - tre3_1_0; tim2_1_1 = tim3_0_0 + tim3_1_0; } tre0_1_5 = tre2_0_0 + tre2_0_1; tim0_1_5 = tim2_0_0 + tim2_0_1; tre0_5_5 = tre2_0_0 - tre2_0_1; tim0_5_5 = tim2_0_0 - tim2_0_1; tre0_3_5 = tre2_1_0 + tim2_1_1; tim0_3_5 = tim2_1_0 - tre2_1_1; tre0_7_5 = tre2_1_0 - tim2_1_1; tim0_7_5 = tim2_1_0 + tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[6 * istride]); tim2_0_0 = c_im(in[6 * istride]); tre2_1_0 = c_re(in[38 * istride]); tim2_1_0 = c_im(in[38 * istride]); tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[14 * istride]); tim2_0_0 = c_im(in[14 * istride]); tre2_1_0 = c_re(in[46 * istride]); tim2_1_0 = c_im(in[46 * istride]); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[22 * istride]); tim2_0_0 = c_im(in[22 * istride]); tre2_1_0 = c_re(in[54 * istride]); tim2_1_0 = c_im(in[54 * istride]); tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[30 * istride]); tim2_0_0 = c_im(in[30 * istride]); tre2_1_0 = c_re(in[62 * istride]); tim2_1_0 = c_im(in[62 * istride]); tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; tre0_0_6 = tre2_0_0 + tre2_0_1; tim0_0_6 = tim2_0_0 + tim2_0_1; tre0_4_6 = tre2_0_0 - tre2_0_1; tim0_4_6 = tim2_0_0 - tim2_0_1; tre0_2_6 = tre2_1_0 + tim2_1_1; tim0_2_6 = tim2_1_0 - tre2_1_1; tre0_6_6 = tre2_1_0 - tim2_1_1; tim0_6_6 = tim2_1_0 + tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 + tim1_1_2; tim2_0_0 = tim1_1_0 - tre1_1_2; tre2_1_0 = tre1_1_0 - tim1_1_2; tim2_1_0 = tim1_1_0 + tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 + tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 - tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 - tre1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 + tre1_1_3); tre2_0_1 = tre3_0_0 + tre3_1_0; tim2_0_1 = tim3_0_0 - tim3_1_0; tre2_1_1 = tre3_0_0 - tre3_1_0; tim2_1_1 = tim3_0_0 + tim3_1_0; } tre0_1_6 = tre2_0_0 + tre2_0_1; tim0_1_6 = tim2_0_0 + tim2_0_1; tre0_5_6 = tre2_0_0 - tre2_0_1; tim0_5_6 = tim2_0_0 - tim2_0_1; tre0_3_6 = tre2_1_0 + tim2_1_1; tim0_3_6 = tim2_1_0 - tre2_1_1; tre0_7_6 = tre2_1_0 - tim2_1_1; tim0_7_6 = tim2_1_0 + tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[7 * istride]); tim2_0_0 = c_im(in[7 * istride]); tre2_1_0 = c_re(in[39 * istride]); tim2_1_0 = c_im(in[39 * istride]); tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[15 * istride]); tim2_0_0 = c_im(in[15 * istride]); tre2_1_0 = c_re(in[47 * istride]); tim2_1_0 = c_im(in[47 * istride]); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[23 * istride]); tim2_0_0 = c_im(in[23 * istride]); tre2_1_0 = c_re(in[55 * istride]); tim2_1_0 = c_im(in[55 * istride]); tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[31 * istride]); tim2_0_0 = c_im(in[31 * istride]); tre2_1_0 = c_re(in[63 * istride]); tim2_1_0 = c_im(in[63 * istride]); tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; tre0_0_7 = tre2_0_0 + tre2_0_1; tim0_0_7 = tim2_0_0 + tim2_0_1; tre0_4_7 = tre2_0_0 - tre2_0_1; tim0_4_7 = tim2_0_0 - tim2_0_1; tre0_2_7 = tre2_1_0 + tim2_1_1; tim0_2_7 = tim2_1_0 - tre2_1_1; tre0_6_7 = tre2_1_0 - tim2_1_1; tim0_6_7 = tim2_1_0 + tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 + tim1_1_2; tim2_0_0 = tim1_1_0 - tre1_1_2; tre2_1_0 = tre1_1_0 - tim1_1_2; tim2_1_0 = tim1_1_0 + tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 + tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 - tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 - tre1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 + tre1_1_3); tre2_0_1 = tre3_0_0 + tre3_1_0; tim2_0_1 = tim3_0_0 - tim3_1_0; tre2_1_1 = tre3_0_0 - tre3_1_0; tim2_1_1 = tim3_0_0 + tim3_1_0; } tre0_1_7 = tre2_0_0 + tre2_0_1; tim0_1_7 = tim2_0_0 + tim2_0_1; tre0_5_7 = tre2_0_0 - tre2_0_1; tim0_5_7 = tim2_0_0 - tim2_0_1; tre0_3_7 = tre2_1_0 + tim2_1_1; tim0_3_7 = tim2_1_0 - tre2_1_1; tre0_7_7 = tre2_1_0 - tim2_1_1; tim0_7_7 = tim2_1_0 + tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; tre1_0_0 = tre0_0_0 + tre0_0_4; tim1_0_0 = tim0_0_0 + tim0_0_4; tre1_1_0 = tre0_0_0 - tre0_0_4; tim1_1_0 = tim0_0_0 - tim0_0_4; tre1_0_1 = tre0_0_1 + tre0_0_5; tim1_0_1 = tim0_0_1 + tim0_0_5; tre1_1_1 = tre0_0_1 - tre0_0_5; tim1_1_1 = tim0_0_1 - tim0_0_5; tre1_0_2 = tre0_0_2 + tre0_0_6; tim1_0_2 = tim0_0_2 + tim0_0_6; tre1_1_2 = tre0_0_2 - tre0_0_6; tim1_1_2 = tim0_0_2 - tim0_0_6; tre1_0_3 = tre0_0_3 + tre0_0_7; tim1_0_3 = tim0_0_3 + tim0_0_7; tre1_1_3 = tre0_0_3 - tre0_0_7; tim1_1_3 = tim0_0_3 - tim0_0_7; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; c_re(out[0]) = tre2_0_0 + tre2_0_1; c_im(out[0]) = tim2_0_0 + tim2_0_1; c_re(out[32 * ostride]) = tre2_0_0 - tre2_0_1; c_im(out[32 * ostride]) = tim2_0_0 - tim2_0_1; c_re(out[16 * ostride]) = tre2_1_0 + tim2_1_1; c_im(out[16 * ostride]) = tim2_1_0 - tre2_1_1; c_re(out[48 * ostride]) = tre2_1_0 - tim2_1_1; c_im(out[48 * ostride]) = tim2_1_0 + tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 + tim1_1_2; tim2_0_0 = tim1_1_0 - tre1_1_2; tre2_1_0 = tre1_1_0 - tim1_1_2; tim2_1_0 = tim1_1_0 + tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 + tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 - tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 - tre1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 + tre1_1_3); tre2_0_1 = tre3_0_0 + tre3_1_0; tim2_0_1 = tim3_0_0 - tim3_1_0; tre2_1_1 = tre3_0_0 - tre3_1_0; tim2_1_1 = tim3_0_0 + tim3_1_0; } c_re(out[8 * ostride]) = tre2_0_0 + tre2_0_1; c_im(out[8 * ostride]) = tim2_0_0 + tim2_0_1; c_re(out[40 * ostride]) = tre2_0_0 - tre2_0_1; c_im(out[40 * ostride]) = tim2_0_0 - tim2_0_1; c_re(out[24 * ostride]) = tre2_1_0 + tim2_1_1; c_im(out[24 * ostride]) = tim2_1_0 - tre2_1_1; c_re(out[56 * ostride]) = tre2_1_0 - tim2_1_1; c_im(out[56 * ostride]) = tim2_1_0 + tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_1_0 = (((FFTW_REAL) FFTW_K923879532) * tre0_1_4) + (((FFTW_REAL) FFTW_K382683432) * tim0_1_4); tim2_1_0 = (((FFTW_REAL) FFTW_K923879532) * tim0_1_4) - (((FFTW_REAL) FFTW_K382683432) * tre0_1_4); tre1_0_0 = tre0_1_0 + tre2_1_0; tim1_0_0 = tim0_1_0 + tim2_1_0; tre1_1_0 = tre0_1_0 - tre2_1_0; tim1_1_0 = tim0_1_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K995184726) * tre0_1_1) + (((FFTW_REAL) FFTW_K098017140) * tim0_1_1); tim2_0_0 = (((FFTW_REAL) FFTW_K995184726) * tim0_1_1) - (((FFTW_REAL) FFTW_K098017140) * tre0_1_1); tre2_1_0 = (((FFTW_REAL) FFTW_K881921264) * tre0_1_5) + (((FFTW_REAL) FFTW_K471396736) * tim0_1_5); tim2_1_0 = (((FFTW_REAL) FFTW_K881921264) * tim0_1_5) - (((FFTW_REAL) FFTW_K471396736) * tre0_1_5); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K980785280) * tre0_1_2) + (((FFTW_REAL) FFTW_K195090322) * tim0_1_2); tim2_0_0 = (((FFTW_REAL) FFTW_K980785280) * tim0_1_2) - (((FFTW_REAL) FFTW_K195090322) * tre0_1_2); tre2_1_0 = (((FFTW_REAL) FFTW_K831469612) * tre0_1_6) + (((FFTW_REAL) FFTW_K555570233) * tim0_1_6); tim2_1_0 = (((FFTW_REAL) FFTW_K831469612) * tim0_1_6) - (((FFTW_REAL) FFTW_K555570233) * tre0_1_6); tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K956940335) * tre0_1_3) + (((FFTW_REAL) FFTW_K290284677) * tim0_1_3); tim2_0_0 = (((FFTW_REAL) FFTW_K956940335) * tim0_1_3) - (((FFTW_REAL) FFTW_K290284677) * tre0_1_3); tre2_1_0 = (((FFTW_REAL) FFTW_K773010453) * tre0_1_7) + (((FFTW_REAL) FFTW_K634393284) * tim0_1_7); tim2_1_0 = (((FFTW_REAL) FFTW_K773010453) * tim0_1_7) - (((FFTW_REAL) FFTW_K634393284) * tre0_1_7); tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; c_re(out[ostride]) = tre2_0_0 + tre2_0_1; c_im(out[ostride]) = tim2_0_0 + tim2_0_1; c_re(out[33 * ostride]) = tre2_0_0 - tre2_0_1; c_im(out[33 * ostride]) = tim2_0_0 - tim2_0_1; c_re(out[17 * ostride]) = tre2_1_0 + tim2_1_1; c_im(out[17 * ostride]) = tim2_1_0 - tre2_1_1; c_re(out[49 * ostride]) = tre2_1_0 - tim2_1_1; c_im(out[49 * ostride]) = tim2_1_0 + tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 + tim1_1_2; tim2_0_0 = tim1_1_0 - tre1_1_2; tre2_1_0 = tre1_1_0 - tim1_1_2; tim2_1_0 = tim1_1_0 + tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 + tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 - tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 - tre1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 + tre1_1_3); tre2_0_1 = tre3_0_0 + tre3_1_0; tim2_0_1 = tim3_0_0 - tim3_1_0; tre2_1_1 = tre3_0_0 - tre3_1_0; tim2_1_1 = tim3_0_0 + tim3_1_0; } c_re(out[9 * ostride]) = tre2_0_0 + tre2_0_1; c_im(out[9 * ostride]) = tim2_0_0 + tim2_0_1; c_re(out[41 * ostride]) = tre2_0_0 - tre2_0_1; c_im(out[41 * ostride]) = tim2_0_0 - tim2_0_1; c_re(out[25 * ostride]) = tre2_1_0 + tim2_1_1; c_im(out[25 * ostride]) = tim2_1_0 - tre2_1_1; c_re(out[57 * ostride]) = tre2_1_0 - tim2_1_1; c_im(out[57 * ostride]) = tim2_1_0 + tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_2_4 + tim0_2_4); tim2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_2_4 - tre0_2_4); tre1_0_0 = tre0_2_0 + tre2_1_0; tim1_0_0 = tim0_2_0 + tim2_1_0; tre1_1_0 = tre0_2_0 - tre2_1_0; tim1_1_0 = tim0_2_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K980785280) * tre0_2_1) + (((FFTW_REAL) FFTW_K195090322) * tim0_2_1); tim2_0_0 = (((FFTW_REAL) FFTW_K980785280) * tim0_2_1) - (((FFTW_REAL) FFTW_K195090322) * tre0_2_1); tre2_1_0 = (((FFTW_REAL) FFTW_K555570233) * tre0_2_5) + (((FFTW_REAL) FFTW_K831469612) * tim0_2_5); tim2_1_0 = (((FFTW_REAL) FFTW_K555570233) * tim0_2_5) - (((FFTW_REAL) FFTW_K831469612) * tre0_2_5); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K923879532) * tre0_2_2) + (((FFTW_REAL) FFTW_K382683432) * tim0_2_2); tim2_0_0 = (((FFTW_REAL) FFTW_K923879532) * tim0_2_2) - (((FFTW_REAL) FFTW_K382683432) * tre0_2_2); tre2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_2_6) + (((FFTW_REAL) FFTW_K923879532) * tim0_2_6); tim2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_2_6) - (((FFTW_REAL) FFTW_K923879532) * tre0_2_6); tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K831469612) * tre0_2_3) + (((FFTW_REAL) FFTW_K555570233) * tim0_2_3); tim2_0_0 = (((FFTW_REAL) FFTW_K831469612) * tim0_2_3) - (((FFTW_REAL) FFTW_K555570233) * tre0_2_3); tre2_1_0 = (((FFTW_REAL) FFTW_K195090322) * tre0_2_7) + (((FFTW_REAL) FFTW_K980785280) * tim0_2_7); tim2_1_0 = (((FFTW_REAL) FFTW_K195090322) * tim0_2_7) - (((FFTW_REAL) FFTW_K980785280) * tre0_2_7); tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; c_re(out[2 * ostride]) = tre2_0_0 + tre2_0_1; c_im(out[2 * ostride]) = tim2_0_0 + tim2_0_1; c_re(out[34 * ostride]) = tre2_0_0 - tre2_0_1; c_im(out[34 * ostride]) = tim2_0_0 - tim2_0_1; c_re(out[18 * ostride]) = tre2_1_0 + tim2_1_1; c_im(out[18 * ostride]) = tim2_1_0 - tre2_1_1; c_re(out[50 * ostride]) = tre2_1_0 - tim2_1_1; c_im(out[50 * ostride]) = tim2_1_0 + tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 + tim1_1_2; tim2_0_0 = tim1_1_0 - tre1_1_2; tre2_1_0 = tre1_1_0 - tim1_1_2; tim2_1_0 = tim1_1_0 + tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 + tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 - tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 - tre1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 + tre1_1_3); tre2_0_1 = tre3_0_0 + tre3_1_0; tim2_0_1 = tim3_0_0 - tim3_1_0; tre2_1_1 = tre3_0_0 - tre3_1_0; tim2_1_1 = tim3_0_0 + tim3_1_0; } c_re(out[10 * ostride]) = tre2_0_0 + tre2_0_1; c_im(out[10 * ostride]) = tim2_0_0 + tim2_0_1; c_re(out[42 * ostride]) = tre2_0_0 - tre2_0_1; c_im(out[42 * ostride]) = tim2_0_0 - tim2_0_1; c_re(out[26 * ostride]) = tre2_1_0 + tim2_1_1; c_im(out[26 * ostride]) = tim2_1_0 - tre2_1_1; c_re(out[58 * ostride]) = tre2_1_0 - tim2_1_1; c_im(out[58 * ostride]) = tim2_1_0 + tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_3_4) + (((FFTW_REAL) FFTW_K923879532) * tim0_3_4); tim2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_3_4) - (((FFTW_REAL) FFTW_K923879532) * tre0_3_4); tre1_0_0 = tre0_3_0 + tre2_1_0; tim1_0_0 = tim0_3_0 + tim2_1_0; tre1_1_0 = tre0_3_0 - tre2_1_0; tim1_1_0 = tim0_3_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K956940335) * tre0_3_1) + (((FFTW_REAL) FFTW_K290284677) * tim0_3_1); tim2_0_0 = (((FFTW_REAL) FFTW_K956940335) * tim0_3_1) - (((FFTW_REAL) FFTW_K290284677) * tre0_3_1); tre2_1_0 = (((FFTW_REAL) FFTW_K098017140) * tre0_3_5) + (((FFTW_REAL) FFTW_K995184726) * tim0_3_5); tim2_1_0 = (((FFTW_REAL) FFTW_K098017140) * tim0_3_5) - (((FFTW_REAL) FFTW_K995184726) * tre0_3_5); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K831469612) * tre0_3_2) + (((FFTW_REAL) FFTW_K555570233) * tim0_3_2); tim2_0_0 = (((FFTW_REAL) FFTW_K831469612) * tim0_3_2) - (((FFTW_REAL) FFTW_K555570233) * tre0_3_2); tre2_1_0 = (((FFTW_REAL) FFTW_K980785280) * tim0_3_6) - (((FFTW_REAL) FFTW_K195090322) * tre0_3_6); tim2_1_0 = (((FFTW_REAL) FFTW_K195090322) * tim0_3_6) + (((FFTW_REAL) FFTW_K980785280) * tre0_3_6); tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 - tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 + tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K634393284) * tre0_3_3) + (((FFTW_REAL) FFTW_K773010453) * tim0_3_3); tim2_0_0 = (((FFTW_REAL) FFTW_K634393284) * tim0_3_3) - (((FFTW_REAL) FFTW_K773010453) * tre0_3_3); tre2_1_0 = (((FFTW_REAL) FFTW_K881921264) * tim0_3_7) - (((FFTW_REAL) FFTW_K471396736) * tre0_3_7); tim2_1_0 = (((FFTW_REAL) FFTW_K471396736) * tim0_3_7) + (((FFTW_REAL) FFTW_K881921264) * tre0_3_7); tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 - tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 + tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; c_re(out[3 * ostride]) = tre2_0_0 + tre2_0_1; c_im(out[3 * ostride]) = tim2_0_0 + tim2_0_1; c_re(out[35 * ostride]) = tre2_0_0 - tre2_0_1; c_im(out[35 * ostride]) = tim2_0_0 - tim2_0_1; c_re(out[19 * ostride]) = tre2_1_0 + tim2_1_1; c_im(out[19 * ostride]) = tim2_1_0 - tre2_1_1; c_re(out[51 * ostride]) = tre2_1_0 - tim2_1_1; c_im(out[51 * ostride]) = tim2_1_0 + tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 + tim1_1_2; tim2_0_0 = tim1_1_0 - tre1_1_2; tre2_1_0 = tre1_1_0 - tim1_1_2; tim2_1_0 = tim1_1_0 + tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 + tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 - tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 - tre1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 + tre1_1_3); tre2_0_1 = tre3_0_0 + tre3_1_0; tim2_0_1 = tim3_0_0 - tim3_1_0; tre2_1_1 = tre3_0_0 - tre3_1_0; tim2_1_1 = tim3_0_0 + tim3_1_0; } c_re(out[11 * ostride]) = tre2_0_0 + tre2_0_1; c_im(out[11 * ostride]) = tim2_0_0 + tim2_0_1; c_re(out[43 * ostride]) = tre2_0_0 - tre2_0_1; c_im(out[43 * ostride]) = tim2_0_0 - tim2_0_1; c_re(out[27 * ostride]) = tre2_1_0 + tim2_1_1; c_im(out[27 * ostride]) = tim2_1_0 - tre2_1_1; c_re(out[59 * ostride]) = tre2_1_0 - tim2_1_1; c_im(out[59 * ostride]) = tim2_1_0 + tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; tre1_0_0 = tre0_4_0 + tim0_4_4; tim1_0_0 = tim0_4_0 - tre0_4_4; tre1_1_0 = tre0_4_0 - tim0_4_4; tim1_1_0 = tim0_4_0 + tre0_4_4; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K923879532) * tre0_4_1) + (((FFTW_REAL) FFTW_K382683432) * tim0_4_1); tim2_0_0 = (((FFTW_REAL) FFTW_K923879532) * tim0_4_1) - (((FFTW_REAL) FFTW_K382683432) * tre0_4_1); tre2_1_0 = (((FFTW_REAL) FFTW_K923879532) * tim0_4_5) - (((FFTW_REAL) FFTW_K382683432) * tre0_4_5); tim2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_4_5) + (((FFTW_REAL) FFTW_K923879532) * tre0_4_5); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 - tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 + tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_4_2 + tim0_4_2); tim2_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_4_2 - tre0_4_2); tre2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_4_6 - tre0_4_6); tim2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_4_6 + tre0_4_6); tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 - tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 + tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_4_3) + (((FFTW_REAL) FFTW_K923879532) * tim0_4_3); tim2_0_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_4_3) - (((FFTW_REAL) FFTW_K923879532) * tre0_4_3); tre2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_4_7) - (((FFTW_REAL) FFTW_K923879532) * tre0_4_7); tim2_1_0 = (((FFTW_REAL) FFTW_K923879532) * tim0_4_7) + (((FFTW_REAL) FFTW_K382683432) * tre0_4_7); tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 - tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 + tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; c_re(out[4 * ostride]) = tre2_0_0 + tre2_0_1; c_im(out[4 * ostride]) = tim2_0_0 + tim2_0_1; c_re(out[36 * ostride]) = tre2_0_0 - tre2_0_1; c_im(out[36 * ostride]) = tim2_0_0 - tim2_0_1; c_re(out[20 * ostride]) = tre2_1_0 + tim2_1_1; c_im(out[20 * ostride]) = tim2_1_0 - tre2_1_1; c_re(out[52 * ostride]) = tre2_1_0 - tim2_1_1; c_im(out[52 * ostride]) = tim2_1_0 + tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 + tim1_1_2; tim2_0_0 = tim1_1_0 - tre1_1_2; tre2_1_0 = tre1_1_0 - tim1_1_2; tim2_1_0 = tim1_1_0 + tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 + tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 - tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 - tre1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 + tre1_1_3); tre2_0_1 = tre3_0_0 + tre3_1_0; tim2_0_1 = tim3_0_0 - tim3_1_0; tre2_1_1 = tre3_0_0 - tre3_1_0; tim2_1_1 = tim3_0_0 + tim3_1_0; } c_re(out[12 * ostride]) = tre2_0_0 + tre2_0_1; c_im(out[12 * ostride]) = tim2_0_0 + tim2_0_1; c_re(out[44 * ostride]) = tre2_0_0 - tre2_0_1; c_im(out[44 * ostride]) = tim2_0_0 - tim2_0_1; c_re(out[28 * ostride]) = tre2_1_0 + tim2_1_1; c_im(out[28 * ostride]) = tim2_1_0 - tre2_1_1; c_re(out[60 * ostride]) = tre2_1_0 - tim2_1_1; c_im(out[60 * ostride]) = tim2_1_0 + tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_1_0 = (((FFTW_REAL) FFTW_K923879532) * tim0_5_4) - (((FFTW_REAL) FFTW_K382683432) * tre0_5_4); tim2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_5_4) + (((FFTW_REAL) FFTW_K923879532) * tre0_5_4); tre1_0_0 = tre0_5_0 + tre2_1_0; tim1_0_0 = tim0_5_0 - tim2_1_0; tre1_1_0 = tre0_5_0 - tre2_1_0; tim1_1_0 = tim0_5_0 + tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K881921264) * tre0_5_1) + (((FFTW_REAL) FFTW_K471396736) * tim0_5_1); tim2_0_0 = (((FFTW_REAL) FFTW_K881921264) * tim0_5_1) - (((FFTW_REAL) FFTW_K471396736) * tre0_5_1); tre2_1_0 = (((FFTW_REAL) FFTW_K634393284) * tim0_5_5) - (((FFTW_REAL) FFTW_K773010453) * tre0_5_5); tim2_1_0 = (((FFTW_REAL) FFTW_K773010453) * tim0_5_5) + (((FFTW_REAL) FFTW_K634393284) * tre0_5_5); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 - tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 + tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K555570233) * tre0_5_2) + (((FFTW_REAL) FFTW_K831469612) * tim0_5_2); tim2_0_0 = (((FFTW_REAL) FFTW_K555570233) * tim0_5_2) - (((FFTW_REAL) FFTW_K831469612) * tre0_5_2); tre2_1_0 = (((FFTW_REAL) FFTW_K195090322) * tim0_5_6) - (((FFTW_REAL) FFTW_K980785280) * tre0_5_6); tim2_1_0 = (((FFTW_REAL) FFTW_K980785280) * tim0_5_6) + (((FFTW_REAL) FFTW_K195090322) * tre0_5_6); tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 - tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 + tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K098017140) * tre0_5_3) + (((FFTW_REAL) FFTW_K995184726) * tim0_5_3); tim2_0_0 = (((FFTW_REAL) FFTW_K098017140) * tim0_5_3) - (((FFTW_REAL) FFTW_K995184726) * tre0_5_3); tre2_1_0 = (((FFTW_REAL) FFTW_K956940335) * tre0_5_7) + (((FFTW_REAL) FFTW_K290284677) * tim0_5_7); tim2_1_0 = (((FFTW_REAL) FFTW_K290284677) * tre0_5_7) - (((FFTW_REAL) FFTW_K956940335) * tim0_5_7); tre1_0_3 = tre2_0_0 - tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 + tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; c_re(out[5 * ostride]) = tre2_0_0 + tre2_0_1; c_im(out[5 * ostride]) = tim2_0_0 + tim2_0_1; c_re(out[37 * ostride]) = tre2_0_0 - tre2_0_1; c_im(out[37 * ostride]) = tim2_0_0 - tim2_0_1; c_re(out[21 * ostride]) = tre2_1_0 + tim2_1_1; c_im(out[21 * ostride]) = tim2_1_0 - tre2_1_1; c_re(out[53 * ostride]) = tre2_1_0 - tim2_1_1; c_im(out[53 * ostride]) = tim2_1_0 + tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 + tim1_1_2; tim2_0_0 = tim1_1_0 - tre1_1_2; tre2_1_0 = tre1_1_0 - tim1_1_2; tim2_1_0 = tim1_1_0 + tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 + tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 - tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 - tre1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 + tre1_1_3); tre2_0_1 = tre3_0_0 + tre3_1_0; tim2_0_1 = tim3_0_0 - tim3_1_0; tre2_1_1 = tre3_0_0 - tre3_1_0; tim2_1_1 = tim3_0_0 + tim3_1_0; } c_re(out[13 * ostride]) = tre2_0_0 + tre2_0_1; c_im(out[13 * ostride]) = tim2_0_0 + tim2_0_1; c_re(out[45 * ostride]) = tre2_0_0 - tre2_0_1; c_im(out[45 * ostride]) = tim2_0_0 - tim2_0_1; c_re(out[29 * ostride]) = tre2_1_0 + tim2_1_1; c_im(out[29 * ostride]) = tim2_1_0 - tre2_1_1; c_re(out[61 * ostride]) = tre2_1_0 - tim2_1_1; c_im(out[61 * ostride]) = tim2_1_0 + tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_6_4 - tre0_6_4); tim2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_6_4 + tre0_6_4); tre1_0_0 = tre0_6_0 + tre2_1_0; tim1_0_0 = tim0_6_0 - tim2_1_0; tre1_1_0 = tre0_6_0 - tre2_1_0; tim1_1_0 = tim0_6_0 + tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K831469612) * tre0_6_1) + (((FFTW_REAL) FFTW_K555570233) * tim0_6_1); tim2_0_0 = (((FFTW_REAL) FFTW_K831469612) * tim0_6_1) - (((FFTW_REAL) FFTW_K555570233) * tre0_6_1); tre2_1_0 = (((FFTW_REAL) FFTW_K195090322) * tim0_6_5) - (((FFTW_REAL) FFTW_K980785280) * tre0_6_5); tim2_1_0 = (((FFTW_REAL) FFTW_K980785280) * tim0_6_5) + (((FFTW_REAL) FFTW_K195090322) * tre0_6_5); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 - tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 + tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_6_2) + (((FFTW_REAL) FFTW_K923879532) * tim0_6_2); tim2_0_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_6_2) - (((FFTW_REAL) FFTW_K923879532) * tre0_6_2); tre2_1_0 = (((FFTW_REAL) FFTW_K923879532) * tre0_6_6) + (((FFTW_REAL) FFTW_K382683432) * tim0_6_6); tim2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_6_6) - (((FFTW_REAL) FFTW_K923879532) * tim0_6_6); tre1_0_2 = tre2_0_0 - tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 + tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K980785280) * tim0_6_3) - (((FFTW_REAL) FFTW_K195090322) * tre0_6_3); tim2_0_0 = (((FFTW_REAL) FFTW_K195090322) * tim0_6_3) + (((FFTW_REAL) FFTW_K980785280) * tre0_6_3); tre2_1_0 = (((FFTW_REAL) FFTW_K555570233) * tre0_6_7) + (((FFTW_REAL) FFTW_K831469612) * tim0_6_7); tim2_1_0 = (((FFTW_REAL) FFTW_K831469612) * tre0_6_7) - (((FFTW_REAL) FFTW_K555570233) * tim0_6_7); tre1_0_3 = tre2_0_0 - tre2_1_0; tim1_0_3 = tim2_1_0 - tim2_0_0; tre1_1_3 = tre2_0_0 + tre2_1_0; tim1_1_3 = (-(tim2_0_0 + tim2_1_0)); } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; c_re(out[6 * ostride]) = tre2_0_0 + tre2_0_1; c_im(out[6 * ostride]) = tim2_0_0 + tim2_0_1; c_re(out[38 * ostride]) = tre2_0_0 - tre2_0_1; c_im(out[38 * ostride]) = tim2_0_0 - tim2_0_1; c_re(out[22 * ostride]) = tre2_1_0 + tim2_1_1; c_im(out[22 * ostride]) = tim2_1_0 - tre2_1_1; c_re(out[54 * ostride]) = tre2_1_0 - tim2_1_1; c_im(out[54 * ostride]) = tim2_1_0 + tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 + tim1_1_2; tim2_0_0 = tim1_1_0 - tre1_1_2; tre2_1_0 = tre1_1_0 - tim1_1_2; tim2_1_0 = tim1_1_0 + tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 + tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 - tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 - tre1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 + tre1_1_3); tre2_0_1 = tre3_0_0 + tre3_1_0; tim2_0_1 = tim3_0_0 - tim3_1_0; tre2_1_1 = tre3_0_0 - tre3_1_0; tim2_1_1 = tim3_0_0 + tim3_1_0; } c_re(out[14 * ostride]) = tre2_0_0 + tre2_0_1; c_im(out[14 * ostride]) = tim2_0_0 + tim2_0_1; c_re(out[46 * ostride]) = tre2_0_0 - tre2_0_1; c_im(out[46 * ostride]) = tim2_0_0 - tim2_0_1; c_re(out[30 * ostride]) = tre2_1_0 + tim2_1_1; c_im(out[30 * ostride]) = tim2_1_0 - tre2_1_1; c_re(out[62 * ostride]) = tre2_1_0 - tim2_1_1; c_im(out[62 * ostride]) = tim2_1_0 + tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_7_4) - (((FFTW_REAL) FFTW_K923879532) * tre0_7_4); tim2_1_0 = (((FFTW_REAL) FFTW_K923879532) * tim0_7_4) + (((FFTW_REAL) FFTW_K382683432) * tre0_7_4); tre1_0_0 = tre0_7_0 + tre2_1_0; tim1_0_0 = tim0_7_0 - tim2_1_0; tre1_1_0 = tre0_7_0 - tre2_1_0; tim1_1_0 = tim0_7_0 + tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K773010453) * tre0_7_1) + (((FFTW_REAL) FFTW_K634393284) * tim0_7_1); tim2_0_0 = (((FFTW_REAL) FFTW_K773010453) * tim0_7_1) - (((FFTW_REAL) FFTW_K634393284) * tre0_7_1); tre2_1_0 = (((FFTW_REAL) FFTW_K956940335) * tre0_7_5) + (((FFTW_REAL) FFTW_K290284677) * tim0_7_5); tim2_1_0 = (((FFTW_REAL) FFTW_K290284677) * tre0_7_5) - (((FFTW_REAL) FFTW_K956940335) * tim0_7_5); tre1_0_1 = tre2_0_0 - tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 + tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K195090322) * tre0_7_2) + (((FFTW_REAL) FFTW_K980785280) * tim0_7_2); tim2_0_0 = (((FFTW_REAL) FFTW_K195090322) * tim0_7_2) - (((FFTW_REAL) FFTW_K980785280) * tre0_7_2); tre2_1_0 = (((FFTW_REAL) FFTW_K555570233) * tre0_7_6) + (((FFTW_REAL) FFTW_K831469612) * tim0_7_6); tim2_1_0 = (((FFTW_REAL) FFTW_K831469612) * tre0_7_6) - (((FFTW_REAL) FFTW_K555570233) * tim0_7_6); tre1_0_2 = tre2_0_0 - tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 + tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K881921264) * tim0_7_3) - (((FFTW_REAL) FFTW_K471396736) * tre0_7_3); tim2_0_0 = (((FFTW_REAL) FFTW_K471396736) * tim0_7_3) + (((FFTW_REAL) FFTW_K881921264) * tre0_7_3); tre2_1_0 = (((FFTW_REAL) FFTW_K098017140) * tre0_7_7) - (((FFTW_REAL) FFTW_K995184726) * tim0_7_7); tim2_1_0 = (((FFTW_REAL) FFTW_K098017140) * tim0_7_7) + (((FFTW_REAL) FFTW_K995184726) * tre0_7_7); tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_1_0 - tim2_0_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = (-(tim2_0_0 + tim2_1_0)); } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; c_re(out[7 * ostride]) = tre2_0_0 + tre2_0_1; c_im(out[7 * ostride]) = tim2_0_0 + tim2_0_1; c_re(out[39 * ostride]) = tre2_0_0 - tre2_0_1; c_im(out[39 * ostride]) = tim2_0_0 - tim2_0_1; c_re(out[23 * ostride]) = tre2_1_0 + tim2_1_1; c_im(out[23 * ostride]) = tim2_1_0 - tre2_1_1; c_re(out[55 * ostride]) = tre2_1_0 - tim2_1_1; c_im(out[55 * ostride]) = tim2_1_0 + tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 + tim1_1_2; tim2_0_0 = tim1_1_0 - tre1_1_2; tre2_1_0 = tre1_1_0 - tim1_1_2; tim2_1_0 = tim1_1_0 + tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 + tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 - tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 - tre1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 + tre1_1_3); tre2_0_1 = tre3_0_0 + tre3_1_0; tim2_0_1 = tim3_0_0 - tim3_1_0; tre2_1_1 = tre3_0_0 - tre3_1_0; tim2_1_1 = tim3_0_0 + tim3_1_0; } c_re(out[15 * ostride]) = tre2_0_0 + tre2_0_1; c_im(out[15 * ostride]) = tim2_0_0 + tim2_0_1; c_re(out[47 * ostride]) = tre2_0_0 - tre2_0_1; c_im(out[47 * ostride]) = tim2_0_0 - tim2_0_1; c_re(out[31 * ostride]) = tre2_1_0 + tim2_1_1; c_im(out[31 * ostride]) = tim2_1_0 - tre2_1_1; c_re(out[63 * ostride]) = tre2_1_0 - tim2_1_1; c_im(out[63 * ostride]) = tim2_1_0 + tre2_1_1; } } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 90 FP additions and 36 FP multiplications */ void fftw_no_twiddle_7(const FFTW_COMPLEX *in, FFTW_COMPLEX *out, int istride, int ostride) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_2_0; FFTW_REAL tim0_2_0; FFTW_REAL tre0_3_0; FFTW_REAL tim0_3_0; FFTW_REAL tre0_4_0; FFTW_REAL tim0_4_0; FFTW_REAL tre0_5_0; FFTW_REAL tim0_5_0; FFTW_REAL tre0_6_0; FFTW_REAL tim0_6_0; tre0_0_0 = c_re(in[0]); tim0_0_0 = c_im(in[0]); tre0_1_0 = c_re(in[istride]); tim0_1_0 = c_im(in[istride]); tre0_2_0 = c_re(in[2 * istride]); tim0_2_0 = c_im(in[2 * istride]); tre0_3_0 = c_re(in[3 * istride]); tim0_3_0 = c_im(in[3 * istride]); tre0_4_0 = c_re(in[4 * istride]); tim0_4_0 = c_im(in[4 * istride]); tre0_5_0 = c_re(in[5 * istride]); tim0_5_0 = c_im(in[5 * istride]); tre0_6_0 = c_re(in[6 * istride]); tim0_6_0 = c_im(in[6 * istride]); c_re(out[0]) = tre0_0_0 + tre0_1_0 + tre0_2_0 + tre0_3_0 + tre0_4_0 + tre0_5_0 + tre0_6_0; c_im(out[0]) = tim0_0_0 + tim0_1_0 + tim0_2_0 + tim0_3_0 + tim0_4_0 + tim0_5_0 + tim0_6_0; { FFTW_REAL tre1_0_0; FFTW_REAL tre1_1_0; tre1_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K623489801) * (tre0_1_0 + tre0_6_0)) - (((FFTW_REAL) FFTW_K900968867) * (tre0_3_0 + tre0_4_0)) - (((FFTW_REAL) FFTW_K222520933) * (tre0_2_0 + tre0_5_0)); tre1_1_0 = (((FFTW_REAL) FFTW_K781831482) * (tim0_1_0 - tim0_6_0)) + (((FFTW_REAL) FFTW_K974927912) * (tim0_2_0 - tim0_5_0)) + (((FFTW_REAL) FFTW_K433883739) * (tim0_3_0 - tim0_4_0)); c_re(out[ostride]) = tre1_0_0 + tre1_1_0; c_re(out[6 * ostride]) = tre1_0_0 - tre1_1_0; } { FFTW_REAL tim1_0_0; FFTW_REAL tim1_1_0; tim1_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K623489801) * (tim0_1_0 + tim0_6_0)) - (((FFTW_REAL) FFTW_K900968867) * (tim0_3_0 + tim0_4_0)) - (((FFTW_REAL) FFTW_K222520933) * (tim0_2_0 + tim0_5_0)); tim1_1_0 = (((FFTW_REAL) FFTW_K781831482) * (tre0_6_0 - tre0_1_0)) + (((FFTW_REAL) FFTW_K974927912) * (tre0_5_0 - tre0_2_0)) + (((FFTW_REAL) FFTW_K433883739) * (tre0_4_0 - tre0_3_0)); c_im(out[ostride]) = tim1_0_0 + tim1_1_0; c_im(out[6 * ostride]) = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tre1_1_0; tre1_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K623489801) * (tre0_3_0 + tre0_4_0)) - (((FFTW_REAL) FFTW_K900968867) * (tre0_2_0 + tre0_5_0)) - (((FFTW_REAL) FFTW_K222520933) * (tre0_1_0 + tre0_6_0)); tre1_1_0 = (((FFTW_REAL) FFTW_K974927912) * (tim0_1_0 - tim0_6_0)) + (((FFTW_REAL) FFTW_K433883739) * (tim0_5_0 - tim0_2_0)) + (((FFTW_REAL) FFTW_K781831482) * (tim0_4_0 - tim0_3_0)); c_re(out[2 * ostride]) = tre1_0_0 + tre1_1_0; c_re(out[5 * ostride]) = tre1_0_0 - tre1_1_0; } { FFTW_REAL tim1_0_0; FFTW_REAL tim1_1_0; tim1_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K623489801) * (tim0_3_0 + tim0_4_0)) - (((FFTW_REAL) FFTW_K900968867) * (tim0_2_0 + tim0_5_0)) - (((FFTW_REAL) FFTW_K222520933) * (tim0_1_0 + tim0_6_0)); tim1_1_0 = (((FFTW_REAL) FFTW_K974927912) * (tre0_6_0 - tre0_1_0)) + (((FFTW_REAL) FFTW_K433883739) * (tre0_2_0 - tre0_5_0)) + (((FFTW_REAL) FFTW_K781831482) * (tre0_3_0 - tre0_4_0)); c_im(out[2 * ostride]) = tim1_0_0 + tim1_1_0; c_im(out[5 * ostride]) = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tre1_1_0; tre1_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K623489801) * (tre0_2_0 + tre0_5_0)) - (((FFTW_REAL) FFTW_K222520933) * (tre0_3_0 + tre0_4_0)) - (((FFTW_REAL) FFTW_K900968867) * (tre0_1_0 + tre0_6_0)); tre1_1_0 = (((FFTW_REAL) FFTW_K433883739) * (tim0_1_0 - tim0_6_0)) + (((FFTW_REAL) FFTW_K781831482) * (tim0_5_0 - tim0_2_0)) + (((FFTW_REAL) FFTW_K974927912) * (tim0_3_0 - tim0_4_0)); c_re(out[3 * ostride]) = tre1_0_0 + tre1_1_0; c_re(out[4 * ostride]) = tre1_0_0 - tre1_1_0; } { FFTW_REAL tim1_0_0; FFTW_REAL tim1_1_0; tim1_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K623489801) * (tim0_2_0 + tim0_5_0)) - (((FFTW_REAL) FFTW_K222520933) * (tim0_3_0 + tim0_4_0)) - (((FFTW_REAL) FFTW_K900968867) * (tim0_1_0 + tim0_6_0)); tim1_1_0 = (((FFTW_REAL) FFTW_K433883739) * (tre0_6_0 - tre0_1_0)) + (((FFTW_REAL) FFTW_K781831482) * (tre0_2_0 - tre0_5_0)) + (((FFTW_REAL) FFTW_K974927912) * (tre0_4_0 - tre0_3_0)); c_im(out[3 * ostride]) = tim1_0_0 + tim1_1_0; c_im(out[4 * ostride]) = tim1_0_0 - tim1_1_0; } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 52 FP additions and 4 FP multiplications */ void fftw_no_twiddle_8(const FFTW_COMPLEX *in, FFTW_COMPLEX *out, int istride, int ostride) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_0_1; FFTW_REAL tim0_0_1; FFTW_REAL tre0_0_2; FFTW_REAL tim0_0_2; FFTW_REAL tre0_0_3; FFTW_REAL tim0_0_3; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_1_1; FFTW_REAL tim0_1_1; FFTW_REAL tre0_1_2; FFTW_REAL tim0_1_2; FFTW_REAL tre0_1_3; FFTW_REAL tim0_1_3; { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(in[0]); tim1_0_0 = c_im(in[0]); tre1_1_0 = c_re(in[4 * istride]); tim1_1_0 = c_im(in[4 * istride]); tre0_0_0 = tre1_0_0 + tre1_1_0; tim0_0_0 = tim1_0_0 + tim1_1_0; tre0_1_0 = tre1_0_0 - tre1_1_0; tim0_1_0 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(in[istride]); tim1_0_0 = c_im(in[istride]); tre1_1_0 = c_re(in[5 * istride]); tim1_1_0 = c_im(in[5 * istride]); tre0_0_1 = tre1_0_0 + tre1_1_0; tim0_0_1 = tim1_0_0 + tim1_1_0; tre0_1_1 = tre1_0_0 - tre1_1_0; tim0_1_1 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(in[2 * istride]); tim1_0_0 = c_im(in[2 * istride]); tre1_1_0 = c_re(in[6 * istride]); tim1_1_0 = c_im(in[6 * istride]); tre0_0_2 = tre1_0_0 + tre1_1_0; tim0_0_2 = tim1_0_0 + tim1_1_0; tre0_1_2 = tre1_0_0 - tre1_1_0; tim0_1_2 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(in[3 * istride]); tim1_0_0 = c_im(in[3 * istride]); tre1_1_0 = c_re(in[7 * istride]); tim1_1_0 = c_im(in[7 * istride]); tre0_0_3 = tre1_0_0 + tre1_1_0; tim0_0_3 = tim1_0_0 + tim1_1_0; tre0_1_3 = tre1_0_0 - tre1_1_0; tim0_1_3 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; tre1_0_0 = tre0_0_0 + tre0_0_2; tim1_0_0 = tim0_0_0 + tim0_0_2; tre1_1_0 = tre0_0_0 - tre0_0_2; tim1_1_0 = tim0_0_0 - tim0_0_2; tre1_0_1 = tre0_0_1 + tre0_0_3; tim1_0_1 = tim0_0_1 + tim0_0_3; tre1_1_1 = tre0_0_1 - tre0_0_3; tim1_1_1 = tim0_0_1 - tim0_0_3; c_re(out[0]) = tre1_0_0 + tre1_0_1; c_im(out[0]) = tim1_0_0 + tim1_0_1; c_re(out[4 * ostride]) = tre1_0_0 - tre1_0_1; c_im(out[4 * ostride]) = tim1_0_0 - tim1_0_1; c_re(out[2 * ostride]) = tre1_1_0 + tim1_1_1; c_im(out[2 * ostride]) = tim1_1_0 - tre1_1_1; c_re(out[6 * ostride]) = tre1_1_0 - tim1_1_1; c_im(out[6 * ostride]) = tim1_1_0 + tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; tre1_0_0 = tre0_1_0 + tim0_1_2; tim1_0_0 = tim0_1_0 - tre0_1_2; tre1_1_0 = tre0_1_0 - tim0_1_2; tim1_1_0 = tim0_1_0 + tre0_1_2; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_1_1 + tim0_1_1); tim2_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_1_1 - tre0_1_1); tre2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_1_3 - tre0_1_3); tim2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_1_3 + tre0_1_3); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 - tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 + tim2_1_0; } c_re(out[ostride]) = tre1_0_0 + tre1_0_1; c_im(out[ostride]) = tim1_0_0 + tim1_0_1; c_re(out[5 * ostride]) = tre1_0_0 - tre1_0_1; c_im(out[5 * ostride]) = tim1_0_0 - tim1_0_1; c_re(out[3 * ostride]) = tre1_1_0 + tim1_1_1; c_im(out[3 * ostride]) = tim1_1_0 - tre1_1_1; c_re(out[7 * ostride]) = tre1_1_0 - tim1_1_1; c_im(out[7 * ostride]) = tim1_1_0 + tre1_1_1; } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 92 FP additions and 40 FP multiplications */ void fftw_no_twiddle_9(const FFTW_COMPLEX *in, FFTW_COMPLEX *out, int istride, int ostride) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_0_1; FFTW_REAL tim0_0_1; FFTW_REAL tre0_0_2; FFTW_REAL tim0_0_2; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_1_1; FFTW_REAL tim0_1_1; FFTW_REAL tre0_1_2; FFTW_REAL tim0_1_2; FFTW_REAL tre0_2_0; FFTW_REAL tim0_2_0; FFTW_REAL tre0_2_1; FFTW_REAL tim0_2_1; FFTW_REAL tre0_2_2; FFTW_REAL tim0_2_2; { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_2_0; FFTW_REAL tim1_2_0; tre1_0_0 = c_re(in[0]); tim1_0_0 = c_im(in[0]); tre1_1_0 = c_re(in[3 * istride]); tim1_1_0 = c_im(in[3 * istride]); tre1_2_0 = c_re(in[6 * istride]); tim1_2_0 = c_im(in[6 * istride]); tre0_0_0 = tre1_0_0 + tre1_1_0 + tre1_2_0; tim0_0_0 = tim1_0_0 + tim1_1_0 + tim1_2_0; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tre1_1_0 + tre1_2_0)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim1_1_0 - tim1_2_0); tre0_1_0 = tre2_0_0 + tre2_1_0; tre0_2_0 = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tim1_1_0 + tim1_2_0)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre1_2_0 - tre1_1_0); tim0_1_0 = tim2_0_0 + tim2_1_0; tim0_2_0 = tim2_0_0 - tim2_1_0; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_2_0; FFTW_REAL tim1_2_0; tre1_0_0 = c_re(in[istride]); tim1_0_0 = c_im(in[istride]); tre1_1_0 = c_re(in[4 * istride]); tim1_1_0 = c_im(in[4 * istride]); tre1_2_0 = c_re(in[7 * istride]); tim1_2_0 = c_im(in[7 * istride]); tre0_0_1 = tre1_0_0 + tre1_1_0 + tre1_2_0; tim0_0_1 = tim1_0_0 + tim1_1_0 + tim1_2_0; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tre1_1_0 + tre1_2_0)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim1_1_0 - tim1_2_0); tre0_1_1 = tre2_0_0 + tre2_1_0; tre0_2_1 = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tim1_1_0 + tim1_2_0)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre1_2_0 - tre1_1_0); tim0_1_1 = tim2_0_0 + tim2_1_0; tim0_2_1 = tim2_0_0 - tim2_1_0; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_2_0; FFTW_REAL tim1_2_0; tre1_0_0 = c_re(in[2 * istride]); tim1_0_0 = c_im(in[2 * istride]); tre1_1_0 = c_re(in[5 * istride]); tim1_1_0 = c_im(in[5 * istride]); tre1_2_0 = c_re(in[8 * istride]); tim1_2_0 = c_im(in[8 * istride]); tre0_0_2 = tre1_0_0 + tre1_1_0 + tre1_2_0; tim0_0_2 = tim1_0_0 + tim1_1_0 + tim1_2_0; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tre1_1_0 + tre1_2_0)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim1_1_0 - tim1_2_0); tre0_1_2 = tre2_0_0 + tre2_1_0; tre0_2_2 = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tim1_1_0 + tim1_2_0)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre1_2_0 - tre1_1_0); tim0_1_2 = tim2_0_0 + tim2_1_0; tim0_2_2 = tim2_0_0 - tim2_1_0; } } c_re(out[0]) = tre0_0_0 + tre0_0_1 + tre0_0_2; c_im(out[0]) = tim0_0_0 + tim0_0_1 + tim0_0_2; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tre0_0_1 + tre0_0_2)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim0_0_1 - tim0_0_2); c_re(out[3 * ostride]) = tre2_0_0 + tre2_1_0; c_re(out[6 * ostride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tim0_0_1 + tim0_0_2)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre0_0_2 - tre0_0_1); c_im(out[3 * ostride]) = tim2_0_0 + tim2_1_0; c_im(out[6 * ostride]) = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_2_0; FFTW_REAL tim1_2_0; tre1_1_0 = (((FFTW_REAL) FFTW_K766044443) * tre0_1_1) + (((FFTW_REAL) FFTW_K642787609) * tim0_1_1); tim1_1_0 = (((FFTW_REAL) FFTW_K766044443) * tim0_1_1) - (((FFTW_REAL) FFTW_K642787609) * tre0_1_1); tre1_2_0 = (((FFTW_REAL) FFTW_K173648177) * tre0_1_2) + (((FFTW_REAL) FFTW_K984807753) * tim0_1_2); tim1_2_0 = (((FFTW_REAL) FFTW_K173648177) * tim0_1_2) - (((FFTW_REAL) FFTW_K984807753) * tre0_1_2); c_re(out[ostride]) = tre0_1_0 + tre1_1_0 + tre1_2_0; c_im(out[ostride]) = tim0_1_0 + tim1_1_0 + tim1_2_0; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_1_0 - (((FFTW_REAL) FFTW_K499999999) * (tre1_1_0 + tre1_2_0)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim1_1_0 - tim1_2_0); c_re(out[4 * ostride]) = tre2_0_0 + tre2_1_0; c_re(out[7 * ostride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_1_0 - (((FFTW_REAL) FFTW_K499999999) * (tim1_1_0 + tim1_2_0)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre1_2_0 - tre1_1_0); c_im(out[4 * ostride]) = tim2_0_0 + tim2_1_0; c_im(out[7 * ostride]) = tim2_0_0 - tim2_1_0; } } { FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_2_0; FFTW_REAL tim1_2_0; tre1_1_0 = (((FFTW_REAL) FFTW_K173648177) * tre0_2_1) + (((FFTW_REAL) FFTW_K984807753) * tim0_2_1); tim1_1_0 = (((FFTW_REAL) FFTW_K173648177) * tim0_2_1) - (((FFTW_REAL) FFTW_K984807753) * tre0_2_1); tre1_2_0 = (((FFTW_REAL) FFTW_K342020143) * tim0_2_2) - (((FFTW_REAL) FFTW_K939692620) * tre0_2_2); tim1_2_0 = (((FFTW_REAL) FFTW_K939692620) * tim0_2_2) + (((FFTW_REAL) FFTW_K342020143) * tre0_2_2); c_re(out[2 * ostride]) = tre0_2_0 + tre1_1_0 + tre1_2_0; c_im(out[2 * ostride]) = tim0_2_0 + tim1_1_0 - tim1_2_0; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_2_0 - (((FFTW_REAL) FFTW_K499999999) * (tre1_1_0 + tre1_2_0)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim1_1_0 + tim1_2_0); c_re(out[5 * ostride]) = tre2_0_0 + tre2_1_0; c_re(out[8 * ostride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_2_0 + (((FFTW_REAL) FFTW_K499999999) * (tim1_2_0 - tim1_1_0)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre1_2_0 - tre1_1_0); c_im(out[5 * ostride]) = tim2_0_0 + tim2_1_0; c_im(out[8 * ostride]) = tim2_0_0 - tim2_1_0; } } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 0 FP additions and 0 FP multiplications */ void fftwi_no_twiddle_1(const FFTW_COMPLEX *in, FFTW_COMPLEX *out, int istride, int ostride) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; tre0_0_0 = c_re(in[0]); tim0_0_0 = c_im(in[0]); c_re(out[0]) = tre0_0_0; c_im(out[0]) = tim0_0_0; } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 108 FP additions and 32 FP multiplications */ void fftwi_no_twiddle_10(const FFTW_COMPLEX *in, FFTW_COMPLEX *out, int istride, int ostride) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_0_1; FFTW_REAL tim0_0_1; FFTW_REAL tre0_0_2; FFTW_REAL tim0_0_2; FFTW_REAL tre0_0_3; FFTW_REAL tim0_0_3; FFTW_REAL tre0_0_4; FFTW_REAL tim0_0_4; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_1_1; FFTW_REAL tim0_1_1; FFTW_REAL tre0_1_2; FFTW_REAL tim0_1_2; FFTW_REAL tre0_1_3; FFTW_REAL tim0_1_3; FFTW_REAL tre0_1_4; FFTW_REAL tim0_1_4; { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(in[0]); tim1_0_0 = c_im(in[0]); tre1_1_0 = c_re(in[5 * istride]); tim1_1_0 = c_im(in[5 * istride]); tre0_0_0 = tre1_0_0 + tre1_1_0; tim0_0_0 = tim1_0_0 + tim1_1_0; tre0_1_0 = tre1_0_0 - tre1_1_0; tim0_1_0 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(in[2 * istride]); tim1_0_0 = c_im(in[2 * istride]); tre1_1_0 = c_re(in[7 * istride]); tim1_1_0 = c_im(in[7 * istride]); tre0_0_1 = tre1_0_0 + tre1_1_0; tim0_0_1 = tim1_0_0 + tim1_1_0; tre0_1_1 = tre1_0_0 - tre1_1_0; tim0_1_1 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(in[4 * istride]); tim1_0_0 = c_im(in[4 * istride]); tre1_1_0 = c_re(in[9 * istride]); tim1_1_0 = c_im(in[9 * istride]); tre0_0_2 = tre1_0_0 + tre1_1_0; tim0_0_2 = tim1_0_0 + tim1_1_0; tre0_1_2 = tre1_0_0 - tre1_1_0; tim0_1_2 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(in[6 * istride]); tim1_0_0 = c_im(in[6 * istride]); tre1_1_0 = c_re(in[istride]); tim1_1_0 = c_im(in[istride]); tre0_0_3 = tre1_0_0 + tre1_1_0; tim0_0_3 = tim1_0_0 + tim1_1_0; tre0_1_3 = tre1_0_0 - tre1_1_0; tim0_1_3 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(in[8 * istride]); tim1_0_0 = c_im(in[8 * istride]); tre1_1_0 = c_re(in[3 * istride]); tim1_1_0 = c_im(in[3 * istride]); tre0_0_4 = tre1_0_0 + tre1_1_0; tim0_0_4 = tim1_0_0 + tim1_1_0; tre0_1_4 = tre1_0_0 - tre1_1_0; tim0_1_4 = tim1_0_0 - tim1_1_0; } c_re(out[0]) = tre0_0_0 + tre0_0_1 + tre0_0_2 + tre0_0_3 + tre0_0_4; c_im(out[0]) = tim0_0_0 + tim0_0_1 + tim0_0_2 + tim0_0_3 + tim0_0_4; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K309016994) * (tre0_0_1 + tre0_0_4)) - (((FFTW_REAL) FFTW_K809016994) * (tre0_0_2 + tre0_0_3)); tre2_1_0 = (((FFTW_REAL) FFTW_K951056516) * (tim0_0_4 - tim0_0_1)) + (((FFTW_REAL) FFTW_K587785252) * (tim0_0_3 - tim0_0_2)); c_re(out[6 * ostride]) = tre2_0_0 + tre2_1_0; c_re(out[4 * ostride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K309016994) * (tim0_0_1 + tim0_0_4)) - (((FFTW_REAL) FFTW_K809016994) * (tim0_0_2 + tim0_0_3)); tim2_1_0 = (((FFTW_REAL) FFTW_K951056516) * (tre0_0_1 - tre0_0_4)) + (((FFTW_REAL) FFTW_K587785252) * (tre0_0_2 - tre0_0_3)); c_im(out[6 * ostride]) = tim2_0_0 + tim2_1_0; c_im(out[4 * ostride]) = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K309016994) * (tre0_0_2 + tre0_0_3)) - (((FFTW_REAL) FFTW_K809016994) * (tre0_0_1 + tre0_0_4)); tre2_1_0 = (((FFTW_REAL) FFTW_K587785252) * (tim0_0_4 - tim0_0_1)) + (((FFTW_REAL) FFTW_K951056516) * (tim0_0_2 - tim0_0_3)); c_re(out[2 * ostride]) = tre2_0_0 + tre2_1_0; c_re(out[8 * ostride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K309016994) * (tim0_0_2 + tim0_0_3)) - (((FFTW_REAL) FFTW_K809016994) * (tim0_0_1 + tim0_0_4)); tim2_1_0 = (((FFTW_REAL) FFTW_K587785252) * (tre0_0_1 - tre0_0_4)) + (((FFTW_REAL) FFTW_K951056516) * (tre0_0_3 - tre0_0_2)); c_im(out[2 * ostride]) = tim2_0_0 + tim2_1_0; c_im(out[8 * ostride]) = tim2_0_0 - tim2_1_0; } c_re(out[5 * ostride]) = tre0_1_0 + tre0_1_1 + tre0_1_2 + tre0_1_3 + tre0_1_4; c_im(out[5 * ostride]) = tim0_1_0 + tim0_1_1 + tim0_1_2 + tim0_1_3 + tim0_1_4; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_1_0 + (((FFTW_REAL) FFTW_K309016994) * (tre0_1_1 + tre0_1_4)) - (((FFTW_REAL) FFTW_K809016994) * (tre0_1_2 + tre0_1_3)); tre2_1_0 = (((FFTW_REAL) FFTW_K951056516) * (tim0_1_4 - tim0_1_1)) + (((FFTW_REAL) FFTW_K587785252) * (tim0_1_3 - tim0_1_2)); c_re(out[ostride]) = tre2_0_0 + tre2_1_0; c_re(out[9 * ostride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_1_0 + (((FFTW_REAL) FFTW_K309016994) * (tim0_1_1 + tim0_1_4)) - (((FFTW_REAL) FFTW_K809016994) * (tim0_1_2 + tim0_1_3)); tim2_1_0 = (((FFTW_REAL) FFTW_K951056516) * (tre0_1_1 - tre0_1_4)) + (((FFTW_REAL) FFTW_K587785252) * (tre0_1_2 - tre0_1_3)); c_im(out[ostride]) = tim2_0_0 + tim2_1_0; c_im(out[9 * ostride]) = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_1_0 + (((FFTW_REAL) FFTW_K309016994) * (tre0_1_2 + tre0_1_3)) - (((FFTW_REAL) FFTW_K809016994) * (tre0_1_1 + tre0_1_4)); tre2_1_0 = (((FFTW_REAL) FFTW_K587785252) * (tim0_1_4 - tim0_1_1)) + (((FFTW_REAL) FFTW_K951056516) * (tim0_1_2 - tim0_1_3)); c_re(out[7 * ostride]) = tre2_0_0 + tre2_1_0; c_re(out[3 * ostride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_1_0 + (((FFTW_REAL) FFTW_K309016994) * (tim0_1_2 + tim0_1_3)) - (((FFTW_REAL) FFTW_K809016994) * (tim0_1_1 + tim0_1_4)); tim2_1_0 = (((FFTW_REAL) FFTW_K587785252) * (tre0_1_1 - tre0_1_4)) + (((FFTW_REAL) FFTW_K951056516) * (tre0_1_3 - tre0_1_2)); c_im(out[7 * ostride]) = tim2_0_0 + tim2_1_0; c_im(out[3 * ostride]) = tim2_0_0 - tim2_1_0; } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 230 FP additions and 100 FP multiplications */ void fftwi_no_twiddle_11(const FFTW_COMPLEX *in, FFTW_COMPLEX *out, int istride, int ostride) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_2_0; FFTW_REAL tim0_2_0; FFTW_REAL tre0_3_0; FFTW_REAL tim0_3_0; FFTW_REAL tre0_4_0; FFTW_REAL tim0_4_0; FFTW_REAL tre0_5_0; FFTW_REAL tim0_5_0; FFTW_REAL tre0_6_0; FFTW_REAL tim0_6_0; FFTW_REAL tre0_7_0; FFTW_REAL tim0_7_0; FFTW_REAL tre0_8_0; FFTW_REAL tim0_8_0; FFTW_REAL tre0_9_0; FFTW_REAL tim0_9_0; FFTW_REAL tre0_10_0; FFTW_REAL tim0_10_0; tre0_0_0 = c_re(in[0]); tim0_0_0 = c_im(in[0]); tre0_1_0 = c_re(in[istride]); tim0_1_0 = c_im(in[istride]); tre0_2_0 = c_re(in[2 * istride]); tim0_2_0 = c_im(in[2 * istride]); tre0_3_0 = c_re(in[3 * istride]); tim0_3_0 = c_im(in[3 * istride]); tre0_4_0 = c_re(in[4 * istride]); tim0_4_0 = c_im(in[4 * istride]); tre0_5_0 = c_re(in[5 * istride]); tim0_5_0 = c_im(in[5 * istride]); tre0_6_0 = c_re(in[6 * istride]); tim0_6_0 = c_im(in[6 * istride]); tre0_7_0 = c_re(in[7 * istride]); tim0_7_0 = c_im(in[7 * istride]); tre0_8_0 = c_re(in[8 * istride]); tim0_8_0 = c_im(in[8 * istride]); tre0_9_0 = c_re(in[9 * istride]); tim0_9_0 = c_im(in[9 * istride]); tre0_10_0 = c_re(in[10 * istride]); tim0_10_0 = c_im(in[10 * istride]); c_re(out[0]) = tre0_0_0 + tre0_1_0 + tre0_2_0 + tre0_3_0 + tre0_4_0 + tre0_5_0 + tre0_6_0 + tre0_7_0 + tre0_8_0 + tre0_9_0 + tre0_10_0; c_im(out[0]) = tim0_0_0 + tim0_1_0 + tim0_2_0 + tim0_3_0 + tim0_4_0 + tim0_5_0 + tim0_6_0 + tim0_7_0 + tim0_8_0 + tim0_9_0 + tim0_10_0; { FFTW_REAL tre1_0_0; FFTW_REAL tre1_1_0; tre1_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K841253532) * (tre0_1_0 + tre0_10_0)) + (((FFTW_REAL) FFTW_K415415013) * (tre0_2_0 + tre0_9_0)) - (((FFTW_REAL) FFTW_K959492973) * (tre0_5_0 + tre0_6_0)) - (((FFTW_REAL) FFTW_K654860733) * (tre0_4_0 + tre0_7_0)) - (((FFTW_REAL) FFTW_K142314838) * (tre0_3_0 + tre0_8_0)); tre1_1_0 = (((FFTW_REAL) FFTW_K540640817) * (tim0_10_0 - tim0_1_0)) + (((FFTW_REAL) FFTW_K909631995) * (tim0_9_0 - tim0_2_0)) + (((FFTW_REAL) FFTW_K989821441) * (tim0_8_0 - tim0_3_0)) + (((FFTW_REAL) FFTW_K755749574) * (tim0_7_0 - tim0_4_0)) + (((FFTW_REAL) FFTW_K281732556) * (tim0_6_0 - tim0_5_0)); c_re(out[ostride]) = tre1_0_0 + tre1_1_0; c_re(out[10 * ostride]) = tre1_0_0 - tre1_1_0; } { FFTW_REAL tim1_0_0; FFTW_REAL tim1_1_0; tim1_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K841253532) * (tim0_1_0 + tim0_10_0)) + (((FFTW_REAL) FFTW_K415415013) * (tim0_2_0 + tim0_9_0)) - (((FFTW_REAL) FFTW_K959492973) * (tim0_5_0 + tim0_6_0)) - (((FFTW_REAL) FFTW_K654860733) * (tim0_4_0 + tim0_7_0)) - (((FFTW_REAL) FFTW_K142314838) * (tim0_3_0 + tim0_8_0)); tim1_1_0 = (((FFTW_REAL) FFTW_K540640817) * (tre0_1_0 - tre0_10_0)) + (((FFTW_REAL) FFTW_K909631995) * (tre0_2_0 - tre0_9_0)) + (((FFTW_REAL) FFTW_K989821441) * (tre0_3_0 - tre0_8_0)) + (((FFTW_REAL) FFTW_K755749574) * (tre0_4_0 - tre0_7_0)) + (((FFTW_REAL) FFTW_K281732556) * (tre0_5_0 - tre0_6_0)); c_im(out[ostride]) = tim1_0_0 + tim1_1_0; c_im(out[10 * ostride]) = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tre1_1_0; tre1_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K415415013) * (tre0_1_0 + tre0_10_0)) + (((FFTW_REAL) FFTW_K841253532) * (tre0_5_0 + tre0_6_0)) - (((FFTW_REAL) FFTW_K142314838) * (tre0_4_0 + tre0_7_0)) - (((FFTW_REAL) FFTW_K959492973) * (tre0_3_0 + tre0_8_0)) - (((FFTW_REAL) FFTW_K654860733) * (tre0_2_0 + tre0_9_0)); tre1_1_0 = (((FFTW_REAL) FFTW_K909631995) * (tim0_10_0 - tim0_1_0)) + (((FFTW_REAL) FFTW_K755749574) * (tim0_9_0 - tim0_2_0)) + (((FFTW_REAL) FFTW_K281732556) * (tim0_3_0 - tim0_8_0)) + (((FFTW_REAL) FFTW_K989821441) * (tim0_4_0 - tim0_7_0)) + (((FFTW_REAL) FFTW_K540640817) * (tim0_5_0 - tim0_6_0)); c_re(out[2 * ostride]) = tre1_0_0 + tre1_1_0; c_re(out[9 * ostride]) = tre1_0_0 - tre1_1_0; } { FFTW_REAL tim1_0_0; FFTW_REAL tim1_1_0; tim1_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K415415013) * (tim0_1_0 + tim0_10_0)) + (((FFTW_REAL) FFTW_K841253532) * (tim0_5_0 + tim0_6_0)) - (((FFTW_REAL) FFTW_K142314838) * (tim0_4_0 + tim0_7_0)) - (((FFTW_REAL) FFTW_K959492973) * (tim0_3_0 + tim0_8_0)) - (((FFTW_REAL) FFTW_K654860733) * (tim0_2_0 + tim0_9_0)); tim1_1_0 = (((FFTW_REAL) FFTW_K909631995) * (tre0_1_0 - tre0_10_0)) + (((FFTW_REAL) FFTW_K755749574) * (tre0_2_0 - tre0_9_0)) + (((FFTW_REAL) FFTW_K281732556) * (tre0_8_0 - tre0_3_0)) + (((FFTW_REAL) FFTW_K989821441) * (tre0_7_0 - tre0_4_0)) + (((FFTW_REAL) FFTW_K540640817) * (tre0_6_0 - tre0_5_0)); c_im(out[2 * ostride]) = tim1_0_0 + tim1_1_0; c_im(out[9 * ostride]) = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tre1_1_0; tre1_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K415415013) * (tre0_3_0 + tre0_8_0)) + (((FFTW_REAL) FFTW_K841253532) * (tre0_4_0 + tre0_7_0)) - (((FFTW_REAL) FFTW_K654860733) * (tre0_5_0 + tre0_6_0)) - (((FFTW_REAL) FFTW_K959492973) * (tre0_2_0 + tre0_9_0)) - (((FFTW_REAL) FFTW_K142314838) * (tre0_1_0 + tre0_10_0)); tre1_1_0 = (((FFTW_REAL) FFTW_K989821441) * (tim0_10_0 - tim0_1_0)) + (((FFTW_REAL) FFTW_K281732556) * (tim0_2_0 - tim0_9_0)) + (((FFTW_REAL) FFTW_K909631995) * (tim0_3_0 - tim0_8_0)) + (((FFTW_REAL) FFTW_K540640817) * (tim0_7_0 - tim0_4_0)) + (((FFTW_REAL) FFTW_K755749574) * (tim0_6_0 - tim0_5_0)); c_re(out[3 * ostride]) = tre1_0_0 + tre1_1_0; c_re(out[8 * ostride]) = tre1_0_0 - tre1_1_0; } { FFTW_REAL tim1_0_0; FFTW_REAL tim1_1_0; tim1_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K415415013) * (tim0_3_0 + tim0_8_0)) + (((FFTW_REAL) FFTW_K841253532) * (tim0_4_0 + tim0_7_0)) - (((FFTW_REAL) FFTW_K654860733) * (tim0_5_0 + tim0_6_0)) - (((FFTW_REAL) FFTW_K959492973) * (tim0_2_0 + tim0_9_0)) - (((FFTW_REAL) FFTW_K142314838) * (tim0_1_0 + tim0_10_0)); tim1_1_0 = (((FFTW_REAL) FFTW_K989821441) * (tre0_1_0 - tre0_10_0)) + (((FFTW_REAL) FFTW_K281732556) * (tre0_9_0 - tre0_2_0)) + (((FFTW_REAL) FFTW_K909631995) * (tre0_8_0 - tre0_3_0)) + (((FFTW_REAL) FFTW_K540640817) * (tre0_4_0 - tre0_7_0)) + (((FFTW_REAL) FFTW_K755749574) * (tre0_5_0 - tre0_6_0)); c_im(out[3 * ostride]) = tim1_0_0 + tim1_1_0; c_im(out[8 * ostride]) = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tre1_1_0; tre1_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K841253532) * (tre0_3_0 + tre0_8_0)) + (((FFTW_REAL) FFTW_K415415013) * (tre0_5_0 + tre0_6_0)) - (((FFTW_REAL) FFTW_K959492973) * (tre0_4_0 + tre0_7_0)) - (((FFTW_REAL) FFTW_K142314838) * (tre0_2_0 + tre0_9_0)) - (((FFTW_REAL) FFTW_K654860733) * (tre0_1_0 + tre0_10_0)); tre1_1_0 = (((FFTW_REAL) FFTW_K755749574) * (tim0_10_0 - tim0_1_0)) + (((FFTW_REAL) FFTW_K989821441) * (tim0_2_0 - tim0_9_0)) + (((FFTW_REAL) FFTW_K540640817) * (tim0_8_0 - tim0_3_0)) + (((FFTW_REAL) FFTW_K281732556) * (tim0_7_0 - tim0_4_0)) + (((FFTW_REAL) FFTW_K909631995) * (tim0_5_0 - tim0_6_0)); c_re(out[4 * ostride]) = tre1_0_0 + tre1_1_0; c_re(out[7 * ostride]) = tre1_0_0 - tre1_1_0; } { FFTW_REAL tim1_0_0; FFTW_REAL tim1_1_0; tim1_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K841253532) * (tim0_3_0 + tim0_8_0)) + (((FFTW_REAL) FFTW_K415415013) * (tim0_5_0 + tim0_6_0)) - (((FFTW_REAL) FFTW_K959492973) * (tim0_4_0 + tim0_7_0)) - (((FFTW_REAL) FFTW_K142314838) * (tim0_2_0 + tim0_9_0)) - (((FFTW_REAL) FFTW_K654860733) * (tim0_1_0 + tim0_10_0)); tim1_1_0 = (((FFTW_REAL) FFTW_K755749574) * (tre0_1_0 - tre0_10_0)) + (((FFTW_REAL) FFTW_K989821441) * (tre0_9_0 - tre0_2_0)) + (((FFTW_REAL) FFTW_K540640817) * (tre0_3_0 - tre0_8_0)) + (((FFTW_REAL) FFTW_K281732556) * (tre0_4_0 - tre0_7_0)) + (((FFTW_REAL) FFTW_K909631995) * (tre0_6_0 - tre0_5_0)); c_im(out[4 * ostride]) = tim1_0_0 + tim1_1_0; c_im(out[7 * ostride]) = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tre1_1_0; tre1_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K841253532) * (tre0_2_0 + tre0_9_0)) + (((FFTW_REAL) FFTW_K415415013) * (tre0_4_0 + tre0_7_0)) - (((FFTW_REAL) FFTW_K142314838) * (tre0_5_0 + tre0_6_0)) - (((FFTW_REAL) FFTW_K654860733) * (tre0_3_0 + tre0_8_0)) - (((FFTW_REAL) FFTW_K959492973) * (tre0_1_0 + tre0_10_0)); tre1_1_0 = (((FFTW_REAL) FFTW_K281732556) * (tim0_10_0 - tim0_1_0)) + (((FFTW_REAL) FFTW_K540640817) * (tim0_2_0 - tim0_9_0)) + (((FFTW_REAL) FFTW_K755749574) * (tim0_8_0 - tim0_3_0)) + (((FFTW_REAL) FFTW_K909631995) * (tim0_4_0 - tim0_7_0)) + (((FFTW_REAL) FFTW_K989821441) * (tim0_6_0 - tim0_5_0)); c_re(out[5 * ostride]) = tre1_0_0 + tre1_1_0; c_re(out[6 * ostride]) = tre1_0_0 - tre1_1_0; } { FFTW_REAL tim1_0_0; FFTW_REAL tim1_1_0; tim1_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K841253532) * (tim0_2_0 + tim0_9_0)) + (((FFTW_REAL) FFTW_K415415013) * (tim0_4_0 + tim0_7_0)) - (((FFTW_REAL) FFTW_K142314838) * (tim0_5_0 + tim0_6_0)) - (((FFTW_REAL) FFTW_K654860733) * (tim0_3_0 + tim0_8_0)) - (((FFTW_REAL) FFTW_K959492973) * (tim0_1_0 + tim0_10_0)); tim1_1_0 = (((FFTW_REAL) FFTW_K281732556) * (tre0_1_0 - tre0_10_0)) + (((FFTW_REAL) FFTW_K540640817) * (tre0_9_0 - tre0_2_0)) + (((FFTW_REAL) FFTW_K755749574) * (tre0_3_0 - tre0_8_0)) + (((FFTW_REAL) FFTW_K909631995) * (tre0_7_0 - tre0_4_0)) + (((FFTW_REAL) FFTW_K989821441) * (tre0_5_0 - tre0_6_0)); c_im(out[5 * ostride]) = tim1_0_0 + tim1_1_0; c_im(out[6 * ostride]) = tim1_0_0 - tim1_1_0; } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 104 FP additions and 16 FP multiplications */ void fftwi_no_twiddle_12(const FFTW_COMPLEX *in, FFTW_COMPLEX *out, int istride, int ostride) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_0_1; FFTW_REAL tim0_0_1; FFTW_REAL tre0_0_2; FFTW_REAL tim0_0_2; FFTW_REAL tre0_0_3; FFTW_REAL tim0_0_3; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_1_1; FFTW_REAL tim0_1_1; FFTW_REAL tre0_1_2; FFTW_REAL tim0_1_2; FFTW_REAL tre0_1_3; FFTW_REAL tim0_1_3; FFTW_REAL tre0_2_0; FFTW_REAL tim0_2_0; FFTW_REAL tre0_2_1; FFTW_REAL tim0_2_1; FFTW_REAL tre0_2_2; FFTW_REAL tim0_2_2; FFTW_REAL tre0_2_3; FFTW_REAL tim0_2_3; { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_2_0; FFTW_REAL tim1_2_0; tre1_0_0 = c_re(in[0]); tim1_0_0 = c_im(in[0]); tre1_1_0 = c_re(in[4 * istride]); tim1_1_0 = c_im(in[4 * istride]); tre1_2_0 = c_re(in[8 * istride]); tim1_2_0 = c_im(in[8 * istride]); tre0_0_0 = tre1_0_0 + tre1_1_0 + tre1_2_0; tim0_0_0 = tim1_0_0 + tim1_1_0 + tim1_2_0; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tre1_1_0 + tre1_2_0)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim1_2_0 - tim1_1_0); tre0_1_0 = tre2_0_0 + tre2_1_0; tre0_2_0 = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tim1_1_0 + tim1_2_0)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre1_1_0 - tre1_2_0); tim0_1_0 = tim2_0_0 + tim2_1_0; tim0_2_0 = tim2_0_0 - tim2_1_0; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_2_0; FFTW_REAL tim1_2_0; tre1_0_0 = c_re(in[3 * istride]); tim1_0_0 = c_im(in[3 * istride]); tre1_1_0 = c_re(in[7 * istride]); tim1_1_0 = c_im(in[7 * istride]); tre1_2_0 = c_re(in[11 * istride]); tim1_2_0 = c_im(in[11 * istride]); tre0_0_1 = tre1_0_0 + tre1_1_0 + tre1_2_0; tim0_0_1 = tim1_0_0 + tim1_1_0 + tim1_2_0; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tre1_1_0 + tre1_2_0)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim1_2_0 - tim1_1_0); tre0_1_1 = tre2_0_0 + tre2_1_0; tre0_2_1 = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tim1_1_0 + tim1_2_0)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre1_1_0 - tre1_2_0); tim0_1_1 = tim2_0_0 + tim2_1_0; tim0_2_1 = tim2_0_0 - tim2_1_0; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_2_0; FFTW_REAL tim1_2_0; tre1_0_0 = c_re(in[6 * istride]); tim1_0_0 = c_im(in[6 * istride]); tre1_1_0 = c_re(in[10 * istride]); tim1_1_0 = c_im(in[10 * istride]); tre1_2_0 = c_re(in[2 * istride]); tim1_2_0 = c_im(in[2 * istride]); tre0_0_2 = tre1_0_0 + tre1_1_0 + tre1_2_0; tim0_0_2 = tim1_0_0 + tim1_1_0 + tim1_2_0; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tre1_1_0 + tre1_2_0)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim1_2_0 - tim1_1_0); tre0_1_2 = tre2_0_0 + tre2_1_0; tre0_2_2 = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tim1_1_0 + tim1_2_0)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre1_1_0 - tre1_2_0); tim0_1_2 = tim2_0_0 + tim2_1_0; tim0_2_2 = tim2_0_0 - tim2_1_0; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_2_0; FFTW_REAL tim1_2_0; tre1_0_0 = c_re(in[9 * istride]); tim1_0_0 = c_im(in[9 * istride]); tre1_1_0 = c_re(in[istride]); tim1_1_0 = c_im(in[istride]); tre1_2_0 = c_re(in[5 * istride]); tim1_2_0 = c_im(in[5 * istride]); tre0_0_3 = tre1_0_0 + tre1_1_0 + tre1_2_0; tim0_0_3 = tim1_0_0 + tim1_1_0 + tim1_2_0; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tre1_1_0 + tre1_2_0)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim1_2_0 - tim1_1_0); tre0_1_3 = tre2_0_0 + tre2_1_0; tre0_2_3 = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tim1_1_0 + tim1_2_0)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre1_1_0 - tre1_2_0); tim0_1_3 = tim2_0_0 + tim2_1_0; tim0_2_3 = tim2_0_0 - tim2_1_0; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; tre1_0_0 = tre0_0_0 + tre0_0_2; tim1_0_0 = tim0_0_0 + tim0_0_2; tre1_1_0 = tre0_0_0 - tre0_0_2; tim1_1_0 = tim0_0_0 - tim0_0_2; tre1_0_1 = tre0_0_1 + tre0_0_3; tim1_0_1 = tim0_0_1 + tim0_0_3; tre1_1_1 = tre0_0_1 - tre0_0_3; tim1_1_1 = tim0_0_1 - tim0_0_3; c_re(out[0]) = tre1_0_0 + tre1_0_1; c_im(out[0]) = tim1_0_0 + tim1_0_1; c_re(out[6 * ostride]) = tre1_0_0 - tre1_0_1; c_im(out[6 * ostride]) = tim1_0_0 - tim1_0_1; c_re(out[9 * ostride]) = tre1_1_0 - tim1_1_1; c_im(out[9 * ostride]) = tim1_1_0 + tre1_1_1; c_re(out[3 * ostride]) = tre1_1_0 + tim1_1_1; c_im(out[3 * ostride]) = tim1_1_0 - tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; tre1_0_0 = tre0_1_0 + tre0_1_2; tim1_0_0 = tim0_1_0 + tim0_1_2; tre1_1_0 = tre0_1_0 - tre0_1_2; tim1_1_0 = tim0_1_0 - tim0_1_2; tre1_0_1 = tre0_1_1 + tre0_1_3; tim1_0_1 = tim0_1_1 + tim0_1_3; tre1_1_1 = tre0_1_1 - tre0_1_3; tim1_1_1 = tim0_1_1 - tim0_1_3; c_re(out[4 * ostride]) = tre1_0_0 + tre1_0_1; c_im(out[4 * ostride]) = tim1_0_0 + tim1_0_1; c_re(out[10 * ostride]) = tre1_0_0 - tre1_0_1; c_im(out[10 * ostride]) = tim1_0_0 - tim1_0_1; c_re(out[ostride]) = tre1_1_0 - tim1_1_1; c_im(out[ostride]) = tim1_1_0 + tre1_1_1; c_re(out[7 * ostride]) = tre1_1_0 + tim1_1_1; c_im(out[7 * ostride]) = tim1_1_0 - tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; tre1_0_0 = tre0_2_0 + tre0_2_2; tim1_0_0 = tim0_2_0 + tim0_2_2; tre1_1_0 = tre0_2_0 - tre0_2_2; tim1_1_0 = tim0_2_0 - tim0_2_2; tre1_0_1 = tre0_2_1 + tre0_2_3; tim1_0_1 = tim0_2_1 + tim0_2_3; tre1_1_1 = tre0_2_1 - tre0_2_3; tim1_1_1 = tim0_2_1 - tim0_2_3; c_re(out[8 * ostride]) = tre1_0_0 + tre1_0_1; c_im(out[8 * ostride]) = tim1_0_0 + tim1_0_1; c_re(out[2 * ostride]) = tre1_0_0 - tre1_0_1; c_im(out[2 * ostride]) = tim1_0_0 - tim1_0_1; c_re(out[5 * ostride]) = tre1_1_0 - tim1_1_1; c_im(out[5 * ostride]) = tim1_1_0 + tre1_1_1; c_re(out[11 * ostride]) = tre1_1_0 + tim1_1_1; c_im(out[11 * ostride]) = tim1_1_0 - tre1_1_1; } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 324 FP additions and 144 FP multiplications */ void fftwi_no_twiddle_13(const FFTW_COMPLEX *in, FFTW_COMPLEX *out, int istride, int ostride) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_2_0; FFTW_REAL tim0_2_0; FFTW_REAL tre0_3_0; FFTW_REAL tim0_3_0; FFTW_REAL tre0_4_0; FFTW_REAL tim0_4_0; FFTW_REAL tre0_5_0; FFTW_REAL tim0_5_0; FFTW_REAL tre0_6_0; FFTW_REAL tim0_6_0; FFTW_REAL tre0_7_0; FFTW_REAL tim0_7_0; FFTW_REAL tre0_8_0; FFTW_REAL tim0_8_0; FFTW_REAL tre0_9_0; FFTW_REAL tim0_9_0; FFTW_REAL tre0_10_0; FFTW_REAL tim0_10_0; FFTW_REAL tre0_11_0; FFTW_REAL tim0_11_0; FFTW_REAL tre0_12_0; FFTW_REAL tim0_12_0; tre0_0_0 = c_re(in[0]); tim0_0_0 = c_im(in[0]); tre0_1_0 = c_re(in[istride]); tim0_1_0 = c_im(in[istride]); tre0_2_0 = c_re(in[2 * istride]); tim0_2_0 = c_im(in[2 * istride]); tre0_3_0 = c_re(in[3 * istride]); tim0_3_0 = c_im(in[3 * istride]); tre0_4_0 = c_re(in[4 * istride]); tim0_4_0 = c_im(in[4 * istride]); tre0_5_0 = c_re(in[5 * istride]); tim0_5_0 = c_im(in[5 * istride]); tre0_6_0 = c_re(in[6 * istride]); tim0_6_0 = c_im(in[6 * istride]); tre0_7_0 = c_re(in[7 * istride]); tim0_7_0 = c_im(in[7 * istride]); tre0_8_0 = c_re(in[8 * istride]); tim0_8_0 = c_im(in[8 * istride]); tre0_9_0 = c_re(in[9 * istride]); tim0_9_0 = c_im(in[9 * istride]); tre0_10_0 = c_re(in[10 * istride]); tim0_10_0 = c_im(in[10 * istride]); tre0_11_0 = c_re(in[11 * istride]); tim0_11_0 = c_im(in[11 * istride]); tre0_12_0 = c_re(in[12 * istride]); tim0_12_0 = c_im(in[12 * istride]); c_re(out[0]) = tre0_0_0 + tre0_1_0 + tre0_2_0 + tre0_3_0 + tre0_4_0 + tre0_5_0 + tre0_6_0 + tre0_7_0 + tre0_8_0 + tre0_9_0 + tre0_10_0 + tre0_11_0 + tre0_12_0; c_im(out[0]) = tim0_0_0 + tim0_1_0 + tim0_2_0 + tim0_3_0 + tim0_4_0 + tim0_5_0 + tim0_6_0 + tim0_7_0 + tim0_8_0 + tim0_9_0 + tim0_10_0 + tim0_11_0 + tim0_12_0; { FFTW_REAL tre1_0_0; FFTW_REAL tre1_1_0; tre1_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K885456025) * (tre0_1_0 + tre0_12_0)) + (((FFTW_REAL) FFTW_K568064746) * (tre0_2_0 + tre0_11_0)) + (((FFTW_REAL) FFTW_K120536680) * (tre0_3_0 + tre0_10_0)) - (((FFTW_REAL) FFTW_K970941817) * (tre0_6_0 + tre0_7_0)) - (((FFTW_REAL) FFTW_K748510748) * (tre0_5_0 + tre0_8_0)) - (((FFTW_REAL) FFTW_K354604887) * (tre0_4_0 + tre0_9_0)); tre1_1_0 = (((FFTW_REAL) FFTW_K464723172) * (tim0_12_0 - tim0_1_0)) + (((FFTW_REAL) FFTW_K822983865) * (tim0_11_0 - tim0_2_0)) + (((FFTW_REAL) FFTW_K992708874) * (tim0_10_0 - tim0_3_0)) + (((FFTW_REAL) FFTW_K935016242) * (tim0_9_0 - tim0_4_0)) + (((FFTW_REAL) FFTW_K663122658) * (tim0_8_0 - tim0_5_0)) + (((FFTW_REAL) FFTW_K239315664) * (tim0_7_0 - tim0_6_0)); c_re(out[ostride]) = tre1_0_0 + tre1_1_0; c_re(out[12 * ostride]) = tre1_0_0 - tre1_1_0; } { FFTW_REAL tim1_0_0; FFTW_REAL tim1_1_0; tim1_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K885456025) * (tim0_1_0 + tim0_12_0)) + (((FFTW_REAL) FFTW_K568064746) * (tim0_2_0 + tim0_11_0)) + (((FFTW_REAL) FFTW_K120536680) * (tim0_3_0 + tim0_10_0)) - (((FFTW_REAL) FFTW_K970941817) * (tim0_6_0 + tim0_7_0)) - (((FFTW_REAL) FFTW_K748510748) * (tim0_5_0 + tim0_8_0)) - (((FFTW_REAL) FFTW_K354604887) * (tim0_4_0 + tim0_9_0)); tim1_1_0 = (((FFTW_REAL) FFTW_K464723172) * (tre0_1_0 - tre0_12_0)) + (((FFTW_REAL) FFTW_K822983865) * (tre0_2_0 - tre0_11_0)) + (((FFTW_REAL) FFTW_K992708874) * (tre0_3_0 - tre0_10_0)) + (((FFTW_REAL) FFTW_K935016242) * (tre0_4_0 - tre0_9_0)) + (((FFTW_REAL) FFTW_K663122658) * (tre0_5_0 - tre0_8_0)) + (((FFTW_REAL) FFTW_K239315664) * (tre0_6_0 - tre0_7_0)); c_im(out[ostride]) = tim1_0_0 + tim1_1_0; c_im(out[12 * ostride]) = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tre1_1_0; tre1_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K568064746) * (tre0_1_0 + tre0_12_0)) + (((FFTW_REAL) FFTW_K120536680) * (tre0_5_0 + tre0_8_0)) + (((FFTW_REAL) FFTW_K885456025) * (tre0_6_0 + tre0_7_0)) - (((FFTW_REAL) FFTW_K748510748) * (tre0_4_0 + tre0_9_0)) - (((FFTW_REAL) FFTW_K970941817) * (tre0_3_0 + tre0_10_0)) - (((FFTW_REAL) FFTW_K354604887) * (tre0_2_0 + tre0_11_0)); tre1_1_0 = (((FFTW_REAL) FFTW_K822983865) * (tim0_12_0 - tim0_1_0)) + (((FFTW_REAL) FFTW_K935016242) * (tim0_11_0 - tim0_2_0)) + (((FFTW_REAL) FFTW_K239315664) * (tim0_10_0 - tim0_3_0)) + (((FFTW_REAL) FFTW_K663122658) * (tim0_4_0 - tim0_9_0)) + (((FFTW_REAL) FFTW_K992708874) * (tim0_5_0 - tim0_8_0)) + (((FFTW_REAL) FFTW_K464723172) * (tim0_6_0 - tim0_7_0)); c_re(out[2 * ostride]) = tre1_0_0 + tre1_1_0; c_re(out[11 * ostride]) = tre1_0_0 - tre1_1_0; } { FFTW_REAL tim1_0_0; FFTW_REAL tim1_1_0; tim1_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K568064746) * (tim0_1_0 + tim0_12_0)) + (((FFTW_REAL) FFTW_K120536680) * (tim0_5_0 + tim0_8_0)) + (((FFTW_REAL) FFTW_K885456025) * (tim0_6_0 + tim0_7_0)) - (((FFTW_REAL) FFTW_K748510748) * (tim0_4_0 + tim0_9_0)) - (((FFTW_REAL) FFTW_K970941817) * (tim0_3_0 + tim0_10_0)) - (((FFTW_REAL) FFTW_K354604887) * (tim0_2_0 + tim0_11_0)); tim1_1_0 = (((FFTW_REAL) FFTW_K822983865) * (tre0_1_0 - tre0_12_0)) + (((FFTW_REAL) FFTW_K935016242) * (tre0_2_0 - tre0_11_0)) + (((FFTW_REAL) FFTW_K239315664) * (tre0_3_0 - tre0_10_0)) + (((FFTW_REAL) FFTW_K663122658) * (tre0_9_0 - tre0_4_0)) + (((FFTW_REAL) FFTW_K992708874) * (tre0_8_0 - tre0_5_0)) + (((FFTW_REAL) FFTW_K464723172) * (tre0_7_0 - tre0_6_0)); c_im(out[2 * ostride]) = tim1_0_0 + tim1_1_0; c_im(out[11 * ostride]) = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tre1_1_0; tre1_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K120536680) * (tre0_1_0 + tre0_12_0)) + (((FFTW_REAL) FFTW_K885456025) * (tre0_4_0 + tre0_9_0)) + (((FFTW_REAL) FFTW_K568064746) * (tre0_5_0 + tre0_8_0)) - (((FFTW_REAL) FFTW_K748510748) * (tre0_6_0 + tre0_7_0)) - (((FFTW_REAL) FFTW_K354604887) * (tre0_3_0 + tre0_10_0)) - (((FFTW_REAL) FFTW_K970941817) * (tre0_2_0 + tre0_11_0)); tre1_1_0 = (((FFTW_REAL) FFTW_K992708874) * (tim0_12_0 - tim0_1_0)) + (((FFTW_REAL) FFTW_K239315664) * (tim0_11_0 - tim0_2_0)) + (((FFTW_REAL) FFTW_K935016242) * (tim0_3_0 - tim0_10_0)) + (((FFTW_REAL) FFTW_K464723172) * (tim0_4_0 - tim0_9_0)) + (((FFTW_REAL) FFTW_K822983865) * (tim0_8_0 - tim0_5_0)) + (((FFTW_REAL) FFTW_K663122658) * (tim0_7_0 - tim0_6_0)); c_re(out[3 * ostride]) = tre1_0_0 + tre1_1_0; c_re(out[10 * ostride]) = tre1_0_0 - tre1_1_0; } { FFTW_REAL tim1_0_0; FFTW_REAL tim1_1_0; tim1_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K120536680) * (tim0_1_0 + tim0_12_0)) + (((FFTW_REAL) FFTW_K885456025) * (tim0_4_0 + tim0_9_0)) + (((FFTW_REAL) FFTW_K568064746) * (tim0_5_0 + tim0_8_0)) - (((FFTW_REAL) FFTW_K748510748) * (tim0_6_0 + tim0_7_0)) - (((FFTW_REAL) FFTW_K354604887) * (tim0_3_0 + tim0_10_0)) - (((FFTW_REAL) FFTW_K970941817) * (tim0_2_0 + tim0_11_0)); tim1_1_0 = (((FFTW_REAL) FFTW_K992708874) * (tre0_1_0 - tre0_12_0)) + (((FFTW_REAL) FFTW_K239315664) * (tre0_2_0 - tre0_11_0)) + (((FFTW_REAL) FFTW_K935016242) * (tre0_10_0 - tre0_3_0)) + (((FFTW_REAL) FFTW_K464723172) * (tre0_9_0 - tre0_4_0)) + (((FFTW_REAL) FFTW_K822983865) * (tre0_5_0 - tre0_8_0)) + (((FFTW_REAL) FFTW_K663122658) * (tre0_6_0 - tre0_7_0)); c_im(out[3 * ostride]) = tim1_0_0 + tim1_1_0; c_im(out[10 * ostride]) = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tre1_1_0; tre1_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K885456025) * (tre0_3_0 + tre0_10_0)) + (((FFTW_REAL) FFTW_K120536680) * (tre0_4_0 + tre0_9_0)) + (((FFTW_REAL) FFTW_K568064746) * (tre0_6_0 + tre0_7_0)) - (((FFTW_REAL) FFTW_K970941817) * (tre0_5_0 + tre0_8_0)) - (((FFTW_REAL) FFTW_K748510748) * (tre0_2_0 + tre0_11_0)) - (((FFTW_REAL) FFTW_K354604887) * (tre0_1_0 + tre0_12_0)); tre1_1_0 = (((FFTW_REAL) FFTW_K935016242) * (tim0_12_0 - tim0_1_0)) + (((FFTW_REAL) FFTW_K663122658) * (tim0_2_0 - tim0_11_0)) + (((FFTW_REAL) FFTW_K464723172) * (tim0_3_0 - tim0_10_0)) + (((FFTW_REAL) FFTW_K992708874) * (tim0_9_0 - tim0_4_0)) + (((FFTW_REAL) FFTW_K239315664) * (tim0_5_0 - tim0_8_0)) + (((FFTW_REAL) FFTW_K822983865) * (tim0_6_0 - tim0_7_0)); c_re(out[4 * ostride]) = tre1_0_0 + tre1_1_0; c_re(out[9 * ostride]) = tre1_0_0 - tre1_1_0; } { FFTW_REAL tim1_0_0; FFTW_REAL tim1_1_0; tim1_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K885456025) * (tim0_3_0 + tim0_10_0)) + (((FFTW_REAL) FFTW_K120536680) * (tim0_4_0 + tim0_9_0)) + (((FFTW_REAL) FFTW_K568064746) * (tim0_6_0 + tim0_7_0)) - (((FFTW_REAL) FFTW_K970941817) * (tim0_5_0 + tim0_8_0)) - (((FFTW_REAL) FFTW_K748510748) * (tim0_2_0 + tim0_11_0)) - (((FFTW_REAL) FFTW_K354604887) * (tim0_1_0 + tim0_12_0)); tim1_1_0 = (((FFTW_REAL) FFTW_K935016242) * (tre0_1_0 - tre0_12_0)) + (((FFTW_REAL) FFTW_K663122658) * (tre0_11_0 - tre0_2_0)) + (((FFTW_REAL) FFTW_K464723172) * (tre0_10_0 - tre0_3_0)) + (((FFTW_REAL) FFTW_K992708874) * (tre0_4_0 - tre0_9_0)) + (((FFTW_REAL) FFTW_K239315664) * (tre0_8_0 - tre0_5_0)) + (((FFTW_REAL) FFTW_K822983865) * (tre0_7_0 - tre0_6_0)); c_im(out[4 * ostride]) = tim1_0_0 + tim1_1_0; c_im(out[9 * ostride]) = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tre1_1_0; tre1_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K120536680) * (tre0_2_0 + tre0_11_0)) + (((FFTW_REAL) FFTW_K568064746) * (tre0_3_0 + tre0_10_0)) + (((FFTW_REAL) FFTW_K885456025) * (tre0_5_0 + tre0_8_0)) - (((FFTW_REAL) FFTW_K354604887) * (tre0_6_0 + tre0_7_0)) - (((FFTW_REAL) FFTW_K970941817) * (tre0_4_0 + tre0_9_0)) - (((FFTW_REAL) FFTW_K748510748) * (tre0_1_0 + tre0_12_0)); tre1_1_0 = (((FFTW_REAL) FFTW_K663122658) * (tim0_12_0 - tim0_1_0)) + (((FFTW_REAL) FFTW_K992708874) * (tim0_2_0 - tim0_11_0)) + (((FFTW_REAL) FFTW_K822983865) * (tim0_10_0 - tim0_3_0)) + (((FFTW_REAL) FFTW_K239315664) * (tim0_4_0 - tim0_9_0)) + (((FFTW_REAL) FFTW_K464723172) * (tim0_5_0 - tim0_8_0)) + (((FFTW_REAL) FFTW_K935016242) * (tim0_7_0 - tim0_6_0)); c_re(out[5 * ostride]) = tre1_0_0 + tre1_1_0; c_re(out[8 * ostride]) = tre1_0_0 - tre1_1_0; } { FFTW_REAL tim1_0_0; FFTW_REAL tim1_1_0; tim1_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K120536680) * (tim0_2_0 + tim0_11_0)) + (((FFTW_REAL) FFTW_K568064746) * (tim0_3_0 + tim0_10_0)) + (((FFTW_REAL) FFTW_K885456025) * (tim0_5_0 + tim0_8_0)) - (((FFTW_REAL) FFTW_K354604887) * (tim0_6_0 + tim0_7_0)) - (((FFTW_REAL) FFTW_K970941817) * (tim0_4_0 + tim0_9_0)) - (((FFTW_REAL) FFTW_K748510748) * (tim0_1_0 + tim0_12_0)); tim1_1_0 = (((FFTW_REAL) FFTW_K663122658) * (tre0_1_0 - tre0_12_0)) + (((FFTW_REAL) FFTW_K992708874) * (tre0_11_0 - tre0_2_0)) + (((FFTW_REAL) FFTW_K822983865) * (tre0_3_0 - tre0_10_0)) + (((FFTW_REAL) FFTW_K239315664) * (tre0_9_0 - tre0_4_0)) + (((FFTW_REAL) FFTW_K464723172) * (tre0_8_0 - tre0_5_0)) + (((FFTW_REAL) FFTW_K935016242) * (tre0_6_0 - tre0_7_0)); c_im(out[5 * ostride]) = tim1_0_0 + tim1_1_0; c_im(out[8 * ostride]) = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tre1_1_0; tre1_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K885456025) * (tre0_2_0 + tre0_11_0)) + (((FFTW_REAL) FFTW_K568064746) * (tre0_4_0 + tre0_9_0)) + (((FFTW_REAL) FFTW_K120536680) * (tre0_6_0 + tre0_7_0)) - (((FFTW_REAL) FFTW_K354604887) * (tre0_5_0 + tre0_8_0)) - (((FFTW_REAL) FFTW_K748510748) * (tre0_3_0 + tre0_10_0)) - (((FFTW_REAL) FFTW_K970941817) * (tre0_1_0 + tre0_12_0)); tre1_1_0 = (((FFTW_REAL) FFTW_K239315664) * (tim0_12_0 - tim0_1_0)) + (((FFTW_REAL) FFTW_K464723172) * (tim0_2_0 - tim0_11_0)) + (((FFTW_REAL) FFTW_K663122658) * (tim0_10_0 - tim0_3_0)) + (((FFTW_REAL) FFTW_K822983865) * (tim0_4_0 - tim0_9_0)) + (((FFTW_REAL) FFTW_K935016242) * (tim0_8_0 - tim0_5_0)) + (((FFTW_REAL) FFTW_K992708874) * (tim0_6_0 - tim0_7_0)); c_re(out[6 * ostride]) = tre1_0_0 + tre1_1_0; c_re(out[7 * ostride]) = tre1_0_0 - tre1_1_0; } { FFTW_REAL tim1_0_0; FFTW_REAL tim1_1_0; tim1_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K885456025) * (tim0_2_0 + tim0_11_0)) + (((FFTW_REAL) FFTW_K568064746) * (tim0_4_0 + tim0_9_0)) + (((FFTW_REAL) FFTW_K120536680) * (tim0_6_0 + tim0_7_0)) - (((FFTW_REAL) FFTW_K354604887) * (tim0_5_0 + tim0_8_0)) - (((FFTW_REAL) FFTW_K748510748) * (tim0_3_0 + tim0_10_0)) - (((FFTW_REAL) FFTW_K970941817) * (tim0_1_0 + tim0_12_0)); tim1_1_0 = (((FFTW_REAL) FFTW_K239315664) * (tre0_1_0 - tre0_12_0)) + (((FFTW_REAL) FFTW_K464723172) * (tre0_11_0 - tre0_2_0)) + (((FFTW_REAL) FFTW_K663122658) * (tre0_3_0 - tre0_10_0)) + (((FFTW_REAL) FFTW_K822983865) * (tre0_9_0 - tre0_4_0)) + (((FFTW_REAL) FFTW_K935016242) * (tre0_5_0 - tre0_8_0)) + (((FFTW_REAL) FFTW_K992708874) * (tre0_7_0 - tre0_6_0)); c_im(out[6 * ostride]) = tim1_0_0 + tim1_1_0; c_im(out[7 * ostride]) = tim1_0_0 - tim1_1_0; } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 208 FP additions and 72 FP multiplications */ void fftwi_no_twiddle_14(const FFTW_COMPLEX *in, FFTW_COMPLEX *out, int istride, int ostride) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_0_1; FFTW_REAL tim0_0_1; FFTW_REAL tre0_0_2; FFTW_REAL tim0_0_2; FFTW_REAL tre0_0_3; FFTW_REAL tim0_0_3; FFTW_REAL tre0_0_4; FFTW_REAL tim0_0_4; FFTW_REAL tre0_0_5; FFTW_REAL tim0_0_5; FFTW_REAL tre0_0_6; FFTW_REAL tim0_0_6; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_1_1; FFTW_REAL tim0_1_1; FFTW_REAL tre0_1_2; FFTW_REAL tim0_1_2; FFTW_REAL tre0_1_3; FFTW_REAL tim0_1_3; FFTW_REAL tre0_1_4; FFTW_REAL tim0_1_4; FFTW_REAL tre0_1_5; FFTW_REAL tim0_1_5; FFTW_REAL tre0_1_6; FFTW_REAL tim0_1_6; { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(in[0]); tim1_0_0 = c_im(in[0]); tre1_1_0 = c_re(in[7 * istride]); tim1_1_0 = c_im(in[7 * istride]); tre0_0_0 = tre1_0_0 + tre1_1_0; tim0_0_0 = tim1_0_0 + tim1_1_0; tre0_1_0 = tre1_0_0 - tre1_1_0; tim0_1_0 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(in[2 * istride]); tim1_0_0 = c_im(in[2 * istride]); tre1_1_0 = c_re(in[9 * istride]); tim1_1_0 = c_im(in[9 * istride]); tre0_0_1 = tre1_0_0 + tre1_1_0; tim0_0_1 = tim1_0_0 + tim1_1_0; tre0_1_1 = tre1_0_0 - tre1_1_0; tim0_1_1 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(in[4 * istride]); tim1_0_0 = c_im(in[4 * istride]); tre1_1_0 = c_re(in[11 * istride]); tim1_1_0 = c_im(in[11 * istride]); tre0_0_2 = tre1_0_0 + tre1_1_0; tim0_0_2 = tim1_0_0 + tim1_1_0; tre0_1_2 = tre1_0_0 - tre1_1_0; tim0_1_2 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(in[6 * istride]); tim1_0_0 = c_im(in[6 * istride]); tre1_1_0 = c_re(in[13 * istride]); tim1_1_0 = c_im(in[13 * istride]); tre0_0_3 = tre1_0_0 + tre1_1_0; tim0_0_3 = tim1_0_0 + tim1_1_0; tre0_1_3 = tre1_0_0 - tre1_1_0; tim0_1_3 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(in[8 * istride]); tim1_0_0 = c_im(in[8 * istride]); tre1_1_0 = c_re(in[istride]); tim1_1_0 = c_im(in[istride]); tre0_0_4 = tre1_0_0 + tre1_1_0; tim0_0_4 = tim1_0_0 + tim1_1_0; tre0_1_4 = tre1_0_0 - tre1_1_0; tim0_1_4 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(in[10 * istride]); tim1_0_0 = c_im(in[10 * istride]); tre1_1_0 = c_re(in[3 * istride]); tim1_1_0 = c_im(in[3 * istride]); tre0_0_5 = tre1_0_0 + tre1_1_0; tim0_0_5 = tim1_0_0 + tim1_1_0; tre0_1_5 = tre1_0_0 - tre1_1_0; tim0_1_5 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(in[12 * istride]); tim1_0_0 = c_im(in[12 * istride]); tre1_1_0 = c_re(in[5 * istride]); tim1_1_0 = c_im(in[5 * istride]); tre0_0_6 = tre1_0_0 + tre1_1_0; tim0_0_6 = tim1_0_0 + tim1_1_0; tre0_1_6 = tre1_0_0 - tre1_1_0; tim0_1_6 = tim1_0_0 - tim1_1_0; } c_re(out[0]) = tre0_0_0 + tre0_0_1 + tre0_0_2 + tre0_0_3 + tre0_0_4 + tre0_0_5 + tre0_0_6; c_im(out[0]) = tim0_0_0 + tim0_0_1 + tim0_0_2 + tim0_0_3 + tim0_0_4 + tim0_0_5 + tim0_0_6; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K623489801) * (tre0_0_1 + tre0_0_6)) - (((FFTW_REAL) FFTW_K900968867) * (tre0_0_3 + tre0_0_4)) - (((FFTW_REAL) FFTW_K222520933) * (tre0_0_2 + tre0_0_5)); tre2_1_0 = (((FFTW_REAL) FFTW_K781831482) * (tim0_0_6 - tim0_0_1)) + (((FFTW_REAL) FFTW_K974927912) * (tim0_0_5 - tim0_0_2)) + (((FFTW_REAL) FFTW_K433883739) * (tim0_0_4 - tim0_0_3)); c_re(out[8 * ostride]) = tre2_0_0 + tre2_1_0; c_re(out[6 * ostride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K623489801) * (tim0_0_1 + tim0_0_6)) - (((FFTW_REAL) FFTW_K900968867) * (tim0_0_3 + tim0_0_4)) - (((FFTW_REAL) FFTW_K222520933) * (tim0_0_2 + tim0_0_5)); tim2_1_0 = (((FFTW_REAL) FFTW_K781831482) * (tre0_0_1 - tre0_0_6)) + (((FFTW_REAL) FFTW_K974927912) * (tre0_0_2 - tre0_0_5)) + (((FFTW_REAL) FFTW_K433883739) * (tre0_0_3 - tre0_0_4)); c_im(out[8 * ostride]) = tim2_0_0 + tim2_1_0; c_im(out[6 * ostride]) = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K623489801) * (tre0_0_3 + tre0_0_4)) - (((FFTW_REAL) FFTW_K900968867) * (tre0_0_2 + tre0_0_5)) - (((FFTW_REAL) FFTW_K222520933) * (tre0_0_1 + tre0_0_6)); tre2_1_0 = (((FFTW_REAL) FFTW_K974927912) * (tim0_0_6 - tim0_0_1)) + (((FFTW_REAL) FFTW_K433883739) * (tim0_0_2 - tim0_0_5)) + (((FFTW_REAL) FFTW_K781831482) * (tim0_0_3 - tim0_0_4)); c_re(out[2 * ostride]) = tre2_0_0 + tre2_1_0; c_re(out[12 * ostride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K623489801) * (tim0_0_3 + tim0_0_4)) - (((FFTW_REAL) FFTW_K900968867) * (tim0_0_2 + tim0_0_5)) - (((FFTW_REAL) FFTW_K222520933) * (tim0_0_1 + tim0_0_6)); tim2_1_0 = (((FFTW_REAL) FFTW_K974927912) * (tre0_0_1 - tre0_0_6)) + (((FFTW_REAL) FFTW_K433883739) * (tre0_0_5 - tre0_0_2)) + (((FFTW_REAL) FFTW_K781831482) * (tre0_0_4 - tre0_0_3)); c_im(out[2 * ostride]) = tim2_0_0 + tim2_1_0; c_im(out[12 * ostride]) = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K623489801) * (tre0_0_2 + tre0_0_5)) - (((FFTW_REAL) FFTW_K222520933) * (tre0_0_3 + tre0_0_4)) - (((FFTW_REAL) FFTW_K900968867) * (tre0_0_1 + tre0_0_6)); tre2_1_0 = (((FFTW_REAL) FFTW_K433883739) * (tim0_0_6 - tim0_0_1)) + (((FFTW_REAL) FFTW_K781831482) * (tim0_0_2 - tim0_0_5)) + (((FFTW_REAL) FFTW_K974927912) * (tim0_0_4 - tim0_0_3)); c_re(out[10 * ostride]) = tre2_0_0 + tre2_1_0; c_re(out[4 * ostride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K623489801) * (tim0_0_2 + tim0_0_5)) - (((FFTW_REAL) FFTW_K222520933) * (tim0_0_3 + tim0_0_4)) - (((FFTW_REAL) FFTW_K900968867) * (tim0_0_1 + tim0_0_6)); tim2_1_0 = (((FFTW_REAL) FFTW_K433883739) * (tre0_0_1 - tre0_0_6)) + (((FFTW_REAL) FFTW_K781831482) * (tre0_0_5 - tre0_0_2)) + (((FFTW_REAL) FFTW_K974927912) * (tre0_0_3 - tre0_0_4)); c_im(out[10 * ostride]) = tim2_0_0 + tim2_1_0; c_im(out[4 * ostride]) = tim2_0_0 - tim2_1_0; } c_re(out[7 * ostride]) = tre0_1_0 + tre0_1_1 + tre0_1_2 + tre0_1_3 + tre0_1_4 + tre0_1_5 + tre0_1_6; c_im(out[7 * ostride]) = tim0_1_0 + tim0_1_1 + tim0_1_2 + tim0_1_3 + tim0_1_4 + tim0_1_5 + tim0_1_6; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_1_0 + (((FFTW_REAL) FFTW_K623489801) * (tre0_1_1 + tre0_1_6)) - (((FFTW_REAL) FFTW_K900968867) * (tre0_1_3 + tre0_1_4)) - (((FFTW_REAL) FFTW_K222520933) * (tre0_1_2 + tre0_1_5)); tre2_1_0 = (((FFTW_REAL) FFTW_K781831482) * (tim0_1_6 - tim0_1_1)) + (((FFTW_REAL) FFTW_K974927912) * (tim0_1_5 - tim0_1_2)) + (((FFTW_REAL) FFTW_K433883739) * (tim0_1_4 - tim0_1_3)); c_re(out[ostride]) = tre2_0_0 + tre2_1_0; c_re(out[13 * ostride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_1_0 + (((FFTW_REAL) FFTW_K623489801) * (tim0_1_1 + tim0_1_6)) - (((FFTW_REAL) FFTW_K900968867) * (tim0_1_3 + tim0_1_4)) - (((FFTW_REAL) FFTW_K222520933) * (tim0_1_2 + tim0_1_5)); tim2_1_0 = (((FFTW_REAL) FFTW_K781831482) * (tre0_1_1 - tre0_1_6)) + (((FFTW_REAL) FFTW_K974927912) * (tre0_1_2 - tre0_1_5)) + (((FFTW_REAL) FFTW_K433883739) * (tre0_1_3 - tre0_1_4)); c_im(out[ostride]) = tim2_0_0 + tim2_1_0; c_im(out[13 * ostride]) = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_1_0 + (((FFTW_REAL) FFTW_K623489801) * (tre0_1_3 + tre0_1_4)) - (((FFTW_REAL) FFTW_K900968867) * (tre0_1_2 + tre0_1_5)) - (((FFTW_REAL) FFTW_K222520933) * (tre0_1_1 + tre0_1_6)); tre2_1_0 = (((FFTW_REAL) FFTW_K974927912) * (tim0_1_6 - tim0_1_1)) + (((FFTW_REAL) FFTW_K433883739) * (tim0_1_2 - tim0_1_5)) + (((FFTW_REAL) FFTW_K781831482) * (tim0_1_3 - tim0_1_4)); c_re(out[9 * ostride]) = tre2_0_0 + tre2_1_0; c_re(out[5 * ostride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_1_0 + (((FFTW_REAL) FFTW_K623489801) * (tim0_1_3 + tim0_1_4)) - (((FFTW_REAL) FFTW_K900968867) * (tim0_1_2 + tim0_1_5)) - (((FFTW_REAL) FFTW_K222520933) * (tim0_1_1 + tim0_1_6)); tim2_1_0 = (((FFTW_REAL) FFTW_K974927912) * (tre0_1_1 - tre0_1_6)) + (((FFTW_REAL) FFTW_K433883739) * (tre0_1_5 - tre0_1_2)) + (((FFTW_REAL) FFTW_K781831482) * (tre0_1_4 - tre0_1_3)); c_im(out[9 * ostride]) = tim2_0_0 + tim2_1_0; c_im(out[5 * ostride]) = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_1_0 + (((FFTW_REAL) FFTW_K623489801) * (tre0_1_2 + tre0_1_5)) - (((FFTW_REAL) FFTW_K222520933) * (tre0_1_3 + tre0_1_4)) - (((FFTW_REAL) FFTW_K900968867) * (tre0_1_1 + tre0_1_6)); tre2_1_0 = (((FFTW_REAL) FFTW_K433883739) * (tim0_1_6 - tim0_1_1)) + (((FFTW_REAL) FFTW_K781831482) * (tim0_1_2 - tim0_1_5)) + (((FFTW_REAL) FFTW_K974927912) * (tim0_1_4 - tim0_1_3)); c_re(out[3 * ostride]) = tre2_0_0 + tre2_1_0; c_re(out[11 * ostride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_1_0 + (((FFTW_REAL) FFTW_K623489801) * (tim0_1_2 + tim0_1_5)) - (((FFTW_REAL) FFTW_K222520933) * (tim0_1_3 + tim0_1_4)) - (((FFTW_REAL) FFTW_K900968867) * (tim0_1_1 + tim0_1_6)); tim2_1_0 = (((FFTW_REAL) FFTW_K433883739) * (tre0_1_1 - tre0_1_6)) + (((FFTW_REAL) FFTW_K781831482) * (tre0_1_5 - tre0_1_2)) + (((FFTW_REAL) FFTW_K974927912) * (tre0_1_3 - tre0_1_4)); c_im(out[3 * ostride]) = tim2_0_0 + tim2_1_0; c_im(out[11 * ostride]) = tim2_0_0 - tim2_1_0; } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 202 FP additions and 68 FP multiplications */ void fftwi_no_twiddle_15(const FFTW_COMPLEX *in, FFTW_COMPLEX *out, int istride, int ostride) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_0_1; FFTW_REAL tim0_0_1; FFTW_REAL tre0_0_2; FFTW_REAL tim0_0_2; FFTW_REAL tre0_0_3; FFTW_REAL tim0_0_3; FFTW_REAL tre0_0_4; FFTW_REAL tim0_0_4; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_1_1; FFTW_REAL tim0_1_1; FFTW_REAL tre0_1_2; FFTW_REAL tim0_1_2; FFTW_REAL tre0_1_3; FFTW_REAL tim0_1_3; FFTW_REAL tre0_1_4; FFTW_REAL tim0_1_4; FFTW_REAL tre0_2_0; FFTW_REAL tim0_2_0; FFTW_REAL tre0_2_1; FFTW_REAL tim0_2_1; FFTW_REAL tre0_2_2; FFTW_REAL tim0_2_2; FFTW_REAL tre0_2_3; FFTW_REAL tim0_2_3; FFTW_REAL tre0_2_4; FFTW_REAL tim0_2_4; { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_2_0; FFTW_REAL tim1_2_0; tre1_0_0 = c_re(in[0]); tim1_0_0 = c_im(in[0]); tre1_1_0 = c_re(in[5 * istride]); tim1_1_0 = c_im(in[5 * istride]); tre1_2_0 = c_re(in[10 * istride]); tim1_2_0 = c_im(in[10 * istride]); tre0_0_0 = tre1_0_0 + tre1_1_0 + tre1_2_0; tim0_0_0 = tim1_0_0 + tim1_1_0 + tim1_2_0; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tre1_1_0 + tre1_2_0)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim1_2_0 - tim1_1_0); tre0_1_0 = tre2_0_0 + tre2_1_0; tre0_2_0 = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tim1_1_0 + tim1_2_0)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre1_1_0 - tre1_2_0); tim0_1_0 = tim2_0_0 + tim2_1_0; tim0_2_0 = tim2_0_0 - tim2_1_0; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_2_0; FFTW_REAL tim1_2_0; tre1_0_0 = c_re(in[3 * istride]); tim1_0_0 = c_im(in[3 * istride]); tre1_1_0 = c_re(in[8 * istride]); tim1_1_0 = c_im(in[8 * istride]); tre1_2_0 = c_re(in[13 * istride]); tim1_2_0 = c_im(in[13 * istride]); tre0_0_1 = tre1_0_0 + tre1_1_0 + tre1_2_0; tim0_0_1 = tim1_0_0 + tim1_1_0 + tim1_2_0; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tre1_1_0 + tre1_2_0)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim1_2_0 - tim1_1_0); tre0_1_1 = tre2_0_0 + tre2_1_0; tre0_2_1 = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tim1_1_0 + tim1_2_0)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre1_1_0 - tre1_2_0); tim0_1_1 = tim2_0_0 + tim2_1_0; tim0_2_1 = tim2_0_0 - tim2_1_0; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_2_0; FFTW_REAL tim1_2_0; tre1_0_0 = c_re(in[6 * istride]); tim1_0_0 = c_im(in[6 * istride]); tre1_1_0 = c_re(in[11 * istride]); tim1_1_0 = c_im(in[11 * istride]); tre1_2_0 = c_re(in[istride]); tim1_2_0 = c_im(in[istride]); tre0_0_2 = tre1_0_0 + tre1_1_0 + tre1_2_0; tim0_0_2 = tim1_0_0 + tim1_1_0 + tim1_2_0; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tre1_1_0 + tre1_2_0)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim1_2_0 - tim1_1_0); tre0_1_2 = tre2_0_0 + tre2_1_0; tre0_2_2 = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tim1_1_0 + tim1_2_0)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre1_1_0 - tre1_2_0); tim0_1_2 = tim2_0_0 + tim2_1_0; tim0_2_2 = tim2_0_0 - tim2_1_0; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_2_0; FFTW_REAL tim1_2_0; tre1_0_0 = c_re(in[9 * istride]); tim1_0_0 = c_im(in[9 * istride]); tre1_1_0 = c_re(in[14 * istride]); tim1_1_0 = c_im(in[14 * istride]); tre1_2_0 = c_re(in[4 * istride]); tim1_2_0 = c_im(in[4 * istride]); tre0_0_3 = tre1_0_0 + tre1_1_0 + tre1_2_0; tim0_0_3 = tim1_0_0 + tim1_1_0 + tim1_2_0; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tre1_1_0 + tre1_2_0)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim1_2_0 - tim1_1_0); tre0_1_3 = tre2_0_0 + tre2_1_0; tre0_2_3 = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tim1_1_0 + tim1_2_0)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre1_1_0 - tre1_2_0); tim0_1_3 = tim2_0_0 + tim2_1_0; tim0_2_3 = tim2_0_0 - tim2_1_0; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_2_0; FFTW_REAL tim1_2_0; tre1_0_0 = c_re(in[12 * istride]); tim1_0_0 = c_im(in[12 * istride]); tre1_1_0 = c_re(in[2 * istride]); tim1_1_0 = c_im(in[2 * istride]); tre1_2_0 = c_re(in[7 * istride]); tim1_2_0 = c_im(in[7 * istride]); tre0_0_4 = tre1_0_0 + tre1_1_0 + tre1_2_0; tim0_0_4 = tim1_0_0 + tim1_1_0 + tim1_2_0; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tre1_1_0 + tre1_2_0)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim1_2_0 - tim1_1_0); tre0_1_4 = tre2_0_0 + tre2_1_0; tre0_2_4 = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tim1_1_0 + tim1_2_0)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre1_1_0 - tre1_2_0); tim0_1_4 = tim2_0_0 + tim2_1_0; tim0_2_4 = tim2_0_0 - tim2_1_0; } } c_re(out[0]) = tre0_0_0 + tre0_0_1 + tre0_0_2 + tre0_0_3 + tre0_0_4; c_im(out[0]) = tim0_0_0 + tim0_0_1 + tim0_0_2 + tim0_0_3 + tim0_0_4; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K309016994) * (tre0_0_1 + tre0_0_4)) - (((FFTW_REAL) FFTW_K809016994) * (tre0_0_2 + tre0_0_3)); tre2_1_0 = (((FFTW_REAL) FFTW_K951056516) * (tim0_0_4 - tim0_0_1)) + (((FFTW_REAL) FFTW_K587785252) * (tim0_0_3 - tim0_0_2)); c_re(out[6 * ostride]) = tre2_0_0 + tre2_1_0; c_re(out[9 * ostride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K309016994) * (tim0_0_1 + tim0_0_4)) - (((FFTW_REAL) FFTW_K809016994) * (tim0_0_2 + tim0_0_3)); tim2_1_0 = (((FFTW_REAL) FFTW_K951056516) * (tre0_0_1 - tre0_0_4)) + (((FFTW_REAL) FFTW_K587785252) * (tre0_0_2 - tre0_0_3)); c_im(out[6 * ostride]) = tim2_0_0 + tim2_1_0; c_im(out[9 * ostride]) = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K309016994) * (tre0_0_2 + tre0_0_3)) - (((FFTW_REAL) FFTW_K809016994) * (tre0_0_1 + tre0_0_4)); tre2_1_0 = (((FFTW_REAL) FFTW_K587785252) * (tim0_0_4 - tim0_0_1)) + (((FFTW_REAL) FFTW_K951056516) * (tim0_0_2 - tim0_0_3)); c_re(out[12 * ostride]) = tre2_0_0 + tre2_1_0; c_re(out[3 * ostride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K309016994) * (tim0_0_2 + tim0_0_3)) - (((FFTW_REAL) FFTW_K809016994) * (tim0_0_1 + tim0_0_4)); tim2_1_0 = (((FFTW_REAL) FFTW_K587785252) * (tre0_0_1 - tre0_0_4)) + (((FFTW_REAL) FFTW_K951056516) * (tre0_0_3 - tre0_0_2)); c_im(out[12 * ostride]) = tim2_0_0 + tim2_1_0; c_im(out[3 * ostride]) = tim2_0_0 - tim2_1_0; } c_re(out[10 * ostride]) = tre0_1_0 + tre0_1_1 + tre0_1_2 + tre0_1_3 + tre0_1_4; c_im(out[10 * ostride]) = tim0_1_0 + tim0_1_1 + tim0_1_2 + tim0_1_3 + tim0_1_4; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_1_0 + (((FFTW_REAL) FFTW_K309016994) * (tre0_1_1 + tre0_1_4)) - (((FFTW_REAL) FFTW_K809016994) * (tre0_1_2 + tre0_1_3)); tre2_1_0 = (((FFTW_REAL) FFTW_K951056516) * (tim0_1_4 - tim0_1_1)) + (((FFTW_REAL) FFTW_K587785252) * (tim0_1_3 - tim0_1_2)); c_re(out[ostride]) = tre2_0_0 + tre2_1_0; c_re(out[4 * ostride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_1_0 + (((FFTW_REAL) FFTW_K309016994) * (tim0_1_1 + tim0_1_4)) - (((FFTW_REAL) FFTW_K809016994) * (tim0_1_2 + tim0_1_3)); tim2_1_0 = (((FFTW_REAL) FFTW_K951056516) * (tre0_1_1 - tre0_1_4)) + (((FFTW_REAL) FFTW_K587785252) * (tre0_1_2 - tre0_1_3)); c_im(out[ostride]) = tim2_0_0 + tim2_1_0; c_im(out[4 * ostride]) = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_1_0 + (((FFTW_REAL) FFTW_K309016994) * (tre0_1_2 + tre0_1_3)) - (((FFTW_REAL) FFTW_K809016994) * (tre0_1_1 + tre0_1_4)); tre2_1_0 = (((FFTW_REAL) FFTW_K587785252) * (tim0_1_4 - tim0_1_1)) + (((FFTW_REAL) FFTW_K951056516) * (tim0_1_2 - tim0_1_3)); c_re(out[7 * ostride]) = tre2_0_0 + tre2_1_0; c_re(out[13 * ostride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_1_0 + (((FFTW_REAL) FFTW_K309016994) * (tim0_1_2 + tim0_1_3)) - (((FFTW_REAL) FFTW_K809016994) * (tim0_1_1 + tim0_1_4)); tim2_1_0 = (((FFTW_REAL) FFTW_K587785252) * (tre0_1_1 - tre0_1_4)) + (((FFTW_REAL) FFTW_K951056516) * (tre0_1_3 - tre0_1_2)); c_im(out[7 * ostride]) = tim2_0_0 + tim2_1_0; c_im(out[13 * ostride]) = tim2_0_0 - tim2_1_0; } c_re(out[5 * ostride]) = tre0_2_0 + tre0_2_1 + tre0_2_2 + tre0_2_3 + tre0_2_4; c_im(out[5 * ostride]) = tim0_2_0 + tim0_2_1 + tim0_2_2 + tim0_2_3 + tim0_2_4; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_2_0 + (((FFTW_REAL) FFTW_K309016994) * (tre0_2_1 + tre0_2_4)) - (((FFTW_REAL) FFTW_K809016994) * (tre0_2_2 + tre0_2_3)); tre2_1_0 = (((FFTW_REAL) FFTW_K951056516) * (tim0_2_4 - tim0_2_1)) + (((FFTW_REAL) FFTW_K587785252) * (tim0_2_3 - tim0_2_2)); c_re(out[11 * ostride]) = tre2_0_0 + tre2_1_0; c_re(out[14 * ostride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_2_0 + (((FFTW_REAL) FFTW_K309016994) * (tim0_2_1 + tim0_2_4)) - (((FFTW_REAL) FFTW_K809016994) * (tim0_2_2 + tim0_2_3)); tim2_1_0 = (((FFTW_REAL) FFTW_K951056516) * (tre0_2_1 - tre0_2_4)) + (((FFTW_REAL) FFTW_K587785252) * (tre0_2_2 - tre0_2_3)); c_im(out[11 * ostride]) = tim2_0_0 + tim2_1_0; c_im(out[14 * ostride]) = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_2_0 + (((FFTW_REAL) FFTW_K309016994) * (tre0_2_2 + tre0_2_3)) - (((FFTW_REAL) FFTW_K809016994) * (tre0_2_1 + tre0_2_4)); tre2_1_0 = (((FFTW_REAL) FFTW_K587785252) * (tim0_2_4 - tim0_2_1)) + (((FFTW_REAL) FFTW_K951056516) * (tim0_2_2 - tim0_2_3)); c_re(out[2 * ostride]) = tre2_0_0 + tre2_1_0; c_re(out[8 * ostride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_2_0 + (((FFTW_REAL) FFTW_K309016994) * (tim0_2_2 + tim0_2_3)) - (((FFTW_REAL) FFTW_K809016994) * (tim0_2_1 + tim0_2_4)); tim2_1_0 = (((FFTW_REAL) FFTW_K587785252) * (tre0_2_1 - tre0_2_4)) + (((FFTW_REAL) FFTW_K951056516) * (tre0_2_3 - tre0_2_2)); c_im(out[2 * ostride]) = tim2_0_0 + tim2_1_0; c_im(out[8 * ostride]) = tim2_0_0 - tim2_1_0; } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 144 FP additions and 24 FP multiplications */ void fftwi_no_twiddle_16(const FFTW_COMPLEX *in, FFTW_COMPLEX *out, int istride, int ostride) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_0_1; FFTW_REAL tim0_0_1; FFTW_REAL tre0_0_2; FFTW_REAL tim0_0_2; FFTW_REAL tre0_0_3; FFTW_REAL tim0_0_3; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_1_1; FFTW_REAL tim0_1_1; FFTW_REAL tre0_1_2; FFTW_REAL tim0_1_2; FFTW_REAL tre0_1_3; FFTW_REAL tim0_1_3; FFTW_REAL tre0_2_0; FFTW_REAL tim0_2_0; FFTW_REAL tre0_2_1; FFTW_REAL tim0_2_1; FFTW_REAL tre0_2_2; FFTW_REAL tim0_2_2; FFTW_REAL tre0_2_3; FFTW_REAL tim0_2_3; FFTW_REAL tre0_3_0; FFTW_REAL tim0_3_0; FFTW_REAL tre0_3_1; FFTW_REAL tim0_3_1; FFTW_REAL tre0_3_2; FFTW_REAL tim0_3_2; FFTW_REAL tre0_3_3; FFTW_REAL tim0_3_3; { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[0]); tim2_0_0 = c_im(in[0]); tre2_1_0 = c_re(in[8 * istride]); tim2_1_0 = c_im(in[8 * istride]); tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[4 * istride]); tim2_0_0 = c_im(in[4 * istride]); tre2_1_0 = c_re(in[12 * istride]); tim2_1_0 = c_im(in[12 * istride]); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } tre0_0_0 = tre1_0_0 + tre1_0_1; tim0_0_0 = tim1_0_0 + tim1_0_1; tre0_2_0 = tre1_0_0 - tre1_0_1; tim0_2_0 = tim1_0_0 - tim1_0_1; tre0_1_0 = tre1_1_0 - tim1_1_1; tim0_1_0 = tim1_1_0 + tre1_1_1; tre0_3_0 = tre1_1_0 + tim1_1_1; tim0_3_0 = tim1_1_0 - tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[istride]); tim2_0_0 = c_im(in[istride]); tre2_1_0 = c_re(in[9 * istride]); tim2_1_0 = c_im(in[9 * istride]); tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[5 * istride]); tim2_0_0 = c_im(in[5 * istride]); tre2_1_0 = c_re(in[13 * istride]); tim2_1_0 = c_im(in[13 * istride]); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } tre0_0_1 = tre1_0_0 + tre1_0_1; tim0_0_1 = tim1_0_0 + tim1_0_1; tre0_2_1 = tre1_0_0 - tre1_0_1; tim0_2_1 = tim1_0_0 - tim1_0_1; tre0_1_1 = tre1_1_0 - tim1_1_1; tim0_1_1 = tim1_1_0 + tre1_1_1; tre0_3_1 = tre1_1_0 + tim1_1_1; tim0_3_1 = tim1_1_0 - tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[2 * istride]); tim2_0_0 = c_im(in[2 * istride]); tre2_1_0 = c_re(in[10 * istride]); tim2_1_0 = c_im(in[10 * istride]); tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[6 * istride]); tim2_0_0 = c_im(in[6 * istride]); tre2_1_0 = c_re(in[14 * istride]); tim2_1_0 = c_im(in[14 * istride]); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } tre0_0_2 = tre1_0_0 + tre1_0_1; tim0_0_2 = tim1_0_0 + tim1_0_1; tre0_2_2 = tre1_0_0 - tre1_0_1; tim0_2_2 = tim1_0_0 - tim1_0_1; tre0_1_2 = tre1_1_0 - tim1_1_1; tim0_1_2 = tim1_1_0 + tre1_1_1; tre0_3_2 = tre1_1_0 + tim1_1_1; tim0_3_2 = tim1_1_0 - tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[3 * istride]); tim2_0_0 = c_im(in[3 * istride]); tre2_1_0 = c_re(in[11 * istride]); tim2_1_0 = c_im(in[11 * istride]); tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[7 * istride]); tim2_0_0 = c_im(in[7 * istride]); tre2_1_0 = c_re(in[15 * istride]); tim2_1_0 = c_im(in[15 * istride]); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } tre0_0_3 = tre1_0_0 + tre1_0_1; tim0_0_3 = tim1_0_0 + tim1_0_1; tre0_2_3 = tre1_0_0 - tre1_0_1; tim0_2_3 = tim1_0_0 - tim1_0_1; tre0_1_3 = tre1_1_0 - tim1_1_1; tim0_1_3 = tim1_1_0 + tre1_1_1; tre0_3_3 = tre1_1_0 + tim1_1_1; tim0_3_3 = tim1_1_0 - tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; tre1_0_0 = tre0_0_0 + tre0_0_2; tim1_0_0 = tim0_0_0 + tim0_0_2; tre1_1_0 = tre0_0_0 - tre0_0_2; tim1_1_0 = tim0_0_0 - tim0_0_2; tre1_0_1 = tre0_0_1 + tre0_0_3; tim1_0_1 = tim0_0_1 + tim0_0_3; tre1_1_1 = tre0_0_1 - tre0_0_3; tim1_1_1 = tim0_0_1 - tim0_0_3; c_re(out[0]) = tre1_0_0 + tre1_0_1; c_im(out[0]) = tim1_0_0 + tim1_0_1; c_re(out[8 * ostride]) = tre1_0_0 - tre1_0_1; c_im(out[8 * ostride]) = tim1_0_0 - tim1_0_1; c_re(out[4 * ostride]) = tre1_1_0 - tim1_1_1; c_im(out[4 * ostride]) = tim1_1_0 + tre1_1_1; c_re(out[12 * ostride]) = tre1_1_0 + tim1_1_1; c_im(out[12 * ostride]) = tim1_1_0 - tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_1_2 - tim0_1_2); tim2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_1_2 + tre0_1_2); tre1_0_0 = tre0_1_0 + tre2_1_0; tim1_0_0 = tim0_1_0 + tim2_1_0; tre1_1_0 = tre0_1_0 - tre2_1_0; tim1_1_0 = tim0_1_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K923879532) * tre0_1_1) - (((FFTW_REAL) FFTW_K382683432) * tim0_1_1); tim2_0_0 = (((FFTW_REAL) FFTW_K923879532) * tim0_1_1) + (((FFTW_REAL) FFTW_K382683432) * tre0_1_1); tre2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_1_3) - (((FFTW_REAL) FFTW_K923879532) * tim0_1_3); tim2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_1_3) + (((FFTW_REAL) FFTW_K923879532) * tre0_1_3); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } c_re(out[ostride]) = tre1_0_0 + tre1_0_1; c_im(out[ostride]) = tim1_0_0 + tim1_0_1; c_re(out[9 * ostride]) = tre1_0_0 - tre1_0_1; c_im(out[9 * ostride]) = tim1_0_0 - tim1_0_1; c_re(out[5 * ostride]) = tre1_1_0 - tim1_1_1; c_im(out[5 * ostride]) = tim1_1_0 + tre1_1_1; c_re(out[13 * ostride]) = tre1_1_0 + tim1_1_1; c_im(out[13 * ostride]) = tim1_1_0 - tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; tre1_0_0 = tre0_2_0 - tim0_2_2; tim1_0_0 = tim0_2_0 + tre0_2_2; tre1_1_0 = tre0_2_0 + tim0_2_2; tim1_1_0 = tim0_2_0 - tre0_2_2; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_2_1 - tim0_2_1); tim2_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_2_1 + tre0_2_1); tre2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_2_3 + tim0_2_3); tim2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_2_3 - tim0_2_3); tre1_0_1 = tre2_0_0 - tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 + tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } c_re(out[2 * ostride]) = tre1_0_0 + tre1_0_1; c_im(out[2 * ostride]) = tim1_0_0 + tim1_0_1; c_re(out[10 * ostride]) = tre1_0_0 - tre1_0_1; c_im(out[10 * ostride]) = tim1_0_0 - tim1_0_1; c_re(out[6 * ostride]) = tre1_1_0 - tim1_1_1; c_im(out[6 * ostride]) = tim1_1_0 + tre1_1_1; c_re(out[14 * ostride]) = tre1_1_0 + tim1_1_1; c_im(out[14 * ostride]) = tim1_1_0 - tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_3_2 + tim0_3_2); tim2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_3_2 - tim0_3_2); tre1_0_0 = tre0_3_0 - tre2_1_0; tim1_0_0 = tim0_3_0 + tim2_1_0; tre1_1_0 = tre0_3_0 + tre2_1_0; tim1_1_0 = tim0_3_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_3_1) - (((FFTW_REAL) FFTW_K923879532) * tim0_3_1); tim2_0_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_3_1) + (((FFTW_REAL) FFTW_K923879532) * tre0_3_1); tre2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_3_3) - (((FFTW_REAL) FFTW_K923879532) * tre0_3_3); tim2_1_0 = (((FFTW_REAL) FFTW_K923879532) * tim0_3_3) + (((FFTW_REAL) FFTW_K382683432) * tre0_3_3); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 - tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 + tim2_1_0; } c_re(out[3 * ostride]) = tre1_0_0 + tre1_0_1; c_im(out[3 * ostride]) = tim1_0_0 + tim1_0_1; c_re(out[11 * ostride]) = tre1_0_0 - tre1_0_1; c_im(out[11 * ostride]) = tim1_0_0 - tim1_0_1; c_re(out[7 * ostride]) = tre1_1_0 - tim1_1_1; c_im(out[7 * ostride]) = tim1_1_0 + tre1_1_1; c_re(out[15 * ostride]) = tre1_1_0 + tim1_1_1; c_im(out[15 * ostride]) = tim1_1_0 - tre1_1_1; } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 4 FP additions and 0 FP multiplications */ void fftwi_no_twiddle_2(const FFTW_COMPLEX *in, FFTW_COMPLEX *out, int istride, int ostride) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; tre0_0_0 = c_re(in[0]); tim0_0_0 = c_im(in[0]); tre0_1_0 = c_re(in[istride]); tim0_1_0 = c_im(in[istride]); c_re(out[0]) = tre0_0_0 + tre0_1_0; c_im(out[0]) = tim0_0_0 + tim0_1_0; c_re(out[ostride]) = tre0_0_0 - tre0_1_0; c_im(out[ostride]) = tim0_0_0 - tim0_1_0; } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 14 FP additions and 4 FP multiplications */ void fftwi_no_twiddle_3(const FFTW_COMPLEX *in, FFTW_COMPLEX *out, int istride, int ostride) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_2_0; FFTW_REAL tim0_2_0; tre0_0_0 = c_re(in[0]); tim0_0_0 = c_im(in[0]); tre0_1_0 = c_re(in[istride]); tim0_1_0 = c_im(in[istride]); tre0_2_0 = c_re(in[2 * istride]); tim0_2_0 = c_im(in[2 * istride]); c_re(out[0]) = tre0_0_0 + tre0_1_0 + tre0_2_0; c_im(out[0]) = tim0_0_0 + tim0_1_0 + tim0_2_0; { FFTW_REAL tre1_0_0; FFTW_REAL tre1_1_0; tre1_0_0 = tre0_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tre0_1_0 + tre0_2_0)); tre1_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim0_2_0 - tim0_1_0); c_re(out[ostride]) = tre1_0_0 + tre1_1_0; c_re(out[2 * ostride]) = tre1_0_0 - tre1_1_0; } { FFTW_REAL tim1_0_0; FFTW_REAL tim1_1_0; tim1_0_0 = tim0_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tim0_1_0 + tim0_2_0)); tim1_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre0_1_0 - tre0_2_0); c_im(out[ostride]) = tim1_0_0 + tim1_1_0; c_im(out[2 * ostride]) = tim1_0_0 - tim1_1_0; } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 376 FP additions and 88 FP multiplications */ void fftwi_no_twiddle_32(const FFTW_COMPLEX *in, FFTW_COMPLEX *out, int istride, int ostride) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_0_1; FFTW_REAL tim0_0_1; FFTW_REAL tre0_0_2; FFTW_REAL tim0_0_2; FFTW_REAL tre0_0_3; FFTW_REAL tim0_0_3; FFTW_REAL tre0_0_4; FFTW_REAL tim0_0_4; FFTW_REAL tre0_0_5; FFTW_REAL tim0_0_5; FFTW_REAL tre0_0_6; FFTW_REAL tim0_0_6; FFTW_REAL tre0_0_7; FFTW_REAL tim0_0_7; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_1_1; FFTW_REAL tim0_1_1; FFTW_REAL tre0_1_2; FFTW_REAL tim0_1_2; FFTW_REAL tre0_1_3; FFTW_REAL tim0_1_3; FFTW_REAL tre0_1_4; FFTW_REAL tim0_1_4; FFTW_REAL tre0_1_5; FFTW_REAL tim0_1_5; FFTW_REAL tre0_1_6; FFTW_REAL tim0_1_6; FFTW_REAL tre0_1_7; FFTW_REAL tim0_1_7; FFTW_REAL tre0_2_0; FFTW_REAL tim0_2_0; FFTW_REAL tre0_2_1; FFTW_REAL tim0_2_1; FFTW_REAL tre0_2_2; FFTW_REAL tim0_2_2; FFTW_REAL tre0_2_3; FFTW_REAL tim0_2_3; FFTW_REAL tre0_2_4; FFTW_REAL tim0_2_4; FFTW_REAL tre0_2_5; FFTW_REAL tim0_2_5; FFTW_REAL tre0_2_6; FFTW_REAL tim0_2_6; FFTW_REAL tre0_2_7; FFTW_REAL tim0_2_7; FFTW_REAL tre0_3_0; FFTW_REAL tim0_3_0; FFTW_REAL tre0_3_1; FFTW_REAL tim0_3_1; FFTW_REAL tre0_3_2; FFTW_REAL tim0_3_2; FFTW_REAL tre0_3_3; FFTW_REAL tim0_3_3; FFTW_REAL tre0_3_4; FFTW_REAL tim0_3_4; FFTW_REAL tre0_3_5; FFTW_REAL tim0_3_5; FFTW_REAL tre0_3_6; FFTW_REAL tim0_3_6; FFTW_REAL tre0_3_7; FFTW_REAL tim0_3_7; { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[0]); tim2_0_0 = c_im(in[0]); tre2_1_0 = c_re(in[16 * istride]); tim2_1_0 = c_im(in[16 * istride]); tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[8 * istride]); tim2_0_0 = c_im(in[8 * istride]); tre2_1_0 = c_re(in[24 * istride]); tim2_1_0 = c_im(in[24 * istride]); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } tre0_0_0 = tre1_0_0 + tre1_0_1; tim0_0_0 = tim1_0_0 + tim1_0_1; tre0_2_0 = tre1_0_0 - tre1_0_1; tim0_2_0 = tim1_0_0 - tim1_0_1; tre0_1_0 = tre1_1_0 - tim1_1_1; tim0_1_0 = tim1_1_0 + tre1_1_1; tre0_3_0 = tre1_1_0 + tim1_1_1; tim0_3_0 = tim1_1_0 - tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[istride]); tim2_0_0 = c_im(in[istride]); tre2_1_0 = c_re(in[17 * istride]); tim2_1_0 = c_im(in[17 * istride]); tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[9 * istride]); tim2_0_0 = c_im(in[9 * istride]); tre2_1_0 = c_re(in[25 * istride]); tim2_1_0 = c_im(in[25 * istride]); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } tre0_0_1 = tre1_0_0 + tre1_0_1; tim0_0_1 = tim1_0_0 + tim1_0_1; tre0_2_1 = tre1_0_0 - tre1_0_1; tim0_2_1 = tim1_0_0 - tim1_0_1; tre0_1_1 = tre1_1_0 - tim1_1_1; tim0_1_1 = tim1_1_0 + tre1_1_1; tre0_3_1 = tre1_1_0 + tim1_1_1; tim0_3_1 = tim1_1_0 - tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[2 * istride]); tim2_0_0 = c_im(in[2 * istride]); tre2_1_0 = c_re(in[18 * istride]); tim2_1_0 = c_im(in[18 * istride]); tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[10 * istride]); tim2_0_0 = c_im(in[10 * istride]); tre2_1_0 = c_re(in[26 * istride]); tim2_1_0 = c_im(in[26 * istride]); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } tre0_0_2 = tre1_0_0 + tre1_0_1; tim0_0_2 = tim1_0_0 + tim1_0_1; tre0_2_2 = tre1_0_0 - tre1_0_1; tim0_2_2 = tim1_0_0 - tim1_0_1; tre0_1_2 = tre1_1_0 - tim1_1_1; tim0_1_2 = tim1_1_0 + tre1_1_1; tre0_3_2 = tre1_1_0 + tim1_1_1; tim0_3_2 = tim1_1_0 - tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[3 * istride]); tim2_0_0 = c_im(in[3 * istride]); tre2_1_0 = c_re(in[19 * istride]); tim2_1_0 = c_im(in[19 * istride]); tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[11 * istride]); tim2_0_0 = c_im(in[11 * istride]); tre2_1_0 = c_re(in[27 * istride]); tim2_1_0 = c_im(in[27 * istride]); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } tre0_0_3 = tre1_0_0 + tre1_0_1; tim0_0_3 = tim1_0_0 + tim1_0_1; tre0_2_3 = tre1_0_0 - tre1_0_1; tim0_2_3 = tim1_0_0 - tim1_0_1; tre0_1_3 = tre1_1_0 - tim1_1_1; tim0_1_3 = tim1_1_0 + tre1_1_1; tre0_3_3 = tre1_1_0 + tim1_1_1; tim0_3_3 = tim1_1_0 - tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[4 * istride]); tim2_0_0 = c_im(in[4 * istride]); tre2_1_0 = c_re(in[20 * istride]); tim2_1_0 = c_im(in[20 * istride]); tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[12 * istride]); tim2_0_0 = c_im(in[12 * istride]); tre2_1_0 = c_re(in[28 * istride]); tim2_1_0 = c_im(in[28 * istride]); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } tre0_0_4 = tre1_0_0 + tre1_0_1; tim0_0_4 = tim1_0_0 + tim1_0_1; tre0_2_4 = tre1_0_0 - tre1_0_1; tim0_2_4 = tim1_0_0 - tim1_0_1; tre0_1_4 = tre1_1_0 - tim1_1_1; tim0_1_4 = tim1_1_0 + tre1_1_1; tre0_3_4 = tre1_1_0 + tim1_1_1; tim0_3_4 = tim1_1_0 - tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[5 * istride]); tim2_0_0 = c_im(in[5 * istride]); tre2_1_0 = c_re(in[21 * istride]); tim2_1_0 = c_im(in[21 * istride]); tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[13 * istride]); tim2_0_0 = c_im(in[13 * istride]); tre2_1_0 = c_re(in[29 * istride]); tim2_1_0 = c_im(in[29 * istride]); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } tre0_0_5 = tre1_0_0 + tre1_0_1; tim0_0_5 = tim1_0_0 + tim1_0_1; tre0_2_5 = tre1_0_0 - tre1_0_1; tim0_2_5 = tim1_0_0 - tim1_0_1; tre0_1_5 = tre1_1_0 - tim1_1_1; tim0_1_5 = tim1_1_0 + tre1_1_1; tre0_3_5 = tre1_1_0 + tim1_1_1; tim0_3_5 = tim1_1_0 - tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[6 * istride]); tim2_0_0 = c_im(in[6 * istride]); tre2_1_0 = c_re(in[22 * istride]); tim2_1_0 = c_im(in[22 * istride]); tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[14 * istride]); tim2_0_0 = c_im(in[14 * istride]); tre2_1_0 = c_re(in[30 * istride]); tim2_1_0 = c_im(in[30 * istride]); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } tre0_0_6 = tre1_0_0 + tre1_0_1; tim0_0_6 = tim1_0_0 + tim1_0_1; tre0_2_6 = tre1_0_0 - tre1_0_1; tim0_2_6 = tim1_0_0 - tim1_0_1; tre0_1_6 = tre1_1_0 - tim1_1_1; tim0_1_6 = tim1_1_0 + tre1_1_1; tre0_3_6 = tre1_1_0 + tim1_1_1; tim0_3_6 = tim1_1_0 - tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[7 * istride]); tim2_0_0 = c_im(in[7 * istride]); tre2_1_0 = c_re(in[23 * istride]); tim2_1_0 = c_im(in[23 * istride]); tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[15 * istride]); tim2_0_0 = c_im(in[15 * istride]); tre2_1_0 = c_re(in[31 * istride]); tim2_1_0 = c_im(in[31 * istride]); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } tre0_0_7 = tre1_0_0 + tre1_0_1; tim0_0_7 = tim1_0_0 + tim1_0_1; tre0_2_7 = tre1_0_0 - tre1_0_1; tim0_2_7 = tim1_0_0 - tim1_0_1; tre0_1_7 = tre1_1_0 - tim1_1_1; tim0_1_7 = tim1_1_0 + tre1_1_1; tre0_3_7 = tre1_1_0 + tim1_1_1; tim0_3_7 = tim1_1_0 - tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; tre1_0_0 = tre0_0_0 + tre0_0_4; tim1_0_0 = tim0_0_0 + tim0_0_4; tre1_1_0 = tre0_0_0 - tre0_0_4; tim1_1_0 = tim0_0_0 - tim0_0_4; tre1_0_1 = tre0_0_1 + tre0_0_5; tim1_0_1 = tim0_0_1 + tim0_0_5; tre1_1_1 = tre0_0_1 - tre0_0_5; tim1_1_1 = tim0_0_1 - tim0_0_5; tre1_0_2 = tre0_0_2 + tre0_0_6; tim1_0_2 = tim0_0_2 + tim0_0_6; tre1_1_2 = tre0_0_2 - tre0_0_6; tim1_1_2 = tim0_0_2 - tim0_0_6; tre1_0_3 = tre0_0_3 + tre0_0_7; tim1_0_3 = tim0_0_3 + tim0_0_7; tre1_1_3 = tre0_0_3 - tre0_0_7; tim1_1_3 = tim0_0_3 - tim0_0_7; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; c_re(out[0]) = tre2_0_0 + tre2_0_1; c_im(out[0]) = tim2_0_0 + tim2_0_1; c_re(out[16 * ostride]) = tre2_0_0 - tre2_0_1; c_im(out[16 * ostride]) = tim2_0_0 - tim2_0_1; c_re(out[8 * ostride]) = tre2_1_0 - tim2_1_1; c_im(out[8 * ostride]) = tim2_1_0 + tre2_1_1; c_re(out[24 * ostride]) = tre2_1_0 + tim2_1_1; c_im(out[24 * ostride]) = tim2_1_0 - tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 - tim1_1_2; tim2_0_0 = tim1_1_0 + tre1_1_2; tre2_1_0 = tre1_1_0 + tim1_1_2; tim2_1_0 = tim1_1_0 - tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 - tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 + tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 + tim1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 - tim1_1_3); tre2_0_1 = tre3_0_0 - tre3_1_0; tim2_0_1 = tim3_0_0 + tim3_1_0; tre2_1_1 = tre3_0_0 + tre3_1_0; tim2_1_1 = tim3_0_0 - tim3_1_0; } c_re(out[4 * ostride]) = tre2_0_0 + tre2_0_1; c_im(out[4 * ostride]) = tim2_0_0 + tim2_0_1; c_re(out[20 * ostride]) = tre2_0_0 - tre2_0_1; c_im(out[20 * ostride]) = tim2_0_0 - tim2_0_1; c_re(out[12 * ostride]) = tre2_1_0 - tim2_1_1; c_im(out[12 * ostride]) = tim2_1_0 + tre2_1_1; c_re(out[28 * ostride]) = tre2_1_0 + tim2_1_1; c_im(out[28 * ostride]) = tim2_1_0 - tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_1_4 - tim0_1_4); tim2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_1_4 + tre0_1_4); tre1_0_0 = tre0_1_0 + tre2_1_0; tim1_0_0 = tim0_1_0 + tim2_1_0; tre1_1_0 = tre0_1_0 - tre2_1_0; tim1_1_0 = tim0_1_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K980785280) * tre0_1_1) - (((FFTW_REAL) FFTW_K195090322) * tim0_1_1); tim2_0_0 = (((FFTW_REAL) FFTW_K980785280) * tim0_1_1) + (((FFTW_REAL) FFTW_K195090322) * tre0_1_1); tre2_1_0 = (((FFTW_REAL) FFTW_K555570233) * tre0_1_5) - (((FFTW_REAL) FFTW_K831469612) * tim0_1_5); tim2_1_0 = (((FFTW_REAL) FFTW_K555570233) * tim0_1_5) + (((FFTW_REAL) FFTW_K831469612) * tre0_1_5); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K923879532) * tre0_1_2) - (((FFTW_REAL) FFTW_K382683432) * tim0_1_2); tim2_0_0 = (((FFTW_REAL) FFTW_K923879532) * tim0_1_2) + (((FFTW_REAL) FFTW_K382683432) * tre0_1_2); tre2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_1_6) - (((FFTW_REAL) FFTW_K923879532) * tim0_1_6); tim2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_1_6) + (((FFTW_REAL) FFTW_K923879532) * tre0_1_6); tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K831469612) * tre0_1_3) - (((FFTW_REAL) FFTW_K555570233) * tim0_1_3); tim2_0_0 = (((FFTW_REAL) FFTW_K831469612) * tim0_1_3) + (((FFTW_REAL) FFTW_K555570233) * tre0_1_3); tre2_1_0 = (((FFTW_REAL) FFTW_K195090322) * tre0_1_7) - (((FFTW_REAL) FFTW_K980785280) * tim0_1_7); tim2_1_0 = (((FFTW_REAL) FFTW_K195090322) * tim0_1_7) + (((FFTW_REAL) FFTW_K980785280) * tre0_1_7); tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; c_re(out[ostride]) = tre2_0_0 + tre2_0_1; c_im(out[ostride]) = tim2_0_0 + tim2_0_1; c_re(out[17 * ostride]) = tre2_0_0 - tre2_0_1; c_im(out[17 * ostride]) = tim2_0_0 - tim2_0_1; c_re(out[9 * ostride]) = tre2_1_0 - tim2_1_1; c_im(out[9 * ostride]) = tim2_1_0 + tre2_1_1; c_re(out[25 * ostride]) = tre2_1_0 + tim2_1_1; c_im(out[25 * ostride]) = tim2_1_0 - tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 - tim1_1_2; tim2_0_0 = tim1_1_0 + tre1_1_2; tre2_1_0 = tre1_1_0 + tim1_1_2; tim2_1_0 = tim1_1_0 - tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 - tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 + tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 + tim1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 - tim1_1_3); tre2_0_1 = tre3_0_0 - tre3_1_0; tim2_0_1 = tim3_0_0 + tim3_1_0; tre2_1_1 = tre3_0_0 + tre3_1_0; tim2_1_1 = tim3_0_0 - tim3_1_0; } c_re(out[5 * ostride]) = tre2_0_0 + tre2_0_1; c_im(out[5 * ostride]) = tim2_0_0 + tim2_0_1; c_re(out[21 * ostride]) = tre2_0_0 - tre2_0_1; c_im(out[21 * ostride]) = tim2_0_0 - tim2_0_1; c_re(out[13 * ostride]) = tre2_1_0 - tim2_1_1; c_im(out[13 * ostride]) = tim2_1_0 + tre2_1_1; c_re(out[29 * ostride]) = tre2_1_0 + tim2_1_1; c_im(out[29 * ostride]) = tim2_1_0 - tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; tre1_0_0 = tre0_2_0 - tim0_2_4; tim1_0_0 = tim0_2_0 + tre0_2_4; tre1_1_0 = tre0_2_0 + tim0_2_4; tim1_1_0 = tim0_2_0 - tre0_2_4; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K923879532) * tre0_2_1) - (((FFTW_REAL) FFTW_K382683432) * tim0_2_1); tim2_0_0 = (((FFTW_REAL) FFTW_K923879532) * tim0_2_1) + (((FFTW_REAL) FFTW_K382683432) * tre0_2_1); tre2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_2_5) + (((FFTW_REAL) FFTW_K923879532) * tim0_2_5); tim2_1_0 = (((FFTW_REAL) FFTW_K923879532) * tre0_2_5) - (((FFTW_REAL) FFTW_K382683432) * tim0_2_5); tre1_0_1 = tre2_0_0 - tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 + tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_2_2 - tim0_2_2); tim2_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_2_2 + tre0_2_2); tre2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_2_6 + tim0_2_6); tim2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_2_6 - tim0_2_6); tre1_0_2 = tre2_0_0 - tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 + tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_2_3) - (((FFTW_REAL) FFTW_K923879532) * tim0_2_3); tim2_0_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_2_3) + (((FFTW_REAL) FFTW_K923879532) * tre0_2_3); tre2_1_0 = (((FFTW_REAL) FFTW_K923879532) * tre0_2_7) + (((FFTW_REAL) FFTW_K382683432) * tim0_2_7); tim2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_2_7) - (((FFTW_REAL) FFTW_K923879532) * tim0_2_7); tre1_0_3 = tre2_0_0 - tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 + tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; c_re(out[2 * ostride]) = tre2_0_0 + tre2_0_1; c_im(out[2 * ostride]) = tim2_0_0 + tim2_0_1; c_re(out[18 * ostride]) = tre2_0_0 - tre2_0_1; c_im(out[18 * ostride]) = tim2_0_0 - tim2_0_1; c_re(out[10 * ostride]) = tre2_1_0 - tim2_1_1; c_im(out[10 * ostride]) = tim2_1_0 + tre2_1_1; c_re(out[26 * ostride]) = tre2_1_0 + tim2_1_1; c_im(out[26 * ostride]) = tim2_1_0 - tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 - tim1_1_2; tim2_0_0 = tim1_1_0 + tre1_1_2; tre2_1_0 = tre1_1_0 + tim1_1_2; tim2_1_0 = tim1_1_0 - tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 - tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 + tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 + tim1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 - tim1_1_3); tre2_0_1 = tre3_0_0 - tre3_1_0; tim2_0_1 = tim3_0_0 + tim3_1_0; tre2_1_1 = tre3_0_0 + tre3_1_0; tim2_1_1 = tim3_0_0 - tim3_1_0; } c_re(out[6 * ostride]) = tre2_0_0 + tre2_0_1; c_im(out[6 * ostride]) = tim2_0_0 + tim2_0_1; c_re(out[22 * ostride]) = tre2_0_0 - tre2_0_1; c_im(out[22 * ostride]) = tim2_0_0 - tim2_0_1; c_re(out[14 * ostride]) = tre2_1_0 - tim2_1_1; c_im(out[14 * ostride]) = tim2_1_0 + tre2_1_1; c_re(out[30 * ostride]) = tre2_1_0 + tim2_1_1; c_im(out[30 * ostride]) = tim2_1_0 - tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_3_4 + tim0_3_4); tim2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_3_4 - tim0_3_4); tre1_0_0 = tre0_3_0 - tre2_1_0; tim1_0_0 = tim0_3_0 + tim2_1_0; tre1_1_0 = tre0_3_0 + tre2_1_0; tim1_1_0 = tim0_3_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K831469612) * tre0_3_1) - (((FFTW_REAL) FFTW_K555570233) * tim0_3_1); tim2_0_0 = (((FFTW_REAL) FFTW_K831469612) * tim0_3_1) + (((FFTW_REAL) FFTW_K555570233) * tre0_3_1); tre2_1_0 = (((FFTW_REAL) FFTW_K980785280) * tre0_3_5) + (((FFTW_REAL) FFTW_K195090322) * tim0_3_5); tim2_1_0 = (((FFTW_REAL) FFTW_K195090322) * tre0_3_5) - (((FFTW_REAL) FFTW_K980785280) * tim0_3_5); tre1_0_1 = tre2_0_0 - tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 + tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_3_2) - (((FFTW_REAL) FFTW_K923879532) * tim0_3_2); tim2_0_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_3_2) + (((FFTW_REAL) FFTW_K923879532) * tre0_3_2); tre2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_3_6) - (((FFTW_REAL) FFTW_K923879532) * tre0_3_6); tim2_1_0 = (((FFTW_REAL) FFTW_K923879532) * tim0_3_6) + (((FFTW_REAL) FFTW_K382683432) * tre0_3_6); tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 - tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 + tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K195090322) * tre0_3_3) + (((FFTW_REAL) FFTW_K980785280) * tim0_3_3); tim2_0_0 = (((FFTW_REAL) FFTW_K980785280) * tre0_3_3) - (((FFTW_REAL) FFTW_K195090322) * tim0_3_3); tre2_1_0 = (((FFTW_REAL) FFTW_K831469612) * tim0_3_7) - (((FFTW_REAL) FFTW_K555570233) * tre0_3_7); tim2_1_0 = (((FFTW_REAL) FFTW_K555570233) * tim0_3_7) + (((FFTW_REAL) FFTW_K831469612) * tre0_3_7); tre1_0_3 = tre2_1_0 - tre2_0_0; tim1_0_3 = tim2_0_0 - tim2_1_0; tre1_1_3 = (-(tre2_0_0 + tre2_1_0)); tim1_1_3 = tim2_0_0 + tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; c_re(out[3 * ostride]) = tre2_0_0 + tre2_0_1; c_im(out[3 * ostride]) = tim2_0_0 + tim2_0_1; c_re(out[19 * ostride]) = tre2_0_0 - tre2_0_1; c_im(out[19 * ostride]) = tim2_0_0 - tim2_0_1; c_re(out[11 * ostride]) = tre2_1_0 - tim2_1_1; c_im(out[11 * ostride]) = tim2_1_0 + tre2_1_1; c_re(out[27 * ostride]) = tre2_1_0 + tim2_1_1; c_im(out[27 * ostride]) = tim2_1_0 - tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 - tim1_1_2; tim2_0_0 = tim1_1_0 + tre1_1_2; tre2_1_0 = tre1_1_0 + tim1_1_2; tim2_1_0 = tim1_1_0 - tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 - tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 + tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 + tim1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 - tim1_1_3); tre2_0_1 = tre3_0_0 - tre3_1_0; tim2_0_1 = tim3_0_0 + tim3_1_0; tre2_1_1 = tre3_0_0 + tre3_1_0; tim2_1_1 = tim3_0_0 - tim3_1_0; } c_re(out[7 * ostride]) = tre2_0_0 + tre2_0_1; c_im(out[7 * ostride]) = tim2_0_0 + tim2_0_1; c_re(out[23 * ostride]) = tre2_0_0 - tre2_0_1; c_im(out[23 * ostride]) = tim2_0_0 - tim2_0_1; c_re(out[15 * ostride]) = tre2_1_0 - tim2_1_1; c_im(out[15 * ostride]) = tim2_1_0 + tre2_1_1; c_re(out[31 * ostride]) = tre2_1_0 + tim2_1_1; c_im(out[31 * ostride]) = tim2_1_0 - tre2_1_1; } } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 16 FP additions and 0 FP multiplications */ void fftwi_no_twiddle_4(const FFTW_COMPLEX *in, FFTW_COMPLEX *out, int istride, int ostride) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_0_1; FFTW_REAL tim0_0_1; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_1_1; FFTW_REAL tim0_1_1; { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(in[0]); tim1_0_0 = c_im(in[0]); tre1_1_0 = c_re(in[2 * istride]); tim1_1_0 = c_im(in[2 * istride]); tre0_0_0 = tre1_0_0 + tre1_1_0; tim0_0_0 = tim1_0_0 + tim1_1_0; tre0_1_0 = tre1_0_0 - tre1_1_0; tim0_1_0 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(in[istride]); tim1_0_0 = c_im(in[istride]); tre1_1_0 = c_re(in[3 * istride]); tim1_1_0 = c_im(in[3 * istride]); tre0_0_1 = tre1_0_0 + tre1_1_0; tim0_0_1 = tim1_0_0 + tim1_1_0; tre0_1_1 = tre1_0_0 - tre1_1_0; tim0_1_1 = tim1_0_0 - tim1_1_0; } c_re(out[0]) = tre0_0_0 + tre0_0_1; c_im(out[0]) = tim0_0_0 + tim0_0_1; c_re(out[2 * ostride]) = tre0_0_0 - tre0_0_1; c_im(out[2 * ostride]) = tim0_0_0 - tim0_0_1; c_re(out[ostride]) = tre0_1_0 - tim0_1_1; c_im(out[ostride]) = tim0_1_0 + tre0_1_1; c_re(out[3 * ostride]) = tre0_1_0 + tim0_1_1; c_im(out[3 * ostride]) = tim0_1_0 - tre0_1_1; } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 44 FP additions and 16 FP multiplications */ void fftwi_no_twiddle_5(const FFTW_COMPLEX *in, FFTW_COMPLEX *out, int istride, int ostride) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_2_0; FFTW_REAL tim0_2_0; FFTW_REAL tre0_3_0; FFTW_REAL tim0_3_0; FFTW_REAL tre0_4_0; FFTW_REAL tim0_4_0; tre0_0_0 = c_re(in[0]); tim0_0_0 = c_im(in[0]); tre0_1_0 = c_re(in[istride]); tim0_1_0 = c_im(in[istride]); tre0_2_0 = c_re(in[2 * istride]); tim0_2_0 = c_im(in[2 * istride]); tre0_3_0 = c_re(in[3 * istride]); tim0_3_0 = c_im(in[3 * istride]); tre0_4_0 = c_re(in[4 * istride]); tim0_4_0 = c_im(in[4 * istride]); c_re(out[0]) = tre0_0_0 + tre0_1_0 + tre0_2_0 + tre0_3_0 + tre0_4_0; c_im(out[0]) = tim0_0_0 + tim0_1_0 + tim0_2_0 + tim0_3_0 + tim0_4_0; { FFTW_REAL tre1_0_0; FFTW_REAL tre1_1_0; tre1_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K309016994) * (tre0_1_0 + tre0_4_0)) - (((FFTW_REAL) FFTW_K809016994) * (tre0_2_0 + tre0_3_0)); tre1_1_0 = (((FFTW_REAL) FFTW_K951056516) * (tim0_4_0 - tim0_1_0)) + (((FFTW_REAL) FFTW_K587785252) * (tim0_3_0 - tim0_2_0)); c_re(out[ostride]) = tre1_0_0 + tre1_1_0; c_re(out[4 * ostride]) = tre1_0_0 - tre1_1_0; } { FFTW_REAL tim1_0_0; FFTW_REAL tim1_1_0; tim1_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K309016994) * (tim0_1_0 + tim0_4_0)) - (((FFTW_REAL) FFTW_K809016994) * (tim0_2_0 + tim0_3_0)); tim1_1_0 = (((FFTW_REAL) FFTW_K951056516) * (tre0_1_0 - tre0_4_0)) + (((FFTW_REAL) FFTW_K587785252) * (tre0_2_0 - tre0_3_0)); c_im(out[ostride]) = tim1_0_0 + tim1_1_0; c_im(out[4 * ostride]) = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tre1_1_0; tre1_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K309016994) * (tre0_2_0 + tre0_3_0)) - (((FFTW_REAL) FFTW_K809016994) * (tre0_1_0 + tre0_4_0)); tre1_1_0 = (((FFTW_REAL) FFTW_K587785252) * (tim0_4_0 - tim0_1_0)) + (((FFTW_REAL) FFTW_K951056516) * (tim0_2_0 - tim0_3_0)); c_re(out[2 * ostride]) = tre1_0_0 + tre1_1_0; c_re(out[3 * ostride]) = tre1_0_0 - tre1_1_0; } { FFTW_REAL tim1_0_0; FFTW_REAL tim1_1_0; tim1_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K309016994) * (tim0_2_0 + tim0_3_0)) - (((FFTW_REAL) FFTW_K809016994) * (tim0_1_0 + tim0_4_0)); tim1_1_0 = (((FFTW_REAL) FFTW_K587785252) * (tre0_1_0 - tre0_4_0)) + (((FFTW_REAL) FFTW_K951056516) * (tre0_3_0 - tre0_2_0)); c_im(out[2 * ostride]) = tim1_0_0 + tim1_1_0; c_im(out[3 * ostride]) = tim1_0_0 - tim1_1_0; } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 40 FP additions and 8 FP multiplications */ void fftwi_no_twiddle_6(const FFTW_COMPLEX *in, FFTW_COMPLEX *out, int istride, int ostride) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_0_1; FFTW_REAL tim0_0_1; FFTW_REAL tre0_0_2; FFTW_REAL tim0_0_2; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_1_1; FFTW_REAL tim0_1_1; FFTW_REAL tre0_1_2; FFTW_REAL tim0_1_2; { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(in[0]); tim1_0_0 = c_im(in[0]); tre1_1_0 = c_re(in[3 * istride]); tim1_1_0 = c_im(in[3 * istride]); tre0_0_0 = tre1_0_0 + tre1_1_0; tim0_0_0 = tim1_0_0 + tim1_1_0; tre0_1_0 = tre1_0_0 - tre1_1_0; tim0_1_0 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(in[2 * istride]); tim1_0_0 = c_im(in[2 * istride]); tre1_1_0 = c_re(in[5 * istride]); tim1_1_0 = c_im(in[5 * istride]); tre0_0_1 = tre1_0_0 + tre1_1_0; tim0_0_1 = tim1_0_0 + tim1_1_0; tre0_1_1 = tre1_0_0 - tre1_1_0; tim0_1_1 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(in[4 * istride]); tim1_0_0 = c_im(in[4 * istride]); tre1_1_0 = c_re(in[istride]); tim1_1_0 = c_im(in[istride]); tre0_0_2 = tre1_0_0 + tre1_1_0; tim0_0_2 = tim1_0_0 + tim1_1_0; tre0_1_2 = tre1_0_0 - tre1_1_0; tim0_1_2 = tim1_0_0 - tim1_1_0; } c_re(out[0]) = tre0_0_0 + tre0_0_1 + tre0_0_2; c_im(out[0]) = tim0_0_0 + tim0_0_1 + tim0_0_2; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tre0_0_1 + tre0_0_2)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim0_0_2 - tim0_0_1); c_re(out[4 * ostride]) = tre2_0_0 + tre2_1_0; c_re(out[2 * ostride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tim0_0_1 + tim0_0_2)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre0_0_1 - tre0_0_2); c_im(out[4 * ostride]) = tim2_0_0 + tim2_1_0; c_im(out[2 * ostride]) = tim2_0_0 - tim2_1_0; } c_re(out[3 * ostride]) = tre0_1_0 + tre0_1_1 + tre0_1_2; c_im(out[3 * ostride]) = tim0_1_0 + tim0_1_1 + tim0_1_2; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_1_0 - (((FFTW_REAL) FFTW_K499999999) * (tre0_1_1 + tre0_1_2)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim0_1_2 - tim0_1_1); c_re(out[ostride]) = tre2_0_0 + tre2_1_0; c_re(out[5 * ostride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_1_0 - (((FFTW_REAL) FFTW_K499999999) * (tim0_1_1 + tim0_1_2)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre0_1_1 - tre0_1_2); c_im(out[ostride]) = tim2_0_0 + tim2_1_0; c_im(out[5 * ostride]) = tim2_0_0 - tim2_1_0; } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 928 FP additions and 248 FP multiplications */ void fftwi_no_twiddle_64(const FFTW_COMPLEX *in, FFTW_COMPLEX *out, int istride, int ostride) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_0_1; FFTW_REAL tim0_0_1; FFTW_REAL tre0_0_2; FFTW_REAL tim0_0_2; FFTW_REAL tre0_0_3; FFTW_REAL tim0_0_3; FFTW_REAL tre0_0_4; FFTW_REAL tim0_0_4; FFTW_REAL tre0_0_5; FFTW_REAL tim0_0_5; FFTW_REAL tre0_0_6; FFTW_REAL tim0_0_6; FFTW_REAL tre0_0_7; FFTW_REAL tim0_0_7; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_1_1; FFTW_REAL tim0_1_1; FFTW_REAL tre0_1_2; FFTW_REAL tim0_1_2; FFTW_REAL tre0_1_3; FFTW_REAL tim0_1_3; FFTW_REAL tre0_1_4; FFTW_REAL tim0_1_4; FFTW_REAL tre0_1_5; FFTW_REAL tim0_1_5; FFTW_REAL tre0_1_6; FFTW_REAL tim0_1_6; FFTW_REAL tre0_1_7; FFTW_REAL tim0_1_7; FFTW_REAL tre0_2_0; FFTW_REAL tim0_2_0; FFTW_REAL tre0_2_1; FFTW_REAL tim0_2_1; FFTW_REAL tre0_2_2; FFTW_REAL tim0_2_2; FFTW_REAL tre0_2_3; FFTW_REAL tim0_2_3; FFTW_REAL tre0_2_4; FFTW_REAL tim0_2_4; FFTW_REAL tre0_2_5; FFTW_REAL tim0_2_5; FFTW_REAL tre0_2_6; FFTW_REAL tim0_2_6; FFTW_REAL tre0_2_7; FFTW_REAL tim0_2_7; FFTW_REAL tre0_3_0; FFTW_REAL tim0_3_0; FFTW_REAL tre0_3_1; FFTW_REAL tim0_3_1; FFTW_REAL tre0_3_2; FFTW_REAL tim0_3_2; FFTW_REAL tre0_3_3; FFTW_REAL tim0_3_3; FFTW_REAL tre0_3_4; FFTW_REAL tim0_3_4; FFTW_REAL tre0_3_5; FFTW_REAL tim0_3_5; FFTW_REAL tre0_3_6; FFTW_REAL tim0_3_6; FFTW_REAL tre0_3_7; FFTW_REAL tim0_3_7; FFTW_REAL tre0_4_0; FFTW_REAL tim0_4_0; FFTW_REAL tre0_4_1; FFTW_REAL tim0_4_1; FFTW_REAL tre0_4_2; FFTW_REAL tim0_4_2; FFTW_REAL tre0_4_3; FFTW_REAL tim0_4_3; FFTW_REAL tre0_4_4; FFTW_REAL tim0_4_4; FFTW_REAL tre0_4_5; FFTW_REAL tim0_4_5; FFTW_REAL tre0_4_6; FFTW_REAL tim0_4_6; FFTW_REAL tre0_4_7; FFTW_REAL tim0_4_7; FFTW_REAL tre0_5_0; FFTW_REAL tim0_5_0; FFTW_REAL tre0_5_1; FFTW_REAL tim0_5_1; FFTW_REAL tre0_5_2; FFTW_REAL tim0_5_2; FFTW_REAL tre0_5_3; FFTW_REAL tim0_5_3; FFTW_REAL tre0_5_4; FFTW_REAL tim0_5_4; FFTW_REAL tre0_5_5; FFTW_REAL tim0_5_5; FFTW_REAL tre0_5_6; FFTW_REAL tim0_5_6; FFTW_REAL tre0_5_7; FFTW_REAL tim0_5_7; FFTW_REAL tre0_6_0; FFTW_REAL tim0_6_0; FFTW_REAL tre0_6_1; FFTW_REAL tim0_6_1; FFTW_REAL tre0_6_2; FFTW_REAL tim0_6_2; FFTW_REAL tre0_6_3; FFTW_REAL tim0_6_3; FFTW_REAL tre0_6_4; FFTW_REAL tim0_6_4; FFTW_REAL tre0_6_5; FFTW_REAL tim0_6_5; FFTW_REAL tre0_6_6; FFTW_REAL tim0_6_6; FFTW_REAL tre0_6_7; FFTW_REAL tim0_6_7; FFTW_REAL tre0_7_0; FFTW_REAL tim0_7_0; FFTW_REAL tre0_7_1; FFTW_REAL tim0_7_1; FFTW_REAL tre0_7_2; FFTW_REAL tim0_7_2; FFTW_REAL tre0_7_3; FFTW_REAL tim0_7_3; FFTW_REAL tre0_7_4; FFTW_REAL tim0_7_4; FFTW_REAL tre0_7_5; FFTW_REAL tim0_7_5; FFTW_REAL tre0_7_6; FFTW_REAL tim0_7_6; FFTW_REAL tre0_7_7; FFTW_REAL tim0_7_7; { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[0]); tim2_0_0 = c_im(in[0]); tre2_1_0 = c_re(in[32 * istride]); tim2_1_0 = c_im(in[32 * istride]); tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[8 * istride]); tim2_0_0 = c_im(in[8 * istride]); tre2_1_0 = c_re(in[40 * istride]); tim2_1_0 = c_im(in[40 * istride]); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[16 * istride]); tim2_0_0 = c_im(in[16 * istride]); tre2_1_0 = c_re(in[48 * istride]); tim2_1_0 = c_im(in[48 * istride]); tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[24 * istride]); tim2_0_0 = c_im(in[24 * istride]); tre2_1_0 = c_re(in[56 * istride]); tim2_1_0 = c_im(in[56 * istride]); tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; tre0_0_0 = tre2_0_0 + tre2_0_1; tim0_0_0 = tim2_0_0 + tim2_0_1; tre0_4_0 = tre2_0_0 - tre2_0_1; tim0_4_0 = tim2_0_0 - tim2_0_1; tre0_2_0 = tre2_1_0 - tim2_1_1; tim0_2_0 = tim2_1_0 + tre2_1_1; tre0_6_0 = tre2_1_0 + tim2_1_1; tim0_6_0 = tim2_1_0 - tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 - tim1_1_2; tim2_0_0 = tim1_1_0 + tre1_1_2; tre2_1_0 = tre1_1_0 + tim1_1_2; tim2_1_0 = tim1_1_0 - tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 - tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 + tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 + tim1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 - tim1_1_3); tre2_0_1 = tre3_0_0 - tre3_1_0; tim2_0_1 = tim3_0_0 + tim3_1_0; tre2_1_1 = tre3_0_0 + tre3_1_0; tim2_1_1 = tim3_0_0 - tim3_1_0; } tre0_1_0 = tre2_0_0 + tre2_0_1; tim0_1_0 = tim2_0_0 + tim2_0_1; tre0_5_0 = tre2_0_0 - tre2_0_1; tim0_5_0 = tim2_0_0 - tim2_0_1; tre0_3_0 = tre2_1_0 - tim2_1_1; tim0_3_0 = tim2_1_0 + tre2_1_1; tre0_7_0 = tre2_1_0 + tim2_1_1; tim0_7_0 = tim2_1_0 - tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[istride]); tim2_0_0 = c_im(in[istride]); tre2_1_0 = c_re(in[33 * istride]); tim2_1_0 = c_im(in[33 * istride]); tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[9 * istride]); tim2_0_0 = c_im(in[9 * istride]); tre2_1_0 = c_re(in[41 * istride]); tim2_1_0 = c_im(in[41 * istride]); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[17 * istride]); tim2_0_0 = c_im(in[17 * istride]); tre2_1_0 = c_re(in[49 * istride]); tim2_1_0 = c_im(in[49 * istride]); tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[25 * istride]); tim2_0_0 = c_im(in[25 * istride]); tre2_1_0 = c_re(in[57 * istride]); tim2_1_0 = c_im(in[57 * istride]); tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; tre0_0_1 = tre2_0_0 + tre2_0_1; tim0_0_1 = tim2_0_0 + tim2_0_1; tre0_4_1 = tre2_0_0 - tre2_0_1; tim0_4_1 = tim2_0_0 - tim2_0_1; tre0_2_1 = tre2_1_0 - tim2_1_1; tim0_2_1 = tim2_1_0 + tre2_1_1; tre0_6_1 = tre2_1_0 + tim2_1_1; tim0_6_1 = tim2_1_0 - tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 - tim1_1_2; tim2_0_0 = tim1_1_0 + tre1_1_2; tre2_1_0 = tre1_1_0 + tim1_1_2; tim2_1_0 = tim1_1_0 - tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 - tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 + tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 + tim1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 - tim1_1_3); tre2_0_1 = tre3_0_0 - tre3_1_0; tim2_0_1 = tim3_0_0 + tim3_1_0; tre2_1_1 = tre3_0_0 + tre3_1_0; tim2_1_1 = tim3_0_0 - tim3_1_0; } tre0_1_1 = tre2_0_0 + tre2_0_1; tim0_1_1 = tim2_0_0 + tim2_0_1; tre0_5_1 = tre2_0_0 - tre2_0_1; tim0_5_1 = tim2_0_0 - tim2_0_1; tre0_3_1 = tre2_1_0 - tim2_1_1; tim0_3_1 = tim2_1_0 + tre2_1_1; tre0_7_1 = tre2_1_0 + tim2_1_1; tim0_7_1 = tim2_1_0 - tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[2 * istride]); tim2_0_0 = c_im(in[2 * istride]); tre2_1_0 = c_re(in[34 * istride]); tim2_1_0 = c_im(in[34 * istride]); tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[10 * istride]); tim2_0_0 = c_im(in[10 * istride]); tre2_1_0 = c_re(in[42 * istride]); tim2_1_0 = c_im(in[42 * istride]); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[18 * istride]); tim2_0_0 = c_im(in[18 * istride]); tre2_1_0 = c_re(in[50 * istride]); tim2_1_0 = c_im(in[50 * istride]); tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[26 * istride]); tim2_0_0 = c_im(in[26 * istride]); tre2_1_0 = c_re(in[58 * istride]); tim2_1_0 = c_im(in[58 * istride]); tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; tre0_0_2 = tre2_0_0 + tre2_0_1; tim0_0_2 = tim2_0_0 + tim2_0_1; tre0_4_2 = tre2_0_0 - tre2_0_1; tim0_4_2 = tim2_0_0 - tim2_0_1; tre0_2_2 = tre2_1_0 - tim2_1_1; tim0_2_2 = tim2_1_0 + tre2_1_1; tre0_6_2 = tre2_1_0 + tim2_1_1; tim0_6_2 = tim2_1_0 - tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 - tim1_1_2; tim2_0_0 = tim1_1_0 + tre1_1_2; tre2_1_0 = tre1_1_0 + tim1_1_2; tim2_1_0 = tim1_1_0 - tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 - tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 + tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 + tim1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 - tim1_1_3); tre2_0_1 = tre3_0_0 - tre3_1_0; tim2_0_1 = tim3_0_0 + tim3_1_0; tre2_1_1 = tre3_0_0 + tre3_1_0; tim2_1_1 = tim3_0_0 - tim3_1_0; } tre0_1_2 = tre2_0_0 + tre2_0_1; tim0_1_2 = tim2_0_0 + tim2_0_1; tre0_5_2 = tre2_0_0 - tre2_0_1; tim0_5_2 = tim2_0_0 - tim2_0_1; tre0_3_2 = tre2_1_0 - tim2_1_1; tim0_3_2 = tim2_1_0 + tre2_1_1; tre0_7_2 = tre2_1_0 + tim2_1_1; tim0_7_2 = tim2_1_0 - tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[3 * istride]); tim2_0_0 = c_im(in[3 * istride]); tre2_1_0 = c_re(in[35 * istride]); tim2_1_0 = c_im(in[35 * istride]); tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[11 * istride]); tim2_0_0 = c_im(in[11 * istride]); tre2_1_0 = c_re(in[43 * istride]); tim2_1_0 = c_im(in[43 * istride]); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[19 * istride]); tim2_0_0 = c_im(in[19 * istride]); tre2_1_0 = c_re(in[51 * istride]); tim2_1_0 = c_im(in[51 * istride]); tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[27 * istride]); tim2_0_0 = c_im(in[27 * istride]); tre2_1_0 = c_re(in[59 * istride]); tim2_1_0 = c_im(in[59 * istride]); tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; tre0_0_3 = tre2_0_0 + tre2_0_1; tim0_0_3 = tim2_0_0 + tim2_0_1; tre0_4_3 = tre2_0_0 - tre2_0_1; tim0_4_3 = tim2_0_0 - tim2_0_1; tre0_2_3 = tre2_1_0 - tim2_1_1; tim0_2_3 = tim2_1_0 + tre2_1_1; tre0_6_3 = tre2_1_0 + tim2_1_1; tim0_6_3 = tim2_1_0 - tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 - tim1_1_2; tim2_0_0 = tim1_1_0 + tre1_1_2; tre2_1_0 = tre1_1_0 + tim1_1_2; tim2_1_0 = tim1_1_0 - tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 - tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 + tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 + tim1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 - tim1_1_3); tre2_0_1 = tre3_0_0 - tre3_1_0; tim2_0_1 = tim3_0_0 + tim3_1_0; tre2_1_1 = tre3_0_0 + tre3_1_0; tim2_1_1 = tim3_0_0 - tim3_1_0; } tre0_1_3 = tre2_0_0 + tre2_0_1; tim0_1_3 = tim2_0_0 + tim2_0_1; tre0_5_3 = tre2_0_0 - tre2_0_1; tim0_5_3 = tim2_0_0 - tim2_0_1; tre0_3_3 = tre2_1_0 - tim2_1_1; tim0_3_3 = tim2_1_0 + tre2_1_1; tre0_7_3 = tre2_1_0 + tim2_1_1; tim0_7_3 = tim2_1_0 - tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[4 * istride]); tim2_0_0 = c_im(in[4 * istride]); tre2_1_0 = c_re(in[36 * istride]); tim2_1_0 = c_im(in[36 * istride]); tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[12 * istride]); tim2_0_0 = c_im(in[12 * istride]); tre2_1_0 = c_re(in[44 * istride]); tim2_1_0 = c_im(in[44 * istride]); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[20 * istride]); tim2_0_0 = c_im(in[20 * istride]); tre2_1_0 = c_re(in[52 * istride]); tim2_1_0 = c_im(in[52 * istride]); tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[28 * istride]); tim2_0_0 = c_im(in[28 * istride]); tre2_1_0 = c_re(in[60 * istride]); tim2_1_0 = c_im(in[60 * istride]); tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; tre0_0_4 = tre2_0_0 + tre2_0_1; tim0_0_4 = tim2_0_0 + tim2_0_1; tre0_4_4 = tre2_0_0 - tre2_0_1; tim0_4_4 = tim2_0_0 - tim2_0_1; tre0_2_4 = tre2_1_0 - tim2_1_1; tim0_2_4 = tim2_1_0 + tre2_1_1; tre0_6_4 = tre2_1_0 + tim2_1_1; tim0_6_4 = tim2_1_0 - tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 - tim1_1_2; tim2_0_0 = tim1_1_0 + tre1_1_2; tre2_1_0 = tre1_1_0 + tim1_1_2; tim2_1_0 = tim1_1_0 - tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 - tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 + tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 + tim1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 - tim1_1_3); tre2_0_1 = tre3_0_0 - tre3_1_0; tim2_0_1 = tim3_0_0 + tim3_1_0; tre2_1_1 = tre3_0_0 + tre3_1_0; tim2_1_1 = tim3_0_0 - tim3_1_0; } tre0_1_4 = tre2_0_0 + tre2_0_1; tim0_1_4 = tim2_0_0 + tim2_0_1; tre0_5_4 = tre2_0_0 - tre2_0_1; tim0_5_4 = tim2_0_0 - tim2_0_1; tre0_3_4 = tre2_1_0 - tim2_1_1; tim0_3_4 = tim2_1_0 + tre2_1_1; tre0_7_4 = tre2_1_0 + tim2_1_1; tim0_7_4 = tim2_1_0 - tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[5 * istride]); tim2_0_0 = c_im(in[5 * istride]); tre2_1_0 = c_re(in[37 * istride]); tim2_1_0 = c_im(in[37 * istride]); tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[13 * istride]); tim2_0_0 = c_im(in[13 * istride]); tre2_1_0 = c_re(in[45 * istride]); tim2_1_0 = c_im(in[45 * istride]); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[21 * istride]); tim2_0_0 = c_im(in[21 * istride]); tre2_1_0 = c_re(in[53 * istride]); tim2_1_0 = c_im(in[53 * istride]); tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[29 * istride]); tim2_0_0 = c_im(in[29 * istride]); tre2_1_0 = c_re(in[61 * istride]); tim2_1_0 = c_im(in[61 * istride]); tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; tre0_0_5 = tre2_0_0 + tre2_0_1; tim0_0_5 = tim2_0_0 + tim2_0_1; tre0_4_5 = tre2_0_0 - tre2_0_1; tim0_4_5 = tim2_0_0 - tim2_0_1; tre0_2_5 = tre2_1_0 - tim2_1_1; tim0_2_5 = tim2_1_0 + tre2_1_1; tre0_6_5 = tre2_1_0 + tim2_1_1; tim0_6_5 = tim2_1_0 - tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 - tim1_1_2; tim2_0_0 = tim1_1_0 + tre1_1_2; tre2_1_0 = tre1_1_0 + tim1_1_2; tim2_1_0 = tim1_1_0 - tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 - tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 + tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 + tim1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 - tim1_1_3); tre2_0_1 = tre3_0_0 - tre3_1_0; tim2_0_1 = tim3_0_0 + tim3_1_0; tre2_1_1 = tre3_0_0 + tre3_1_0; tim2_1_1 = tim3_0_0 - tim3_1_0; } tre0_1_5 = tre2_0_0 + tre2_0_1; tim0_1_5 = tim2_0_0 + tim2_0_1; tre0_5_5 = tre2_0_0 - tre2_0_1; tim0_5_5 = tim2_0_0 - tim2_0_1; tre0_3_5 = tre2_1_0 - tim2_1_1; tim0_3_5 = tim2_1_0 + tre2_1_1; tre0_7_5 = tre2_1_0 + tim2_1_1; tim0_7_5 = tim2_1_0 - tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[6 * istride]); tim2_0_0 = c_im(in[6 * istride]); tre2_1_0 = c_re(in[38 * istride]); tim2_1_0 = c_im(in[38 * istride]); tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[14 * istride]); tim2_0_0 = c_im(in[14 * istride]); tre2_1_0 = c_re(in[46 * istride]); tim2_1_0 = c_im(in[46 * istride]); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[22 * istride]); tim2_0_0 = c_im(in[22 * istride]); tre2_1_0 = c_re(in[54 * istride]); tim2_1_0 = c_im(in[54 * istride]); tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[30 * istride]); tim2_0_0 = c_im(in[30 * istride]); tre2_1_0 = c_re(in[62 * istride]); tim2_1_0 = c_im(in[62 * istride]); tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; tre0_0_6 = tre2_0_0 + tre2_0_1; tim0_0_6 = tim2_0_0 + tim2_0_1; tre0_4_6 = tre2_0_0 - tre2_0_1; tim0_4_6 = tim2_0_0 - tim2_0_1; tre0_2_6 = tre2_1_0 - tim2_1_1; tim0_2_6 = tim2_1_0 + tre2_1_1; tre0_6_6 = tre2_1_0 + tim2_1_1; tim0_6_6 = tim2_1_0 - tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 - tim1_1_2; tim2_0_0 = tim1_1_0 + tre1_1_2; tre2_1_0 = tre1_1_0 + tim1_1_2; tim2_1_0 = tim1_1_0 - tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 - tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 + tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 + tim1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 - tim1_1_3); tre2_0_1 = tre3_0_0 - tre3_1_0; tim2_0_1 = tim3_0_0 + tim3_1_0; tre2_1_1 = tre3_0_0 + tre3_1_0; tim2_1_1 = tim3_0_0 - tim3_1_0; } tre0_1_6 = tre2_0_0 + tre2_0_1; tim0_1_6 = tim2_0_0 + tim2_0_1; tre0_5_6 = tre2_0_0 - tre2_0_1; tim0_5_6 = tim2_0_0 - tim2_0_1; tre0_3_6 = tre2_1_0 - tim2_1_1; tim0_3_6 = tim2_1_0 + tre2_1_1; tre0_7_6 = tre2_1_0 + tim2_1_1; tim0_7_6 = tim2_1_0 - tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[7 * istride]); tim2_0_0 = c_im(in[7 * istride]); tre2_1_0 = c_re(in[39 * istride]); tim2_1_0 = c_im(in[39 * istride]); tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[15 * istride]); tim2_0_0 = c_im(in[15 * istride]); tre2_1_0 = c_re(in[47 * istride]); tim2_1_0 = c_im(in[47 * istride]); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[23 * istride]); tim2_0_0 = c_im(in[23 * istride]); tre2_1_0 = c_re(in[55 * istride]); tim2_1_0 = c_im(in[55 * istride]); tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(in[31 * istride]); tim2_0_0 = c_im(in[31 * istride]); tre2_1_0 = c_re(in[63 * istride]); tim2_1_0 = c_im(in[63 * istride]); tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; tre0_0_7 = tre2_0_0 + tre2_0_1; tim0_0_7 = tim2_0_0 + tim2_0_1; tre0_4_7 = tre2_0_0 - tre2_0_1; tim0_4_7 = tim2_0_0 - tim2_0_1; tre0_2_7 = tre2_1_0 - tim2_1_1; tim0_2_7 = tim2_1_0 + tre2_1_1; tre0_6_7 = tre2_1_0 + tim2_1_1; tim0_6_7 = tim2_1_0 - tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 - tim1_1_2; tim2_0_0 = tim1_1_0 + tre1_1_2; tre2_1_0 = tre1_1_0 + tim1_1_2; tim2_1_0 = tim1_1_0 - tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 - tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 + tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 + tim1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 - tim1_1_3); tre2_0_1 = tre3_0_0 - tre3_1_0; tim2_0_1 = tim3_0_0 + tim3_1_0; tre2_1_1 = tre3_0_0 + tre3_1_0; tim2_1_1 = tim3_0_0 - tim3_1_0; } tre0_1_7 = tre2_0_0 + tre2_0_1; tim0_1_7 = tim2_0_0 + tim2_0_1; tre0_5_7 = tre2_0_0 - tre2_0_1; tim0_5_7 = tim2_0_0 - tim2_0_1; tre0_3_7 = tre2_1_0 - tim2_1_1; tim0_3_7 = tim2_1_0 + tre2_1_1; tre0_7_7 = tre2_1_0 + tim2_1_1; tim0_7_7 = tim2_1_0 - tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; tre1_0_0 = tre0_0_0 + tre0_0_4; tim1_0_0 = tim0_0_0 + tim0_0_4; tre1_1_0 = tre0_0_0 - tre0_0_4; tim1_1_0 = tim0_0_0 - tim0_0_4; tre1_0_1 = tre0_0_1 + tre0_0_5; tim1_0_1 = tim0_0_1 + tim0_0_5; tre1_1_1 = tre0_0_1 - tre0_0_5; tim1_1_1 = tim0_0_1 - tim0_0_5; tre1_0_2 = tre0_0_2 + tre0_0_6; tim1_0_2 = tim0_0_2 + tim0_0_6; tre1_1_2 = tre0_0_2 - tre0_0_6; tim1_1_2 = tim0_0_2 - tim0_0_6; tre1_0_3 = tre0_0_3 + tre0_0_7; tim1_0_3 = tim0_0_3 + tim0_0_7; tre1_1_3 = tre0_0_3 - tre0_0_7; tim1_1_3 = tim0_0_3 - tim0_0_7; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; c_re(out[0]) = tre2_0_0 + tre2_0_1; c_im(out[0]) = tim2_0_0 + tim2_0_1; c_re(out[32 * ostride]) = tre2_0_0 - tre2_0_1; c_im(out[32 * ostride]) = tim2_0_0 - tim2_0_1; c_re(out[16 * ostride]) = tre2_1_0 - tim2_1_1; c_im(out[16 * ostride]) = tim2_1_0 + tre2_1_1; c_re(out[48 * ostride]) = tre2_1_0 + tim2_1_1; c_im(out[48 * ostride]) = tim2_1_0 - tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 - tim1_1_2; tim2_0_0 = tim1_1_0 + tre1_1_2; tre2_1_0 = tre1_1_0 + tim1_1_2; tim2_1_0 = tim1_1_0 - tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 - tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 + tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 + tim1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 - tim1_1_3); tre2_0_1 = tre3_0_0 - tre3_1_0; tim2_0_1 = tim3_0_0 + tim3_1_0; tre2_1_1 = tre3_0_0 + tre3_1_0; tim2_1_1 = tim3_0_0 - tim3_1_0; } c_re(out[8 * ostride]) = tre2_0_0 + tre2_0_1; c_im(out[8 * ostride]) = tim2_0_0 + tim2_0_1; c_re(out[40 * ostride]) = tre2_0_0 - tre2_0_1; c_im(out[40 * ostride]) = tim2_0_0 - tim2_0_1; c_re(out[24 * ostride]) = tre2_1_0 - tim2_1_1; c_im(out[24 * ostride]) = tim2_1_0 + tre2_1_1; c_re(out[56 * ostride]) = tre2_1_0 + tim2_1_1; c_im(out[56 * ostride]) = tim2_1_0 - tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_1_0 = (((FFTW_REAL) FFTW_K923879532) * tre0_1_4) - (((FFTW_REAL) FFTW_K382683432) * tim0_1_4); tim2_1_0 = (((FFTW_REAL) FFTW_K923879532) * tim0_1_4) + (((FFTW_REAL) FFTW_K382683432) * tre0_1_4); tre1_0_0 = tre0_1_0 + tre2_1_0; tim1_0_0 = tim0_1_0 + tim2_1_0; tre1_1_0 = tre0_1_0 - tre2_1_0; tim1_1_0 = tim0_1_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K995184726) * tre0_1_1) - (((FFTW_REAL) FFTW_K098017140) * tim0_1_1); tim2_0_0 = (((FFTW_REAL) FFTW_K995184726) * tim0_1_1) + (((FFTW_REAL) FFTW_K098017140) * tre0_1_1); tre2_1_0 = (((FFTW_REAL) FFTW_K881921264) * tre0_1_5) - (((FFTW_REAL) FFTW_K471396736) * tim0_1_5); tim2_1_0 = (((FFTW_REAL) FFTW_K881921264) * tim0_1_5) + (((FFTW_REAL) FFTW_K471396736) * tre0_1_5); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K980785280) * tre0_1_2) - (((FFTW_REAL) FFTW_K195090322) * tim0_1_2); tim2_0_0 = (((FFTW_REAL) FFTW_K980785280) * tim0_1_2) + (((FFTW_REAL) FFTW_K195090322) * tre0_1_2); tre2_1_0 = (((FFTW_REAL) FFTW_K831469612) * tre0_1_6) - (((FFTW_REAL) FFTW_K555570233) * tim0_1_6); tim2_1_0 = (((FFTW_REAL) FFTW_K831469612) * tim0_1_6) + (((FFTW_REAL) FFTW_K555570233) * tre0_1_6); tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K956940335) * tre0_1_3) - (((FFTW_REAL) FFTW_K290284677) * tim0_1_3); tim2_0_0 = (((FFTW_REAL) FFTW_K956940335) * tim0_1_3) + (((FFTW_REAL) FFTW_K290284677) * tre0_1_3); tre2_1_0 = (((FFTW_REAL) FFTW_K773010453) * tre0_1_7) - (((FFTW_REAL) FFTW_K634393284) * tim0_1_7); tim2_1_0 = (((FFTW_REAL) FFTW_K773010453) * tim0_1_7) + (((FFTW_REAL) FFTW_K634393284) * tre0_1_7); tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; c_re(out[ostride]) = tre2_0_0 + tre2_0_1; c_im(out[ostride]) = tim2_0_0 + tim2_0_1; c_re(out[33 * ostride]) = tre2_0_0 - tre2_0_1; c_im(out[33 * ostride]) = tim2_0_0 - tim2_0_1; c_re(out[17 * ostride]) = tre2_1_0 - tim2_1_1; c_im(out[17 * ostride]) = tim2_1_0 + tre2_1_1; c_re(out[49 * ostride]) = tre2_1_0 + tim2_1_1; c_im(out[49 * ostride]) = tim2_1_0 - tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 - tim1_1_2; tim2_0_0 = tim1_1_0 + tre1_1_2; tre2_1_0 = tre1_1_0 + tim1_1_2; tim2_1_0 = tim1_1_0 - tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 - tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 + tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 + tim1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 - tim1_1_3); tre2_0_1 = tre3_0_0 - tre3_1_0; tim2_0_1 = tim3_0_0 + tim3_1_0; tre2_1_1 = tre3_0_0 + tre3_1_0; tim2_1_1 = tim3_0_0 - tim3_1_0; } c_re(out[9 * ostride]) = tre2_0_0 + tre2_0_1; c_im(out[9 * ostride]) = tim2_0_0 + tim2_0_1; c_re(out[41 * ostride]) = tre2_0_0 - tre2_0_1; c_im(out[41 * ostride]) = tim2_0_0 - tim2_0_1; c_re(out[25 * ostride]) = tre2_1_0 - tim2_1_1; c_im(out[25 * ostride]) = tim2_1_0 + tre2_1_1; c_re(out[57 * ostride]) = tre2_1_0 + tim2_1_1; c_im(out[57 * ostride]) = tim2_1_0 - tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_2_4 - tim0_2_4); tim2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_2_4 + tre0_2_4); tre1_0_0 = tre0_2_0 + tre2_1_0; tim1_0_0 = tim0_2_0 + tim2_1_0; tre1_1_0 = tre0_2_0 - tre2_1_0; tim1_1_0 = tim0_2_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K980785280) * tre0_2_1) - (((FFTW_REAL) FFTW_K195090322) * tim0_2_1); tim2_0_0 = (((FFTW_REAL) FFTW_K980785280) * tim0_2_1) + (((FFTW_REAL) FFTW_K195090322) * tre0_2_1); tre2_1_0 = (((FFTW_REAL) FFTW_K555570233) * tre0_2_5) - (((FFTW_REAL) FFTW_K831469612) * tim0_2_5); tim2_1_0 = (((FFTW_REAL) FFTW_K555570233) * tim0_2_5) + (((FFTW_REAL) FFTW_K831469612) * tre0_2_5); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K923879532) * tre0_2_2) - (((FFTW_REAL) FFTW_K382683432) * tim0_2_2); tim2_0_0 = (((FFTW_REAL) FFTW_K923879532) * tim0_2_2) + (((FFTW_REAL) FFTW_K382683432) * tre0_2_2); tre2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_2_6) - (((FFTW_REAL) FFTW_K923879532) * tim0_2_6); tim2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_2_6) + (((FFTW_REAL) FFTW_K923879532) * tre0_2_6); tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K831469612) * tre0_2_3) - (((FFTW_REAL) FFTW_K555570233) * tim0_2_3); tim2_0_0 = (((FFTW_REAL) FFTW_K831469612) * tim0_2_3) + (((FFTW_REAL) FFTW_K555570233) * tre0_2_3); tre2_1_0 = (((FFTW_REAL) FFTW_K195090322) * tre0_2_7) - (((FFTW_REAL) FFTW_K980785280) * tim0_2_7); tim2_1_0 = (((FFTW_REAL) FFTW_K195090322) * tim0_2_7) + (((FFTW_REAL) FFTW_K980785280) * tre0_2_7); tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; c_re(out[2 * ostride]) = tre2_0_0 + tre2_0_1; c_im(out[2 * ostride]) = tim2_0_0 + tim2_0_1; c_re(out[34 * ostride]) = tre2_0_0 - tre2_0_1; c_im(out[34 * ostride]) = tim2_0_0 - tim2_0_1; c_re(out[18 * ostride]) = tre2_1_0 - tim2_1_1; c_im(out[18 * ostride]) = tim2_1_0 + tre2_1_1; c_re(out[50 * ostride]) = tre2_1_0 + tim2_1_1; c_im(out[50 * ostride]) = tim2_1_0 - tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 - tim1_1_2; tim2_0_0 = tim1_1_0 + tre1_1_2; tre2_1_0 = tre1_1_0 + tim1_1_2; tim2_1_0 = tim1_1_0 - tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 - tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 + tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 + tim1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 - tim1_1_3); tre2_0_1 = tre3_0_0 - tre3_1_0; tim2_0_1 = tim3_0_0 + tim3_1_0; tre2_1_1 = tre3_0_0 + tre3_1_0; tim2_1_1 = tim3_0_0 - tim3_1_0; } c_re(out[10 * ostride]) = tre2_0_0 + tre2_0_1; c_im(out[10 * ostride]) = tim2_0_0 + tim2_0_1; c_re(out[42 * ostride]) = tre2_0_0 - tre2_0_1; c_im(out[42 * ostride]) = tim2_0_0 - tim2_0_1; c_re(out[26 * ostride]) = tre2_1_0 - tim2_1_1; c_im(out[26 * ostride]) = tim2_1_0 + tre2_1_1; c_re(out[58 * ostride]) = tre2_1_0 + tim2_1_1; c_im(out[58 * ostride]) = tim2_1_0 - tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_3_4) - (((FFTW_REAL) FFTW_K923879532) * tim0_3_4); tim2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_3_4) + (((FFTW_REAL) FFTW_K923879532) * tre0_3_4); tre1_0_0 = tre0_3_0 + tre2_1_0; tim1_0_0 = tim0_3_0 + tim2_1_0; tre1_1_0 = tre0_3_0 - tre2_1_0; tim1_1_0 = tim0_3_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K956940335) * tre0_3_1) - (((FFTW_REAL) FFTW_K290284677) * tim0_3_1); tim2_0_0 = (((FFTW_REAL) FFTW_K956940335) * tim0_3_1) + (((FFTW_REAL) FFTW_K290284677) * tre0_3_1); tre2_1_0 = (((FFTW_REAL) FFTW_K098017140) * tre0_3_5) - (((FFTW_REAL) FFTW_K995184726) * tim0_3_5); tim2_1_0 = (((FFTW_REAL) FFTW_K098017140) * tim0_3_5) + (((FFTW_REAL) FFTW_K995184726) * tre0_3_5); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K831469612) * tre0_3_2) - (((FFTW_REAL) FFTW_K555570233) * tim0_3_2); tim2_0_0 = (((FFTW_REAL) FFTW_K831469612) * tim0_3_2) + (((FFTW_REAL) FFTW_K555570233) * tre0_3_2); tre2_1_0 = (((FFTW_REAL) FFTW_K195090322) * tre0_3_6) + (((FFTW_REAL) FFTW_K980785280) * tim0_3_6); tim2_1_0 = (((FFTW_REAL) FFTW_K980785280) * tre0_3_6) - (((FFTW_REAL) FFTW_K195090322) * tim0_3_6); tre1_0_2 = tre2_0_0 - tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 + tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K634393284) * tre0_3_3) - (((FFTW_REAL) FFTW_K773010453) * tim0_3_3); tim2_0_0 = (((FFTW_REAL) FFTW_K634393284) * tim0_3_3) + (((FFTW_REAL) FFTW_K773010453) * tre0_3_3); tre2_1_0 = (((FFTW_REAL) FFTW_K471396736) * tre0_3_7) + (((FFTW_REAL) FFTW_K881921264) * tim0_3_7); tim2_1_0 = (((FFTW_REAL) FFTW_K881921264) * tre0_3_7) - (((FFTW_REAL) FFTW_K471396736) * tim0_3_7); tre1_0_3 = tre2_0_0 - tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 + tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; c_re(out[3 * ostride]) = tre2_0_0 + tre2_0_1; c_im(out[3 * ostride]) = tim2_0_0 + tim2_0_1; c_re(out[35 * ostride]) = tre2_0_0 - tre2_0_1; c_im(out[35 * ostride]) = tim2_0_0 - tim2_0_1; c_re(out[19 * ostride]) = tre2_1_0 - tim2_1_1; c_im(out[19 * ostride]) = tim2_1_0 + tre2_1_1; c_re(out[51 * ostride]) = tre2_1_0 + tim2_1_1; c_im(out[51 * ostride]) = tim2_1_0 - tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 - tim1_1_2; tim2_0_0 = tim1_1_0 + tre1_1_2; tre2_1_0 = tre1_1_0 + tim1_1_2; tim2_1_0 = tim1_1_0 - tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 - tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 + tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 + tim1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 - tim1_1_3); tre2_0_1 = tre3_0_0 - tre3_1_0; tim2_0_1 = tim3_0_0 + tim3_1_0; tre2_1_1 = tre3_0_0 + tre3_1_0; tim2_1_1 = tim3_0_0 - tim3_1_0; } c_re(out[11 * ostride]) = tre2_0_0 + tre2_0_1; c_im(out[11 * ostride]) = tim2_0_0 + tim2_0_1; c_re(out[43 * ostride]) = tre2_0_0 - tre2_0_1; c_im(out[43 * ostride]) = tim2_0_0 - tim2_0_1; c_re(out[27 * ostride]) = tre2_1_0 - tim2_1_1; c_im(out[27 * ostride]) = tim2_1_0 + tre2_1_1; c_re(out[59 * ostride]) = tre2_1_0 + tim2_1_1; c_im(out[59 * ostride]) = tim2_1_0 - tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; tre1_0_0 = tre0_4_0 - tim0_4_4; tim1_0_0 = tim0_4_0 + tre0_4_4; tre1_1_0 = tre0_4_0 + tim0_4_4; tim1_1_0 = tim0_4_0 - tre0_4_4; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K923879532) * tre0_4_1) - (((FFTW_REAL) FFTW_K382683432) * tim0_4_1); tim2_0_0 = (((FFTW_REAL) FFTW_K923879532) * tim0_4_1) + (((FFTW_REAL) FFTW_K382683432) * tre0_4_1); tre2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_4_5) + (((FFTW_REAL) FFTW_K923879532) * tim0_4_5); tim2_1_0 = (((FFTW_REAL) FFTW_K923879532) * tre0_4_5) - (((FFTW_REAL) FFTW_K382683432) * tim0_4_5); tre1_0_1 = tre2_0_0 - tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 + tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_4_2 - tim0_4_2); tim2_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_4_2 + tre0_4_2); tre2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_4_6 + tim0_4_6); tim2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_4_6 - tim0_4_6); tre1_0_2 = tre2_0_0 - tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 + tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_4_3) - (((FFTW_REAL) FFTW_K923879532) * tim0_4_3); tim2_0_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_4_3) + (((FFTW_REAL) FFTW_K923879532) * tre0_4_3); tre2_1_0 = (((FFTW_REAL) FFTW_K923879532) * tre0_4_7) + (((FFTW_REAL) FFTW_K382683432) * tim0_4_7); tim2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_4_7) - (((FFTW_REAL) FFTW_K923879532) * tim0_4_7); tre1_0_3 = tre2_0_0 - tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 + tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; c_re(out[4 * ostride]) = tre2_0_0 + tre2_0_1; c_im(out[4 * ostride]) = tim2_0_0 + tim2_0_1; c_re(out[36 * ostride]) = tre2_0_0 - tre2_0_1; c_im(out[36 * ostride]) = tim2_0_0 - tim2_0_1; c_re(out[20 * ostride]) = tre2_1_0 - tim2_1_1; c_im(out[20 * ostride]) = tim2_1_0 + tre2_1_1; c_re(out[52 * ostride]) = tre2_1_0 + tim2_1_1; c_im(out[52 * ostride]) = tim2_1_0 - tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 - tim1_1_2; tim2_0_0 = tim1_1_0 + tre1_1_2; tre2_1_0 = tre1_1_0 + tim1_1_2; tim2_1_0 = tim1_1_0 - tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 - tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 + tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 + tim1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 - tim1_1_3); tre2_0_1 = tre3_0_0 - tre3_1_0; tim2_0_1 = tim3_0_0 + tim3_1_0; tre2_1_1 = tre3_0_0 + tre3_1_0; tim2_1_1 = tim3_0_0 - tim3_1_0; } c_re(out[12 * ostride]) = tre2_0_0 + tre2_0_1; c_im(out[12 * ostride]) = tim2_0_0 + tim2_0_1; c_re(out[44 * ostride]) = tre2_0_0 - tre2_0_1; c_im(out[44 * ostride]) = tim2_0_0 - tim2_0_1; c_re(out[28 * ostride]) = tre2_1_0 - tim2_1_1; c_im(out[28 * ostride]) = tim2_1_0 + tre2_1_1; c_re(out[60 * ostride]) = tre2_1_0 + tim2_1_1; c_im(out[60 * ostride]) = tim2_1_0 - tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_5_4) + (((FFTW_REAL) FFTW_K923879532) * tim0_5_4); tim2_1_0 = (((FFTW_REAL) FFTW_K923879532) * tre0_5_4) - (((FFTW_REAL) FFTW_K382683432) * tim0_5_4); tre1_0_0 = tre0_5_0 - tre2_1_0; tim1_0_0 = tim0_5_0 + tim2_1_0; tre1_1_0 = tre0_5_0 + tre2_1_0; tim1_1_0 = tim0_5_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K881921264) * tre0_5_1) - (((FFTW_REAL) FFTW_K471396736) * tim0_5_1); tim2_0_0 = (((FFTW_REAL) FFTW_K881921264) * tim0_5_1) + (((FFTW_REAL) FFTW_K471396736) * tre0_5_1); tre2_1_0 = (((FFTW_REAL) FFTW_K773010453) * tre0_5_5) + (((FFTW_REAL) FFTW_K634393284) * tim0_5_5); tim2_1_0 = (((FFTW_REAL) FFTW_K634393284) * tre0_5_5) - (((FFTW_REAL) FFTW_K773010453) * tim0_5_5); tre1_0_1 = tre2_0_0 - tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 + tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K555570233) * tre0_5_2) - (((FFTW_REAL) FFTW_K831469612) * tim0_5_2); tim2_0_0 = (((FFTW_REAL) FFTW_K555570233) * tim0_5_2) + (((FFTW_REAL) FFTW_K831469612) * tre0_5_2); tre2_1_0 = (((FFTW_REAL) FFTW_K980785280) * tre0_5_6) + (((FFTW_REAL) FFTW_K195090322) * tim0_5_6); tim2_1_0 = (((FFTW_REAL) FFTW_K195090322) * tre0_5_6) - (((FFTW_REAL) FFTW_K980785280) * tim0_5_6); tre1_0_2 = tre2_0_0 - tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 + tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K098017140) * tre0_5_3) - (((FFTW_REAL) FFTW_K995184726) * tim0_5_3); tim2_0_0 = (((FFTW_REAL) FFTW_K098017140) * tim0_5_3) + (((FFTW_REAL) FFTW_K995184726) * tre0_5_3); tre2_1_0 = (((FFTW_REAL) FFTW_K290284677) * tim0_5_7) - (((FFTW_REAL) FFTW_K956940335) * tre0_5_7); tim2_1_0 = (((FFTW_REAL) FFTW_K956940335) * tim0_5_7) + (((FFTW_REAL) FFTW_K290284677) * tre0_5_7); tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 - tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 + tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; c_re(out[5 * ostride]) = tre2_0_0 + tre2_0_1; c_im(out[5 * ostride]) = tim2_0_0 + tim2_0_1; c_re(out[37 * ostride]) = tre2_0_0 - tre2_0_1; c_im(out[37 * ostride]) = tim2_0_0 - tim2_0_1; c_re(out[21 * ostride]) = tre2_1_0 - tim2_1_1; c_im(out[21 * ostride]) = tim2_1_0 + tre2_1_1; c_re(out[53 * ostride]) = tre2_1_0 + tim2_1_1; c_im(out[53 * ostride]) = tim2_1_0 - tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 - tim1_1_2; tim2_0_0 = tim1_1_0 + tre1_1_2; tre2_1_0 = tre1_1_0 + tim1_1_2; tim2_1_0 = tim1_1_0 - tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 - tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 + tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 + tim1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 - tim1_1_3); tre2_0_1 = tre3_0_0 - tre3_1_0; tim2_0_1 = tim3_0_0 + tim3_1_0; tre2_1_1 = tre3_0_0 + tre3_1_0; tim2_1_1 = tim3_0_0 - tim3_1_0; } c_re(out[13 * ostride]) = tre2_0_0 + tre2_0_1; c_im(out[13 * ostride]) = tim2_0_0 + tim2_0_1; c_re(out[45 * ostride]) = tre2_0_0 - tre2_0_1; c_im(out[45 * ostride]) = tim2_0_0 - tim2_0_1; c_re(out[29 * ostride]) = tre2_1_0 - tim2_1_1; c_im(out[29 * ostride]) = tim2_1_0 + tre2_1_1; c_re(out[61 * ostride]) = tre2_1_0 + tim2_1_1; c_im(out[61 * ostride]) = tim2_1_0 - tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_6_4 + tim0_6_4); tim2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_6_4 - tim0_6_4); tre1_0_0 = tre0_6_0 - tre2_1_0; tim1_0_0 = tim0_6_0 + tim2_1_0; tre1_1_0 = tre0_6_0 + tre2_1_0; tim1_1_0 = tim0_6_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K831469612) * tre0_6_1) - (((FFTW_REAL) FFTW_K555570233) * tim0_6_1); tim2_0_0 = (((FFTW_REAL) FFTW_K831469612) * tim0_6_1) + (((FFTW_REAL) FFTW_K555570233) * tre0_6_1); tre2_1_0 = (((FFTW_REAL) FFTW_K980785280) * tre0_6_5) + (((FFTW_REAL) FFTW_K195090322) * tim0_6_5); tim2_1_0 = (((FFTW_REAL) FFTW_K195090322) * tre0_6_5) - (((FFTW_REAL) FFTW_K980785280) * tim0_6_5); tre1_0_1 = tre2_0_0 - tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 + tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_6_2) - (((FFTW_REAL) FFTW_K923879532) * tim0_6_2); tim2_0_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_6_2) + (((FFTW_REAL) FFTW_K923879532) * tre0_6_2); tre2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_6_6) - (((FFTW_REAL) FFTW_K923879532) * tre0_6_6); tim2_1_0 = (((FFTW_REAL) FFTW_K923879532) * tim0_6_6) + (((FFTW_REAL) FFTW_K382683432) * tre0_6_6); tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 - tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 + tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K195090322) * tre0_6_3) + (((FFTW_REAL) FFTW_K980785280) * tim0_6_3); tim2_0_0 = (((FFTW_REAL) FFTW_K980785280) * tre0_6_3) - (((FFTW_REAL) FFTW_K195090322) * tim0_6_3); tre2_1_0 = (((FFTW_REAL) FFTW_K831469612) * tim0_6_7) - (((FFTW_REAL) FFTW_K555570233) * tre0_6_7); tim2_1_0 = (((FFTW_REAL) FFTW_K555570233) * tim0_6_7) + (((FFTW_REAL) FFTW_K831469612) * tre0_6_7); tre1_0_3 = tre2_1_0 - tre2_0_0; tim1_0_3 = tim2_0_0 - tim2_1_0; tre1_1_3 = (-(tre2_0_0 + tre2_1_0)); tim1_1_3 = tim2_0_0 + tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; c_re(out[6 * ostride]) = tre2_0_0 + tre2_0_1; c_im(out[6 * ostride]) = tim2_0_0 + tim2_0_1; c_re(out[38 * ostride]) = tre2_0_0 - tre2_0_1; c_im(out[38 * ostride]) = tim2_0_0 - tim2_0_1; c_re(out[22 * ostride]) = tre2_1_0 - tim2_1_1; c_im(out[22 * ostride]) = tim2_1_0 + tre2_1_1; c_re(out[54 * ostride]) = tre2_1_0 + tim2_1_1; c_im(out[54 * ostride]) = tim2_1_0 - tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 - tim1_1_2; tim2_0_0 = tim1_1_0 + tre1_1_2; tre2_1_0 = tre1_1_0 + tim1_1_2; tim2_1_0 = tim1_1_0 - tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 - tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 + tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 + tim1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 - tim1_1_3); tre2_0_1 = tre3_0_0 - tre3_1_0; tim2_0_1 = tim3_0_0 + tim3_1_0; tre2_1_1 = tre3_0_0 + tre3_1_0; tim2_1_1 = tim3_0_0 - tim3_1_0; } c_re(out[14 * ostride]) = tre2_0_0 + tre2_0_1; c_im(out[14 * ostride]) = tim2_0_0 + tim2_0_1; c_re(out[46 * ostride]) = tre2_0_0 - tre2_0_1; c_im(out[46 * ostride]) = tim2_0_0 - tim2_0_1; c_re(out[30 * ostride]) = tre2_1_0 - tim2_1_1; c_im(out[30 * ostride]) = tim2_1_0 + tre2_1_1; c_re(out[62 * ostride]) = tre2_1_0 + tim2_1_1; c_im(out[62 * ostride]) = tim2_1_0 - tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_1_0 = (((FFTW_REAL) FFTW_K923879532) * tre0_7_4) + (((FFTW_REAL) FFTW_K382683432) * tim0_7_4); tim2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_7_4) - (((FFTW_REAL) FFTW_K923879532) * tim0_7_4); tre1_0_0 = tre0_7_0 - tre2_1_0; tim1_0_0 = tim0_7_0 + tim2_1_0; tre1_1_0 = tre0_7_0 + tre2_1_0; tim1_1_0 = tim0_7_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K773010453) * tre0_7_1) - (((FFTW_REAL) FFTW_K634393284) * tim0_7_1); tim2_0_0 = (((FFTW_REAL) FFTW_K773010453) * tim0_7_1) + (((FFTW_REAL) FFTW_K634393284) * tre0_7_1); tre2_1_0 = (((FFTW_REAL) FFTW_K290284677) * tim0_7_5) - (((FFTW_REAL) FFTW_K956940335) * tre0_7_5); tim2_1_0 = (((FFTW_REAL) FFTW_K956940335) * tim0_7_5) + (((FFTW_REAL) FFTW_K290284677) * tre0_7_5); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 - tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 + tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K195090322) * tre0_7_2) - (((FFTW_REAL) FFTW_K980785280) * tim0_7_2); tim2_0_0 = (((FFTW_REAL) FFTW_K195090322) * tim0_7_2) + (((FFTW_REAL) FFTW_K980785280) * tre0_7_2); tre2_1_0 = (((FFTW_REAL) FFTW_K831469612) * tim0_7_6) - (((FFTW_REAL) FFTW_K555570233) * tre0_7_6); tim2_1_0 = (((FFTW_REAL) FFTW_K555570233) * tim0_7_6) + (((FFTW_REAL) FFTW_K831469612) * tre0_7_6); tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 - tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 + tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K471396736) * tre0_7_3) + (((FFTW_REAL) FFTW_K881921264) * tim0_7_3); tim2_0_0 = (((FFTW_REAL) FFTW_K881921264) * tre0_7_3) - (((FFTW_REAL) FFTW_K471396736) * tim0_7_3); tre2_1_0 = (((FFTW_REAL) FFTW_K098017140) * tre0_7_7) + (((FFTW_REAL) FFTW_K995184726) * tim0_7_7); tim2_1_0 = (((FFTW_REAL) FFTW_K098017140) * tim0_7_7) - (((FFTW_REAL) FFTW_K995184726) * tre0_7_7); tre1_0_3 = tre2_1_0 - tre2_0_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = (-(tre2_0_0 + tre2_1_0)); tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; c_re(out[7 * ostride]) = tre2_0_0 + tre2_0_1; c_im(out[7 * ostride]) = tim2_0_0 + tim2_0_1; c_re(out[39 * ostride]) = tre2_0_0 - tre2_0_1; c_im(out[39 * ostride]) = tim2_0_0 - tim2_0_1; c_re(out[23 * ostride]) = tre2_1_0 - tim2_1_1; c_im(out[23 * ostride]) = tim2_1_0 + tre2_1_1; c_re(out[55 * ostride]) = tre2_1_0 + tim2_1_1; c_im(out[55 * ostride]) = tim2_1_0 - tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 - tim1_1_2; tim2_0_0 = tim1_1_0 + tre1_1_2; tre2_1_0 = tre1_1_0 + tim1_1_2; tim2_1_0 = tim1_1_0 - tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 - tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 + tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 + tim1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 - tim1_1_3); tre2_0_1 = tre3_0_0 - tre3_1_0; tim2_0_1 = tim3_0_0 + tim3_1_0; tre2_1_1 = tre3_0_0 + tre3_1_0; tim2_1_1 = tim3_0_0 - tim3_1_0; } c_re(out[15 * ostride]) = tre2_0_0 + tre2_0_1; c_im(out[15 * ostride]) = tim2_0_0 + tim2_0_1; c_re(out[47 * ostride]) = tre2_0_0 - tre2_0_1; c_im(out[47 * ostride]) = tim2_0_0 - tim2_0_1; c_re(out[31 * ostride]) = tre2_1_0 - tim2_1_1; c_im(out[31 * ostride]) = tim2_1_0 + tre2_1_1; c_re(out[63 * ostride]) = tre2_1_0 + tim2_1_1; c_im(out[63 * ostride]) = tim2_1_0 - tre2_1_1; } } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 90 FP additions and 36 FP multiplications */ void fftwi_no_twiddle_7(const FFTW_COMPLEX *in, FFTW_COMPLEX *out, int istride, int ostride) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_2_0; FFTW_REAL tim0_2_0; FFTW_REAL tre0_3_0; FFTW_REAL tim0_3_0; FFTW_REAL tre0_4_0; FFTW_REAL tim0_4_0; FFTW_REAL tre0_5_0; FFTW_REAL tim0_5_0; FFTW_REAL tre0_6_0; FFTW_REAL tim0_6_0; tre0_0_0 = c_re(in[0]); tim0_0_0 = c_im(in[0]); tre0_1_0 = c_re(in[istride]); tim0_1_0 = c_im(in[istride]); tre0_2_0 = c_re(in[2 * istride]); tim0_2_0 = c_im(in[2 * istride]); tre0_3_0 = c_re(in[3 * istride]); tim0_3_0 = c_im(in[3 * istride]); tre0_4_0 = c_re(in[4 * istride]); tim0_4_0 = c_im(in[4 * istride]); tre0_5_0 = c_re(in[5 * istride]); tim0_5_0 = c_im(in[5 * istride]); tre0_6_0 = c_re(in[6 * istride]); tim0_6_0 = c_im(in[6 * istride]); c_re(out[0]) = tre0_0_0 + tre0_1_0 + tre0_2_0 + tre0_3_0 + tre0_4_0 + tre0_5_0 + tre0_6_0; c_im(out[0]) = tim0_0_0 + tim0_1_0 + tim0_2_0 + tim0_3_0 + tim0_4_0 + tim0_5_0 + tim0_6_0; { FFTW_REAL tre1_0_0; FFTW_REAL tre1_1_0; tre1_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K623489801) * (tre0_1_0 + tre0_6_0)) - (((FFTW_REAL) FFTW_K900968867) * (tre0_3_0 + tre0_4_0)) - (((FFTW_REAL) FFTW_K222520933) * (tre0_2_0 + tre0_5_0)); tre1_1_0 = (((FFTW_REAL) FFTW_K781831482) * (tim0_6_0 - tim0_1_0)) + (((FFTW_REAL) FFTW_K974927912) * (tim0_5_0 - tim0_2_0)) + (((FFTW_REAL) FFTW_K433883739) * (tim0_4_0 - tim0_3_0)); c_re(out[ostride]) = tre1_0_0 + tre1_1_0; c_re(out[6 * ostride]) = tre1_0_0 - tre1_1_0; } { FFTW_REAL tim1_0_0; FFTW_REAL tim1_1_0; tim1_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K623489801) * (tim0_1_0 + tim0_6_0)) - (((FFTW_REAL) FFTW_K900968867) * (tim0_3_0 + tim0_4_0)) - (((FFTW_REAL) FFTW_K222520933) * (tim0_2_0 + tim0_5_0)); tim1_1_0 = (((FFTW_REAL) FFTW_K781831482) * (tre0_1_0 - tre0_6_0)) + (((FFTW_REAL) FFTW_K974927912) * (tre0_2_0 - tre0_5_0)) + (((FFTW_REAL) FFTW_K433883739) * (tre0_3_0 - tre0_4_0)); c_im(out[ostride]) = tim1_0_0 + tim1_1_0; c_im(out[6 * ostride]) = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tre1_1_0; tre1_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K623489801) * (tre0_3_0 + tre0_4_0)) - (((FFTW_REAL) FFTW_K900968867) * (tre0_2_0 + tre0_5_0)) - (((FFTW_REAL) FFTW_K222520933) * (tre0_1_0 + tre0_6_0)); tre1_1_0 = (((FFTW_REAL) FFTW_K974927912) * (tim0_6_0 - tim0_1_0)) + (((FFTW_REAL) FFTW_K433883739) * (tim0_2_0 - tim0_5_0)) + (((FFTW_REAL) FFTW_K781831482) * (tim0_3_0 - tim0_4_0)); c_re(out[2 * ostride]) = tre1_0_0 + tre1_1_0; c_re(out[5 * ostride]) = tre1_0_0 - tre1_1_0; } { FFTW_REAL tim1_0_0; FFTW_REAL tim1_1_0; tim1_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K623489801) * (tim0_3_0 + tim0_4_0)) - (((FFTW_REAL) FFTW_K900968867) * (tim0_2_0 + tim0_5_0)) - (((FFTW_REAL) FFTW_K222520933) * (tim0_1_0 + tim0_6_0)); tim1_1_0 = (((FFTW_REAL) FFTW_K974927912) * (tre0_1_0 - tre0_6_0)) + (((FFTW_REAL) FFTW_K433883739) * (tre0_5_0 - tre0_2_0)) + (((FFTW_REAL) FFTW_K781831482) * (tre0_4_0 - tre0_3_0)); c_im(out[2 * ostride]) = tim1_0_0 + tim1_1_0; c_im(out[5 * ostride]) = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tre1_1_0; tre1_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K623489801) * (tre0_2_0 + tre0_5_0)) - (((FFTW_REAL) FFTW_K222520933) * (tre0_3_0 + tre0_4_0)) - (((FFTW_REAL) FFTW_K900968867) * (tre0_1_0 + tre0_6_0)); tre1_1_0 = (((FFTW_REAL) FFTW_K433883739) * (tim0_6_0 - tim0_1_0)) + (((FFTW_REAL) FFTW_K781831482) * (tim0_2_0 - tim0_5_0)) + (((FFTW_REAL) FFTW_K974927912) * (tim0_4_0 - tim0_3_0)); c_re(out[3 * ostride]) = tre1_0_0 + tre1_1_0; c_re(out[4 * ostride]) = tre1_0_0 - tre1_1_0; } { FFTW_REAL tim1_0_0; FFTW_REAL tim1_1_0; tim1_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K623489801) * (tim0_2_0 + tim0_5_0)) - (((FFTW_REAL) FFTW_K222520933) * (tim0_3_0 + tim0_4_0)) - (((FFTW_REAL) FFTW_K900968867) * (tim0_1_0 + tim0_6_0)); tim1_1_0 = (((FFTW_REAL) FFTW_K433883739) * (tre0_1_0 - tre0_6_0)) + (((FFTW_REAL) FFTW_K781831482) * (tre0_5_0 - tre0_2_0)) + (((FFTW_REAL) FFTW_K974927912) * (tre0_3_0 - tre0_4_0)); c_im(out[3 * ostride]) = tim1_0_0 + tim1_1_0; c_im(out[4 * ostride]) = tim1_0_0 - tim1_1_0; } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 52 FP additions and 4 FP multiplications */ void fftwi_no_twiddle_8(const FFTW_COMPLEX *in, FFTW_COMPLEX *out, int istride, int ostride) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_0_1; FFTW_REAL tim0_0_1; FFTW_REAL tre0_0_2; FFTW_REAL tim0_0_2; FFTW_REAL tre0_0_3; FFTW_REAL tim0_0_3; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_1_1; FFTW_REAL tim0_1_1; FFTW_REAL tre0_1_2; FFTW_REAL tim0_1_2; FFTW_REAL tre0_1_3; FFTW_REAL tim0_1_3; { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(in[0]); tim1_0_0 = c_im(in[0]); tre1_1_0 = c_re(in[4 * istride]); tim1_1_0 = c_im(in[4 * istride]); tre0_0_0 = tre1_0_0 + tre1_1_0; tim0_0_0 = tim1_0_0 + tim1_1_0; tre0_1_0 = tre1_0_0 - tre1_1_0; tim0_1_0 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(in[istride]); tim1_0_0 = c_im(in[istride]); tre1_1_0 = c_re(in[5 * istride]); tim1_1_0 = c_im(in[5 * istride]); tre0_0_1 = tre1_0_0 + tre1_1_0; tim0_0_1 = tim1_0_0 + tim1_1_0; tre0_1_1 = tre1_0_0 - tre1_1_0; tim0_1_1 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(in[2 * istride]); tim1_0_0 = c_im(in[2 * istride]); tre1_1_0 = c_re(in[6 * istride]); tim1_1_0 = c_im(in[6 * istride]); tre0_0_2 = tre1_0_0 + tre1_1_0; tim0_0_2 = tim1_0_0 + tim1_1_0; tre0_1_2 = tre1_0_0 - tre1_1_0; tim0_1_2 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(in[3 * istride]); tim1_0_0 = c_im(in[3 * istride]); tre1_1_0 = c_re(in[7 * istride]); tim1_1_0 = c_im(in[7 * istride]); tre0_0_3 = tre1_0_0 + tre1_1_0; tim0_0_3 = tim1_0_0 + tim1_1_0; tre0_1_3 = tre1_0_0 - tre1_1_0; tim0_1_3 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; tre1_0_0 = tre0_0_0 + tre0_0_2; tim1_0_0 = tim0_0_0 + tim0_0_2; tre1_1_0 = tre0_0_0 - tre0_0_2; tim1_1_0 = tim0_0_0 - tim0_0_2; tre1_0_1 = tre0_0_1 + tre0_0_3; tim1_0_1 = tim0_0_1 + tim0_0_3; tre1_1_1 = tre0_0_1 - tre0_0_3; tim1_1_1 = tim0_0_1 - tim0_0_3; c_re(out[0]) = tre1_0_0 + tre1_0_1; c_im(out[0]) = tim1_0_0 + tim1_0_1; c_re(out[4 * ostride]) = tre1_0_0 - tre1_0_1; c_im(out[4 * ostride]) = tim1_0_0 - tim1_0_1; c_re(out[2 * ostride]) = tre1_1_0 - tim1_1_1; c_im(out[2 * ostride]) = tim1_1_0 + tre1_1_1; c_re(out[6 * ostride]) = tre1_1_0 + tim1_1_1; c_im(out[6 * ostride]) = tim1_1_0 - tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; tre1_0_0 = tre0_1_0 - tim0_1_2; tim1_0_0 = tim0_1_0 + tre0_1_2; tre1_1_0 = tre0_1_0 + tim0_1_2; tim1_1_0 = tim0_1_0 - tre0_1_2; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_1_1 - tim0_1_1); tim2_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_1_1 + tre0_1_1); tre2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_1_3 + tim0_1_3); tim2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_1_3 - tim0_1_3); tre1_0_1 = tre2_0_0 - tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 + tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } c_re(out[ostride]) = tre1_0_0 + tre1_0_1; c_im(out[ostride]) = tim1_0_0 + tim1_0_1; c_re(out[5 * ostride]) = tre1_0_0 - tre1_0_1; c_im(out[5 * ostride]) = tim1_0_0 - tim1_0_1; c_re(out[3 * ostride]) = tre1_1_0 - tim1_1_1; c_im(out[3 * ostride]) = tim1_1_0 + tre1_1_1; c_re(out[7 * ostride]) = tre1_1_0 + tim1_1_1; c_im(out[7 * ostride]) = tim1_1_0 - tre1_1_1; } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 92 FP additions and 40 FP multiplications */ void fftwi_no_twiddle_9(const FFTW_COMPLEX *in, FFTW_COMPLEX *out, int istride, int ostride) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_0_1; FFTW_REAL tim0_0_1; FFTW_REAL tre0_0_2; FFTW_REAL tim0_0_2; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_1_1; FFTW_REAL tim0_1_1; FFTW_REAL tre0_1_2; FFTW_REAL tim0_1_2; FFTW_REAL tre0_2_0; FFTW_REAL tim0_2_0; FFTW_REAL tre0_2_1; FFTW_REAL tim0_2_1; FFTW_REAL tre0_2_2; FFTW_REAL tim0_2_2; { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_2_0; FFTW_REAL tim1_2_0; tre1_0_0 = c_re(in[0]); tim1_0_0 = c_im(in[0]); tre1_1_0 = c_re(in[3 * istride]); tim1_1_0 = c_im(in[3 * istride]); tre1_2_0 = c_re(in[6 * istride]); tim1_2_0 = c_im(in[6 * istride]); tre0_0_0 = tre1_0_0 + tre1_1_0 + tre1_2_0; tim0_0_0 = tim1_0_0 + tim1_1_0 + tim1_2_0; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tre1_1_0 + tre1_2_0)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim1_2_0 - tim1_1_0); tre0_1_0 = tre2_0_0 + tre2_1_0; tre0_2_0 = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tim1_1_0 + tim1_2_0)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre1_1_0 - tre1_2_0); tim0_1_0 = tim2_0_0 + tim2_1_0; tim0_2_0 = tim2_0_0 - tim2_1_0; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_2_0; FFTW_REAL tim1_2_0; tre1_0_0 = c_re(in[istride]); tim1_0_0 = c_im(in[istride]); tre1_1_0 = c_re(in[4 * istride]); tim1_1_0 = c_im(in[4 * istride]); tre1_2_0 = c_re(in[7 * istride]); tim1_2_0 = c_im(in[7 * istride]); tre0_0_1 = tre1_0_0 + tre1_1_0 + tre1_2_0; tim0_0_1 = tim1_0_0 + tim1_1_0 + tim1_2_0; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tre1_1_0 + tre1_2_0)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim1_2_0 - tim1_1_0); tre0_1_1 = tre2_0_0 + tre2_1_0; tre0_2_1 = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tim1_1_0 + tim1_2_0)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre1_1_0 - tre1_2_0); tim0_1_1 = tim2_0_0 + tim2_1_0; tim0_2_1 = tim2_0_0 - tim2_1_0; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_2_0; FFTW_REAL tim1_2_0; tre1_0_0 = c_re(in[2 * istride]); tim1_0_0 = c_im(in[2 * istride]); tre1_1_0 = c_re(in[5 * istride]); tim1_1_0 = c_im(in[5 * istride]); tre1_2_0 = c_re(in[8 * istride]); tim1_2_0 = c_im(in[8 * istride]); tre0_0_2 = tre1_0_0 + tre1_1_0 + tre1_2_0; tim0_0_2 = tim1_0_0 + tim1_1_0 + tim1_2_0; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tre1_1_0 + tre1_2_0)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim1_2_0 - tim1_1_0); tre0_1_2 = tre2_0_0 + tre2_1_0; tre0_2_2 = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tim1_1_0 + tim1_2_0)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre1_1_0 - tre1_2_0); tim0_1_2 = tim2_0_0 + tim2_1_0; tim0_2_2 = tim2_0_0 - tim2_1_0; } } c_re(out[0]) = tre0_0_0 + tre0_0_1 + tre0_0_2; c_im(out[0]) = tim0_0_0 + tim0_0_1 + tim0_0_2; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tre0_0_1 + tre0_0_2)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim0_0_2 - tim0_0_1); c_re(out[3 * ostride]) = tre2_0_0 + tre2_1_0; c_re(out[6 * ostride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tim0_0_1 + tim0_0_2)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre0_0_1 - tre0_0_2); c_im(out[3 * ostride]) = tim2_0_0 + tim2_1_0; c_im(out[6 * ostride]) = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_2_0; FFTW_REAL tim1_2_0; tre1_1_0 = (((FFTW_REAL) FFTW_K766044443) * tre0_1_1) - (((FFTW_REAL) FFTW_K642787609) * tim0_1_1); tim1_1_0 = (((FFTW_REAL) FFTW_K766044443) * tim0_1_1) + (((FFTW_REAL) FFTW_K642787609) * tre0_1_1); tre1_2_0 = (((FFTW_REAL) FFTW_K173648177) * tre0_1_2) - (((FFTW_REAL) FFTW_K984807753) * tim0_1_2); tim1_2_0 = (((FFTW_REAL) FFTW_K173648177) * tim0_1_2) + (((FFTW_REAL) FFTW_K984807753) * tre0_1_2); c_re(out[ostride]) = tre0_1_0 + tre1_1_0 + tre1_2_0; c_im(out[ostride]) = tim0_1_0 + tim1_1_0 + tim1_2_0; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_1_0 - (((FFTW_REAL) FFTW_K499999999) * (tre1_1_0 + tre1_2_0)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim1_2_0 - tim1_1_0); c_re(out[4 * ostride]) = tre2_0_0 + tre2_1_0; c_re(out[7 * ostride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_1_0 - (((FFTW_REAL) FFTW_K499999999) * (tim1_1_0 + tim1_2_0)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre1_1_0 - tre1_2_0); c_im(out[4 * ostride]) = tim2_0_0 + tim2_1_0; c_im(out[7 * ostride]) = tim2_0_0 - tim2_1_0; } } { FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_2_0; FFTW_REAL tim1_2_0; tre1_1_0 = (((FFTW_REAL) FFTW_K173648177) * tre0_2_1) - (((FFTW_REAL) FFTW_K984807753) * tim0_2_1); tim1_1_0 = (((FFTW_REAL) FFTW_K173648177) * tim0_2_1) + (((FFTW_REAL) FFTW_K984807753) * tre0_2_1); tre1_2_0 = (((FFTW_REAL) FFTW_K939692620) * tre0_2_2) + (((FFTW_REAL) FFTW_K342020143) * tim0_2_2); tim1_2_0 = (((FFTW_REAL) FFTW_K342020143) * tre0_2_2) - (((FFTW_REAL) FFTW_K939692620) * tim0_2_2); c_re(out[2 * ostride]) = tre0_2_0 + tre1_1_0 - tre1_2_0; c_im(out[2 * ostride]) = tim0_2_0 + tim1_1_0 + tim1_2_0; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_2_0 + (((FFTW_REAL) FFTW_K499999999) * (tre1_2_0 - tre1_1_0)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim1_2_0 - tim1_1_0); c_re(out[5 * ostride]) = tre2_0_0 + tre2_1_0; c_re(out[8 * ostride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_2_0 - (((FFTW_REAL) FFTW_K499999999) * (tim1_1_0 + tim1_2_0)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre1_1_0 + tre1_2_0); c_im(out[5 * ostride]) = tim2_0_0 + tim2_1_0; c_im(out[8 * ostride]) = tim2_0_0 - tim2_1_0; } } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 126 FP additions and 68 FP multiplications */ void fftw_twiddle_10(FFTW_COMPLEX *A, const FFTW_COMPLEX *W, int stride, int m, int dist) { int i; COMPLEX *inout; inout = A; for (i = 0; i < m; i = i + 1, inout = inout + dist, W = W + 9) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_0_1; FFTW_REAL tim0_0_1; FFTW_REAL tre0_0_2; FFTW_REAL tim0_0_2; FFTW_REAL tre0_0_3; FFTW_REAL tim0_0_3; FFTW_REAL tre0_0_4; FFTW_REAL tim0_0_4; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_1_1; FFTW_REAL tim0_1_1; FFTW_REAL tre0_1_2; FFTW_REAL tim0_1_2; FFTW_REAL tre0_1_3; FFTW_REAL tim0_1_3; FFTW_REAL tre0_1_4; FFTW_REAL tim0_1_4; { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(inout[0]); tim1_0_0 = c_im(inout[0]); { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[5 * stride]); ti = c_im(inout[5 * stride]); twr = c_re(W[4]); twi = c_im(W[4]); tre1_1_0 = (tr * twr) - (ti * twi); tim1_1_0 = (tr * twi) + (ti * twr); } tre0_0_0 = tre1_0_0 + tre1_1_0; tim0_0_0 = tim1_0_0 + tim1_1_0; tre0_1_0 = tre1_0_0 - tre1_1_0; tim0_1_0 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[2 * stride]); ti = c_im(inout[2 * stride]); twr = c_re(W[1]); twi = c_im(W[1]); tre1_0_0 = (tr * twr) - (ti * twi); tim1_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[7 * stride]); ti = c_im(inout[7 * stride]); twr = c_re(W[6]); twi = c_im(W[6]); tre1_1_0 = (tr * twr) - (ti * twi); tim1_1_0 = (tr * twi) + (ti * twr); } tre0_0_1 = tre1_0_0 + tre1_1_0; tim0_0_1 = tim1_0_0 + tim1_1_0; tre0_1_1 = tre1_0_0 - tre1_1_0; tim0_1_1 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[4 * stride]); ti = c_im(inout[4 * stride]); twr = c_re(W[3]); twi = c_im(W[3]); tre1_0_0 = (tr * twr) - (ti * twi); tim1_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[9 * stride]); ti = c_im(inout[9 * stride]); twr = c_re(W[8]); twi = c_im(W[8]); tre1_1_0 = (tr * twr) - (ti * twi); tim1_1_0 = (tr * twi) + (ti * twr); } tre0_0_2 = tre1_0_0 + tre1_1_0; tim0_0_2 = tim1_0_0 + tim1_1_0; tre0_1_2 = tre1_0_0 - tre1_1_0; tim0_1_2 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[6 * stride]); ti = c_im(inout[6 * stride]); twr = c_re(W[5]); twi = c_im(W[5]); tre1_0_0 = (tr * twr) - (ti * twi); tim1_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[stride]); ti = c_im(inout[stride]); twr = c_re(W[0]); twi = c_im(W[0]); tre1_1_0 = (tr * twr) - (ti * twi); tim1_1_0 = (tr * twi) + (ti * twr); } tre0_0_3 = tre1_0_0 + tre1_1_0; tim0_0_3 = tim1_0_0 + tim1_1_0; tre0_1_3 = tre1_0_0 - tre1_1_0; tim0_1_3 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[8 * stride]); ti = c_im(inout[8 * stride]); twr = c_re(W[7]); twi = c_im(W[7]); tre1_0_0 = (tr * twr) - (ti * twi); tim1_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[3 * stride]); ti = c_im(inout[3 * stride]); twr = c_re(W[2]); twi = c_im(W[2]); tre1_1_0 = (tr * twr) - (ti * twi); tim1_1_0 = (tr * twi) + (ti * twr); } tre0_0_4 = tre1_0_0 + tre1_1_0; tim0_0_4 = tim1_0_0 + tim1_1_0; tre0_1_4 = tre1_0_0 - tre1_1_0; tim0_1_4 = tim1_0_0 - tim1_1_0; } c_re(inout[0]) = tre0_0_0 + tre0_0_1 + tre0_0_2 + tre0_0_3 + tre0_0_4; c_im(inout[0]) = tim0_0_0 + tim0_0_1 + tim0_0_2 + tim0_0_3 + tim0_0_4; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K309016994) * (tre0_0_1 + tre0_0_4)) - (((FFTW_REAL) FFTW_K809016994) * (tre0_0_2 + tre0_0_3)); tre2_1_0 = (((FFTW_REAL) FFTW_K951056516) * (tim0_0_1 - tim0_0_4)) + (((FFTW_REAL) FFTW_K587785252) * (tim0_0_2 - tim0_0_3)); c_re(inout[6 * stride]) = tre2_0_0 + tre2_1_0; c_re(inout[4 * stride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K309016994) * (tim0_0_1 + tim0_0_4)) - (((FFTW_REAL) FFTW_K809016994) * (tim0_0_2 + tim0_0_3)); tim2_1_0 = (((FFTW_REAL) FFTW_K951056516) * (tre0_0_4 - tre0_0_1)) + (((FFTW_REAL) FFTW_K587785252) * (tre0_0_3 - tre0_0_2)); c_im(inout[6 * stride]) = tim2_0_0 + tim2_1_0; c_im(inout[4 * stride]) = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K309016994) * (tre0_0_2 + tre0_0_3)) - (((FFTW_REAL) FFTW_K809016994) * (tre0_0_1 + tre0_0_4)); tre2_1_0 = (((FFTW_REAL) FFTW_K587785252) * (tim0_0_1 - tim0_0_4)) + (((FFTW_REAL) FFTW_K951056516) * (tim0_0_3 - tim0_0_2)); c_re(inout[2 * stride]) = tre2_0_0 + tre2_1_0; c_re(inout[8 * stride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K309016994) * (tim0_0_2 + tim0_0_3)) - (((FFTW_REAL) FFTW_K809016994) * (tim0_0_1 + tim0_0_4)); tim2_1_0 = (((FFTW_REAL) FFTW_K587785252) * (tre0_0_4 - tre0_0_1)) + (((FFTW_REAL) FFTW_K951056516) * (tre0_0_2 - tre0_0_3)); c_im(inout[2 * stride]) = tim2_0_0 + tim2_1_0; c_im(inout[8 * stride]) = tim2_0_0 - tim2_1_0; } c_re(inout[5 * stride]) = tre0_1_0 + tre0_1_1 + tre0_1_2 + tre0_1_3 + tre0_1_4; c_im(inout[5 * stride]) = tim0_1_0 + tim0_1_1 + tim0_1_2 + tim0_1_3 + tim0_1_4; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_1_0 + (((FFTW_REAL) FFTW_K309016994) * (tre0_1_1 + tre0_1_4)) - (((FFTW_REAL) FFTW_K809016994) * (tre0_1_2 + tre0_1_3)); tre2_1_0 = (((FFTW_REAL) FFTW_K951056516) * (tim0_1_1 - tim0_1_4)) + (((FFTW_REAL) FFTW_K587785252) * (tim0_1_2 - tim0_1_3)); c_re(inout[stride]) = tre2_0_0 + tre2_1_0; c_re(inout[9 * stride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_1_0 + (((FFTW_REAL) FFTW_K309016994) * (tim0_1_1 + tim0_1_4)) - (((FFTW_REAL) FFTW_K809016994) * (tim0_1_2 + tim0_1_3)); tim2_1_0 = (((FFTW_REAL) FFTW_K951056516) * (tre0_1_4 - tre0_1_1)) + (((FFTW_REAL) FFTW_K587785252) * (tre0_1_3 - tre0_1_2)); c_im(inout[stride]) = tim2_0_0 + tim2_1_0; c_im(inout[9 * stride]) = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_1_0 + (((FFTW_REAL) FFTW_K309016994) * (tre0_1_2 + tre0_1_3)) - (((FFTW_REAL) FFTW_K809016994) * (tre0_1_1 + tre0_1_4)); tre2_1_0 = (((FFTW_REAL) FFTW_K587785252) * (tim0_1_1 - tim0_1_4)) + (((FFTW_REAL) FFTW_K951056516) * (tim0_1_3 - tim0_1_2)); c_re(inout[7 * stride]) = tre2_0_0 + tre2_1_0; c_re(inout[3 * stride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_1_0 + (((FFTW_REAL) FFTW_K309016994) * (tim0_1_2 + tim0_1_3)) - (((FFTW_REAL) FFTW_K809016994) * (tim0_1_1 + tim0_1_4)); tim2_1_0 = (((FFTW_REAL) FFTW_K587785252) * (tre0_1_4 - tre0_1_1)) + (((FFTW_REAL) FFTW_K951056516) * (tre0_1_2 - tre0_1_3)); c_im(inout[7 * stride]) = tim2_0_0 + tim2_1_0; c_im(inout[3 * stride]) = tim2_0_0 - tim2_1_0; } } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 174 FP additions and 84 FP multiplications */ void fftw_twiddle_16(FFTW_COMPLEX *A, const FFTW_COMPLEX *W, int stride, int m, int dist) { int i; COMPLEX *inout; inout = A; for (i = 0; i < m; i = i + 1, inout = inout + dist, W = W + 15) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_0_1; FFTW_REAL tim0_0_1; FFTW_REAL tre0_0_2; FFTW_REAL tim0_0_2; FFTW_REAL tre0_0_3; FFTW_REAL tim0_0_3; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_1_1; FFTW_REAL tim0_1_1; FFTW_REAL tre0_1_2; FFTW_REAL tim0_1_2; FFTW_REAL tre0_1_3; FFTW_REAL tim0_1_3; FFTW_REAL tre0_2_0; FFTW_REAL tim0_2_0; FFTW_REAL tre0_2_1; FFTW_REAL tim0_2_1; FFTW_REAL tre0_2_2; FFTW_REAL tim0_2_2; FFTW_REAL tre0_2_3; FFTW_REAL tim0_2_3; FFTW_REAL tre0_3_0; FFTW_REAL tim0_3_0; FFTW_REAL tre0_3_1; FFTW_REAL tim0_3_1; FFTW_REAL tre0_3_2; FFTW_REAL tim0_3_2; FFTW_REAL tre0_3_3; FFTW_REAL tim0_3_3; { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(inout[0]); tim2_0_0 = c_im(inout[0]); { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[8 * stride]); ti = c_im(inout[8 * stride]); twr = c_re(W[7]); twi = c_im(W[7]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[4 * stride]); ti = c_im(inout[4 * stride]); twr = c_re(W[3]); twi = c_im(W[3]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[12 * stride]); ti = c_im(inout[12 * stride]); twr = c_re(W[11]); twi = c_im(W[11]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } tre0_0_0 = tre1_0_0 + tre1_0_1; tim0_0_0 = tim1_0_0 + tim1_0_1; tre0_2_0 = tre1_0_0 - tre1_0_1; tim0_2_0 = tim1_0_0 - tim1_0_1; tre0_1_0 = tre1_1_0 + tim1_1_1; tim0_1_0 = tim1_1_0 - tre1_1_1; tre0_3_0 = tre1_1_0 - tim1_1_1; tim0_3_0 = tim1_1_0 + tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[stride]); ti = c_im(inout[stride]); twr = c_re(W[0]); twi = c_im(W[0]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[9 * stride]); ti = c_im(inout[9 * stride]); twr = c_re(W[8]); twi = c_im(W[8]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[5 * stride]); ti = c_im(inout[5 * stride]); twr = c_re(W[4]); twi = c_im(W[4]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[13 * stride]); ti = c_im(inout[13 * stride]); twr = c_re(W[12]); twi = c_im(W[12]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } tre0_0_1 = tre1_0_0 + tre1_0_1; tim0_0_1 = tim1_0_0 + tim1_0_1; tre0_2_1 = tre1_0_0 - tre1_0_1; tim0_2_1 = tim1_0_0 - tim1_0_1; tre0_1_1 = tre1_1_0 + tim1_1_1; tim0_1_1 = tim1_1_0 - tre1_1_1; tre0_3_1 = tre1_1_0 - tim1_1_1; tim0_3_1 = tim1_1_0 + tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[2 * stride]); ti = c_im(inout[2 * stride]); twr = c_re(W[1]); twi = c_im(W[1]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[10 * stride]); ti = c_im(inout[10 * stride]); twr = c_re(W[9]); twi = c_im(W[9]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[6 * stride]); ti = c_im(inout[6 * stride]); twr = c_re(W[5]); twi = c_im(W[5]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[14 * stride]); ti = c_im(inout[14 * stride]); twr = c_re(W[13]); twi = c_im(W[13]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } tre0_0_2 = tre1_0_0 + tre1_0_1; tim0_0_2 = tim1_0_0 + tim1_0_1; tre0_2_2 = tre1_0_0 - tre1_0_1; tim0_2_2 = tim1_0_0 - tim1_0_1; tre0_1_2 = tre1_1_0 + tim1_1_1; tim0_1_2 = tim1_1_0 - tre1_1_1; tre0_3_2 = tre1_1_0 - tim1_1_1; tim0_3_2 = tim1_1_0 + tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[3 * stride]); ti = c_im(inout[3 * stride]); twr = c_re(W[2]); twi = c_im(W[2]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[11 * stride]); ti = c_im(inout[11 * stride]); twr = c_re(W[10]); twi = c_im(W[10]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[7 * stride]); ti = c_im(inout[7 * stride]); twr = c_re(W[6]); twi = c_im(W[6]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[15 * stride]); ti = c_im(inout[15 * stride]); twr = c_re(W[14]); twi = c_im(W[14]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } tre0_0_3 = tre1_0_0 + tre1_0_1; tim0_0_3 = tim1_0_0 + tim1_0_1; tre0_2_3 = tre1_0_0 - tre1_0_1; tim0_2_3 = tim1_0_0 - tim1_0_1; tre0_1_3 = tre1_1_0 + tim1_1_1; tim0_1_3 = tim1_1_0 - tre1_1_1; tre0_3_3 = tre1_1_0 - tim1_1_1; tim0_3_3 = tim1_1_0 + tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; tre1_0_0 = tre0_0_0 + tre0_0_2; tim1_0_0 = tim0_0_0 + tim0_0_2; tre1_1_0 = tre0_0_0 - tre0_0_2; tim1_1_0 = tim0_0_0 - tim0_0_2; tre1_0_1 = tre0_0_1 + tre0_0_3; tim1_0_1 = tim0_0_1 + tim0_0_3; tre1_1_1 = tre0_0_1 - tre0_0_3; tim1_1_1 = tim0_0_1 - tim0_0_3; c_re(inout[0]) = tre1_0_0 + tre1_0_1; c_im(inout[0]) = tim1_0_0 + tim1_0_1; c_re(inout[8 * stride]) = tre1_0_0 - tre1_0_1; c_im(inout[8 * stride]) = tim1_0_0 - tim1_0_1; c_re(inout[4 * stride]) = tre1_1_0 + tim1_1_1; c_im(inout[4 * stride]) = tim1_1_0 - tre1_1_1; c_re(inout[12 * stride]) = tre1_1_0 - tim1_1_1; c_im(inout[12 * stride]) = tim1_1_0 + tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_1_2 + tim0_1_2); tim2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_1_2 - tre0_1_2); tre1_0_0 = tre0_1_0 + tre2_1_0; tim1_0_0 = tim0_1_0 + tim2_1_0; tre1_1_0 = tre0_1_0 - tre2_1_0; tim1_1_0 = tim0_1_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K923879532) * tre0_1_1) + (((FFTW_REAL) FFTW_K382683432) * tim0_1_1); tim2_0_0 = (((FFTW_REAL) FFTW_K923879532) * tim0_1_1) - (((FFTW_REAL) FFTW_K382683432) * tre0_1_1); tre2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_1_3) + (((FFTW_REAL) FFTW_K923879532) * tim0_1_3); tim2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_1_3) - (((FFTW_REAL) FFTW_K923879532) * tre0_1_3); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } c_re(inout[stride]) = tre1_0_0 + tre1_0_1; c_im(inout[stride]) = tim1_0_0 + tim1_0_1; c_re(inout[9 * stride]) = tre1_0_0 - tre1_0_1; c_im(inout[9 * stride]) = tim1_0_0 - tim1_0_1; c_re(inout[5 * stride]) = tre1_1_0 + tim1_1_1; c_im(inout[5 * stride]) = tim1_1_0 - tre1_1_1; c_re(inout[13 * stride]) = tre1_1_0 - tim1_1_1; c_im(inout[13 * stride]) = tim1_1_0 + tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; tre1_0_0 = tre0_2_0 + tim0_2_2; tim1_0_0 = tim0_2_0 - tre0_2_2; tre1_1_0 = tre0_2_0 - tim0_2_2; tim1_1_0 = tim0_2_0 + tre0_2_2; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_2_1 + tim0_2_1); tim2_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_2_1 - tre0_2_1); tre2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_2_3 - tre0_2_3); tim2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_2_3 + tre0_2_3); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 - tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 + tim2_1_0; } c_re(inout[2 * stride]) = tre1_0_0 + tre1_0_1; c_im(inout[2 * stride]) = tim1_0_0 + tim1_0_1; c_re(inout[10 * stride]) = tre1_0_0 - tre1_0_1; c_im(inout[10 * stride]) = tim1_0_0 - tim1_0_1; c_re(inout[6 * stride]) = tre1_1_0 + tim1_1_1; c_im(inout[6 * stride]) = tim1_1_0 - tre1_1_1; c_re(inout[14 * stride]) = tre1_1_0 - tim1_1_1; c_im(inout[14 * stride]) = tim1_1_0 + tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_3_2 - tre0_3_2); tim2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_3_2 + tre0_3_2); tre1_0_0 = tre0_3_0 + tre2_1_0; tim1_0_0 = tim0_3_0 - tim2_1_0; tre1_1_0 = tre0_3_0 - tre2_1_0; tim1_1_0 = tim0_3_0 + tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_3_1) + (((FFTW_REAL) FFTW_K923879532) * tim0_3_1); tim2_0_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_3_1) - (((FFTW_REAL) FFTW_K923879532) * tre0_3_1); tre2_1_0 = (((FFTW_REAL) FFTW_K923879532) * tre0_3_3) + (((FFTW_REAL) FFTW_K382683432) * tim0_3_3); tim2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_3_3) - (((FFTW_REAL) FFTW_K923879532) * tim0_3_3); tre1_0_1 = tre2_0_0 - tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 + tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } c_re(inout[3 * stride]) = tre1_0_0 + tre1_0_1; c_im(inout[3 * stride]) = tim1_0_0 + tim1_0_1; c_re(inout[11 * stride]) = tre1_0_0 - tre1_0_1; c_im(inout[11 * stride]) = tim1_0_0 - tim1_0_1; c_re(inout[7 * stride]) = tre1_1_0 + tim1_1_1; c_im(inout[7 * stride]) = tim1_1_0 - tre1_1_1; c_re(inout[15 * stride]) = tre1_1_0 - tim1_1_1; c_im(inout[15 * stride]) = tim1_1_0 + tre1_1_1; } } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 6 FP additions and 4 FP multiplications */ void fftw_twiddle_2(FFTW_COMPLEX *A, const FFTW_COMPLEX *W, int stride, int m, int dist) { int i; COMPLEX *inout; inout = A; for (i = 0; i < m; i = i + 1, inout = inout + dist, W = W + 1) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; tre0_0_0 = c_re(inout[0]); tim0_0_0 = c_im(inout[0]); { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[stride]); ti = c_im(inout[stride]); twr = c_re(W[0]); twi = c_im(W[0]); tre0_1_0 = (tr * twr) - (ti * twi); tim0_1_0 = (tr * twi) + (ti * twr); } c_re(inout[0]) = tre0_0_0 + tre0_1_0; c_im(inout[0]) = tim0_0_0 + tim0_1_0; c_re(inout[stride]) = tre0_0_0 - tre0_1_0; c_im(inout[stride]) = tim0_0_0 - tim0_1_0; } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 18 FP additions and 12 FP multiplications */ void fftw_twiddle_3(FFTW_COMPLEX *A, const FFTW_COMPLEX *W, int stride, int m, int dist) { int i; COMPLEX *inout; inout = A; for (i = 0; i < m; i = i + 1, inout = inout + dist, W = W + 2) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_2_0; FFTW_REAL tim0_2_0; tre0_0_0 = c_re(inout[0]); tim0_0_0 = c_im(inout[0]); { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[stride]); ti = c_im(inout[stride]); twr = c_re(W[0]); twi = c_im(W[0]); tre0_1_0 = (tr * twr) - (ti * twi); tim0_1_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[2 * stride]); ti = c_im(inout[2 * stride]); twr = c_re(W[1]); twi = c_im(W[1]); tre0_2_0 = (tr * twr) - (ti * twi); tim0_2_0 = (tr * twi) + (ti * twr); } c_re(inout[0]) = tre0_0_0 + tre0_1_0 + tre0_2_0; c_im(inout[0]) = tim0_0_0 + tim0_1_0 + tim0_2_0; { FFTW_REAL tre1_0_0; FFTW_REAL tre1_1_0; tre1_0_0 = tre0_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tre0_1_0 + tre0_2_0)); tre1_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim0_1_0 - tim0_2_0); c_re(inout[stride]) = tre1_0_0 + tre1_1_0; c_re(inout[2 * stride]) = tre1_0_0 - tre1_1_0; } { FFTW_REAL tim1_0_0; FFTW_REAL tim1_1_0; tim1_0_0 = tim0_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tim0_1_0 + tim0_2_0)); tim1_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre0_2_0 - tre0_1_0); c_im(inout[stride]) = tim1_0_0 + tim1_1_0; c_im(inout[2 * stride]) = tim1_0_0 - tim1_1_0; } } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 438 FP additions and 212 FP multiplications */ void fftw_twiddle_32(FFTW_COMPLEX *A, const FFTW_COMPLEX *W, int stride, int m, int dist) { int i; COMPLEX *inout; inout = A; for (i = 0; i < m; i = i + 1, inout = inout + dist, W = W + 31) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_0_1; FFTW_REAL tim0_0_1; FFTW_REAL tre0_0_2; FFTW_REAL tim0_0_2; FFTW_REAL tre0_0_3; FFTW_REAL tim0_0_3; FFTW_REAL tre0_0_4; FFTW_REAL tim0_0_4; FFTW_REAL tre0_0_5; FFTW_REAL tim0_0_5; FFTW_REAL tre0_0_6; FFTW_REAL tim0_0_6; FFTW_REAL tre0_0_7; FFTW_REAL tim0_0_7; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_1_1; FFTW_REAL tim0_1_1; FFTW_REAL tre0_1_2; FFTW_REAL tim0_1_2; FFTW_REAL tre0_1_3; FFTW_REAL tim0_1_3; FFTW_REAL tre0_1_4; FFTW_REAL tim0_1_4; FFTW_REAL tre0_1_5; FFTW_REAL tim0_1_5; FFTW_REAL tre0_1_6; FFTW_REAL tim0_1_6; FFTW_REAL tre0_1_7; FFTW_REAL tim0_1_7; FFTW_REAL tre0_2_0; FFTW_REAL tim0_2_0; FFTW_REAL tre0_2_1; FFTW_REAL tim0_2_1; FFTW_REAL tre0_2_2; FFTW_REAL tim0_2_2; FFTW_REAL tre0_2_3; FFTW_REAL tim0_2_3; FFTW_REAL tre0_2_4; FFTW_REAL tim0_2_4; FFTW_REAL tre0_2_5; FFTW_REAL tim0_2_5; FFTW_REAL tre0_2_6; FFTW_REAL tim0_2_6; FFTW_REAL tre0_2_7; FFTW_REAL tim0_2_7; FFTW_REAL tre0_3_0; FFTW_REAL tim0_3_0; FFTW_REAL tre0_3_1; FFTW_REAL tim0_3_1; FFTW_REAL tre0_3_2; FFTW_REAL tim0_3_2; FFTW_REAL tre0_3_3; FFTW_REAL tim0_3_3; FFTW_REAL tre0_3_4; FFTW_REAL tim0_3_4; FFTW_REAL tre0_3_5; FFTW_REAL tim0_3_5; FFTW_REAL tre0_3_6; FFTW_REAL tim0_3_6; FFTW_REAL tre0_3_7; FFTW_REAL tim0_3_7; { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(inout[0]); tim2_0_0 = c_im(inout[0]); { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[16 * stride]); ti = c_im(inout[16 * stride]); twr = c_re(W[15]); twi = c_im(W[15]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[8 * stride]); ti = c_im(inout[8 * stride]); twr = c_re(W[7]); twi = c_im(W[7]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[24 * stride]); ti = c_im(inout[24 * stride]); twr = c_re(W[23]); twi = c_im(W[23]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } tre0_0_0 = tre1_0_0 + tre1_0_1; tim0_0_0 = tim1_0_0 + tim1_0_1; tre0_2_0 = tre1_0_0 - tre1_0_1; tim0_2_0 = tim1_0_0 - tim1_0_1; tre0_1_0 = tre1_1_0 + tim1_1_1; tim0_1_0 = tim1_1_0 - tre1_1_1; tre0_3_0 = tre1_1_0 - tim1_1_1; tim0_3_0 = tim1_1_0 + tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[stride]); ti = c_im(inout[stride]); twr = c_re(W[0]); twi = c_im(W[0]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[17 * stride]); ti = c_im(inout[17 * stride]); twr = c_re(W[16]); twi = c_im(W[16]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[9 * stride]); ti = c_im(inout[9 * stride]); twr = c_re(W[8]); twi = c_im(W[8]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[25 * stride]); ti = c_im(inout[25 * stride]); twr = c_re(W[24]); twi = c_im(W[24]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } tre0_0_1 = tre1_0_0 + tre1_0_1; tim0_0_1 = tim1_0_0 + tim1_0_1; tre0_2_1 = tre1_0_0 - tre1_0_1; tim0_2_1 = tim1_0_0 - tim1_0_1; tre0_1_1 = tre1_1_0 + tim1_1_1; tim0_1_1 = tim1_1_0 - tre1_1_1; tre0_3_1 = tre1_1_0 - tim1_1_1; tim0_3_1 = tim1_1_0 + tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[2 * stride]); ti = c_im(inout[2 * stride]); twr = c_re(W[1]); twi = c_im(W[1]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[18 * stride]); ti = c_im(inout[18 * stride]); twr = c_re(W[17]); twi = c_im(W[17]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[10 * stride]); ti = c_im(inout[10 * stride]); twr = c_re(W[9]); twi = c_im(W[9]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[26 * stride]); ti = c_im(inout[26 * stride]); twr = c_re(W[25]); twi = c_im(W[25]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } tre0_0_2 = tre1_0_0 + tre1_0_1; tim0_0_2 = tim1_0_0 + tim1_0_1; tre0_2_2 = tre1_0_0 - tre1_0_1; tim0_2_2 = tim1_0_0 - tim1_0_1; tre0_1_2 = tre1_1_0 + tim1_1_1; tim0_1_2 = tim1_1_0 - tre1_1_1; tre0_3_2 = tre1_1_0 - tim1_1_1; tim0_3_2 = tim1_1_0 + tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[3 * stride]); ti = c_im(inout[3 * stride]); twr = c_re(W[2]); twi = c_im(W[2]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[19 * stride]); ti = c_im(inout[19 * stride]); twr = c_re(W[18]); twi = c_im(W[18]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[11 * stride]); ti = c_im(inout[11 * stride]); twr = c_re(W[10]); twi = c_im(W[10]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[27 * stride]); ti = c_im(inout[27 * stride]); twr = c_re(W[26]); twi = c_im(W[26]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } tre0_0_3 = tre1_0_0 + tre1_0_1; tim0_0_3 = tim1_0_0 + tim1_0_1; tre0_2_3 = tre1_0_0 - tre1_0_1; tim0_2_3 = tim1_0_0 - tim1_0_1; tre0_1_3 = tre1_1_0 + tim1_1_1; tim0_1_3 = tim1_1_0 - tre1_1_1; tre0_3_3 = tre1_1_0 - tim1_1_1; tim0_3_3 = tim1_1_0 + tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[4 * stride]); ti = c_im(inout[4 * stride]); twr = c_re(W[3]); twi = c_im(W[3]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[20 * stride]); ti = c_im(inout[20 * stride]); twr = c_re(W[19]); twi = c_im(W[19]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[12 * stride]); ti = c_im(inout[12 * stride]); twr = c_re(W[11]); twi = c_im(W[11]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[28 * stride]); ti = c_im(inout[28 * stride]); twr = c_re(W[27]); twi = c_im(W[27]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } tre0_0_4 = tre1_0_0 + tre1_0_1; tim0_0_4 = tim1_0_0 + tim1_0_1; tre0_2_4 = tre1_0_0 - tre1_0_1; tim0_2_4 = tim1_0_0 - tim1_0_1; tre0_1_4 = tre1_1_0 + tim1_1_1; tim0_1_4 = tim1_1_0 - tre1_1_1; tre0_3_4 = tre1_1_0 - tim1_1_1; tim0_3_4 = tim1_1_0 + tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[5 * stride]); ti = c_im(inout[5 * stride]); twr = c_re(W[4]); twi = c_im(W[4]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[21 * stride]); ti = c_im(inout[21 * stride]); twr = c_re(W[20]); twi = c_im(W[20]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[13 * stride]); ti = c_im(inout[13 * stride]); twr = c_re(W[12]); twi = c_im(W[12]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[29 * stride]); ti = c_im(inout[29 * stride]); twr = c_re(W[28]); twi = c_im(W[28]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } tre0_0_5 = tre1_0_0 + tre1_0_1; tim0_0_5 = tim1_0_0 + tim1_0_1; tre0_2_5 = tre1_0_0 - tre1_0_1; tim0_2_5 = tim1_0_0 - tim1_0_1; tre0_1_5 = tre1_1_0 + tim1_1_1; tim0_1_5 = tim1_1_0 - tre1_1_1; tre0_3_5 = tre1_1_0 - tim1_1_1; tim0_3_5 = tim1_1_0 + tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[6 * stride]); ti = c_im(inout[6 * stride]); twr = c_re(W[5]); twi = c_im(W[5]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[22 * stride]); ti = c_im(inout[22 * stride]); twr = c_re(W[21]); twi = c_im(W[21]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[14 * stride]); ti = c_im(inout[14 * stride]); twr = c_re(W[13]); twi = c_im(W[13]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[30 * stride]); ti = c_im(inout[30 * stride]); twr = c_re(W[29]); twi = c_im(W[29]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } tre0_0_6 = tre1_0_0 + tre1_0_1; tim0_0_6 = tim1_0_0 + tim1_0_1; tre0_2_6 = tre1_0_0 - tre1_0_1; tim0_2_6 = tim1_0_0 - tim1_0_1; tre0_1_6 = tre1_1_0 + tim1_1_1; tim0_1_6 = tim1_1_0 - tre1_1_1; tre0_3_6 = tre1_1_0 - tim1_1_1; tim0_3_6 = tim1_1_0 + tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[7 * stride]); ti = c_im(inout[7 * stride]); twr = c_re(W[6]); twi = c_im(W[6]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[23 * stride]); ti = c_im(inout[23 * stride]); twr = c_re(W[22]); twi = c_im(W[22]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[15 * stride]); ti = c_im(inout[15 * stride]); twr = c_re(W[14]); twi = c_im(W[14]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[31 * stride]); ti = c_im(inout[31 * stride]); twr = c_re(W[30]); twi = c_im(W[30]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } tre0_0_7 = tre1_0_0 + tre1_0_1; tim0_0_7 = tim1_0_0 + tim1_0_1; tre0_2_7 = tre1_0_0 - tre1_0_1; tim0_2_7 = tim1_0_0 - tim1_0_1; tre0_1_7 = tre1_1_0 + tim1_1_1; tim0_1_7 = tim1_1_0 - tre1_1_1; tre0_3_7 = tre1_1_0 - tim1_1_1; tim0_3_7 = tim1_1_0 + tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; tre1_0_0 = tre0_0_0 + tre0_0_4; tim1_0_0 = tim0_0_0 + tim0_0_4; tre1_1_0 = tre0_0_0 - tre0_0_4; tim1_1_0 = tim0_0_0 - tim0_0_4; tre1_0_1 = tre0_0_1 + tre0_0_5; tim1_0_1 = tim0_0_1 + tim0_0_5; tre1_1_1 = tre0_0_1 - tre0_0_5; tim1_1_1 = tim0_0_1 - tim0_0_5; tre1_0_2 = tre0_0_2 + tre0_0_6; tim1_0_2 = tim0_0_2 + tim0_0_6; tre1_1_2 = tre0_0_2 - tre0_0_6; tim1_1_2 = tim0_0_2 - tim0_0_6; tre1_0_3 = tre0_0_3 + tre0_0_7; tim1_0_3 = tim0_0_3 + tim0_0_7; tre1_1_3 = tre0_0_3 - tre0_0_7; tim1_1_3 = tim0_0_3 - tim0_0_7; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; c_re(inout[0]) = tre2_0_0 + tre2_0_1; c_im(inout[0]) = tim2_0_0 + tim2_0_1; c_re(inout[16 * stride]) = tre2_0_0 - tre2_0_1; c_im(inout[16 * stride]) = tim2_0_0 - tim2_0_1; c_re(inout[8 * stride]) = tre2_1_0 + tim2_1_1; c_im(inout[8 * stride]) = tim2_1_0 - tre2_1_1; c_re(inout[24 * stride]) = tre2_1_0 - tim2_1_1; c_im(inout[24 * stride]) = tim2_1_0 + tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 + tim1_1_2; tim2_0_0 = tim1_1_0 - tre1_1_2; tre2_1_0 = tre1_1_0 - tim1_1_2; tim2_1_0 = tim1_1_0 + tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 + tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 - tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 - tre1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 + tre1_1_3); tre2_0_1 = tre3_0_0 + tre3_1_0; tim2_0_1 = tim3_0_0 - tim3_1_0; tre2_1_1 = tre3_0_0 - tre3_1_0; tim2_1_1 = tim3_0_0 + tim3_1_0; } c_re(inout[4 * stride]) = tre2_0_0 + tre2_0_1; c_im(inout[4 * stride]) = tim2_0_0 + tim2_0_1; c_re(inout[20 * stride]) = tre2_0_0 - tre2_0_1; c_im(inout[20 * stride]) = tim2_0_0 - tim2_0_1; c_re(inout[12 * stride]) = tre2_1_0 + tim2_1_1; c_im(inout[12 * stride]) = tim2_1_0 - tre2_1_1; c_re(inout[28 * stride]) = tre2_1_0 - tim2_1_1; c_im(inout[28 * stride]) = tim2_1_0 + tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_1_4 + tim0_1_4); tim2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_1_4 - tre0_1_4); tre1_0_0 = tre0_1_0 + tre2_1_0; tim1_0_0 = tim0_1_0 + tim2_1_0; tre1_1_0 = tre0_1_0 - tre2_1_0; tim1_1_0 = tim0_1_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K980785280) * tre0_1_1) + (((FFTW_REAL) FFTW_K195090322) * tim0_1_1); tim2_0_0 = (((FFTW_REAL) FFTW_K980785280) * tim0_1_1) - (((FFTW_REAL) FFTW_K195090322) * tre0_1_1); tre2_1_0 = (((FFTW_REAL) FFTW_K555570233) * tre0_1_5) + (((FFTW_REAL) FFTW_K831469612) * tim0_1_5); tim2_1_0 = (((FFTW_REAL) FFTW_K555570233) * tim0_1_5) - (((FFTW_REAL) FFTW_K831469612) * tre0_1_5); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K923879532) * tre0_1_2) + (((FFTW_REAL) FFTW_K382683432) * tim0_1_2); tim2_0_0 = (((FFTW_REAL) FFTW_K923879532) * tim0_1_2) - (((FFTW_REAL) FFTW_K382683432) * tre0_1_2); tre2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_1_6) + (((FFTW_REAL) FFTW_K923879532) * tim0_1_6); tim2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_1_6) - (((FFTW_REAL) FFTW_K923879532) * tre0_1_6); tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K831469612) * tre0_1_3) + (((FFTW_REAL) FFTW_K555570233) * tim0_1_3); tim2_0_0 = (((FFTW_REAL) FFTW_K831469612) * tim0_1_3) - (((FFTW_REAL) FFTW_K555570233) * tre0_1_3); tre2_1_0 = (((FFTW_REAL) FFTW_K195090322) * tre0_1_7) + (((FFTW_REAL) FFTW_K980785280) * tim0_1_7); tim2_1_0 = (((FFTW_REAL) FFTW_K195090322) * tim0_1_7) - (((FFTW_REAL) FFTW_K980785280) * tre0_1_7); tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; c_re(inout[stride]) = tre2_0_0 + tre2_0_1; c_im(inout[stride]) = tim2_0_0 + tim2_0_1; c_re(inout[17 * stride]) = tre2_0_0 - tre2_0_1; c_im(inout[17 * stride]) = tim2_0_0 - tim2_0_1; c_re(inout[9 * stride]) = tre2_1_0 + tim2_1_1; c_im(inout[9 * stride]) = tim2_1_0 - tre2_1_1; c_re(inout[25 * stride]) = tre2_1_0 - tim2_1_1; c_im(inout[25 * stride]) = tim2_1_0 + tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 + tim1_1_2; tim2_0_0 = tim1_1_0 - tre1_1_2; tre2_1_0 = tre1_1_0 - tim1_1_2; tim2_1_0 = tim1_1_0 + tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 + tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 - tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 - tre1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 + tre1_1_3); tre2_0_1 = tre3_0_0 + tre3_1_0; tim2_0_1 = tim3_0_0 - tim3_1_0; tre2_1_1 = tre3_0_0 - tre3_1_0; tim2_1_1 = tim3_0_0 + tim3_1_0; } c_re(inout[5 * stride]) = tre2_0_0 + tre2_0_1; c_im(inout[5 * stride]) = tim2_0_0 + tim2_0_1; c_re(inout[21 * stride]) = tre2_0_0 - tre2_0_1; c_im(inout[21 * stride]) = tim2_0_0 - tim2_0_1; c_re(inout[13 * stride]) = tre2_1_0 + tim2_1_1; c_im(inout[13 * stride]) = tim2_1_0 - tre2_1_1; c_re(inout[29 * stride]) = tre2_1_0 - tim2_1_1; c_im(inout[29 * stride]) = tim2_1_0 + tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; tre1_0_0 = tre0_2_0 + tim0_2_4; tim1_0_0 = tim0_2_0 - tre0_2_4; tre1_1_0 = tre0_2_0 - tim0_2_4; tim1_1_0 = tim0_2_0 + tre0_2_4; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K923879532) * tre0_2_1) + (((FFTW_REAL) FFTW_K382683432) * tim0_2_1); tim2_0_0 = (((FFTW_REAL) FFTW_K923879532) * tim0_2_1) - (((FFTW_REAL) FFTW_K382683432) * tre0_2_1); tre2_1_0 = (((FFTW_REAL) FFTW_K923879532) * tim0_2_5) - (((FFTW_REAL) FFTW_K382683432) * tre0_2_5); tim2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_2_5) + (((FFTW_REAL) FFTW_K923879532) * tre0_2_5); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 - tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 + tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_2_2 + tim0_2_2); tim2_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_2_2 - tre0_2_2); tre2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_2_6 - tre0_2_6); tim2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_2_6 + tre0_2_6); tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 - tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 + tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_2_3) + (((FFTW_REAL) FFTW_K923879532) * tim0_2_3); tim2_0_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_2_3) - (((FFTW_REAL) FFTW_K923879532) * tre0_2_3); tre2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_2_7) - (((FFTW_REAL) FFTW_K923879532) * tre0_2_7); tim2_1_0 = (((FFTW_REAL) FFTW_K923879532) * tim0_2_7) + (((FFTW_REAL) FFTW_K382683432) * tre0_2_7); tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 - tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 + tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; c_re(inout[2 * stride]) = tre2_0_0 + tre2_0_1; c_im(inout[2 * stride]) = tim2_0_0 + tim2_0_1; c_re(inout[18 * stride]) = tre2_0_0 - tre2_0_1; c_im(inout[18 * stride]) = tim2_0_0 - tim2_0_1; c_re(inout[10 * stride]) = tre2_1_0 + tim2_1_1; c_im(inout[10 * stride]) = tim2_1_0 - tre2_1_1; c_re(inout[26 * stride]) = tre2_1_0 - tim2_1_1; c_im(inout[26 * stride]) = tim2_1_0 + tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 + tim1_1_2; tim2_0_0 = tim1_1_0 - tre1_1_2; tre2_1_0 = tre1_1_0 - tim1_1_2; tim2_1_0 = tim1_1_0 + tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 + tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 - tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 - tre1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 + tre1_1_3); tre2_0_1 = tre3_0_0 + tre3_1_0; tim2_0_1 = tim3_0_0 - tim3_1_0; tre2_1_1 = tre3_0_0 - tre3_1_0; tim2_1_1 = tim3_0_0 + tim3_1_0; } c_re(inout[6 * stride]) = tre2_0_0 + tre2_0_1; c_im(inout[6 * stride]) = tim2_0_0 + tim2_0_1; c_re(inout[22 * stride]) = tre2_0_0 - tre2_0_1; c_im(inout[22 * stride]) = tim2_0_0 - tim2_0_1; c_re(inout[14 * stride]) = tre2_1_0 + tim2_1_1; c_im(inout[14 * stride]) = tim2_1_0 - tre2_1_1; c_re(inout[30 * stride]) = tre2_1_0 - tim2_1_1; c_im(inout[30 * stride]) = tim2_1_0 + tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_3_4 - tre0_3_4); tim2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_3_4 + tre0_3_4); tre1_0_0 = tre0_3_0 + tre2_1_0; tim1_0_0 = tim0_3_0 - tim2_1_0; tre1_1_0 = tre0_3_0 - tre2_1_0; tim1_1_0 = tim0_3_0 + tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K831469612) * tre0_3_1) + (((FFTW_REAL) FFTW_K555570233) * tim0_3_1); tim2_0_0 = (((FFTW_REAL) FFTW_K831469612) * tim0_3_1) - (((FFTW_REAL) FFTW_K555570233) * tre0_3_1); tre2_1_0 = (((FFTW_REAL) FFTW_K195090322) * tim0_3_5) - (((FFTW_REAL) FFTW_K980785280) * tre0_3_5); tim2_1_0 = (((FFTW_REAL) FFTW_K980785280) * tim0_3_5) + (((FFTW_REAL) FFTW_K195090322) * tre0_3_5); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 - tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 + tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_3_2) + (((FFTW_REAL) FFTW_K923879532) * tim0_3_2); tim2_0_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_3_2) - (((FFTW_REAL) FFTW_K923879532) * tre0_3_2); tre2_1_0 = (((FFTW_REAL) FFTW_K923879532) * tre0_3_6) + (((FFTW_REAL) FFTW_K382683432) * tim0_3_6); tim2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_3_6) - (((FFTW_REAL) FFTW_K923879532) * tim0_3_6); tre1_0_2 = tre2_0_0 - tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 + tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K980785280) * tim0_3_3) - (((FFTW_REAL) FFTW_K195090322) * tre0_3_3); tim2_0_0 = (((FFTW_REAL) FFTW_K195090322) * tim0_3_3) + (((FFTW_REAL) FFTW_K980785280) * tre0_3_3); tre2_1_0 = (((FFTW_REAL) FFTW_K555570233) * tre0_3_7) + (((FFTW_REAL) FFTW_K831469612) * tim0_3_7); tim2_1_0 = (((FFTW_REAL) FFTW_K831469612) * tre0_3_7) - (((FFTW_REAL) FFTW_K555570233) * tim0_3_7); tre1_0_3 = tre2_0_0 - tre2_1_0; tim1_0_3 = tim2_1_0 - tim2_0_0; tre1_1_3 = tre2_0_0 + tre2_1_0; tim1_1_3 = (-(tim2_0_0 + tim2_1_0)); } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; c_re(inout[3 * stride]) = tre2_0_0 + tre2_0_1; c_im(inout[3 * stride]) = tim2_0_0 + tim2_0_1; c_re(inout[19 * stride]) = tre2_0_0 - tre2_0_1; c_im(inout[19 * stride]) = tim2_0_0 - tim2_0_1; c_re(inout[11 * stride]) = tre2_1_0 + tim2_1_1; c_im(inout[11 * stride]) = tim2_1_0 - tre2_1_1; c_re(inout[27 * stride]) = tre2_1_0 - tim2_1_1; c_im(inout[27 * stride]) = tim2_1_0 + tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 + tim1_1_2; tim2_0_0 = tim1_1_0 - tre1_1_2; tre2_1_0 = tre1_1_0 - tim1_1_2; tim2_1_0 = tim1_1_0 + tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 + tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 - tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 - tre1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 + tre1_1_3); tre2_0_1 = tre3_0_0 + tre3_1_0; tim2_0_1 = tim3_0_0 - tim3_1_0; tre2_1_1 = tre3_0_0 - tre3_1_0; tim2_1_1 = tim3_0_0 + tim3_1_0; } c_re(inout[7 * stride]) = tre2_0_0 + tre2_0_1; c_im(inout[7 * stride]) = tim2_0_0 + tim2_0_1; c_re(inout[23 * stride]) = tre2_0_0 - tre2_0_1; c_im(inout[23 * stride]) = tim2_0_0 - tim2_0_1; c_re(inout[15 * stride]) = tre2_1_0 + tim2_1_1; c_im(inout[15 * stride]) = tim2_1_0 - tre2_1_1; c_re(inout[31 * stride]) = tre2_1_0 - tim2_1_1; c_im(inout[31 * stride]) = tim2_1_0 + tre2_1_1; } } } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 22 FP additions and 12 FP multiplications */ void fftw_twiddle_4(FFTW_COMPLEX *A, const FFTW_COMPLEX *W, int stride, int m, int dist) { int i; COMPLEX *inout; inout = A; for (i = 0; i < m; i = i + 1, inout = inout + dist, W = W + 3) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_0_1; FFTW_REAL tim0_0_1; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_1_1; FFTW_REAL tim0_1_1; { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(inout[0]); tim1_0_0 = c_im(inout[0]); { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[2 * stride]); ti = c_im(inout[2 * stride]); twr = c_re(W[1]); twi = c_im(W[1]); tre1_1_0 = (tr * twr) - (ti * twi); tim1_1_0 = (tr * twi) + (ti * twr); } tre0_0_0 = tre1_0_0 + tre1_1_0; tim0_0_0 = tim1_0_0 + tim1_1_0; tre0_1_0 = tre1_0_0 - tre1_1_0; tim0_1_0 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[stride]); ti = c_im(inout[stride]); twr = c_re(W[0]); twi = c_im(W[0]); tre1_0_0 = (tr * twr) - (ti * twi); tim1_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[3 * stride]); ti = c_im(inout[3 * stride]); twr = c_re(W[2]); twi = c_im(W[2]); tre1_1_0 = (tr * twr) - (ti * twi); tim1_1_0 = (tr * twi) + (ti * twr); } tre0_0_1 = tre1_0_0 + tre1_1_0; tim0_0_1 = tim1_0_0 + tim1_1_0; tre0_1_1 = tre1_0_0 - tre1_1_0; tim0_1_1 = tim1_0_0 - tim1_1_0; } c_re(inout[0]) = tre0_0_0 + tre0_0_1; c_im(inout[0]) = tim0_0_0 + tim0_0_1; c_re(inout[2 * stride]) = tre0_0_0 - tre0_0_1; c_im(inout[2 * stride]) = tim0_0_0 - tim0_0_1; c_re(inout[stride]) = tre0_1_0 + tim0_1_1; c_im(inout[stride]) = tim0_1_0 - tre0_1_1; c_re(inout[3 * stride]) = tre0_1_0 - tim0_1_1; c_im(inout[3 * stride]) = tim0_1_0 + tre0_1_1; } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 52 FP additions and 32 FP multiplications */ void fftw_twiddle_5(FFTW_COMPLEX *A, const FFTW_COMPLEX *W, int stride, int m, int dist) { int i; COMPLEX *inout; inout = A; for (i = 0; i < m; i = i + 1, inout = inout + dist, W = W + 4) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_2_0; FFTW_REAL tim0_2_0; FFTW_REAL tre0_3_0; FFTW_REAL tim0_3_0; FFTW_REAL tre0_4_0; FFTW_REAL tim0_4_0; tre0_0_0 = c_re(inout[0]); tim0_0_0 = c_im(inout[0]); { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[stride]); ti = c_im(inout[stride]); twr = c_re(W[0]); twi = c_im(W[0]); tre0_1_0 = (tr * twr) - (ti * twi); tim0_1_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[2 * stride]); ti = c_im(inout[2 * stride]); twr = c_re(W[1]); twi = c_im(W[1]); tre0_2_0 = (tr * twr) - (ti * twi); tim0_2_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[3 * stride]); ti = c_im(inout[3 * stride]); twr = c_re(W[2]); twi = c_im(W[2]); tre0_3_0 = (tr * twr) - (ti * twi); tim0_3_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[4 * stride]); ti = c_im(inout[4 * stride]); twr = c_re(W[3]); twi = c_im(W[3]); tre0_4_0 = (tr * twr) - (ti * twi); tim0_4_0 = (tr * twi) + (ti * twr); } c_re(inout[0]) = tre0_0_0 + tre0_1_0 + tre0_2_0 + tre0_3_0 + tre0_4_0; c_im(inout[0]) = tim0_0_0 + tim0_1_0 + tim0_2_0 + tim0_3_0 + tim0_4_0; { FFTW_REAL tre1_0_0; FFTW_REAL tre1_1_0; tre1_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K309016994) * (tre0_1_0 + tre0_4_0)) - (((FFTW_REAL) FFTW_K809016994) * (tre0_2_0 + tre0_3_0)); tre1_1_0 = (((FFTW_REAL) FFTW_K951056516) * (tim0_1_0 - tim0_4_0)) + (((FFTW_REAL) FFTW_K587785252) * (tim0_2_0 - tim0_3_0)); c_re(inout[stride]) = tre1_0_0 + tre1_1_0; c_re(inout[4 * stride]) = tre1_0_0 - tre1_1_0; } { FFTW_REAL tim1_0_0; FFTW_REAL tim1_1_0; tim1_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K309016994) * (tim0_1_0 + tim0_4_0)) - (((FFTW_REAL) FFTW_K809016994) * (tim0_2_0 + tim0_3_0)); tim1_1_0 = (((FFTW_REAL) FFTW_K951056516) * (tre0_4_0 - tre0_1_0)) + (((FFTW_REAL) FFTW_K587785252) * (tre0_3_0 - tre0_2_0)); c_im(inout[stride]) = tim1_0_0 + tim1_1_0; c_im(inout[4 * stride]) = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tre1_1_0; tre1_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K309016994) * (tre0_2_0 + tre0_3_0)) - (((FFTW_REAL) FFTW_K809016994) * (tre0_1_0 + tre0_4_0)); tre1_1_0 = (((FFTW_REAL) FFTW_K587785252) * (tim0_1_0 - tim0_4_0)) + (((FFTW_REAL) FFTW_K951056516) * (tim0_3_0 - tim0_2_0)); c_re(inout[2 * stride]) = tre1_0_0 + tre1_1_0; c_re(inout[3 * stride]) = tre1_0_0 - tre1_1_0; } { FFTW_REAL tim1_0_0; FFTW_REAL tim1_1_0; tim1_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K309016994) * (tim0_2_0 + tim0_3_0)) - (((FFTW_REAL) FFTW_K809016994) * (tim0_1_0 + tim0_4_0)); tim1_1_0 = (((FFTW_REAL) FFTW_K587785252) * (tre0_4_0 - tre0_1_0)) + (((FFTW_REAL) FFTW_K951056516) * (tre0_2_0 - tre0_3_0)); c_im(inout[2 * stride]) = tim1_0_0 + tim1_1_0; c_im(inout[3 * stride]) = tim1_0_0 - tim1_1_0; } } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 50 FP additions and 28 FP multiplications */ void fftw_twiddle_6(FFTW_COMPLEX *A, const FFTW_COMPLEX *W, int stride, int m, int dist) { int i; COMPLEX *inout; inout = A; for (i = 0; i < m; i = i + 1, inout = inout + dist, W = W + 5) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_0_1; FFTW_REAL tim0_0_1; FFTW_REAL tre0_0_2; FFTW_REAL tim0_0_2; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_1_1; FFTW_REAL tim0_1_1; FFTW_REAL tre0_1_2; FFTW_REAL tim0_1_2; { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(inout[0]); tim1_0_0 = c_im(inout[0]); { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[3 * stride]); ti = c_im(inout[3 * stride]); twr = c_re(W[2]); twi = c_im(W[2]); tre1_1_0 = (tr * twr) - (ti * twi); tim1_1_0 = (tr * twi) + (ti * twr); } tre0_0_0 = tre1_0_0 + tre1_1_0; tim0_0_0 = tim1_0_0 + tim1_1_0; tre0_1_0 = tre1_0_0 - tre1_1_0; tim0_1_0 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[2 * stride]); ti = c_im(inout[2 * stride]); twr = c_re(W[1]); twi = c_im(W[1]); tre1_0_0 = (tr * twr) - (ti * twi); tim1_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[5 * stride]); ti = c_im(inout[5 * stride]); twr = c_re(W[4]); twi = c_im(W[4]); tre1_1_0 = (tr * twr) - (ti * twi); tim1_1_0 = (tr * twi) + (ti * twr); } tre0_0_1 = tre1_0_0 + tre1_1_0; tim0_0_1 = tim1_0_0 + tim1_1_0; tre0_1_1 = tre1_0_0 - tre1_1_0; tim0_1_1 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[4 * stride]); ti = c_im(inout[4 * stride]); twr = c_re(W[3]); twi = c_im(W[3]); tre1_0_0 = (tr * twr) - (ti * twi); tim1_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[stride]); ti = c_im(inout[stride]); twr = c_re(W[0]); twi = c_im(W[0]); tre1_1_0 = (tr * twr) - (ti * twi); tim1_1_0 = (tr * twi) + (ti * twr); } tre0_0_2 = tre1_0_0 + tre1_1_0; tim0_0_2 = tim1_0_0 + tim1_1_0; tre0_1_2 = tre1_0_0 - tre1_1_0; tim0_1_2 = tim1_0_0 - tim1_1_0; } c_re(inout[0]) = tre0_0_0 + tre0_0_1 + tre0_0_2; c_im(inout[0]) = tim0_0_0 + tim0_0_1 + tim0_0_2; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tre0_0_1 + tre0_0_2)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim0_0_1 - tim0_0_2); c_re(inout[4 * stride]) = tre2_0_0 + tre2_1_0; c_re(inout[2 * stride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tim0_0_1 + tim0_0_2)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre0_0_2 - tre0_0_1); c_im(inout[4 * stride]) = tim2_0_0 + tim2_1_0; c_im(inout[2 * stride]) = tim2_0_0 - tim2_1_0; } c_re(inout[3 * stride]) = tre0_1_0 + tre0_1_1 + tre0_1_2; c_im(inout[3 * stride]) = tim0_1_0 + tim0_1_1 + tim0_1_2; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_1_0 - (((FFTW_REAL) FFTW_K499999999) * (tre0_1_1 + tre0_1_2)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim0_1_1 - tim0_1_2); c_re(inout[stride]) = tre2_0_0 + tre2_1_0; c_re(inout[5 * stride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_1_0 - (((FFTW_REAL) FFTW_K499999999) * (tim0_1_1 + tim0_1_2)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre0_1_2 - tre0_1_1); c_im(inout[stride]) = tim2_0_0 + tim2_1_0; c_im(inout[5 * stride]) = tim2_0_0 - tim2_1_0; } } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 1054 FP additions and 500 FP multiplications */ void fftw_twiddle_64(FFTW_COMPLEX *A, const FFTW_COMPLEX *W, int stride, int m, int dist) { int i; COMPLEX *inout; inout = A; for (i = 0; i < m; i = i + 1, inout = inout + dist, W = W + 63) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_0_1; FFTW_REAL tim0_0_1; FFTW_REAL tre0_0_2; FFTW_REAL tim0_0_2; FFTW_REAL tre0_0_3; FFTW_REAL tim0_0_3; FFTW_REAL tre0_0_4; FFTW_REAL tim0_0_4; FFTW_REAL tre0_0_5; FFTW_REAL tim0_0_5; FFTW_REAL tre0_0_6; FFTW_REAL tim0_0_6; FFTW_REAL tre0_0_7; FFTW_REAL tim0_0_7; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_1_1; FFTW_REAL tim0_1_1; FFTW_REAL tre0_1_2; FFTW_REAL tim0_1_2; FFTW_REAL tre0_1_3; FFTW_REAL tim0_1_3; FFTW_REAL tre0_1_4; FFTW_REAL tim0_1_4; FFTW_REAL tre0_1_5; FFTW_REAL tim0_1_5; FFTW_REAL tre0_1_6; FFTW_REAL tim0_1_6; FFTW_REAL tre0_1_7; FFTW_REAL tim0_1_7; FFTW_REAL tre0_2_0; FFTW_REAL tim0_2_0; FFTW_REAL tre0_2_1; FFTW_REAL tim0_2_1; FFTW_REAL tre0_2_2; FFTW_REAL tim0_2_2; FFTW_REAL tre0_2_3; FFTW_REAL tim0_2_3; FFTW_REAL tre0_2_4; FFTW_REAL tim0_2_4; FFTW_REAL tre0_2_5; FFTW_REAL tim0_2_5; FFTW_REAL tre0_2_6; FFTW_REAL tim0_2_6; FFTW_REAL tre0_2_7; FFTW_REAL tim0_2_7; FFTW_REAL tre0_3_0; FFTW_REAL tim0_3_0; FFTW_REAL tre0_3_1; FFTW_REAL tim0_3_1; FFTW_REAL tre0_3_2; FFTW_REAL tim0_3_2; FFTW_REAL tre0_3_3; FFTW_REAL tim0_3_3; FFTW_REAL tre0_3_4; FFTW_REAL tim0_3_4; FFTW_REAL tre0_3_5; FFTW_REAL tim0_3_5; FFTW_REAL tre0_3_6; FFTW_REAL tim0_3_6; FFTW_REAL tre0_3_7; FFTW_REAL tim0_3_7; FFTW_REAL tre0_4_0; FFTW_REAL tim0_4_0; FFTW_REAL tre0_4_1; FFTW_REAL tim0_4_1; FFTW_REAL tre0_4_2; FFTW_REAL tim0_4_2; FFTW_REAL tre0_4_3; FFTW_REAL tim0_4_3; FFTW_REAL tre0_4_4; FFTW_REAL tim0_4_4; FFTW_REAL tre0_4_5; FFTW_REAL tim0_4_5; FFTW_REAL tre0_4_6; FFTW_REAL tim0_4_6; FFTW_REAL tre0_4_7; FFTW_REAL tim0_4_7; FFTW_REAL tre0_5_0; FFTW_REAL tim0_5_0; FFTW_REAL tre0_5_1; FFTW_REAL tim0_5_1; FFTW_REAL tre0_5_2; FFTW_REAL tim0_5_2; FFTW_REAL tre0_5_3; FFTW_REAL tim0_5_3; FFTW_REAL tre0_5_4; FFTW_REAL tim0_5_4; FFTW_REAL tre0_5_5; FFTW_REAL tim0_5_5; FFTW_REAL tre0_5_6; FFTW_REAL tim0_5_6; FFTW_REAL tre0_5_7; FFTW_REAL tim0_5_7; FFTW_REAL tre0_6_0; FFTW_REAL tim0_6_0; FFTW_REAL tre0_6_1; FFTW_REAL tim0_6_1; FFTW_REAL tre0_6_2; FFTW_REAL tim0_6_2; FFTW_REAL tre0_6_3; FFTW_REAL tim0_6_3; FFTW_REAL tre0_6_4; FFTW_REAL tim0_6_4; FFTW_REAL tre0_6_5; FFTW_REAL tim0_6_5; FFTW_REAL tre0_6_6; FFTW_REAL tim0_6_6; FFTW_REAL tre0_6_7; FFTW_REAL tim0_6_7; FFTW_REAL tre0_7_0; FFTW_REAL tim0_7_0; FFTW_REAL tre0_7_1; FFTW_REAL tim0_7_1; FFTW_REAL tre0_7_2; FFTW_REAL tim0_7_2; FFTW_REAL tre0_7_3; FFTW_REAL tim0_7_3; FFTW_REAL tre0_7_4; FFTW_REAL tim0_7_4; FFTW_REAL tre0_7_5; FFTW_REAL tim0_7_5; FFTW_REAL tre0_7_6; FFTW_REAL tim0_7_6; FFTW_REAL tre0_7_7; FFTW_REAL tim0_7_7; { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(inout[0]); tim2_0_0 = c_im(inout[0]); { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[32 * stride]); ti = c_im(inout[32 * stride]); twr = c_re(W[31]); twi = c_im(W[31]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[8 * stride]); ti = c_im(inout[8 * stride]); twr = c_re(W[7]); twi = c_im(W[7]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[40 * stride]); ti = c_im(inout[40 * stride]); twr = c_re(W[39]); twi = c_im(W[39]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[16 * stride]); ti = c_im(inout[16 * stride]); twr = c_re(W[15]); twi = c_im(W[15]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[48 * stride]); ti = c_im(inout[48 * stride]); twr = c_re(W[47]); twi = c_im(W[47]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[24 * stride]); ti = c_im(inout[24 * stride]); twr = c_re(W[23]); twi = c_im(W[23]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[56 * stride]); ti = c_im(inout[56 * stride]); twr = c_re(W[55]); twi = c_im(W[55]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; tre0_0_0 = tre2_0_0 + tre2_0_1; tim0_0_0 = tim2_0_0 + tim2_0_1; tre0_4_0 = tre2_0_0 - tre2_0_1; tim0_4_0 = tim2_0_0 - tim2_0_1; tre0_2_0 = tre2_1_0 + tim2_1_1; tim0_2_0 = tim2_1_0 - tre2_1_1; tre0_6_0 = tre2_1_0 - tim2_1_1; tim0_6_0 = tim2_1_0 + tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 + tim1_1_2; tim2_0_0 = tim1_1_0 - tre1_1_2; tre2_1_0 = tre1_1_0 - tim1_1_2; tim2_1_0 = tim1_1_0 + tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 + tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 - tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 - tre1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 + tre1_1_3); tre2_0_1 = tre3_0_0 + tre3_1_0; tim2_0_1 = tim3_0_0 - tim3_1_0; tre2_1_1 = tre3_0_0 - tre3_1_0; tim2_1_1 = tim3_0_0 + tim3_1_0; } tre0_1_0 = tre2_0_0 + tre2_0_1; tim0_1_0 = tim2_0_0 + tim2_0_1; tre0_5_0 = tre2_0_0 - tre2_0_1; tim0_5_0 = tim2_0_0 - tim2_0_1; tre0_3_0 = tre2_1_0 + tim2_1_1; tim0_3_0 = tim2_1_0 - tre2_1_1; tre0_7_0 = tre2_1_0 - tim2_1_1; tim0_7_0 = tim2_1_0 + tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[stride]); ti = c_im(inout[stride]); twr = c_re(W[0]); twi = c_im(W[0]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[33 * stride]); ti = c_im(inout[33 * stride]); twr = c_re(W[32]); twi = c_im(W[32]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[9 * stride]); ti = c_im(inout[9 * stride]); twr = c_re(W[8]); twi = c_im(W[8]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[41 * stride]); ti = c_im(inout[41 * stride]); twr = c_re(W[40]); twi = c_im(W[40]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[17 * stride]); ti = c_im(inout[17 * stride]); twr = c_re(W[16]); twi = c_im(W[16]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[49 * stride]); ti = c_im(inout[49 * stride]); twr = c_re(W[48]); twi = c_im(W[48]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[25 * stride]); ti = c_im(inout[25 * stride]); twr = c_re(W[24]); twi = c_im(W[24]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[57 * stride]); ti = c_im(inout[57 * stride]); twr = c_re(W[56]); twi = c_im(W[56]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; tre0_0_1 = tre2_0_0 + tre2_0_1; tim0_0_1 = tim2_0_0 + tim2_0_1; tre0_4_1 = tre2_0_0 - tre2_0_1; tim0_4_1 = tim2_0_0 - tim2_0_1; tre0_2_1 = tre2_1_0 + tim2_1_1; tim0_2_1 = tim2_1_0 - tre2_1_1; tre0_6_1 = tre2_1_0 - tim2_1_1; tim0_6_1 = tim2_1_0 + tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 + tim1_1_2; tim2_0_0 = tim1_1_0 - tre1_1_2; tre2_1_0 = tre1_1_0 - tim1_1_2; tim2_1_0 = tim1_1_0 + tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 + tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 - tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 - tre1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 + tre1_1_3); tre2_0_1 = tre3_0_0 + tre3_1_0; tim2_0_1 = tim3_0_0 - tim3_1_0; tre2_1_1 = tre3_0_0 - tre3_1_0; tim2_1_1 = tim3_0_0 + tim3_1_0; } tre0_1_1 = tre2_0_0 + tre2_0_1; tim0_1_1 = tim2_0_0 + tim2_0_1; tre0_5_1 = tre2_0_0 - tre2_0_1; tim0_5_1 = tim2_0_0 - tim2_0_1; tre0_3_1 = tre2_1_0 + tim2_1_1; tim0_3_1 = tim2_1_0 - tre2_1_1; tre0_7_1 = tre2_1_0 - tim2_1_1; tim0_7_1 = tim2_1_0 + tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[2 * stride]); ti = c_im(inout[2 * stride]); twr = c_re(W[1]); twi = c_im(W[1]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[34 * stride]); ti = c_im(inout[34 * stride]); twr = c_re(W[33]); twi = c_im(W[33]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[10 * stride]); ti = c_im(inout[10 * stride]); twr = c_re(W[9]); twi = c_im(W[9]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[42 * stride]); ti = c_im(inout[42 * stride]); twr = c_re(W[41]); twi = c_im(W[41]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[18 * stride]); ti = c_im(inout[18 * stride]); twr = c_re(W[17]); twi = c_im(W[17]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[50 * stride]); ti = c_im(inout[50 * stride]); twr = c_re(W[49]); twi = c_im(W[49]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[26 * stride]); ti = c_im(inout[26 * stride]); twr = c_re(W[25]); twi = c_im(W[25]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[58 * stride]); ti = c_im(inout[58 * stride]); twr = c_re(W[57]); twi = c_im(W[57]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; tre0_0_2 = tre2_0_0 + tre2_0_1; tim0_0_2 = tim2_0_0 + tim2_0_1; tre0_4_2 = tre2_0_0 - tre2_0_1; tim0_4_2 = tim2_0_0 - tim2_0_1; tre0_2_2 = tre2_1_0 + tim2_1_1; tim0_2_2 = tim2_1_0 - tre2_1_1; tre0_6_2 = tre2_1_0 - tim2_1_1; tim0_6_2 = tim2_1_0 + tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 + tim1_1_2; tim2_0_0 = tim1_1_0 - tre1_1_2; tre2_1_0 = tre1_1_0 - tim1_1_2; tim2_1_0 = tim1_1_0 + tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 + tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 - tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 - tre1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 + tre1_1_3); tre2_0_1 = tre3_0_0 + tre3_1_0; tim2_0_1 = tim3_0_0 - tim3_1_0; tre2_1_1 = tre3_0_0 - tre3_1_0; tim2_1_1 = tim3_0_0 + tim3_1_0; } tre0_1_2 = tre2_0_0 + tre2_0_1; tim0_1_2 = tim2_0_0 + tim2_0_1; tre0_5_2 = tre2_0_0 - tre2_0_1; tim0_5_2 = tim2_0_0 - tim2_0_1; tre0_3_2 = tre2_1_0 + tim2_1_1; tim0_3_2 = tim2_1_0 - tre2_1_1; tre0_7_2 = tre2_1_0 - tim2_1_1; tim0_7_2 = tim2_1_0 + tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[3 * stride]); ti = c_im(inout[3 * stride]); twr = c_re(W[2]); twi = c_im(W[2]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[35 * stride]); ti = c_im(inout[35 * stride]); twr = c_re(W[34]); twi = c_im(W[34]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[11 * stride]); ti = c_im(inout[11 * stride]); twr = c_re(W[10]); twi = c_im(W[10]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[43 * stride]); ti = c_im(inout[43 * stride]); twr = c_re(W[42]); twi = c_im(W[42]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[19 * stride]); ti = c_im(inout[19 * stride]); twr = c_re(W[18]); twi = c_im(W[18]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[51 * stride]); ti = c_im(inout[51 * stride]); twr = c_re(W[50]); twi = c_im(W[50]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[27 * stride]); ti = c_im(inout[27 * stride]); twr = c_re(W[26]); twi = c_im(W[26]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[59 * stride]); ti = c_im(inout[59 * stride]); twr = c_re(W[58]); twi = c_im(W[58]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; tre0_0_3 = tre2_0_0 + tre2_0_1; tim0_0_3 = tim2_0_0 + tim2_0_1; tre0_4_3 = tre2_0_0 - tre2_0_1; tim0_4_3 = tim2_0_0 - tim2_0_1; tre0_2_3 = tre2_1_0 + tim2_1_1; tim0_2_3 = tim2_1_0 - tre2_1_1; tre0_6_3 = tre2_1_0 - tim2_1_1; tim0_6_3 = tim2_1_0 + tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 + tim1_1_2; tim2_0_0 = tim1_1_0 - tre1_1_2; tre2_1_0 = tre1_1_0 - tim1_1_2; tim2_1_0 = tim1_1_0 + tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 + tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 - tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 - tre1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 + tre1_1_3); tre2_0_1 = tre3_0_0 + tre3_1_0; tim2_0_1 = tim3_0_0 - tim3_1_0; tre2_1_1 = tre3_0_0 - tre3_1_0; tim2_1_1 = tim3_0_0 + tim3_1_0; } tre0_1_3 = tre2_0_0 + tre2_0_1; tim0_1_3 = tim2_0_0 + tim2_0_1; tre0_5_3 = tre2_0_0 - tre2_0_1; tim0_5_3 = tim2_0_0 - tim2_0_1; tre0_3_3 = tre2_1_0 + tim2_1_1; tim0_3_3 = tim2_1_0 - tre2_1_1; tre0_7_3 = tre2_1_0 - tim2_1_1; tim0_7_3 = tim2_1_0 + tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[4 * stride]); ti = c_im(inout[4 * stride]); twr = c_re(W[3]); twi = c_im(W[3]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[36 * stride]); ti = c_im(inout[36 * stride]); twr = c_re(W[35]); twi = c_im(W[35]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[12 * stride]); ti = c_im(inout[12 * stride]); twr = c_re(W[11]); twi = c_im(W[11]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[44 * stride]); ti = c_im(inout[44 * stride]); twr = c_re(W[43]); twi = c_im(W[43]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[20 * stride]); ti = c_im(inout[20 * stride]); twr = c_re(W[19]); twi = c_im(W[19]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[52 * stride]); ti = c_im(inout[52 * stride]); twr = c_re(W[51]); twi = c_im(W[51]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[28 * stride]); ti = c_im(inout[28 * stride]); twr = c_re(W[27]); twi = c_im(W[27]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[60 * stride]); ti = c_im(inout[60 * stride]); twr = c_re(W[59]); twi = c_im(W[59]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; tre0_0_4 = tre2_0_0 + tre2_0_1; tim0_0_4 = tim2_0_0 + tim2_0_1; tre0_4_4 = tre2_0_0 - tre2_0_1; tim0_4_4 = tim2_0_0 - tim2_0_1; tre0_2_4 = tre2_1_0 + tim2_1_1; tim0_2_4 = tim2_1_0 - tre2_1_1; tre0_6_4 = tre2_1_0 - tim2_1_1; tim0_6_4 = tim2_1_0 + tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 + tim1_1_2; tim2_0_0 = tim1_1_0 - tre1_1_2; tre2_1_0 = tre1_1_0 - tim1_1_2; tim2_1_0 = tim1_1_0 + tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 + tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 - tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 - tre1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 + tre1_1_3); tre2_0_1 = tre3_0_0 + tre3_1_0; tim2_0_1 = tim3_0_0 - tim3_1_0; tre2_1_1 = tre3_0_0 - tre3_1_0; tim2_1_1 = tim3_0_0 + tim3_1_0; } tre0_1_4 = tre2_0_0 + tre2_0_1; tim0_1_4 = tim2_0_0 + tim2_0_1; tre0_5_4 = tre2_0_0 - tre2_0_1; tim0_5_4 = tim2_0_0 - tim2_0_1; tre0_3_4 = tre2_1_0 + tim2_1_1; tim0_3_4 = tim2_1_0 - tre2_1_1; tre0_7_4 = tre2_1_0 - tim2_1_1; tim0_7_4 = tim2_1_0 + tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[5 * stride]); ti = c_im(inout[5 * stride]); twr = c_re(W[4]); twi = c_im(W[4]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[37 * stride]); ti = c_im(inout[37 * stride]); twr = c_re(W[36]); twi = c_im(W[36]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[13 * stride]); ti = c_im(inout[13 * stride]); twr = c_re(W[12]); twi = c_im(W[12]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[45 * stride]); ti = c_im(inout[45 * stride]); twr = c_re(W[44]); twi = c_im(W[44]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[21 * stride]); ti = c_im(inout[21 * stride]); twr = c_re(W[20]); twi = c_im(W[20]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[53 * stride]); ti = c_im(inout[53 * stride]); twr = c_re(W[52]); twi = c_im(W[52]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[29 * stride]); ti = c_im(inout[29 * stride]); twr = c_re(W[28]); twi = c_im(W[28]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[61 * stride]); ti = c_im(inout[61 * stride]); twr = c_re(W[60]); twi = c_im(W[60]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; tre0_0_5 = tre2_0_0 + tre2_0_1; tim0_0_5 = tim2_0_0 + tim2_0_1; tre0_4_5 = tre2_0_0 - tre2_0_1; tim0_4_5 = tim2_0_0 - tim2_0_1; tre0_2_5 = tre2_1_0 + tim2_1_1; tim0_2_5 = tim2_1_0 - tre2_1_1; tre0_6_5 = tre2_1_0 - tim2_1_1; tim0_6_5 = tim2_1_0 + tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 + tim1_1_2; tim2_0_0 = tim1_1_0 - tre1_1_2; tre2_1_0 = tre1_1_0 - tim1_1_2; tim2_1_0 = tim1_1_0 + tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 + tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 - tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 - tre1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 + tre1_1_3); tre2_0_1 = tre3_0_0 + tre3_1_0; tim2_0_1 = tim3_0_0 - tim3_1_0; tre2_1_1 = tre3_0_0 - tre3_1_0; tim2_1_1 = tim3_0_0 + tim3_1_0; } tre0_1_5 = tre2_0_0 + tre2_0_1; tim0_1_5 = tim2_0_0 + tim2_0_1; tre0_5_5 = tre2_0_0 - tre2_0_1; tim0_5_5 = tim2_0_0 - tim2_0_1; tre0_3_5 = tre2_1_0 + tim2_1_1; tim0_3_5 = tim2_1_0 - tre2_1_1; tre0_7_5 = tre2_1_0 - tim2_1_1; tim0_7_5 = tim2_1_0 + tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[6 * stride]); ti = c_im(inout[6 * stride]); twr = c_re(W[5]); twi = c_im(W[5]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[38 * stride]); ti = c_im(inout[38 * stride]); twr = c_re(W[37]); twi = c_im(W[37]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[14 * stride]); ti = c_im(inout[14 * stride]); twr = c_re(W[13]); twi = c_im(W[13]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[46 * stride]); ti = c_im(inout[46 * stride]); twr = c_re(W[45]); twi = c_im(W[45]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[22 * stride]); ti = c_im(inout[22 * stride]); twr = c_re(W[21]); twi = c_im(W[21]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[54 * stride]); ti = c_im(inout[54 * stride]); twr = c_re(W[53]); twi = c_im(W[53]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[30 * stride]); ti = c_im(inout[30 * stride]); twr = c_re(W[29]); twi = c_im(W[29]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[62 * stride]); ti = c_im(inout[62 * stride]); twr = c_re(W[61]); twi = c_im(W[61]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; tre0_0_6 = tre2_0_0 + tre2_0_1; tim0_0_6 = tim2_0_0 + tim2_0_1; tre0_4_6 = tre2_0_0 - tre2_0_1; tim0_4_6 = tim2_0_0 - tim2_0_1; tre0_2_6 = tre2_1_0 + tim2_1_1; tim0_2_6 = tim2_1_0 - tre2_1_1; tre0_6_6 = tre2_1_0 - tim2_1_1; tim0_6_6 = tim2_1_0 + tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 + tim1_1_2; tim2_0_0 = tim1_1_0 - tre1_1_2; tre2_1_0 = tre1_1_0 - tim1_1_2; tim2_1_0 = tim1_1_0 + tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 + tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 - tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 - tre1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 + tre1_1_3); tre2_0_1 = tre3_0_0 + tre3_1_0; tim2_0_1 = tim3_0_0 - tim3_1_0; tre2_1_1 = tre3_0_0 - tre3_1_0; tim2_1_1 = tim3_0_0 + tim3_1_0; } tre0_1_6 = tre2_0_0 + tre2_0_1; tim0_1_6 = tim2_0_0 + tim2_0_1; tre0_5_6 = tre2_0_0 - tre2_0_1; tim0_5_6 = tim2_0_0 - tim2_0_1; tre0_3_6 = tre2_1_0 + tim2_1_1; tim0_3_6 = tim2_1_0 - tre2_1_1; tre0_7_6 = tre2_1_0 - tim2_1_1; tim0_7_6 = tim2_1_0 + tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[7 * stride]); ti = c_im(inout[7 * stride]); twr = c_re(W[6]); twi = c_im(W[6]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[39 * stride]); ti = c_im(inout[39 * stride]); twr = c_re(W[38]); twi = c_im(W[38]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[15 * stride]); ti = c_im(inout[15 * stride]); twr = c_re(W[14]); twi = c_im(W[14]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[47 * stride]); ti = c_im(inout[47 * stride]); twr = c_re(W[46]); twi = c_im(W[46]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[23 * stride]); ti = c_im(inout[23 * stride]); twr = c_re(W[22]); twi = c_im(W[22]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[55 * stride]); ti = c_im(inout[55 * stride]); twr = c_re(W[54]); twi = c_im(W[54]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[31 * stride]); ti = c_im(inout[31 * stride]); twr = c_re(W[30]); twi = c_im(W[30]); tre2_0_0 = (tr * twr) - (ti * twi); tim2_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[63 * stride]); ti = c_im(inout[63 * stride]); twr = c_re(W[62]); twi = c_im(W[62]); tre2_1_0 = (tr * twr) - (ti * twi); tim2_1_0 = (tr * twi) + (ti * twr); } tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; tre0_0_7 = tre2_0_0 + tre2_0_1; tim0_0_7 = tim2_0_0 + tim2_0_1; tre0_4_7 = tre2_0_0 - tre2_0_1; tim0_4_7 = tim2_0_0 - tim2_0_1; tre0_2_7 = tre2_1_0 + tim2_1_1; tim0_2_7 = tim2_1_0 - tre2_1_1; tre0_6_7 = tre2_1_0 - tim2_1_1; tim0_6_7 = tim2_1_0 + tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 + tim1_1_2; tim2_0_0 = tim1_1_0 - tre1_1_2; tre2_1_0 = tre1_1_0 - tim1_1_2; tim2_1_0 = tim1_1_0 + tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 + tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 - tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 - tre1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 + tre1_1_3); tre2_0_1 = tre3_0_0 + tre3_1_0; tim2_0_1 = tim3_0_0 - tim3_1_0; tre2_1_1 = tre3_0_0 - tre3_1_0; tim2_1_1 = tim3_0_0 + tim3_1_0; } tre0_1_7 = tre2_0_0 + tre2_0_1; tim0_1_7 = tim2_0_0 + tim2_0_1; tre0_5_7 = tre2_0_0 - tre2_0_1; tim0_5_7 = tim2_0_0 - tim2_0_1; tre0_3_7 = tre2_1_0 + tim2_1_1; tim0_3_7 = tim2_1_0 - tre2_1_1; tre0_7_7 = tre2_1_0 - tim2_1_1; tim0_7_7 = tim2_1_0 + tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; tre1_0_0 = tre0_0_0 + tre0_0_4; tim1_0_0 = tim0_0_0 + tim0_0_4; tre1_1_0 = tre0_0_0 - tre0_0_4; tim1_1_0 = tim0_0_0 - tim0_0_4; tre1_0_1 = tre0_0_1 + tre0_0_5; tim1_0_1 = tim0_0_1 + tim0_0_5; tre1_1_1 = tre0_0_1 - tre0_0_5; tim1_1_1 = tim0_0_1 - tim0_0_5; tre1_0_2 = tre0_0_2 + tre0_0_6; tim1_0_2 = tim0_0_2 + tim0_0_6; tre1_1_2 = tre0_0_2 - tre0_0_6; tim1_1_2 = tim0_0_2 - tim0_0_6; tre1_0_3 = tre0_0_3 + tre0_0_7; tim1_0_3 = tim0_0_3 + tim0_0_7; tre1_1_3 = tre0_0_3 - tre0_0_7; tim1_1_3 = tim0_0_3 - tim0_0_7; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; c_re(inout[0]) = tre2_0_0 + tre2_0_1; c_im(inout[0]) = tim2_0_0 + tim2_0_1; c_re(inout[32 * stride]) = tre2_0_0 - tre2_0_1; c_im(inout[32 * stride]) = tim2_0_0 - tim2_0_1; c_re(inout[16 * stride]) = tre2_1_0 + tim2_1_1; c_im(inout[16 * stride]) = tim2_1_0 - tre2_1_1; c_re(inout[48 * stride]) = tre2_1_0 - tim2_1_1; c_im(inout[48 * stride]) = tim2_1_0 + tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 + tim1_1_2; tim2_0_0 = tim1_1_0 - tre1_1_2; tre2_1_0 = tre1_1_0 - tim1_1_2; tim2_1_0 = tim1_1_0 + tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 + tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 - tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 - tre1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 + tre1_1_3); tre2_0_1 = tre3_0_0 + tre3_1_0; tim2_0_1 = tim3_0_0 - tim3_1_0; tre2_1_1 = tre3_0_0 - tre3_1_0; tim2_1_1 = tim3_0_0 + tim3_1_0; } c_re(inout[8 * stride]) = tre2_0_0 + tre2_0_1; c_im(inout[8 * stride]) = tim2_0_0 + tim2_0_1; c_re(inout[40 * stride]) = tre2_0_0 - tre2_0_1; c_im(inout[40 * stride]) = tim2_0_0 - tim2_0_1; c_re(inout[24 * stride]) = tre2_1_0 + tim2_1_1; c_im(inout[24 * stride]) = tim2_1_0 - tre2_1_1; c_re(inout[56 * stride]) = tre2_1_0 - tim2_1_1; c_im(inout[56 * stride]) = tim2_1_0 + tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_1_0 = (((FFTW_REAL) FFTW_K923879532) * tre0_1_4) + (((FFTW_REAL) FFTW_K382683432) * tim0_1_4); tim2_1_0 = (((FFTW_REAL) FFTW_K923879532) * tim0_1_4) - (((FFTW_REAL) FFTW_K382683432) * tre0_1_4); tre1_0_0 = tre0_1_0 + tre2_1_0; tim1_0_0 = tim0_1_0 + tim2_1_0; tre1_1_0 = tre0_1_0 - tre2_1_0; tim1_1_0 = tim0_1_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K995184726) * tre0_1_1) + (((FFTW_REAL) FFTW_K098017140) * tim0_1_1); tim2_0_0 = (((FFTW_REAL) FFTW_K995184726) * tim0_1_1) - (((FFTW_REAL) FFTW_K098017140) * tre0_1_1); tre2_1_0 = (((FFTW_REAL) FFTW_K881921264) * tre0_1_5) + (((FFTW_REAL) FFTW_K471396736) * tim0_1_5); tim2_1_0 = (((FFTW_REAL) FFTW_K881921264) * tim0_1_5) - (((FFTW_REAL) FFTW_K471396736) * tre0_1_5); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K980785280) * tre0_1_2) + (((FFTW_REAL) FFTW_K195090322) * tim0_1_2); tim2_0_0 = (((FFTW_REAL) FFTW_K980785280) * tim0_1_2) - (((FFTW_REAL) FFTW_K195090322) * tre0_1_2); tre2_1_0 = (((FFTW_REAL) FFTW_K831469612) * tre0_1_6) + (((FFTW_REAL) FFTW_K555570233) * tim0_1_6); tim2_1_0 = (((FFTW_REAL) FFTW_K831469612) * tim0_1_6) - (((FFTW_REAL) FFTW_K555570233) * tre0_1_6); tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K956940335) * tre0_1_3) + (((FFTW_REAL) FFTW_K290284677) * tim0_1_3); tim2_0_0 = (((FFTW_REAL) FFTW_K956940335) * tim0_1_3) - (((FFTW_REAL) FFTW_K290284677) * tre0_1_3); tre2_1_0 = (((FFTW_REAL) FFTW_K773010453) * tre0_1_7) + (((FFTW_REAL) FFTW_K634393284) * tim0_1_7); tim2_1_0 = (((FFTW_REAL) FFTW_K773010453) * tim0_1_7) - (((FFTW_REAL) FFTW_K634393284) * tre0_1_7); tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; c_re(inout[stride]) = tre2_0_0 + tre2_0_1; c_im(inout[stride]) = tim2_0_0 + tim2_0_1; c_re(inout[33 * stride]) = tre2_0_0 - tre2_0_1; c_im(inout[33 * stride]) = tim2_0_0 - tim2_0_1; c_re(inout[17 * stride]) = tre2_1_0 + tim2_1_1; c_im(inout[17 * stride]) = tim2_1_0 - tre2_1_1; c_re(inout[49 * stride]) = tre2_1_0 - tim2_1_1; c_im(inout[49 * stride]) = tim2_1_0 + tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 + tim1_1_2; tim2_0_0 = tim1_1_0 - tre1_1_2; tre2_1_0 = tre1_1_0 - tim1_1_2; tim2_1_0 = tim1_1_0 + tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 + tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 - tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 - tre1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 + tre1_1_3); tre2_0_1 = tre3_0_0 + tre3_1_0; tim2_0_1 = tim3_0_0 - tim3_1_0; tre2_1_1 = tre3_0_0 - tre3_1_0; tim2_1_1 = tim3_0_0 + tim3_1_0; } c_re(inout[9 * stride]) = tre2_0_0 + tre2_0_1; c_im(inout[9 * stride]) = tim2_0_0 + tim2_0_1; c_re(inout[41 * stride]) = tre2_0_0 - tre2_0_1; c_im(inout[41 * stride]) = tim2_0_0 - tim2_0_1; c_re(inout[25 * stride]) = tre2_1_0 + tim2_1_1; c_im(inout[25 * stride]) = tim2_1_0 - tre2_1_1; c_re(inout[57 * stride]) = tre2_1_0 - tim2_1_1; c_im(inout[57 * stride]) = tim2_1_0 + tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_2_4 + tim0_2_4); tim2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_2_4 - tre0_2_4); tre1_0_0 = tre0_2_0 + tre2_1_0; tim1_0_0 = tim0_2_0 + tim2_1_0; tre1_1_0 = tre0_2_0 - tre2_1_0; tim1_1_0 = tim0_2_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K980785280) * tre0_2_1) + (((FFTW_REAL) FFTW_K195090322) * tim0_2_1); tim2_0_0 = (((FFTW_REAL) FFTW_K980785280) * tim0_2_1) - (((FFTW_REAL) FFTW_K195090322) * tre0_2_1); tre2_1_0 = (((FFTW_REAL) FFTW_K555570233) * tre0_2_5) + (((FFTW_REAL) FFTW_K831469612) * tim0_2_5); tim2_1_0 = (((FFTW_REAL) FFTW_K555570233) * tim0_2_5) - (((FFTW_REAL) FFTW_K831469612) * tre0_2_5); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K923879532) * tre0_2_2) + (((FFTW_REAL) FFTW_K382683432) * tim0_2_2); tim2_0_0 = (((FFTW_REAL) FFTW_K923879532) * tim0_2_2) - (((FFTW_REAL) FFTW_K382683432) * tre0_2_2); tre2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_2_6) + (((FFTW_REAL) FFTW_K923879532) * tim0_2_6); tim2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_2_6) - (((FFTW_REAL) FFTW_K923879532) * tre0_2_6); tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K831469612) * tre0_2_3) + (((FFTW_REAL) FFTW_K555570233) * tim0_2_3); tim2_0_0 = (((FFTW_REAL) FFTW_K831469612) * tim0_2_3) - (((FFTW_REAL) FFTW_K555570233) * tre0_2_3); tre2_1_0 = (((FFTW_REAL) FFTW_K195090322) * tre0_2_7) + (((FFTW_REAL) FFTW_K980785280) * tim0_2_7); tim2_1_0 = (((FFTW_REAL) FFTW_K195090322) * tim0_2_7) - (((FFTW_REAL) FFTW_K980785280) * tre0_2_7); tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; c_re(inout[2 * stride]) = tre2_0_0 + tre2_0_1; c_im(inout[2 * stride]) = tim2_0_0 + tim2_0_1; c_re(inout[34 * stride]) = tre2_0_0 - tre2_0_1; c_im(inout[34 * stride]) = tim2_0_0 - tim2_0_1; c_re(inout[18 * stride]) = tre2_1_0 + tim2_1_1; c_im(inout[18 * stride]) = tim2_1_0 - tre2_1_1; c_re(inout[50 * stride]) = tre2_1_0 - tim2_1_1; c_im(inout[50 * stride]) = tim2_1_0 + tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 + tim1_1_2; tim2_0_0 = tim1_1_0 - tre1_1_2; tre2_1_0 = tre1_1_0 - tim1_1_2; tim2_1_0 = tim1_1_0 + tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 + tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 - tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 - tre1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 + tre1_1_3); tre2_0_1 = tre3_0_0 + tre3_1_0; tim2_0_1 = tim3_0_0 - tim3_1_0; tre2_1_1 = tre3_0_0 - tre3_1_0; tim2_1_1 = tim3_0_0 + tim3_1_0; } c_re(inout[10 * stride]) = tre2_0_0 + tre2_0_1; c_im(inout[10 * stride]) = tim2_0_0 + tim2_0_1; c_re(inout[42 * stride]) = tre2_0_0 - tre2_0_1; c_im(inout[42 * stride]) = tim2_0_0 - tim2_0_1; c_re(inout[26 * stride]) = tre2_1_0 + tim2_1_1; c_im(inout[26 * stride]) = tim2_1_0 - tre2_1_1; c_re(inout[58 * stride]) = tre2_1_0 - tim2_1_1; c_im(inout[58 * stride]) = tim2_1_0 + tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_3_4) + (((FFTW_REAL) FFTW_K923879532) * tim0_3_4); tim2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_3_4) - (((FFTW_REAL) FFTW_K923879532) * tre0_3_4); tre1_0_0 = tre0_3_0 + tre2_1_0; tim1_0_0 = tim0_3_0 + tim2_1_0; tre1_1_0 = tre0_3_0 - tre2_1_0; tim1_1_0 = tim0_3_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K956940335) * tre0_3_1) + (((FFTW_REAL) FFTW_K290284677) * tim0_3_1); tim2_0_0 = (((FFTW_REAL) FFTW_K956940335) * tim0_3_1) - (((FFTW_REAL) FFTW_K290284677) * tre0_3_1); tre2_1_0 = (((FFTW_REAL) FFTW_K098017140) * tre0_3_5) + (((FFTW_REAL) FFTW_K995184726) * tim0_3_5); tim2_1_0 = (((FFTW_REAL) FFTW_K098017140) * tim0_3_5) - (((FFTW_REAL) FFTW_K995184726) * tre0_3_5); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K831469612) * tre0_3_2) + (((FFTW_REAL) FFTW_K555570233) * tim0_3_2); tim2_0_0 = (((FFTW_REAL) FFTW_K831469612) * tim0_3_2) - (((FFTW_REAL) FFTW_K555570233) * tre0_3_2); tre2_1_0 = (((FFTW_REAL) FFTW_K980785280) * tim0_3_6) - (((FFTW_REAL) FFTW_K195090322) * tre0_3_6); tim2_1_0 = (((FFTW_REAL) FFTW_K195090322) * tim0_3_6) + (((FFTW_REAL) FFTW_K980785280) * tre0_3_6); tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 - tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 + tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K634393284) * tre0_3_3) + (((FFTW_REAL) FFTW_K773010453) * tim0_3_3); tim2_0_0 = (((FFTW_REAL) FFTW_K634393284) * tim0_3_3) - (((FFTW_REAL) FFTW_K773010453) * tre0_3_3); tre2_1_0 = (((FFTW_REAL) FFTW_K881921264) * tim0_3_7) - (((FFTW_REAL) FFTW_K471396736) * tre0_3_7); tim2_1_0 = (((FFTW_REAL) FFTW_K471396736) * tim0_3_7) + (((FFTW_REAL) FFTW_K881921264) * tre0_3_7); tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 - tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 + tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; c_re(inout[3 * stride]) = tre2_0_0 + tre2_0_1; c_im(inout[3 * stride]) = tim2_0_0 + tim2_0_1; c_re(inout[35 * stride]) = tre2_0_0 - tre2_0_1; c_im(inout[35 * stride]) = tim2_0_0 - tim2_0_1; c_re(inout[19 * stride]) = tre2_1_0 + tim2_1_1; c_im(inout[19 * stride]) = tim2_1_0 - tre2_1_1; c_re(inout[51 * stride]) = tre2_1_0 - tim2_1_1; c_im(inout[51 * stride]) = tim2_1_0 + tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 + tim1_1_2; tim2_0_0 = tim1_1_0 - tre1_1_2; tre2_1_0 = tre1_1_0 - tim1_1_2; tim2_1_0 = tim1_1_0 + tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 + tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 - tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 - tre1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 + tre1_1_3); tre2_0_1 = tre3_0_0 + tre3_1_0; tim2_0_1 = tim3_0_0 - tim3_1_0; tre2_1_1 = tre3_0_0 - tre3_1_0; tim2_1_1 = tim3_0_0 + tim3_1_0; } c_re(inout[11 * stride]) = tre2_0_0 + tre2_0_1; c_im(inout[11 * stride]) = tim2_0_0 + tim2_0_1; c_re(inout[43 * stride]) = tre2_0_0 - tre2_0_1; c_im(inout[43 * stride]) = tim2_0_0 - tim2_0_1; c_re(inout[27 * stride]) = tre2_1_0 + tim2_1_1; c_im(inout[27 * stride]) = tim2_1_0 - tre2_1_1; c_re(inout[59 * stride]) = tre2_1_0 - tim2_1_1; c_im(inout[59 * stride]) = tim2_1_0 + tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; tre1_0_0 = tre0_4_0 + tim0_4_4; tim1_0_0 = tim0_4_0 - tre0_4_4; tre1_1_0 = tre0_4_0 - tim0_4_4; tim1_1_0 = tim0_4_0 + tre0_4_4; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K923879532) * tre0_4_1) + (((FFTW_REAL) FFTW_K382683432) * tim0_4_1); tim2_0_0 = (((FFTW_REAL) FFTW_K923879532) * tim0_4_1) - (((FFTW_REAL) FFTW_K382683432) * tre0_4_1); tre2_1_0 = (((FFTW_REAL) FFTW_K923879532) * tim0_4_5) - (((FFTW_REAL) FFTW_K382683432) * tre0_4_5); tim2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_4_5) + (((FFTW_REAL) FFTW_K923879532) * tre0_4_5); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 - tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 + tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_4_2 + tim0_4_2); tim2_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_4_2 - tre0_4_2); tre2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_4_6 - tre0_4_6); tim2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_4_6 + tre0_4_6); tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 - tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 + tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_4_3) + (((FFTW_REAL) FFTW_K923879532) * tim0_4_3); tim2_0_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_4_3) - (((FFTW_REAL) FFTW_K923879532) * tre0_4_3); tre2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_4_7) - (((FFTW_REAL) FFTW_K923879532) * tre0_4_7); tim2_1_0 = (((FFTW_REAL) FFTW_K923879532) * tim0_4_7) + (((FFTW_REAL) FFTW_K382683432) * tre0_4_7); tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 - tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 + tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; c_re(inout[4 * stride]) = tre2_0_0 + tre2_0_1; c_im(inout[4 * stride]) = tim2_0_0 + tim2_0_1; c_re(inout[36 * stride]) = tre2_0_0 - tre2_0_1; c_im(inout[36 * stride]) = tim2_0_0 - tim2_0_1; c_re(inout[20 * stride]) = tre2_1_0 + tim2_1_1; c_im(inout[20 * stride]) = tim2_1_0 - tre2_1_1; c_re(inout[52 * stride]) = tre2_1_0 - tim2_1_1; c_im(inout[52 * stride]) = tim2_1_0 + tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 + tim1_1_2; tim2_0_0 = tim1_1_0 - tre1_1_2; tre2_1_0 = tre1_1_0 - tim1_1_2; tim2_1_0 = tim1_1_0 + tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 + tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 - tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 - tre1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 + tre1_1_3); tre2_0_1 = tre3_0_0 + tre3_1_0; tim2_0_1 = tim3_0_0 - tim3_1_0; tre2_1_1 = tre3_0_0 - tre3_1_0; tim2_1_1 = tim3_0_0 + tim3_1_0; } c_re(inout[12 * stride]) = tre2_0_0 + tre2_0_1; c_im(inout[12 * stride]) = tim2_0_0 + tim2_0_1; c_re(inout[44 * stride]) = tre2_0_0 - tre2_0_1; c_im(inout[44 * stride]) = tim2_0_0 - tim2_0_1; c_re(inout[28 * stride]) = tre2_1_0 + tim2_1_1; c_im(inout[28 * stride]) = tim2_1_0 - tre2_1_1; c_re(inout[60 * stride]) = tre2_1_0 - tim2_1_1; c_im(inout[60 * stride]) = tim2_1_0 + tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_1_0 = (((FFTW_REAL) FFTW_K923879532) * tim0_5_4) - (((FFTW_REAL) FFTW_K382683432) * tre0_5_4); tim2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_5_4) + (((FFTW_REAL) FFTW_K923879532) * tre0_5_4); tre1_0_0 = tre0_5_0 + tre2_1_0; tim1_0_0 = tim0_5_0 - tim2_1_0; tre1_1_0 = tre0_5_0 - tre2_1_0; tim1_1_0 = tim0_5_0 + tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K881921264) * tre0_5_1) + (((FFTW_REAL) FFTW_K471396736) * tim0_5_1); tim2_0_0 = (((FFTW_REAL) FFTW_K881921264) * tim0_5_1) - (((FFTW_REAL) FFTW_K471396736) * tre0_5_1); tre2_1_0 = (((FFTW_REAL) FFTW_K634393284) * tim0_5_5) - (((FFTW_REAL) FFTW_K773010453) * tre0_5_5); tim2_1_0 = (((FFTW_REAL) FFTW_K773010453) * tim0_5_5) + (((FFTW_REAL) FFTW_K634393284) * tre0_5_5); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 - tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 + tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K555570233) * tre0_5_2) + (((FFTW_REAL) FFTW_K831469612) * tim0_5_2); tim2_0_0 = (((FFTW_REAL) FFTW_K555570233) * tim0_5_2) - (((FFTW_REAL) FFTW_K831469612) * tre0_5_2); tre2_1_0 = (((FFTW_REAL) FFTW_K195090322) * tim0_5_6) - (((FFTW_REAL) FFTW_K980785280) * tre0_5_6); tim2_1_0 = (((FFTW_REAL) FFTW_K980785280) * tim0_5_6) + (((FFTW_REAL) FFTW_K195090322) * tre0_5_6); tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 - tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 + tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K098017140) * tre0_5_3) + (((FFTW_REAL) FFTW_K995184726) * tim0_5_3); tim2_0_0 = (((FFTW_REAL) FFTW_K098017140) * tim0_5_3) - (((FFTW_REAL) FFTW_K995184726) * tre0_5_3); tre2_1_0 = (((FFTW_REAL) FFTW_K956940335) * tre0_5_7) + (((FFTW_REAL) FFTW_K290284677) * tim0_5_7); tim2_1_0 = (((FFTW_REAL) FFTW_K290284677) * tre0_5_7) - (((FFTW_REAL) FFTW_K956940335) * tim0_5_7); tre1_0_3 = tre2_0_0 - tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 + tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; c_re(inout[5 * stride]) = tre2_0_0 + tre2_0_1; c_im(inout[5 * stride]) = tim2_0_0 + tim2_0_1; c_re(inout[37 * stride]) = tre2_0_0 - tre2_0_1; c_im(inout[37 * stride]) = tim2_0_0 - tim2_0_1; c_re(inout[21 * stride]) = tre2_1_0 + tim2_1_1; c_im(inout[21 * stride]) = tim2_1_0 - tre2_1_1; c_re(inout[53 * stride]) = tre2_1_0 - tim2_1_1; c_im(inout[53 * stride]) = tim2_1_0 + tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 + tim1_1_2; tim2_0_0 = tim1_1_0 - tre1_1_2; tre2_1_0 = tre1_1_0 - tim1_1_2; tim2_1_0 = tim1_1_0 + tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 + tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 - tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 - tre1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 + tre1_1_3); tre2_0_1 = tre3_0_0 + tre3_1_0; tim2_0_1 = tim3_0_0 - tim3_1_0; tre2_1_1 = tre3_0_0 - tre3_1_0; tim2_1_1 = tim3_0_0 + tim3_1_0; } c_re(inout[13 * stride]) = tre2_0_0 + tre2_0_1; c_im(inout[13 * stride]) = tim2_0_0 + tim2_0_1; c_re(inout[45 * stride]) = tre2_0_0 - tre2_0_1; c_im(inout[45 * stride]) = tim2_0_0 - tim2_0_1; c_re(inout[29 * stride]) = tre2_1_0 + tim2_1_1; c_im(inout[29 * stride]) = tim2_1_0 - tre2_1_1; c_re(inout[61 * stride]) = tre2_1_0 - tim2_1_1; c_im(inout[61 * stride]) = tim2_1_0 + tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_6_4 - tre0_6_4); tim2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_6_4 + tre0_6_4); tre1_0_0 = tre0_6_0 + tre2_1_0; tim1_0_0 = tim0_6_0 - tim2_1_0; tre1_1_0 = tre0_6_0 - tre2_1_0; tim1_1_0 = tim0_6_0 + tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K831469612) * tre0_6_1) + (((FFTW_REAL) FFTW_K555570233) * tim0_6_1); tim2_0_0 = (((FFTW_REAL) FFTW_K831469612) * tim0_6_1) - (((FFTW_REAL) FFTW_K555570233) * tre0_6_1); tre2_1_0 = (((FFTW_REAL) FFTW_K195090322) * tim0_6_5) - (((FFTW_REAL) FFTW_K980785280) * tre0_6_5); tim2_1_0 = (((FFTW_REAL) FFTW_K980785280) * tim0_6_5) + (((FFTW_REAL) FFTW_K195090322) * tre0_6_5); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 - tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 + tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_6_2) + (((FFTW_REAL) FFTW_K923879532) * tim0_6_2); tim2_0_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_6_2) - (((FFTW_REAL) FFTW_K923879532) * tre0_6_2); tre2_1_0 = (((FFTW_REAL) FFTW_K923879532) * tre0_6_6) + (((FFTW_REAL) FFTW_K382683432) * tim0_6_6); tim2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_6_6) - (((FFTW_REAL) FFTW_K923879532) * tim0_6_6); tre1_0_2 = tre2_0_0 - tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 + tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K980785280) * tim0_6_3) - (((FFTW_REAL) FFTW_K195090322) * tre0_6_3); tim2_0_0 = (((FFTW_REAL) FFTW_K195090322) * tim0_6_3) + (((FFTW_REAL) FFTW_K980785280) * tre0_6_3); tre2_1_0 = (((FFTW_REAL) FFTW_K555570233) * tre0_6_7) + (((FFTW_REAL) FFTW_K831469612) * tim0_6_7); tim2_1_0 = (((FFTW_REAL) FFTW_K831469612) * tre0_6_7) - (((FFTW_REAL) FFTW_K555570233) * tim0_6_7); tre1_0_3 = tre2_0_0 - tre2_1_0; tim1_0_3 = tim2_1_0 - tim2_0_0; tre1_1_3 = tre2_0_0 + tre2_1_0; tim1_1_3 = (-(tim2_0_0 + tim2_1_0)); } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; c_re(inout[6 * stride]) = tre2_0_0 + tre2_0_1; c_im(inout[6 * stride]) = tim2_0_0 + tim2_0_1; c_re(inout[38 * stride]) = tre2_0_0 - tre2_0_1; c_im(inout[38 * stride]) = tim2_0_0 - tim2_0_1; c_re(inout[22 * stride]) = tre2_1_0 + tim2_1_1; c_im(inout[22 * stride]) = tim2_1_0 - tre2_1_1; c_re(inout[54 * stride]) = tre2_1_0 - tim2_1_1; c_im(inout[54 * stride]) = tim2_1_0 + tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 + tim1_1_2; tim2_0_0 = tim1_1_0 - tre1_1_2; tre2_1_0 = tre1_1_0 - tim1_1_2; tim2_1_0 = tim1_1_0 + tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 + tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 - tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 - tre1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 + tre1_1_3); tre2_0_1 = tre3_0_0 + tre3_1_0; tim2_0_1 = tim3_0_0 - tim3_1_0; tre2_1_1 = tre3_0_0 - tre3_1_0; tim2_1_1 = tim3_0_0 + tim3_1_0; } c_re(inout[14 * stride]) = tre2_0_0 + tre2_0_1; c_im(inout[14 * stride]) = tim2_0_0 + tim2_0_1; c_re(inout[46 * stride]) = tre2_0_0 - tre2_0_1; c_im(inout[46 * stride]) = tim2_0_0 - tim2_0_1; c_re(inout[30 * stride]) = tre2_1_0 + tim2_1_1; c_im(inout[30 * stride]) = tim2_1_0 - tre2_1_1; c_re(inout[62 * stride]) = tre2_1_0 - tim2_1_1; c_im(inout[62 * stride]) = tim2_1_0 + tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_7_4) - (((FFTW_REAL) FFTW_K923879532) * tre0_7_4); tim2_1_0 = (((FFTW_REAL) FFTW_K923879532) * tim0_7_4) + (((FFTW_REAL) FFTW_K382683432) * tre0_7_4); tre1_0_0 = tre0_7_0 + tre2_1_0; tim1_0_0 = tim0_7_0 - tim2_1_0; tre1_1_0 = tre0_7_0 - tre2_1_0; tim1_1_0 = tim0_7_0 + tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K773010453) * tre0_7_1) + (((FFTW_REAL) FFTW_K634393284) * tim0_7_1); tim2_0_0 = (((FFTW_REAL) FFTW_K773010453) * tim0_7_1) - (((FFTW_REAL) FFTW_K634393284) * tre0_7_1); tre2_1_0 = (((FFTW_REAL) FFTW_K956940335) * tre0_7_5) + (((FFTW_REAL) FFTW_K290284677) * tim0_7_5); tim2_1_0 = (((FFTW_REAL) FFTW_K290284677) * tre0_7_5) - (((FFTW_REAL) FFTW_K956940335) * tim0_7_5); tre1_0_1 = tre2_0_0 - tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 + tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K195090322) * tre0_7_2) + (((FFTW_REAL) FFTW_K980785280) * tim0_7_2); tim2_0_0 = (((FFTW_REAL) FFTW_K195090322) * tim0_7_2) - (((FFTW_REAL) FFTW_K980785280) * tre0_7_2); tre2_1_0 = (((FFTW_REAL) FFTW_K555570233) * tre0_7_6) + (((FFTW_REAL) FFTW_K831469612) * tim0_7_6); tim2_1_0 = (((FFTW_REAL) FFTW_K831469612) * tre0_7_6) - (((FFTW_REAL) FFTW_K555570233) * tim0_7_6); tre1_0_2 = tre2_0_0 - tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 + tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K881921264) * tim0_7_3) - (((FFTW_REAL) FFTW_K471396736) * tre0_7_3); tim2_0_0 = (((FFTW_REAL) FFTW_K471396736) * tim0_7_3) + (((FFTW_REAL) FFTW_K881921264) * tre0_7_3); tre2_1_0 = (((FFTW_REAL) FFTW_K098017140) * tre0_7_7) - (((FFTW_REAL) FFTW_K995184726) * tim0_7_7); tim2_1_0 = (((FFTW_REAL) FFTW_K098017140) * tim0_7_7) + (((FFTW_REAL) FFTW_K995184726) * tre0_7_7); tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_1_0 - tim2_0_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = (-(tim2_0_0 + tim2_1_0)); } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; c_re(inout[7 * stride]) = tre2_0_0 + tre2_0_1; c_im(inout[7 * stride]) = tim2_0_0 + tim2_0_1; c_re(inout[39 * stride]) = tre2_0_0 - tre2_0_1; c_im(inout[39 * stride]) = tim2_0_0 - tim2_0_1; c_re(inout[23 * stride]) = tre2_1_0 + tim2_1_1; c_im(inout[23 * stride]) = tim2_1_0 - tre2_1_1; c_re(inout[55 * stride]) = tre2_1_0 - tim2_1_1; c_im(inout[55 * stride]) = tim2_1_0 + tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 + tim1_1_2; tim2_0_0 = tim1_1_0 - tre1_1_2; tre2_1_0 = tre1_1_0 - tim1_1_2; tim2_1_0 = tim1_1_0 + tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 + tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 - tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 - tre1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_3 + tre1_1_3); tre2_0_1 = tre3_0_0 + tre3_1_0; tim2_0_1 = tim3_0_0 - tim3_1_0; tre2_1_1 = tre3_0_0 - tre3_1_0; tim2_1_1 = tim3_0_0 + tim3_1_0; } c_re(inout[15 * stride]) = tre2_0_0 + tre2_0_1; c_im(inout[15 * stride]) = tim2_0_0 + tim2_0_1; c_re(inout[47 * stride]) = tre2_0_0 - tre2_0_1; c_im(inout[47 * stride]) = tim2_0_0 - tim2_0_1; c_re(inout[31 * stride]) = tre2_1_0 + tim2_1_1; c_im(inout[31 * stride]) = tim2_1_0 - tre2_1_1; c_re(inout[63 * stride]) = tre2_1_0 - tim2_1_1; c_im(inout[63 * stride]) = tim2_1_0 + tre2_1_1; } } } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 102 FP additions and 60 FP multiplications */ void fftw_twiddle_7(FFTW_COMPLEX *A, const FFTW_COMPLEX *W, int stride, int m, int dist) { int i; COMPLEX *inout; inout = A; for (i = 0; i < m; i = i + 1, inout = inout + dist, W = W + 6) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_2_0; FFTW_REAL tim0_2_0; FFTW_REAL tre0_3_0; FFTW_REAL tim0_3_0; FFTW_REAL tre0_4_0; FFTW_REAL tim0_4_0; FFTW_REAL tre0_5_0; FFTW_REAL tim0_5_0; FFTW_REAL tre0_6_0; FFTW_REAL tim0_6_0; tre0_0_0 = c_re(inout[0]); tim0_0_0 = c_im(inout[0]); { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[stride]); ti = c_im(inout[stride]); twr = c_re(W[0]); twi = c_im(W[0]); tre0_1_0 = (tr * twr) - (ti * twi); tim0_1_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[2 * stride]); ti = c_im(inout[2 * stride]); twr = c_re(W[1]); twi = c_im(W[1]); tre0_2_0 = (tr * twr) - (ti * twi); tim0_2_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[3 * stride]); ti = c_im(inout[3 * stride]); twr = c_re(W[2]); twi = c_im(W[2]); tre0_3_0 = (tr * twr) - (ti * twi); tim0_3_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[4 * stride]); ti = c_im(inout[4 * stride]); twr = c_re(W[3]); twi = c_im(W[3]); tre0_4_0 = (tr * twr) - (ti * twi); tim0_4_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[5 * stride]); ti = c_im(inout[5 * stride]); twr = c_re(W[4]); twi = c_im(W[4]); tre0_5_0 = (tr * twr) - (ti * twi); tim0_5_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[6 * stride]); ti = c_im(inout[6 * stride]); twr = c_re(W[5]); twi = c_im(W[5]); tre0_6_0 = (tr * twr) - (ti * twi); tim0_6_0 = (tr * twi) + (ti * twr); } c_re(inout[0]) = tre0_0_0 + tre0_1_0 + tre0_2_0 + tre0_3_0 + tre0_4_0 + tre0_5_0 + tre0_6_0; c_im(inout[0]) = tim0_0_0 + tim0_1_0 + tim0_2_0 + tim0_3_0 + tim0_4_0 + tim0_5_0 + tim0_6_0; { FFTW_REAL tre1_0_0; FFTW_REAL tre1_1_0; tre1_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K623489801) * (tre0_1_0 + tre0_6_0)) - (((FFTW_REAL) FFTW_K900968867) * (tre0_3_0 + tre0_4_0)) - (((FFTW_REAL) FFTW_K222520933) * (tre0_2_0 + tre0_5_0)); tre1_1_0 = (((FFTW_REAL) FFTW_K781831482) * (tim0_1_0 - tim0_6_0)) + (((FFTW_REAL) FFTW_K974927912) * (tim0_2_0 - tim0_5_0)) + (((FFTW_REAL) FFTW_K433883739) * (tim0_3_0 - tim0_4_0)); c_re(inout[stride]) = tre1_0_0 + tre1_1_0; c_re(inout[6 * stride]) = tre1_0_0 - tre1_1_0; } { FFTW_REAL tim1_0_0; FFTW_REAL tim1_1_0; tim1_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K623489801) * (tim0_1_0 + tim0_6_0)) - (((FFTW_REAL) FFTW_K900968867) * (tim0_3_0 + tim0_4_0)) - (((FFTW_REAL) FFTW_K222520933) * (tim0_2_0 + tim0_5_0)); tim1_1_0 = (((FFTW_REAL) FFTW_K781831482) * (tre0_6_0 - tre0_1_0)) + (((FFTW_REAL) FFTW_K974927912) * (tre0_5_0 - tre0_2_0)) + (((FFTW_REAL) FFTW_K433883739) * (tre0_4_0 - tre0_3_0)); c_im(inout[stride]) = tim1_0_0 + tim1_1_0; c_im(inout[6 * stride]) = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tre1_1_0; tre1_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K623489801) * (tre0_3_0 + tre0_4_0)) - (((FFTW_REAL) FFTW_K900968867) * (tre0_2_0 + tre0_5_0)) - (((FFTW_REAL) FFTW_K222520933) * (tre0_1_0 + tre0_6_0)); tre1_1_0 = (((FFTW_REAL) FFTW_K974927912) * (tim0_1_0 - tim0_6_0)) + (((FFTW_REAL) FFTW_K433883739) * (tim0_5_0 - tim0_2_0)) + (((FFTW_REAL) FFTW_K781831482) * (tim0_4_0 - tim0_3_0)); c_re(inout[2 * stride]) = tre1_0_0 + tre1_1_0; c_re(inout[5 * stride]) = tre1_0_0 - tre1_1_0; } { FFTW_REAL tim1_0_0; FFTW_REAL tim1_1_0; tim1_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K623489801) * (tim0_3_0 + tim0_4_0)) - (((FFTW_REAL) FFTW_K900968867) * (tim0_2_0 + tim0_5_0)) - (((FFTW_REAL) FFTW_K222520933) * (tim0_1_0 + tim0_6_0)); tim1_1_0 = (((FFTW_REAL) FFTW_K974927912) * (tre0_6_0 - tre0_1_0)) + (((FFTW_REAL) FFTW_K433883739) * (tre0_2_0 - tre0_5_0)) + (((FFTW_REAL) FFTW_K781831482) * (tre0_3_0 - tre0_4_0)); c_im(inout[2 * stride]) = tim1_0_0 + tim1_1_0; c_im(inout[5 * stride]) = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tre1_1_0; tre1_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K623489801) * (tre0_2_0 + tre0_5_0)) - (((FFTW_REAL) FFTW_K222520933) * (tre0_3_0 + tre0_4_0)) - (((FFTW_REAL) FFTW_K900968867) * (tre0_1_0 + tre0_6_0)); tre1_1_0 = (((FFTW_REAL) FFTW_K433883739) * (tim0_1_0 - tim0_6_0)) + (((FFTW_REAL) FFTW_K781831482) * (tim0_5_0 - tim0_2_0)) + (((FFTW_REAL) FFTW_K974927912) * (tim0_3_0 - tim0_4_0)); c_re(inout[3 * stride]) = tre1_0_0 + tre1_1_0; c_re(inout[4 * stride]) = tre1_0_0 - tre1_1_0; } { FFTW_REAL tim1_0_0; FFTW_REAL tim1_1_0; tim1_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K623489801) * (tim0_2_0 + tim0_5_0)) - (((FFTW_REAL) FFTW_K222520933) * (tim0_3_0 + tim0_4_0)) - (((FFTW_REAL) FFTW_K900968867) * (tim0_1_0 + tim0_6_0)); tim1_1_0 = (((FFTW_REAL) FFTW_K433883739) * (tre0_6_0 - tre0_1_0)) + (((FFTW_REAL) FFTW_K781831482) * (tre0_2_0 - tre0_5_0)) + (((FFTW_REAL) FFTW_K974927912) * (tre0_4_0 - tre0_3_0)); c_im(inout[3 * stride]) = tim1_0_0 + tim1_1_0; c_im(inout[4 * stride]) = tim1_0_0 - tim1_1_0; } } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 66 FP additions and 32 FP multiplications */ void fftw_twiddle_8(FFTW_COMPLEX *A, const FFTW_COMPLEX *W, int stride, int m, int dist) { int i; COMPLEX *inout; inout = A; for (i = 0; i < m; i = i + 1, inout = inout + dist, W = W + 7) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_0_1; FFTW_REAL tim0_0_1; FFTW_REAL tre0_0_2; FFTW_REAL tim0_0_2; FFTW_REAL tre0_0_3; FFTW_REAL tim0_0_3; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_1_1; FFTW_REAL tim0_1_1; FFTW_REAL tre0_1_2; FFTW_REAL tim0_1_2; FFTW_REAL tre0_1_3; FFTW_REAL tim0_1_3; { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(inout[0]); tim1_0_0 = c_im(inout[0]); { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[4 * stride]); ti = c_im(inout[4 * stride]); twr = c_re(W[3]); twi = c_im(W[3]); tre1_1_0 = (tr * twr) - (ti * twi); tim1_1_0 = (tr * twi) + (ti * twr); } tre0_0_0 = tre1_0_0 + tre1_1_0; tim0_0_0 = tim1_0_0 + tim1_1_0; tre0_1_0 = tre1_0_0 - tre1_1_0; tim0_1_0 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[stride]); ti = c_im(inout[stride]); twr = c_re(W[0]); twi = c_im(W[0]); tre1_0_0 = (tr * twr) - (ti * twi); tim1_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[5 * stride]); ti = c_im(inout[5 * stride]); twr = c_re(W[4]); twi = c_im(W[4]); tre1_1_0 = (tr * twr) - (ti * twi); tim1_1_0 = (tr * twi) + (ti * twr); } tre0_0_1 = tre1_0_0 + tre1_1_0; tim0_0_1 = tim1_0_0 + tim1_1_0; tre0_1_1 = tre1_0_0 - tre1_1_0; tim0_1_1 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[2 * stride]); ti = c_im(inout[2 * stride]); twr = c_re(W[1]); twi = c_im(W[1]); tre1_0_0 = (tr * twr) - (ti * twi); tim1_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[6 * stride]); ti = c_im(inout[6 * stride]); twr = c_re(W[5]); twi = c_im(W[5]); tre1_1_0 = (tr * twr) - (ti * twi); tim1_1_0 = (tr * twi) + (ti * twr); } tre0_0_2 = tre1_0_0 + tre1_1_0; tim0_0_2 = tim1_0_0 + tim1_1_0; tre0_1_2 = tre1_0_0 - tre1_1_0; tim0_1_2 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[3 * stride]); ti = c_im(inout[3 * stride]); twr = c_re(W[2]); twi = c_im(W[2]); tre1_0_0 = (tr * twr) - (ti * twi); tim1_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[7 * stride]); ti = c_im(inout[7 * stride]); twr = c_re(W[6]); twi = c_im(W[6]); tre1_1_0 = (tr * twr) - (ti * twi); tim1_1_0 = (tr * twi) + (ti * twr); } tre0_0_3 = tre1_0_0 + tre1_1_0; tim0_0_3 = tim1_0_0 + tim1_1_0; tre0_1_3 = tre1_0_0 - tre1_1_0; tim0_1_3 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; tre1_0_0 = tre0_0_0 + tre0_0_2; tim1_0_0 = tim0_0_0 + tim0_0_2; tre1_1_0 = tre0_0_0 - tre0_0_2; tim1_1_0 = tim0_0_0 - tim0_0_2; tre1_0_1 = tre0_0_1 + tre0_0_3; tim1_0_1 = tim0_0_1 + tim0_0_3; tre1_1_1 = tre0_0_1 - tre0_0_3; tim1_1_1 = tim0_0_1 - tim0_0_3; c_re(inout[0]) = tre1_0_0 + tre1_0_1; c_im(inout[0]) = tim1_0_0 + tim1_0_1; c_re(inout[4 * stride]) = tre1_0_0 - tre1_0_1; c_im(inout[4 * stride]) = tim1_0_0 - tim1_0_1; c_re(inout[2 * stride]) = tre1_1_0 + tim1_1_1; c_im(inout[2 * stride]) = tim1_1_0 - tre1_1_1; c_re(inout[6 * stride]) = tre1_1_0 - tim1_1_1; c_im(inout[6 * stride]) = tim1_1_0 + tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; tre1_0_0 = tre0_1_0 + tim0_1_2; tim1_0_0 = tim0_1_0 - tre0_1_2; tre1_1_0 = tre0_1_0 - tim0_1_2; tim1_1_0 = tim0_1_0 + tre0_1_2; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_1_1 + tim0_1_1); tim2_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_1_1 - tre0_1_1); tre2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_1_3 - tre0_1_3); tim2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_1_3 + tre0_1_3); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 - tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 + tim2_1_0; } c_re(inout[stride]) = tre1_0_0 + tre1_0_1; c_im(inout[stride]) = tim1_0_0 + tim1_0_1; c_re(inout[5 * stride]) = tre1_0_0 - tre1_0_1; c_im(inout[5 * stride]) = tim1_0_0 - tim1_0_1; c_re(inout[3 * stride]) = tre1_1_0 + tim1_1_1; c_im(inout[3 * stride]) = tim1_1_0 - tre1_1_1; c_re(inout[7 * stride]) = tre1_1_0 - tim1_1_1; c_im(inout[7 * stride]) = tim1_1_0 + tre1_1_1; } } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 108 FP additions and 72 FP multiplications */ void fftw_twiddle_9(FFTW_COMPLEX *A, const FFTW_COMPLEX *W, int stride, int m, int dist) { int i; COMPLEX *inout; inout = A; for (i = 0; i < m; i = i + 1, inout = inout + dist, W = W + 8) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_0_1; FFTW_REAL tim0_0_1; FFTW_REAL tre0_0_2; FFTW_REAL tim0_0_2; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_1_1; FFTW_REAL tim0_1_1; FFTW_REAL tre0_1_2; FFTW_REAL tim0_1_2; FFTW_REAL tre0_2_0; FFTW_REAL tim0_2_0; FFTW_REAL tre0_2_1; FFTW_REAL tim0_2_1; FFTW_REAL tre0_2_2; FFTW_REAL tim0_2_2; { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_2_0; FFTW_REAL tim1_2_0; tre1_0_0 = c_re(inout[0]); tim1_0_0 = c_im(inout[0]); { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[3 * stride]); ti = c_im(inout[3 * stride]); twr = c_re(W[2]); twi = c_im(W[2]); tre1_1_0 = (tr * twr) - (ti * twi); tim1_1_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[6 * stride]); ti = c_im(inout[6 * stride]); twr = c_re(W[5]); twi = c_im(W[5]); tre1_2_0 = (tr * twr) - (ti * twi); tim1_2_0 = (tr * twi) + (ti * twr); } tre0_0_0 = tre1_0_0 + tre1_1_0 + tre1_2_0; tim0_0_0 = tim1_0_0 + tim1_1_0 + tim1_2_0; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tre1_1_0 + tre1_2_0)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim1_1_0 - tim1_2_0); tre0_1_0 = tre2_0_0 + tre2_1_0; tre0_2_0 = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tim1_1_0 + tim1_2_0)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre1_2_0 - tre1_1_0); tim0_1_0 = tim2_0_0 + tim2_1_0; tim0_2_0 = tim2_0_0 - tim2_1_0; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_2_0; FFTW_REAL tim1_2_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[stride]); ti = c_im(inout[stride]); twr = c_re(W[0]); twi = c_im(W[0]); tre1_0_0 = (tr * twr) - (ti * twi); tim1_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[4 * stride]); ti = c_im(inout[4 * stride]); twr = c_re(W[3]); twi = c_im(W[3]); tre1_1_0 = (tr * twr) - (ti * twi); tim1_1_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[7 * stride]); ti = c_im(inout[7 * stride]); twr = c_re(W[6]); twi = c_im(W[6]); tre1_2_0 = (tr * twr) - (ti * twi); tim1_2_0 = (tr * twi) + (ti * twr); } tre0_0_1 = tre1_0_0 + tre1_1_0 + tre1_2_0; tim0_0_1 = tim1_0_0 + tim1_1_0 + tim1_2_0; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tre1_1_0 + tre1_2_0)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim1_1_0 - tim1_2_0); tre0_1_1 = tre2_0_0 + tre2_1_0; tre0_2_1 = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tim1_1_0 + tim1_2_0)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre1_2_0 - tre1_1_0); tim0_1_1 = tim2_0_0 + tim2_1_0; tim0_2_1 = tim2_0_0 - tim2_1_0; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_2_0; FFTW_REAL tim1_2_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[2 * stride]); ti = c_im(inout[2 * stride]); twr = c_re(W[1]); twi = c_im(W[1]); tre1_0_0 = (tr * twr) - (ti * twi); tim1_0_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[5 * stride]); ti = c_im(inout[5 * stride]); twr = c_re(W[4]); twi = c_im(W[4]); tre1_1_0 = (tr * twr) - (ti * twi); tim1_1_0 = (tr * twi) + (ti * twr); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[8 * stride]); ti = c_im(inout[8 * stride]); twr = c_re(W[7]); twi = c_im(W[7]); tre1_2_0 = (tr * twr) - (ti * twi); tim1_2_0 = (tr * twi) + (ti * twr); } tre0_0_2 = tre1_0_0 + tre1_1_0 + tre1_2_0; tim0_0_2 = tim1_0_0 + tim1_1_0 + tim1_2_0; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tre1_1_0 + tre1_2_0)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim1_1_0 - tim1_2_0); tre0_1_2 = tre2_0_0 + tre2_1_0; tre0_2_2 = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tim1_1_0 + tim1_2_0)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre1_2_0 - tre1_1_0); tim0_1_2 = tim2_0_0 + tim2_1_0; tim0_2_2 = tim2_0_0 - tim2_1_0; } } c_re(inout[0]) = tre0_0_0 + tre0_0_1 + tre0_0_2; c_im(inout[0]) = tim0_0_0 + tim0_0_1 + tim0_0_2; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tre0_0_1 + tre0_0_2)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim0_0_1 - tim0_0_2); c_re(inout[3 * stride]) = tre2_0_0 + tre2_1_0; c_re(inout[6 * stride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tim0_0_1 + tim0_0_2)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre0_0_2 - tre0_0_1); c_im(inout[3 * stride]) = tim2_0_0 + tim2_1_0; c_im(inout[6 * stride]) = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_2_0; FFTW_REAL tim1_2_0; tre1_1_0 = (((FFTW_REAL) FFTW_K766044443) * tre0_1_1) + (((FFTW_REAL) FFTW_K642787609) * tim0_1_1); tim1_1_0 = (((FFTW_REAL) FFTW_K766044443) * tim0_1_1) - (((FFTW_REAL) FFTW_K642787609) * tre0_1_1); tre1_2_0 = (((FFTW_REAL) FFTW_K173648177) * tre0_1_2) + (((FFTW_REAL) FFTW_K984807753) * tim0_1_2); tim1_2_0 = (((FFTW_REAL) FFTW_K173648177) * tim0_1_2) - (((FFTW_REAL) FFTW_K984807753) * tre0_1_2); c_re(inout[stride]) = tre0_1_0 + tre1_1_0 + tre1_2_0; c_im(inout[stride]) = tim0_1_0 + tim1_1_0 + tim1_2_0; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_1_0 - (((FFTW_REAL) FFTW_K499999999) * (tre1_1_0 + tre1_2_0)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim1_1_0 - tim1_2_0); c_re(inout[4 * stride]) = tre2_0_0 + tre2_1_0; c_re(inout[7 * stride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_1_0 - (((FFTW_REAL) FFTW_K499999999) * (tim1_1_0 + tim1_2_0)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre1_2_0 - tre1_1_0); c_im(inout[4 * stride]) = tim2_0_0 + tim2_1_0; c_im(inout[7 * stride]) = tim2_0_0 - tim2_1_0; } } { FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_2_0; FFTW_REAL tim1_2_0; tre1_1_0 = (((FFTW_REAL) FFTW_K173648177) * tre0_2_1) + (((FFTW_REAL) FFTW_K984807753) * tim0_2_1); tim1_1_0 = (((FFTW_REAL) FFTW_K173648177) * tim0_2_1) - (((FFTW_REAL) FFTW_K984807753) * tre0_2_1); tre1_2_0 = (((FFTW_REAL) FFTW_K342020143) * tim0_2_2) - (((FFTW_REAL) FFTW_K939692620) * tre0_2_2); tim1_2_0 = (((FFTW_REAL) FFTW_K939692620) * tim0_2_2) + (((FFTW_REAL) FFTW_K342020143) * tre0_2_2); c_re(inout[2 * stride]) = tre0_2_0 + tre1_1_0 + tre1_2_0; c_im(inout[2 * stride]) = tim0_2_0 + tim1_1_0 - tim1_2_0; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_2_0 - (((FFTW_REAL) FFTW_K499999999) * (tre1_1_0 + tre1_2_0)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim1_1_0 + tim1_2_0); c_re(inout[5 * stride]) = tre2_0_0 + tre2_1_0; c_re(inout[8 * stride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_2_0 + (((FFTW_REAL) FFTW_K499999999) * (tim1_2_0 - tim1_1_0)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre1_2_0 - tre1_1_0); c_im(inout[5 * stride]) = tim2_0_0 + tim2_1_0; c_im(inout[8 * stride]) = tim2_0_0 - tim2_1_0; } } } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 126 FP additions and 68 FP multiplications */ void fftwi_twiddle_10(FFTW_COMPLEX *A, const FFTW_COMPLEX *W, int stride, int m, int dist) { int i; COMPLEX *inout; inout = A; for (i = 0; i < m; i = i + 1, inout = inout + dist, W = W + 9) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_0_1; FFTW_REAL tim0_0_1; FFTW_REAL tre0_0_2; FFTW_REAL tim0_0_2; FFTW_REAL tre0_0_3; FFTW_REAL tim0_0_3; FFTW_REAL tre0_0_4; FFTW_REAL tim0_0_4; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_1_1; FFTW_REAL tim0_1_1; FFTW_REAL tre0_1_2; FFTW_REAL tim0_1_2; FFTW_REAL tre0_1_3; FFTW_REAL tim0_1_3; FFTW_REAL tre0_1_4; FFTW_REAL tim0_1_4; { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(inout[0]); tim1_0_0 = c_im(inout[0]); { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[5 * stride]); ti = c_im(inout[5 * stride]); twr = c_re(W[4]); twi = c_im(W[4]); tre1_1_0 = (tr * twr) + (ti * twi); tim1_1_0 = (ti * twr) - (tr * twi); } tre0_0_0 = tre1_0_0 + tre1_1_0; tim0_0_0 = tim1_0_0 + tim1_1_0; tre0_1_0 = tre1_0_0 - tre1_1_0; tim0_1_0 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[2 * stride]); ti = c_im(inout[2 * stride]); twr = c_re(W[1]); twi = c_im(W[1]); tre1_0_0 = (tr * twr) + (ti * twi); tim1_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[7 * stride]); ti = c_im(inout[7 * stride]); twr = c_re(W[6]); twi = c_im(W[6]); tre1_1_0 = (tr * twr) + (ti * twi); tim1_1_0 = (ti * twr) - (tr * twi); } tre0_0_1 = tre1_0_0 + tre1_1_0; tim0_0_1 = tim1_0_0 + tim1_1_0; tre0_1_1 = tre1_0_0 - tre1_1_0; tim0_1_1 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[4 * stride]); ti = c_im(inout[4 * stride]); twr = c_re(W[3]); twi = c_im(W[3]); tre1_0_0 = (tr * twr) + (ti * twi); tim1_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[9 * stride]); ti = c_im(inout[9 * stride]); twr = c_re(W[8]); twi = c_im(W[8]); tre1_1_0 = (tr * twr) + (ti * twi); tim1_1_0 = (ti * twr) - (tr * twi); } tre0_0_2 = tre1_0_0 + tre1_1_0; tim0_0_2 = tim1_0_0 + tim1_1_0; tre0_1_2 = tre1_0_0 - tre1_1_0; tim0_1_2 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[6 * stride]); ti = c_im(inout[6 * stride]); twr = c_re(W[5]); twi = c_im(W[5]); tre1_0_0 = (tr * twr) + (ti * twi); tim1_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[stride]); ti = c_im(inout[stride]); twr = c_re(W[0]); twi = c_im(W[0]); tre1_1_0 = (tr * twr) + (ti * twi); tim1_1_0 = (ti * twr) - (tr * twi); } tre0_0_3 = tre1_0_0 + tre1_1_0; tim0_0_3 = tim1_0_0 + tim1_1_0; tre0_1_3 = tre1_0_0 - tre1_1_0; tim0_1_3 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[8 * stride]); ti = c_im(inout[8 * stride]); twr = c_re(W[7]); twi = c_im(W[7]); tre1_0_0 = (tr * twr) + (ti * twi); tim1_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[3 * stride]); ti = c_im(inout[3 * stride]); twr = c_re(W[2]); twi = c_im(W[2]); tre1_1_0 = (tr * twr) + (ti * twi); tim1_1_0 = (ti * twr) - (tr * twi); } tre0_0_4 = tre1_0_0 + tre1_1_0; tim0_0_4 = tim1_0_0 + tim1_1_0; tre0_1_4 = tre1_0_0 - tre1_1_0; tim0_1_4 = tim1_0_0 - tim1_1_0; } c_re(inout[0]) = tre0_0_0 + tre0_0_1 + tre0_0_2 + tre0_0_3 + tre0_0_4; c_im(inout[0]) = tim0_0_0 + tim0_0_1 + tim0_0_2 + tim0_0_3 + tim0_0_4; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K309016994) * (tre0_0_1 + tre0_0_4)) - (((FFTW_REAL) FFTW_K809016994) * (tre0_0_2 + tre0_0_3)); tre2_1_0 = (((FFTW_REAL) FFTW_K951056516) * (tim0_0_4 - tim0_0_1)) + (((FFTW_REAL) FFTW_K587785252) * (tim0_0_3 - tim0_0_2)); c_re(inout[6 * stride]) = tre2_0_0 + tre2_1_0; c_re(inout[4 * stride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K309016994) * (tim0_0_1 + tim0_0_4)) - (((FFTW_REAL) FFTW_K809016994) * (tim0_0_2 + tim0_0_3)); tim2_1_0 = (((FFTW_REAL) FFTW_K951056516) * (tre0_0_1 - tre0_0_4)) + (((FFTW_REAL) FFTW_K587785252) * (tre0_0_2 - tre0_0_3)); c_im(inout[6 * stride]) = tim2_0_0 + tim2_1_0; c_im(inout[4 * stride]) = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K309016994) * (tre0_0_2 + tre0_0_3)) - (((FFTW_REAL) FFTW_K809016994) * (tre0_0_1 + tre0_0_4)); tre2_1_0 = (((FFTW_REAL) FFTW_K587785252) * (tim0_0_4 - tim0_0_1)) + (((FFTW_REAL) FFTW_K951056516) * (tim0_0_2 - tim0_0_3)); c_re(inout[2 * stride]) = tre2_0_0 + tre2_1_0; c_re(inout[8 * stride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K309016994) * (tim0_0_2 + tim0_0_3)) - (((FFTW_REAL) FFTW_K809016994) * (tim0_0_1 + tim0_0_4)); tim2_1_0 = (((FFTW_REAL) FFTW_K587785252) * (tre0_0_1 - tre0_0_4)) + (((FFTW_REAL) FFTW_K951056516) * (tre0_0_3 - tre0_0_2)); c_im(inout[2 * stride]) = tim2_0_0 + tim2_1_0; c_im(inout[8 * stride]) = tim2_0_0 - tim2_1_0; } c_re(inout[5 * stride]) = tre0_1_0 + tre0_1_1 + tre0_1_2 + tre0_1_3 + tre0_1_4; c_im(inout[5 * stride]) = tim0_1_0 + tim0_1_1 + tim0_1_2 + tim0_1_3 + tim0_1_4; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_1_0 + (((FFTW_REAL) FFTW_K309016994) * (tre0_1_1 + tre0_1_4)) - (((FFTW_REAL) FFTW_K809016994) * (tre0_1_2 + tre0_1_3)); tre2_1_0 = (((FFTW_REAL) FFTW_K951056516) * (tim0_1_4 - tim0_1_1)) + (((FFTW_REAL) FFTW_K587785252) * (tim0_1_3 - tim0_1_2)); c_re(inout[stride]) = tre2_0_0 + tre2_1_0; c_re(inout[9 * stride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_1_0 + (((FFTW_REAL) FFTW_K309016994) * (tim0_1_1 + tim0_1_4)) - (((FFTW_REAL) FFTW_K809016994) * (tim0_1_2 + tim0_1_3)); tim2_1_0 = (((FFTW_REAL) FFTW_K951056516) * (tre0_1_1 - tre0_1_4)) + (((FFTW_REAL) FFTW_K587785252) * (tre0_1_2 - tre0_1_3)); c_im(inout[stride]) = tim2_0_0 + tim2_1_0; c_im(inout[9 * stride]) = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_1_0 + (((FFTW_REAL) FFTW_K309016994) * (tre0_1_2 + tre0_1_3)) - (((FFTW_REAL) FFTW_K809016994) * (tre0_1_1 + tre0_1_4)); tre2_1_0 = (((FFTW_REAL) FFTW_K587785252) * (tim0_1_4 - tim0_1_1)) + (((FFTW_REAL) FFTW_K951056516) * (tim0_1_2 - tim0_1_3)); c_re(inout[7 * stride]) = tre2_0_0 + tre2_1_0; c_re(inout[3 * stride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_1_0 + (((FFTW_REAL) FFTW_K309016994) * (tim0_1_2 + tim0_1_3)) - (((FFTW_REAL) FFTW_K809016994) * (tim0_1_1 + tim0_1_4)); tim2_1_0 = (((FFTW_REAL) FFTW_K587785252) * (tre0_1_1 - tre0_1_4)) + (((FFTW_REAL) FFTW_K951056516) * (tre0_1_3 - tre0_1_2)); c_im(inout[7 * stride]) = tim2_0_0 + tim2_1_0; c_im(inout[3 * stride]) = tim2_0_0 - tim2_1_0; } } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 174 FP additions and 84 FP multiplications */ void fftwi_twiddle_16(FFTW_COMPLEX *A, const FFTW_COMPLEX *W, int stride, int m, int dist) { int i; COMPLEX *inout; inout = A; for (i = 0; i < m; i = i + 1, inout = inout + dist, W = W + 15) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_0_1; FFTW_REAL tim0_0_1; FFTW_REAL tre0_0_2; FFTW_REAL tim0_0_2; FFTW_REAL tre0_0_3; FFTW_REAL tim0_0_3; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_1_1; FFTW_REAL tim0_1_1; FFTW_REAL tre0_1_2; FFTW_REAL tim0_1_2; FFTW_REAL tre0_1_3; FFTW_REAL tim0_1_3; FFTW_REAL tre0_2_0; FFTW_REAL tim0_2_0; FFTW_REAL tre0_2_1; FFTW_REAL tim0_2_1; FFTW_REAL tre0_2_2; FFTW_REAL tim0_2_2; FFTW_REAL tre0_2_3; FFTW_REAL tim0_2_3; FFTW_REAL tre0_3_0; FFTW_REAL tim0_3_0; FFTW_REAL tre0_3_1; FFTW_REAL tim0_3_1; FFTW_REAL tre0_3_2; FFTW_REAL tim0_3_2; FFTW_REAL tre0_3_3; FFTW_REAL tim0_3_3; { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(inout[0]); tim2_0_0 = c_im(inout[0]); { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[8 * stride]); ti = c_im(inout[8 * stride]); twr = c_re(W[7]); twi = c_im(W[7]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[4 * stride]); ti = c_im(inout[4 * stride]); twr = c_re(W[3]); twi = c_im(W[3]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[12 * stride]); ti = c_im(inout[12 * stride]); twr = c_re(W[11]); twi = c_im(W[11]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } tre0_0_0 = tre1_0_0 + tre1_0_1; tim0_0_0 = tim1_0_0 + tim1_0_1; tre0_2_0 = tre1_0_0 - tre1_0_1; tim0_2_0 = tim1_0_0 - tim1_0_1; tre0_1_0 = tre1_1_0 - tim1_1_1; tim0_1_0 = tim1_1_0 + tre1_1_1; tre0_3_0 = tre1_1_0 + tim1_1_1; tim0_3_0 = tim1_1_0 - tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[stride]); ti = c_im(inout[stride]); twr = c_re(W[0]); twi = c_im(W[0]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[9 * stride]); ti = c_im(inout[9 * stride]); twr = c_re(W[8]); twi = c_im(W[8]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[5 * stride]); ti = c_im(inout[5 * stride]); twr = c_re(W[4]); twi = c_im(W[4]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[13 * stride]); ti = c_im(inout[13 * stride]); twr = c_re(W[12]); twi = c_im(W[12]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } tre0_0_1 = tre1_0_0 + tre1_0_1; tim0_0_1 = tim1_0_0 + tim1_0_1; tre0_2_1 = tre1_0_0 - tre1_0_1; tim0_2_1 = tim1_0_0 - tim1_0_1; tre0_1_1 = tre1_1_0 - tim1_1_1; tim0_1_1 = tim1_1_0 + tre1_1_1; tre0_3_1 = tre1_1_0 + tim1_1_1; tim0_3_1 = tim1_1_0 - tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[2 * stride]); ti = c_im(inout[2 * stride]); twr = c_re(W[1]); twi = c_im(W[1]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[10 * stride]); ti = c_im(inout[10 * stride]); twr = c_re(W[9]); twi = c_im(W[9]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[6 * stride]); ti = c_im(inout[6 * stride]); twr = c_re(W[5]); twi = c_im(W[5]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[14 * stride]); ti = c_im(inout[14 * stride]); twr = c_re(W[13]); twi = c_im(W[13]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } tre0_0_2 = tre1_0_0 + tre1_0_1; tim0_0_2 = tim1_0_0 + tim1_0_1; tre0_2_2 = tre1_0_0 - tre1_0_1; tim0_2_2 = tim1_0_0 - tim1_0_1; tre0_1_2 = tre1_1_0 - tim1_1_1; tim0_1_2 = tim1_1_0 + tre1_1_1; tre0_3_2 = tre1_1_0 + tim1_1_1; tim0_3_2 = tim1_1_0 - tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[3 * stride]); ti = c_im(inout[3 * stride]); twr = c_re(W[2]); twi = c_im(W[2]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[11 * stride]); ti = c_im(inout[11 * stride]); twr = c_re(W[10]); twi = c_im(W[10]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[7 * stride]); ti = c_im(inout[7 * stride]); twr = c_re(W[6]); twi = c_im(W[6]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[15 * stride]); ti = c_im(inout[15 * stride]); twr = c_re(W[14]); twi = c_im(W[14]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } tre0_0_3 = tre1_0_0 + tre1_0_1; tim0_0_3 = tim1_0_0 + tim1_0_1; tre0_2_3 = tre1_0_0 - tre1_0_1; tim0_2_3 = tim1_0_0 - tim1_0_1; tre0_1_3 = tre1_1_0 - tim1_1_1; tim0_1_3 = tim1_1_0 + tre1_1_1; tre0_3_3 = tre1_1_0 + tim1_1_1; tim0_3_3 = tim1_1_0 - tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; tre1_0_0 = tre0_0_0 + tre0_0_2; tim1_0_0 = tim0_0_0 + tim0_0_2; tre1_1_0 = tre0_0_0 - tre0_0_2; tim1_1_0 = tim0_0_0 - tim0_0_2; tre1_0_1 = tre0_0_1 + tre0_0_3; tim1_0_1 = tim0_0_1 + tim0_0_3; tre1_1_1 = tre0_0_1 - tre0_0_3; tim1_1_1 = tim0_0_1 - tim0_0_3; c_re(inout[0]) = tre1_0_0 + tre1_0_1; c_im(inout[0]) = tim1_0_0 + tim1_0_1; c_re(inout[8 * stride]) = tre1_0_0 - tre1_0_1; c_im(inout[8 * stride]) = tim1_0_0 - tim1_0_1; c_re(inout[4 * stride]) = tre1_1_0 - tim1_1_1; c_im(inout[4 * stride]) = tim1_1_0 + tre1_1_1; c_re(inout[12 * stride]) = tre1_1_0 + tim1_1_1; c_im(inout[12 * stride]) = tim1_1_0 - tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_1_2 - tim0_1_2); tim2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_1_2 + tre0_1_2); tre1_0_0 = tre0_1_0 + tre2_1_0; tim1_0_0 = tim0_1_0 + tim2_1_0; tre1_1_0 = tre0_1_0 - tre2_1_0; tim1_1_0 = tim0_1_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K923879532) * tre0_1_1) - (((FFTW_REAL) FFTW_K382683432) * tim0_1_1); tim2_0_0 = (((FFTW_REAL) FFTW_K923879532) * tim0_1_1) + (((FFTW_REAL) FFTW_K382683432) * tre0_1_1); tre2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_1_3) - (((FFTW_REAL) FFTW_K923879532) * tim0_1_3); tim2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_1_3) + (((FFTW_REAL) FFTW_K923879532) * tre0_1_3); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } c_re(inout[stride]) = tre1_0_0 + tre1_0_1; c_im(inout[stride]) = tim1_0_0 + tim1_0_1; c_re(inout[9 * stride]) = tre1_0_0 - tre1_0_1; c_im(inout[9 * stride]) = tim1_0_0 - tim1_0_1; c_re(inout[5 * stride]) = tre1_1_0 - tim1_1_1; c_im(inout[5 * stride]) = tim1_1_0 + tre1_1_1; c_re(inout[13 * stride]) = tre1_1_0 + tim1_1_1; c_im(inout[13 * stride]) = tim1_1_0 - tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; tre1_0_0 = tre0_2_0 - tim0_2_2; tim1_0_0 = tim0_2_0 + tre0_2_2; tre1_1_0 = tre0_2_0 + tim0_2_2; tim1_1_0 = tim0_2_0 - tre0_2_2; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_2_1 - tim0_2_1); tim2_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_2_1 + tre0_2_1); tre2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_2_3 + tim0_2_3); tim2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_2_3 - tim0_2_3); tre1_0_1 = tre2_0_0 - tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 + tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } c_re(inout[2 * stride]) = tre1_0_0 + tre1_0_1; c_im(inout[2 * stride]) = tim1_0_0 + tim1_0_1; c_re(inout[10 * stride]) = tre1_0_0 - tre1_0_1; c_im(inout[10 * stride]) = tim1_0_0 - tim1_0_1; c_re(inout[6 * stride]) = tre1_1_0 - tim1_1_1; c_im(inout[6 * stride]) = tim1_1_0 + tre1_1_1; c_re(inout[14 * stride]) = tre1_1_0 + tim1_1_1; c_im(inout[14 * stride]) = tim1_1_0 - tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_3_2 + tim0_3_2); tim2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_3_2 - tim0_3_2); tre1_0_0 = tre0_3_0 - tre2_1_0; tim1_0_0 = tim0_3_0 + tim2_1_0; tre1_1_0 = tre0_3_0 + tre2_1_0; tim1_1_0 = tim0_3_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_3_1) - (((FFTW_REAL) FFTW_K923879532) * tim0_3_1); tim2_0_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_3_1) + (((FFTW_REAL) FFTW_K923879532) * tre0_3_1); tre2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_3_3) - (((FFTW_REAL) FFTW_K923879532) * tre0_3_3); tim2_1_0 = (((FFTW_REAL) FFTW_K923879532) * tim0_3_3) + (((FFTW_REAL) FFTW_K382683432) * tre0_3_3); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 - tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 + tim2_1_0; } c_re(inout[3 * stride]) = tre1_0_0 + tre1_0_1; c_im(inout[3 * stride]) = tim1_0_0 + tim1_0_1; c_re(inout[11 * stride]) = tre1_0_0 - tre1_0_1; c_im(inout[11 * stride]) = tim1_0_0 - tim1_0_1; c_re(inout[7 * stride]) = tre1_1_0 - tim1_1_1; c_im(inout[7 * stride]) = tim1_1_0 + tre1_1_1; c_re(inout[15 * stride]) = tre1_1_0 + tim1_1_1; c_im(inout[15 * stride]) = tim1_1_0 - tre1_1_1; } } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 6 FP additions and 4 FP multiplications */ void fftwi_twiddle_2(FFTW_COMPLEX *A, const FFTW_COMPLEX *W, int stride, int m, int dist) { int i; COMPLEX *inout; inout = A; for (i = 0; i < m; i = i + 1, inout = inout + dist, W = W + 1) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; tre0_0_0 = c_re(inout[0]); tim0_0_0 = c_im(inout[0]); { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[stride]); ti = c_im(inout[stride]); twr = c_re(W[0]); twi = c_im(W[0]); tre0_1_0 = (tr * twr) + (ti * twi); tim0_1_0 = (ti * twr) - (tr * twi); } c_re(inout[0]) = tre0_0_0 + tre0_1_0; c_im(inout[0]) = tim0_0_0 + tim0_1_0; c_re(inout[stride]) = tre0_0_0 - tre0_1_0; c_im(inout[stride]) = tim0_0_0 - tim0_1_0; } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 18 FP additions and 12 FP multiplications */ void fftwi_twiddle_3(FFTW_COMPLEX *A, const FFTW_COMPLEX *W, int stride, int m, int dist) { int i; COMPLEX *inout; inout = A; for (i = 0; i < m; i = i + 1, inout = inout + dist, W = W + 2) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_2_0; FFTW_REAL tim0_2_0; tre0_0_0 = c_re(inout[0]); tim0_0_0 = c_im(inout[0]); { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[stride]); ti = c_im(inout[stride]); twr = c_re(W[0]); twi = c_im(W[0]); tre0_1_0 = (tr * twr) + (ti * twi); tim0_1_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[2 * stride]); ti = c_im(inout[2 * stride]); twr = c_re(W[1]); twi = c_im(W[1]); tre0_2_0 = (tr * twr) + (ti * twi); tim0_2_0 = (ti * twr) - (tr * twi); } c_re(inout[0]) = tre0_0_0 + tre0_1_0 + tre0_2_0; c_im(inout[0]) = tim0_0_0 + tim0_1_0 + tim0_2_0; { FFTW_REAL tre1_0_0; FFTW_REAL tre1_1_0; tre1_0_0 = tre0_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tre0_1_0 + tre0_2_0)); tre1_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim0_2_0 - tim0_1_0); c_re(inout[stride]) = tre1_0_0 + tre1_1_0; c_re(inout[2 * stride]) = tre1_0_0 - tre1_1_0; } { FFTW_REAL tim1_0_0; FFTW_REAL tim1_1_0; tim1_0_0 = tim0_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tim0_1_0 + tim0_2_0)); tim1_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre0_1_0 - tre0_2_0); c_im(inout[stride]) = tim1_0_0 + tim1_1_0; c_im(inout[2 * stride]) = tim1_0_0 - tim1_1_0; } } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 438 FP additions and 212 FP multiplications */ void fftwi_twiddle_32(FFTW_COMPLEX *A, const FFTW_COMPLEX *W, int stride, int m, int dist) { int i; COMPLEX *inout; inout = A; for (i = 0; i < m; i = i + 1, inout = inout + dist, W = W + 31) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_0_1; FFTW_REAL tim0_0_1; FFTW_REAL tre0_0_2; FFTW_REAL tim0_0_2; FFTW_REAL tre0_0_3; FFTW_REAL tim0_0_3; FFTW_REAL tre0_0_4; FFTW_REAL tim0_0_4; FFTW_REAL tre0_0_5; FFTW_REAL tim0_0_5; FFTW_REAL tre0_0_6; FFTW_REAL tim0_0_6; FFTW_REAL tre0_0_7; FFTW_REAL tim0_0_7; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_1_1; FFTW_REAL tim0_1_1; FFTW_REAL tre0_1_2; FFTW_REAL tim0_1_2; FFTW_REAL tre0_1_3; FFTW_REAL tim0_1_3; FFTW_REAL tre0_1_4; FFTW_REAL tim0_1_4; FFTW_REAL tre0_1_5; FFTW_REAL tim0_1_5; FFTW_REAL tre0_1_6; FFTW_REAL tim0_1_6; FFTW_REAL tre0_1_7; FFTW_REAL tim0_1_7; FFTW_REAL tre0_2_0; FFTW_REAL tim0_2_0; FFTW_REAL tre0_2_1; FFTW_REAL tim0_2_1; FFTW_REAL tre0_2_2; FFTW_REAL tim0_2_2; FFTW_REAL tre0_2_3; FFTW_REAL tim0_2_3; FFTW_REAL tre0_2_4; FFTW_REAL tim0_2_4; FFTW_REAL tre0_2_5; FFTW_REAL tim0_2_5; FFTW_REAL tre0_2_6; FFTW_REAL tim0_2_6; FFTW_REAL tre0_2_7; FFTW_REAL tim0_2_7; FFTW_REAL tre0_3_0; FFTW_REAL tim0_3_0; FFTW_REAL tre0_3_1; FFTW_REAL tim0_3_1; FFTW_REAL tre0_3_2; FFTW_REAL tim0_3_2; FFTW_REAL tre0_3_3; FFTW_REAL tim0_3_3; FFTW_REAL tre0_3_4; FFTW_REAL tim0_3_4; FFTW_REAL tre0_3_5; FFTW_REAL tim0_3_5; FFTW_REAL tre0_3_6; FFTW_REAL tim0_3_6; FFTW_REAL tre0_3_7; FFTW_REAL tim0_3_7; { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(inout[0]); tim2_0_0 = c_im(inout[0]); { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[16 * stride]); ti = c_im(inout[16 * stride]); twr = c_re(W[15]); twi = c_im(W[15]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[8 * stride]); ti = c_im(inout[8 * stride]); twr = c_re(W[7]); twi = c_im(W[7]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[24 * stride]); ti = c_im(inout[24 * stride]); twr = c_re(W[23]); twi = c_im(W[23]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } tre0_0_0 = tre1_0_0 + tre1_0_1; tim0_0_0 = tim1_0_0 + tim1_0_1; tre0_2_0 = tre1_0_0 - tre1_0_1; tim0_2_0 = tim1_0_0 - tim1_0_1; tre0_1_0 = tre1_1_0 - tim1_1_1; tim0_1_0 = tim1_1_0 + tre1_1_1; tre0_3_0 = tre1_1_0 + tim1_1_1; tim0_3_0 = tim1_1_0 - tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[stride]); ti = c_im(inout[stride]); twr = c_re(W[0]); twi = c_im(W[0]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[17 * stride]); ti = c_im(inout[17 * stride]); twr = c_re(W[16]); twi = c_im(W[16]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[9 * stride]); ti = c_im(inout[9 * stride]); twr = c_re(W[8]); twi = c_im(W[8]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[25 * stride]); ti = c_im(inout[25 * stride]); twr = c_re(W[24]); twi = c_im(W[24]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } tre0_0_1 = tre1_0_0 + tre1_0_1; tim0_0_1 = tim1_0_0 + tim1_0_1; tre0_2_1 = tre1_0_0 - tre1_0_1; tim0_2_1 = tim1_0_0 - tim1_0_1; tre0_1_1 = tre1_1_0 - tim1_1_1; tim0_1_1 = tim1_1_0 + tre1_1_1; tre0_3_1 = tre1_1_0 + tim1_1_1; tim0_3_1 = tim1_1_0 - tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[2 * stride]); ti = c_im(inout[2 * stride]); twr = c_re(W[1]); twi = c_im(W[1]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[18 * stride]); ti = c_im(inout[18 * stride]); twr = c_re(W[17]); twi = c_im(W[17]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[10 * stride]); ti = c_im(inout[10 * stride]); twr = c_re(W[9]); twi = c_im(W[9]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[26 * stride]); ti = c_im(inout[26 * stride]); twr = c_re(W[25]); twi = c_im(W[25]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } tre0_0_2 = tre1_0_0 + tre1_0_1; tim0_0_2 = tim1_0_0 + tim1_0_1; tre0_2_2 = tre1_0_0 - tre1_0_1; tim0_2_2 = tim1_0_0 - tim1_0_1; tre0_1_2 = tre1_1_0 - tim1_1_1; tim0_1_2 = tim1_1_0 + tre1_1_1; tre0_3_2 = tre1_1_0 + tim1_1_1; tim0_3_2 = tim1_1_0 - tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[3 * stride]); ti = c_im(inout[3 * stride]); twr = c_re(W[2]); twi = c_im(W[2]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[19 * stride]); ti = c_im(inout[19 * stride]); twr = c_re(W[18]); twi = c_im(W[18]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[11 * stride]); ti = c_im(inout[11 * stride]); twr = c_re(W[10]); twi = c_im(W[10]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[27 * stride]); ti = c_im(inout[27 * stride]); twr = c_re(W[26]); twi = c_im(W[26]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } tre0_0_3 = tre1_0_0 + tre1_0_1; tim0_0_3 = tim1_0_0 + tim1_0_1; tre0_2_3 = tre1_0_0 - tre1_0_1; tim0_2_3 = tim1_0_0 - tim1_0_1; tre0_1_3 = tre1_1_0 - tim1_1_1; tim0_1_3 = tim1_1_0 + tre1_1_1; tre0_3_3 = tre1_1_0 + tim1_1_1; tim0_3_3 = tim1_1_0 - tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[4 * stride]); ti = c_im(inout[4 * stride]); twr = c_re(W[3]); twi = c_im(W[3]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[20 * stride]); ti = c_im(inout[20 * stride]); twr = c_re(W[19]); twi = c_im(W[19]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[12 * stride]); ti = c_im(inout[12 * stride]); twr = c_re(W[11]); twi = c_im(W[11]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[28 * stride]); ti = c_im(inout[28 * stride]); twr = c_re(W[27]); twi = c_im(W[27]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } tre0_0_4 = tre1_0_0 + tre1_0_1; tim0_0_4 = tim1_0_0 + tim1_0_1; tre0_2_4 = tre1_0_0 - tre1_0_1; tim0_2_4 = tim1_0_0 - tim1_0_1; tre0_1_4 = tre1_1_0 - tim1_1_1; tim0_1_4 = tim1_1_0 + tre1_1_1; tre0_3_4 = tre1_1_0 + tim1_1_1; tim0_3_4 = tim1_1_0 - tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[5 * stride]); ti = c_im(inout[5 * stride]); twr = c_re(W[4]); twi = c_im(W[4]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[21 * stride]); ti = c_im(inout[21 * stride]); twr = c_re(W[20]); twi = c_im(W[20]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[13 * stride]); ti = c_im(inout[13 * stride]); twr = c_re(W[12]); twi = c_im(W[12]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[29 * stride]); ti = c_im(inout[29 * stride]); twr = c_re(W[28]); twi = c_im(W[28]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } tre0_0_5 = tre1_0_0 + tre1_0_1; tim0_0_5 = tim1_0_0 + tim1_0_1; tre0_2_5 = tre1_0_0 - tre1_0_1; tim0_2_5 = tim1_0_0 - tim1_0_1; tre0_1_5 = tre1_1_0 - tim1_1_1; tim0_1_5 = tim1_1_0 + tre1_1_1; tre0_3_5 = tre1_1_0 + tim1_1_1; tim0_3_5 = tim1_1_0 - tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[6 * stride]); ti = c_im(inout[6 * stride]); twr = c_re(W[5]); twi = c_im(W[5]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[22 * stride]); ti = c_im(inout[22 * stride]); twr = c_re(W[21]); twi = c_im(W[21]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[14 * stride]); ti = c_im(inout[14 * stride]); twr = c_re(W[13]); twi = c_im(W[13]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[30 * stride]); ti = c_im(inout[30 * stride]); twr = c_re(W[29]); twi = c_im(W[29]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } tre0_0_6 = tre1_0_0 + tre1_0_1; tim0_0_6 = tim1_0_0 + tim1_0_1; tre0_2_6 = tre1_0_0 - tre1_0_1; tim0_2_6 = tim1_0_0 - tim1_0_1; tre0_1_6 = tre1_1_0 - tim1_1_1; tim0_1_6 = tim1_1_0 + tre1_1_1; tre0_3_6 = tre1_1_0 + tim1_1_1; tim0_3_6 = tim1_1_0 - tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[7 * stride]); ti = c_im(inout[7 * stride]); twr = c_re(W[6]); twi = c_im(W[6]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[23 * stride]); ti = c_im(inout[23 * stride]); twr = c_re(W[22]); twi = c_im(W[22]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[15 * stride]); ti = c_im(inout[15 * stride]); twr = c_re(W[14]); twi = c_im(W[14]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[31 * stride]); ti = c_im(inout[31 * stride]); twr = c_re(W[30]); twi = c_im(W[30]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } tre0_0_7 = tre1_0_0 + tre1_0_1; tim0_0_7 = tim1_0_0 + tim1_0_1; tre0_2_7 = tre1_0_0 - tre1_0_1; tim0_2_7 = tim1_0_0 - tim1_0_1; tre0_1_7 = tre1_1_0 - tim1_1_1; tim0_1_7 = tim1_1_0 + tre1_1_1; tre0_3_7 = tre1_1_0 + tim1_1_1; tim0_3_7 = tim1_1_0 - tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; tre1_0_0 = tre0_0_0 + tre0_0_4; tim1_0_0 = tim0_0_0 + tim0_0_4; tre1_1_0 = tre0_0_0 - tre0_0_4; tim1_1_0 = tim0_0_0 - tim0_0_4; tre1_0_1 = tre0_0_1 + tre0_0_5; tim1_0_1 = tim0_0_1 + tim0_0_5; tre1_1_1 = tre0_0_1 - tre0_0_5; tim1_1_1 = tim0_0_1 - tim0_0_5; tre1_0_2 = tre0_0_2 + tre0_0_6; tim1_0_2 = tim0_0_2 + tim0_0_6; tre1_1_2 = tre0_0_2 - tre0_0_6; tim1_1_2 = tim0_0_2 - tim0_0_6; tre1_0_3 = tre0_0_3 + tre0_0_7; tim1_0_3 = tim0_0_3 + tim0_0_7; tre1_1_3 = tre0_0_3 - tre0_0_7; tim1_1_3 = tim0_0_3 - tim0_0_7; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; c_re(inout[0]) = tre2_0_0 + tre2_0_1; c_im(inout[0]) = tim2_0_0 + tim2_0_1; c_re(inout[16 * stride]) = tre2_0_0 - tre2_0_1; c_im(inout[16 * stride]) = tim2_0_0 - tim2_0_1; c_re(inout[8 * stride]) = tre2_1_0 - tim2_1_1; c_im(inout[8 * stride]) = tim2_1_0 + tre2_1_1; c_re(inout[24 * stride]) = tre2_1_0 + tim2_1_1; c_im(inout[24 * stride]) = tim2_1_0 - tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 - tim1_1_2; tim2_0_0 = tim1_1_0 + tre1_1_2; tre2_1_0 = tre1_1_0 + tim1_1_2; tim2_1_0 = tim1_1_0 - tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 - tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 + tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 + tim1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 - tim1_1_3); tre2_0_1 = tre3_0_0 - tre3_1_0; tim2_0_1 = tim3_0_0 + tim3_1_0; tre2_1_1 = tre3_0_0 + tre3_1_0; tim2_1_1 = tim3_0_0 - tim3_1_0; } c_re(inout[4 * stride]) = tre2_0_0 + tre2_0_1; c_im(inout[4 * stride]) = tim2_0_0 + tim2_0_1; c_re(inout[20 * stride]) = tre2_0_0 - tre2_0_1; c_im(inout[20 * stride]) = tim2_0_0 - tim2_0_1; c_re(inout[12 * stride]) = tre2_1_0 - tim2_1_1; c_im(inout[12 * stride]) = tim2_1_0 + tre2_1_1; c_re(inout[28 * stride]) = tre2_1_0 + tim2_1_1; c_im(inout[28 * stride]) = tim2_1_0 - tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_1_4 - tim0_1_4); tim2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_1_4 + tre0_1_4); tre1_0_0 = tre0_1_0 + tre2_1_0; tim1_0_0 = tim0_1_0 + tim2_1_0; tre1_1_0 = tre0_1_0 - tre2_1_0; tim1_1_0 = tim0_1_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K980785280) * tre0_1_1) - (((FFTW_REAL) FFTW_K195090322) * tim0_1_1); tim2_0_0 = (((FFTW_REAL) FFTW_K980785280) * tim0_1_1) + (((FFTW_REAL) FFTW_K195090322) * tre0_1_1); tre2_1_0 = (((FFTW_REAL) FFTW_K555570233) * tre0_1_5) - (((FFTW_REAL) FFTW_K831469612) * tim0_1_5); tim2_1_0 = (((FFTW_REAL) FFTW_K555570233) * tim0_1_5) + (((FFTW_REAL) FFTW_K831469612) * tre0_1_5); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K923879532) * tre0_1_2) - (((FFTW_REAL) FFTW_K382683432) * tim0_1_2); tim2_0_0 = (((FFTW_REAL) FFTW_K923879532) * tim0_1_2) + (((FFTW_REAL) FFTW_K382683432) * tre0_1_2); tre2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_1_6) - (((FFTW_REAL) FFTW_K923879532) * tim0_1_6); tim2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_1_6) + (((FFTW_REAL) FFTW_K923879532) * tre0_1_6); tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K831469612) * tre0_1_3) - (((FFTW_REAL) FFTW_K555570233) * tim0_1_3); tim2_0_0 = (((FFTW_REAL) FFTW_K831469612) * tim0_1_3) + (((FFTW_REAL) FFTW_K555570233) * tre0_1_3); tre2_1_0 = (((FFTW_REAL) FFTW_K195090322) * tre0_1_7) - (((FFTW_REAL) FFTW_K980785280) * tim0_1_7); tim2_1_0 = (((FFTW_REAL) FFTW_K195090322) * tim0_1_7) + (((FFTW_REAL) FFTW_K980785280) * tre0_1_7); tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; c_re(inout[stride]) = tre2_0_0 + tre2_0_1; c_im(inout[stride]) = tim2_0_0 + tim2_0_1; c_re(inout[17 * stride]) = tre2_0_0 - tre2_0_1; c_im(inout[17 * stride]) = tim2_0_0 - tim2_0_1; c_re(inout[9 * stride]) = tre2_1_0 - tim2_1_1; c_im(inout[9 * stride]) = tim2_1_0 + tre2_1_1; c_re(inout[25 * stride]) = tre2_1_0 + tim2_1_1; c_im(inout[25 * stride]) = tim2_1_0 - tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 - tim1_1_2; tim2_0_0 = tim1_1_0 + tre1_1_2; tre2_1_0 = tre1_1_0 + tim1_1_2; tim2_1_0 = tim1_1_0 - tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 - tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 + tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 + tim1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 - tim1_1_3); tre2_0_1 = tre3_0_0 - tre3_1_0; tim2_0_1 = tim3_0_0 + tim3_1_0; tre2_1_1 = tre3_0_0 + tre3_1_0; tim2_1_1 = tim3_0_0 - tim3_1_0; } c_re(inout[5 * stride]) = tre2_0_0 + tre2_0_1; c_im(inout[5 * stride]) = tim2_0_0 + tim2_0_1; c_re(inout[21 * stride]) = tre2_0_0 - tre2_0_1; c_im(inout[21 * stride]) = tim2_0_0 - tim2_0_1; c_re(inout[13 * stride]) = tre2_1_0 - tim2_1_1; c_im(inout[13 * stride]) = tim2_1_0 + tre2_1_1; c_re(inout[29 * stride]) = tre2_1_0 + tim2_1_1; c_im(inout[29 * stride]) = tim2_1_0 - tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; tre1_0_0 = tre0_2_0 - tim0_2_4; tim1_0_0 = tim0_2_0 + tre0_2_4; tre1_1_0 = tre0_2_0 + tim0_2_4; tim1_1_0 = tim0_2_0 - tre0_2_4; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K923879532) * tre0_2_1) - (((FFTW_REAL) FFTW_K382683432) * tim0_2_1); tim2_0_0 = (((FFTW_REAL) FFTW_K923879532) * tim0_2_1) + (((FFTW_REAL) FFTW_K382683432) * tre0_2_1); tre2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_2_5) + (((FFTW_REAL) FFTW_K923879532) * tim0_2_5); tim2_1_0 = (((FFTW_REAL) FFTW_K923879532) * tre0_2_5) - (((FFTW_REAL) FFTW_K382683432) * tim0_2_5); tre1_0_1 = tre2_0_0 - tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 + tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_2_2 - tim0_2_2); tim2_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_2_2 + tre0_2_2); tre2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_2_6 + tim0_2_6); tim2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_2_6 - tim0_2_6); tre1_0_2 = tre2_0_0 - tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 + tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_2_3) - (((FFTW_REAL) FFTW_K923879532) * tim0_2_3); tim2_0_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_2_3) + (((FFTW_REAL) FFTW_K923879532) * tre0_2_3); tre2_1_0 = (((FFTW_REAL) FFTW_K923879532) * tre0_2_7) + (((FFTW_REAL) FFTW_K382683432) * tim0_2_7); tim2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_2_7) - (((FFTW_REAL) FFTW_K923879532) * tim0_2_7); tre1_0_3 = tre2_0_0 - tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 + tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; c_re(inout[2 * stride]) = tre2_0_0 + tre2_0_1; c_im(inout[2 * stride]) = tim2_0_0 + tim2_0_1; c_re(inout[18 * stride]) = tre2_0_0 - tre2_0_1; c_im(inout[18 * stride]) = tim2_0_0 - tim2_0_1; c_re(inout[10 * stride]) = tre2_1_0 - tim2_1_1; c_im(inout[10 * stride]) = tim2_1_0 + tre2_1_1; c_re(inout[26 * stride]) = tre2_1_0 + tim2_1_1; c_im(inout[26 * stride]) = tim2_1_0 - tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 - tim1_1_2; tim2_0_0 = tim1_1_0 + tre1_1_2; tre2_1_0 = tre1_1_0 + tim1_1_2; tim2_1_0 = tim1_1_0 - tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 - tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 + tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 + tim1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 - tim1_1_3); tre2_0_1 = tre3_0_0 - tre3_1_0; tim2_0_1 = tim3_0_0 + tim3_1_0; tre2_1_1 = tre3_0_0 + tre3_1_0; tim2_1_1 = tim3_0_0 - tim3_1_0; } c_re(inout[6 * stride]) = tre2_0_0 + tre2_0_1; c_im(inout[6 * stride]) = tim2_0_0 + tim2_0_1; c_re(inout[22 * stride]) = tre2_0_0 - tre2_0_1; c_im(inout[22 * stride]) = tim2_0_0 - tim2_0_1; c_re(inout[14 * stride]) = tre2_1_0 - tim2_1_1; c_im(inout[14 * stride]) = tim2_1_0 + tre2_1_1; c_re(inout[30 * stride]) = tre2_1_0 + tim2_1_1; c_im(inout[30 * stride]) = tim2_1_0 - tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_3_4 + tim0_3_4); tim2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_3_4 - tim0_3_4); tre1_0_0 = tre0_3_0 - tre2_1_0; tim1_0_0 = tim0_3_0 + tim2_1_0; tre1_1_0 = tre0_3_0 + tre2_1_0; tim1_1_0 = tim0_3_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K831469612) * tre0_3_1) - (((FFTW_REAL) FFTW_K555570233) * tim0_3_1); tim2_0_0 = (((FFTW_REAL) FFTW_K831469612) * tim0_3_1) + (((FFTW_REAL) FFTW_K555570233) * tre0_3_1); tre2_1_0 = (((FFTW_REAL) FFTW_K980785280) * tre0_3_5) + (((FFTW_REAL) FFTW_K195090322) * tim0_3_5); tim2_1_0 = (((FFTW_REAL) FFTW_K195090322) * tre0_3_5) - (((FFTW_REAL) FFTW_K980785280) * tim0_3_5); tre1_0_1 = tre2_0_0 - tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 + tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_3_2) - (((FFTW_REAL) FFTW_K923879532) * tim0_3_2); tim2_0_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_3_2) + (((FFTW_REAL) FFTW_K923879532) * tre0_3_2); tre2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_3_6) - (((FFTW_REAL) FFTW_K923879532) * tre0_3_6); tim2_1_0 = (((FFTW_REAL) FFTW_K923879532) * tim0_3_6) + (((FFTW_REAL) FFTW_K382683432) * tre0_3_6); tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 - tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 + tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K195090322) * tre0_3_3) + (((FFTW_REAL) FFTW_K980785280) * tim0_3_3); tim2_0_0 = (((FFTW_REAL) FFTW_K980785280) * tre0_3_3) - (((FFTW_REAL) FFTW_K195090322) * tim0_3_3); tre2_1_0 = (((FFTW_REAL) FFTW_K831469612) * tim0_3_7) - (((FFTW_REAL) FFTW_K555570233) * tre0_3_7); tim2_1_0 = (((FFTW_REAL) FFTW_K555570233) * tim0_3_7) + (((FFTW_REAL) FFTW_K831469612) * tre0_3_7); tre1_0_3 = tre2_1_0 - tre2_0_0; tim1_0_3 = tim2_0_0 - tim2_1_0; tre1_1_3 = (-(tre2_0_0 + tre2_1_0)); tim1_1_3 = tim2_0_0 + tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; c_re(inout[3 * stride]) = tre2_0_0 + tre2_0_1; c_im(inout[3 * stride]) = tim2_0_0 + tim2_0_1; c_re(inout[19 * stride]) = tre2_0_0 - tre2_0_1; c_im(inout[19 * stride]) = tim2_0_0 - tim2_0_1; c_re(inout[11 * stride]) = tre2_1_0 - tim2_1_1; c_im(inout[11 * stride]) = tim2_1_0 + tre2_1_1; c_re(inout[27 * stride]) = tre2_1_0 + tim2_1_1; c_im(inout[27 * stride]) = tim2_1_0 - tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 - tim1_1_2; tim2_0_0 = tim1_1_0 + tre1_1_2; tre2_1_0 = tre1_1_0 + tim1_1_2; tim2_1_0 = tim1_1_0 - tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 - tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 + tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 + tim1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 - tim1_1_3); tre2_0_1 = tre3_0_0 - tre3_1_0; tim2_0_1 = tim3_0_0 + tim3_1_0; tre2_1_1 = tre3_0_0 + tre3_1_0; tim2_1_1 = tim3_0_0 - tim3_1_0; } c_re(inout[7 * stride]) = tre2_0_0 + tre2_0_1; c_im(inout[7 * stride]) = tim2_0_0 + tim2_0_1; c_re(inout[23 * stride]) = tre2_0_0 - tre2_0_1; c_im(inout[23 * stride]) = tim2_0_0 - tim2_0_1; c_re(inout[15 * stride]) = tre2_1_0 - tim2_1_1; c_im(inout[15 * stride]) = tim2_1_0 + tre2_1_1; c_re(inout[31 * stride]) = tre2_1_0 + tim2_1_1; c_im(inout[31 * stride]) = tim2_1_0 - tre2_1_1; } } } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 22 FP additions and 12 FP multiplications */ void fftwi_twiddle_4(FFTW_COMPLEX *A, const FFTW_COMPLEX *W, int stride, int m, int dist) { int i; COMPLEX *inout; inout = A; for (i = 0; i < m; i = i + 1, inout = inout + dist, W = W + 3) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_0_1; FFTW_REAL tim0_0_1; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_1_1; FFTW_REAL tim0_1_1; { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(inout[0]); tim1_0_0 = c_im(inout[0]); { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[2 * stride]); ti = c_im(inout[2 * stride]); twr = c_re(W[1]); twi = c_im(W[1]); tre1_1_0 = (tr * twr) + (ti * twi); tim1_1_0 = (ti * twr) - (tr * twi); } tre0_0_0 = tre1_0_0 + tre1_1_0; tim0_0_0 = tim1_0_0 + tim1_1_0; tre0_1_0 = tre1_0_0 - tre1_1_0; tim0_1_0 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[stride]); ti = c_im(inout[stride]); twr = c_re(W[0]); twi = c_im(W[0]); tre1_0_0 = (tr * twr) + (ti * twi); tim1_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[3 * stride]); ti = c_im(inout[3 * stride]); twr = c_re(W[2]); twi = c_im(W[2]); tre1_1_0 = (tr * twr) + (ti * twi); tim1_1_0 = (ti * twr) - (tr * twi); } tre0_0_1 = tre1_0_0 + tre1_1_0; tim0_0_1 = tim1_0_0 + tim1_1_0; tre0_1_1 = tre1_0_0 - tre1_1_0; tim0_1_1 = tim1_0_0 - tim1_1_0; } c_re(inout[0]) = tre0_0_0 + tre0_0_1; c_im(inout[0]) = tim0_0_0 + tim0_0_1; c_re(inout[2 * stride]) = tre0_0_0 - tre0_0_1; c_im(inout[2 * stride]) = tim0_0_0 - tim0_0_1; c_re(inout[stride]) = tre0_1_0 - tim0_1_1; c_im(inout[stride]) = tim0_1_0 + tre0_1_1; c_re(inout[3 * stride]) = tre0_1_0 + tim0_1_1; c_im(inout[3 * stride]) = tim0_1_0 - tre0_1_1; } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 52 FP additions and 32 FP multiplications */ void fftwi_twiddle_5(FFTW_COMPLEX *A, const FFTW_COMPLEX *W, int stride, int m, int dist) { int i; COMPLEX *inout; inout = A; for (i = 0; i < m; i = i + 1, inout = inout + dist, W = W + 4) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_2_0; FFTW_REAL tim0_2_0; FFTW_REAL tre0_3_0; FFTW_REAL tim0_3_0; FFTW_REAL tre0_4_0; FFTW_REAL tim0_4_0; tre0_0_0 = c_re(inout[0]); tim0_0_0 = c_im(inout[0]); { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[stride]); ti = c_im(inout[stride]); twr = c_re(W[0]); twi = c_im(W[0]); tre0_1_0 = (tr * twr) + (ti * twi); tim0_1_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[2 * stride]); ti = c_im(inout[2 * stride]); twr = c_re(W[1]); twi = c_im(W[1]); tre0_2_0 = (tr * twr) + (ti * twi); tim0_2_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[3 * stride]); ti = c_im(inout[3 * stride]); twr = c_re(W[2]); twi = c_im(W[2]); tre0_3_0 = (tr * twr) + (ti * twi); tim0_3_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[4 * stride]); ti = c_im(inout[4 * stride]); twr = c_re(W[3]); twi = c_im(W[3]); tre0_4_0 = (tr * twr) + (ti * twi); tim0_4_0 = (ti * twr) - (tr * twi); } c_re(inout[0]) = tre0_0_0 + tre0_1_0 + tre0_2_0 + tre0_3_0 + tre0_4_0; c_im(inout[0]) = tim0_0_0 + tim0_1_0 + tim0_2_0 + tim0_3_0 + tim0_4_0; { FFTW_REAL tre1_0_0; FFTW_REAL tre1_1_0; tre1_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K309016994) * (tre0_1_0 + tre0_4_0)) - (((FFTW_REAL) FFTW_K809016994) * (tre0_2_0 + tre0_3_0)); tre1_1_0 = (((FFTW_REAL) FFTW_K951056516) * (tim0_4_0 - tim0_1_0)) + (((FFTW_REAL) FFTW_K587785252) * (tim0_3_0 - tim0_2_0)); c_re(inout[stride]) = tre1_0_0 + tre1_1_0; c_re(inout[4 * stride]) = tre1_0_0 - tre1_1_0; } { FFTW_REAL tim1_0_0; FFTW_REAL tim1_1_0; tim1_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K309016994) * (tim0_1_0 + tim0_4_0)) - (((FFTW_REAL) FFTW_K809016994) * (tim0_2_0 + tim0_3_0)); tim1_1_0 = (((FFTW_REAL) FFTW_K951056516) * (tre0_1_0 - tre0_4_0)) + (((FFTW_REAL) FFTW_K587785252) * (tre0_2_0 - tre0_3_0)); c_im(inout[stride]) = tim1_0_0 + tim1_1_0; c_im(inout[4 * stride]) = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tre1_1_0; tre1_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K309016994) * (tre0_2_0 + tre0_3_0)) - (((FFTW_REAL) FFTW_K809016994) * (tre0_1_0 + tre0_4_0)); tre1_1_0 = (((FFTW_REAL) FFTW_K587785252) * (tim0_4_0 - tim0_1_0)) + (((FFTW_REAL) FFTW_K951056516) * (tim0_2_0 - tim0_3_0)); c_re(inout[2 * stride]) = tre1_0_0 + tre1_1_0; c_re(inout[3 * stride]) = tre1_0_0 - tre1_1_0; } { FFTW_REAL tim1_0_0; FFTW_REAL tim1_1_0; tim1_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K309016994) * (tim0_2_0 + tim0_3_0)) - (((FFTW_REAL) FFTW_K809016994) * (tim0_1_0 + tim0_4_0)); tim1_1_0 = (((FFTW_REAL) FFTW_K587785252) * (tre0_1_0 - tre0_4_0)) + (((FFTW_REAL) FFTW_K951056516) * (tre0_3_0 - tre0_2_0)); c_im(inout[2 * stride]) = tim1_0_0 + tim1_1_0; c_im(inout[3 * stride]) = tim1_0_0 - tim1_1_0; } } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 50 FP additions and 28 FP multiplications */ void fftwi_twiddle_6(FFTW_COMPLEX *A, const FFTW_COMPLEX *W, int stride, int m, int dist) { int i; COMPLEX *inout; inout = A; for (i = 0; i < m; i = i + 1, inout = inout + dist, W = W + 5) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_0_1; FFTW_REAL tim0_0_1; FFTW_REAL tre0_0_2; FFTW_REAL tim0_0_2; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_1_1; FFTW_REAL tim0_1_1; FFTW_REAL tre0_1_2; FFTW_REAL tim0_1_2; { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(inout[0]); tim1_0_0 = c_im(inout[0]); { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[3 * stride]); ti = c_im(inout[3 * stride]); twr = c_re(W[2]); twi = c_im(W[2]); tre1_1_0 = (tr * twr) + (ti * twi); tim1_1_0 = (ti * twr) - (tr * twi); } tre0_0_0 = tre1_0_0 + tre1_1_0; tim0_0_0 = tim1_0_0 + tim1_1_0; tre0_1_0 = tre1_0_0 - tre1_1_0; tim0_1_0 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[2 * stride]); ti = c_im(inout[2 * stride]); twr = c_re(W[1]); twi = c_im(W[1]); tre1_0_0 = (tr * twr) + (ti * twi); tim1_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[5 * stride]); ti = c_im(inout[5 * stride]); twr = c_re(W[4]); twi = c_im(W[4]); tre1_1_0 = (tr * twr) + (ti * twi); tim1_1_0 = (ti * twr) - (tr * twi); } tre0_0_1 = tre1_0_0 + tre1_1_0; tim0_0_1 = tim1_0_0 + tim1_1_0; tre0_1_1 = tre1_0_0 - tre1_1_0; tim0_1_1 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[4 * stride]); ti = c_im(inout[4 * stride]); twr = c_re(W[3]); twi = c_im(W[3]); tre1_0_0 = (tr * twr) + (ti * twi); tim1_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[stride]); ti = c_im(inout[stride]); twr = c_re(W[0]); twi = c_im(W[0]); tre1_1_0 = (tr * twr) + (ti * twi); tim1_1_0 = (ti * twr) - (tr * twi); } tre0_0_2 = tre1_0_0 + tre1_1_0; tim0_0_2 = tim1_0_0 + tim1_1_0; tre0_1_2 = tre1_0_0 - tre1_1_0; tim0_1_2 = tim1_0_0 - tim1_1_0; } c_re(inout[0]) = tre0_0_0 + tre0_0_1 + tre0_0_2; c_im(inout[0]) = tim0_0_0 + tim0_0_1 + tim0_0_2; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tre0_0_1 + tre0_0_2)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim0_0_2 - tim0_0_1); c_re(inout[4 * stride]) = tre2_0_0 + tre2_1_0; c_re(inout[2 * stride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tim0_0_1 + tim0_0_2)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre0_0_1 - tre0_0_2); c_im(inout[4 * stride]) = tim2_0_0 + tim2_1_0; c_im(inout[2 * stride]) = tim2_0_0 - tim2_1_0; } c_re(inout[3 * stride]) = tre0_1_0 + tre0_1_1 + tre0_1_2; c_im(inout[3 * stride]) = tim0_1_0 + tim0_1_1 + tim0_1_2; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_1_0 - (((FFTW_REAL) FFTW_K499999999) * (tre0_1_1 + tre0_1_2)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim0_1_2 - tim0_1_1); c_re(inout[stride]) = tre2_0_0 + tre2_1_0; c_re(inout[5 * stride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_1_0 - (((FFTW_REAL) FFTW_K499999999) * (tim0_1_1 + tim0_1_2)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre0_1_1 - tre0_1_2); c_im(inout[stride]) = tim2_0_0 + tim2_1_0; c_im(inout[5 * stride]) = tim2_0_0 - tim2_1_0; } } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 1054 FP additions and 500 FP multiplications */ void fftwi_twiddle_64(FFTW_COMPLEX *A, const FFTW_COMPLEX *W, int stride, int m, int dist) { int i; COMPLEX *inout; inout = A; for (i = 0; i < m; i = i + 1, inout = inout + dist, W = W + 63) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_0_1; FFTW_REAL tim0_0_1; FFTW_REAL tre0_0_2; FFTW_REAL tim0_0_2; FFTW_REAL tre0_0_3; FFTW_REAL tim0_0_3; FFTW_REAL tre0_0_4; FFTW_REAL tim0_0_4; FFTW_REAL tre0_0_5; FFTW_REAL tim0_0_5; FFTW_REAL tre0_0_6; FFTW_REAL tim0_0_6; FFTW_REAL tre0_0_7; FFTW_REAL tim0_0_7; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_1_1; FFTW_REAL tim0_1_1; FFTW_REAL tre0_1_2; FFTW_REAL tim0_1_2; FFTW_REAL tre0_1_3; FFTW_REAL tim0_1_3; FFTW_REAL tre0_1_4; FFTW_REAL tim0_1_4; FFTW_REAL tre0_1_5; FFTW_REAL tim0_1_5; FFTW_REAL tre0_1_6; FFTW_REAL tim0_1_6; FFTW_REAL tre0_1_7; FFTW_REAL tim0_1_7; FFTW_REAL tre0_2_0; FFTW_REAL tim0_2_0; FFTW_REAL tre0_2_1; FFTW_REAL tim0_2_1; FFTW_REAL tre0_2_2; FFTW_REAL tim0_2_2; FFTW_REAL tre0_2_3; FFTW_REAL tim0_2_3; FFTW_REAL tre0_2_4; FFTW_REAL tim0_2_4; FFTW_REAL tre0_2_5; FFTW_REAL tim0_2_5; FFTW_REAL tre0_2_6; FFTW_REAL tim0_2_6; FFTW_REAL tre0_2_7; FFTW_REAL tim0_2_7; FFTW_REAL tre0_3_0; FFTW_REAL tim0_3_0; FFTW_REAL tre0_3_1; FFTW_REAL tim0_3_1; FFTW_REAL tre0_3_2; FFTW_REAL tim0_3_2; FFTW_REAL tre0_3_3; FFTW_REAL tim0_3_3; FFTW_REAL tre0_3_4; FFTW_REAL tim0_3_4; FFTW_REAL tre0_3_5; FFTW_REAL tim0_3_5; FFTW_REAL tre0_3_6; FFTW_REAL tim0_3_6; FFTW_REAL tre0_3_7; FFTW_REAL tim0_3_7; FFTW_REAL tre0_4_0; FFTW_REAL tim0_4_0; FFTW_REAL tre0_4_1; FFTW_REAL tim0_4_1; FFTW_REAL tre0_4_2; FFTW_REAL tim0_4_2; FFTW_REAL tre0_4_3; FFTW_REAL tim0_4_3; FFTW_REAL tre0_4_4; FFTW_REAL tim0_4_4; FFTW_REAL tre0_4_5; FFTW_REAL tim0_4_5; FFTW_REAL tre0_4_6; FFTW_REAL tim0_4_6; FFTW_REAL tre0_4_7; FFTW_REAL tim0_4_7; FFTW_REAL tre0_5_0; FFTW_REAL tim0_5_0; FFTW_REAL tre0_5_1; FFTW_REAL tim0_5_1; FFTW_REAL tre0_5_2; FFTW_REAL tim0_5_2; FFTW_REAL tre0_5_3; FFTW_REAL tim0_5_3; FFTW_REAL tre0_5_4; FFTW_REAL tim0_5_4; FFTW_REAL tre0_5_5; FFTW_REAL tim0_5_5; FFTW_REAL tre0_5_6; FFTW_REAL tim0_5_6; FFTW_REAL tre0_5_7; FFTW_REAL tim0_5_7; FFTW_REAL tre0_6_0; FFTW_REAL tim0_6_0; FFTW_REAL tre0_6_1; FFTW_REAL tim0_6_1; FFTW_REAL tre0_6_2; FFTW_REAL tim0_6_2; FFTW_REAL tre0_6_3; FFTW_REAL tim0_6_3; FFTW_REAL tre0_6_4; FFTW_REAL tim0_6_4; FFTW_REAL tre0_6_5; FFTW_REAL tim0_6_5; FFTW_REAL tre0_6_6; FFTW_REAL tim0_6_6; FFTW_REAL tre0_6_7; FFTW_REAL tim0_6_7; FFTW_REAL tre0_7_0; FFTW_REAL tim0_7_0; FFTW_REAL tre0_7_1; FFTW_REAL tim0_7_1; FFTW_REAL tre0_7_2; FFTW_REAL tim0_7_2; FFTW_REAL tre0_7_3; FFTW_REAL tim0_7_3; FFTW_REAL tre0_7_4; FFTW_REAL tim0_7_4; FFTW_REAL tre0_7_5; FFTW_REAL tim0_7_5; FFTW_REAL tre0_7_6; FFTW_REAL tim0_7_6; FFTW_REAL tre0_7_7; FFTW_REAL tim0_7_7; { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = c_re(inout[0]); tim2_0_0 = c_im(inout[0]); { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[32 * stride]); ti = c_im(inout[32 * stride]); twr = c_re(W[31]); twi = c_im(W[31]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[8 * stride]); ti = c_im(inout[8 * stride]); twr = c_re(W[7]); twi = c_im(W[7]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[40 * stride]); ti = c_im(inout[40 * stride]); twr = c_re(W[39]); twi = c_im(W[39]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[16 * stride]); ti = c_im(inout[16 * stride]); twr = c_re(W[15]); twi = c_im(W[15]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[48 * stride]); ti = c_im(inout[48 * stride]); twr = c_re(W[47]); twi = c_im(W[47]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[24 * stride]); ti = c_im(inout[24 * stride]); twr = c_re(W[23]); twi = c_im(W[23]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[56 * stride]); ti = c_im(inout[56 * stride]); twr = c_re(W[55]); twi = c_im(W[55]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; tre0_0_0 = tre2_0_0 + tre2_0_1; tim0_0_0 = tim2_0_0 + tim2_0_1; tre0_4_0 = tre2_0_0 - tre2_0_1; tim0_4_0 = tim2_0_0 - tim2_0_1; tre0_2_0 = tre2_1_0 - tim2_1_1; tim0_2_0 = tim2_1_0 + tre2_1_1; tre0_6_0 = tre2_1_0 + tim2_1_1; tim0_6_0 = tim2_1_0 - tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 - tim1_1_2; tim2_0_0 = tim1_1_0 + tre1_1_2; tre2_1_0 = tre1_1_0 + tim1_1_2; tim2_1_0 = tim1_1_0 - tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 - tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 + tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 + tim1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 - tim1_1_3); tre2_0_1 = tre3_0_0 - tre3_1_0; tim2_0_1 = tim3_0_0 + tim3_1_0; tre2_1_1 = tre3_0_0 + tre3_1_0; tim2_1_1 = tim3_0_0 - tim3_1_0; } tre0_1_0 = tre2_0_0 + tre2_0_1; tim0_1_0 = tim2_0_0 + tim2_0_1; tre0_5_0 = tre2_0_0 - tre2_0_1; tim0_5_0 = tim2_0_0 - tim2_0_1; tre0_3_0 = tre2_1_0 - tim2_1_1; tim0_3_0 = tim2_1_0 + tre2_1_1; tre0_7_0 = tre2_1_0 + tim2_1_1; tim0_7_0 = tim2_1_0 - tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[stride]); ti = c_im(inout[stride]); twr = c_re(W[0]); twi = c_im(W[0]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[33 * stride]); ti = c_im(inout[33 * stride]); twr = c_re(W[32]); twi = c_im(W[32]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[9 * stride]); ti = c_im(inout[9 * stride]); twr = c_re(W[8]); twi = c_im(W[8]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[41 * stride]); ti = c_im(inout[41 * stride]); twr = c_re(W[40]); twi = c_im(W[40]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[17 * stride]); ti = c_im(inout[17 * stride]); twr = c_re(W[16]); twi = c_im(W[16]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[49 * stride]); ti = c_im(inout[49 * stride]); twr = c_re(W[48]); twi = c_im(W[48]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[25 * stride]); ti = c_im(inout[25 * stride]); twr = c_re(W[24]); twi = c_im(W[24]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[57 * stride]); ti = c_im(inout[57 * stride]); twr = c_re(W[56]); twi = c_im(W[56]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; tre0_0_1 = tre2_0_0 + tre2_0_1; tim0_0_1 = tim2_0_0 + tim2_0_1; tre0_4_1 = tre2_0_0 - tre2_0_1; tim0_4_1 = tim2_0_0 - tim2_0_1; tre0_2_1 = tre2_1_0 - tim2_1_1; tim0_2_1 = tim2_1_0 + tre2_1_1; tre0_6_1 = tre2_1_0 + tim2_1_1; tim0_6_1 = tim2_1_0 - tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 - tim1_1_2; tim2_0_0 = tim1_1_0 + tre1_1_2; tre2_1_0 = tre1_1_0 + tim1_1_2; tim2_1_0 = tim1_1_0 - tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 - tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 + tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 + tim1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 - tim1_1_3); tre2_0_1 = tre3_0_0 - tre3_1_0; tim2_0_1 = tim3_0_0 + tim3_1_0; tre2_1_1 = tre3_0_0 + tre3_1_0; tim2_1_1 = tim3_0_0 - tim3_1_0; } tre0_1_1 = tre2_0_0 + tre2_0_1; tim0_1_1 = tim2_0_0 + tim2_0_1; tre0_5_1 = tre2_0_0 - tre2_0_1; tim0_5_1 = tim2_0_0 - tim2_0_1; tre0_3_1 = tre2_1_0 - tim2_1_1; tim0_3_1 = tim2_1_0 + tre2_1_1; tre0_7_1 = tre2_1_0 + tim2_1_1; tim0_7_1 = tim2_1_0 - tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[2 * stride]); ti = c_im(inout[2 * stride]); twr = c_re(W[1]); twi = c_im(W[1]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[34 * stride]); ti = c_im(inout[34 * stride]); twr = c_re(W[33]); twi = c_im(W[33]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[10 * stride]); ti = c_im(inout[10 * stride]); twr = c_re(W[9]); twi = c_im(W[9]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[42 * stride]); ti = c_im(inout[42 * stride]); twr = c_re(W[41]); twi = c_im(W[41]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[18 * stride]); ti = c_im(inout[18 * stride]); twr = c_re(W[17]); twi = c_im(W[17]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[50 * stride]); ti = c_im(inout[50 * stride]); twr = c_re(W[49]); twi = c_im(W[49]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[26 * stride]); ti = c_im(inout[26 * stride]); twr = c_re(W[25]); twi = c_im(W[25]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[58 * stride]); ti = c_im(inout[58 * stride]); twr = c_re(W[57]); twi = c_im(W[57]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; tre0_0_2 = tre2_0_0 + tre2_0_1; tim0_0_2 = tim2_0_0 + tim2_0_1; tre0_4_2 = tre2_0_0 - tre2_0_1; tim0_4_2 = tim2_0_0 - tim2_0_1; tre0_2_2 = tre2_1_0 - tim2_1_1; tim0_2_2 = tim2_1_0 + tre2_1_1; tre0_6_2 = tre2_1_0 + tim2_1_1; tim0_6_2 = tim2_1_0 - tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 - tim1_1_2; tim2_0_0 = tim1_1_0 + tre1_1_2; tre2_1_0 = tre1_1_0 + tim1_1_2; tim2_1_0 = tim1_1_0 - tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 - tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 + tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 + tim1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 - tim1_1_3); tre2_0_1 = tre3_0_0 - tre3_1_0; tim2_0_1 = tim3_0_0 + tim3_1_0; tre2_1_1 = tre3_0_0 + tre3_1_0; tim2_1_1 = tim3_0_0 - tim3_1_0; } tre0_1_2 = tre2_0_0 + tre2_0_1; tim0_1_2 = tim2_0_0 + tim2_0_1; tre0_5_2 = tre2_0_0 - tre2_0_1; tim0_5_2 = tim2_0_0 - tim2_0_1; tre0_3_2 = tre2_1_0 - tim2_1_1; tim0_3_2 = tim2_1_0 + tre2_1_1; tre0_7_2 = tre2_1_0 + tim2_1_1; tim0_7_2 = tim2_1_0 - tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[3 * stride]); ti = c_im(inout[3 * stride]); twr = c_re(W[2]); twi = c_im(W[2]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[35 * stride]); ti = c_im(inout[35 * stride]); twr = c_re(W[34]); twi = c_im(W[34]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[11 * stride]); ti = c_im(inout[11 * stride]); twr = c_re(W[10]); twi = c_im(W[10]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[43 * stride]); ti = c_im(inout[43 * stride]); twr = c_re(W[42]); twi = c_im(W[42]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[19 * stride]); ti = c_im(inout[19 * stride]); twr = c_re(W[18]); twi = c_im(W[18]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[51 * stride]); ti = c_im(inout[51 * stride]); twr = c_re(W[50]); twi = c_im(W[50]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[27 * stride]); ti = c_im(inout[27 * stride]); twr = c_re(W[26]); twi = c_im(W[26]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[59 * stride]); ti = c_im(inout[59 * stride]); twr = c_re(W[58]); twi = c_im(W[58]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; tre0_0_3 = tre2_0_0 + tre2_0_1; tim0_0_3 = tim2_0_0 + tim2_0_1; tre0_4_3 = tre2_0_0 - tre2_0_1; tim0_4_3 = tim2_0_0 - tim2_0_1; tre0_2_3 = tre2_1_0 - tim2_1_1; tim0_2_3 = tim2_1_0 + tre2_1_1; tre0_6_3 = tre2_1_0 + tim2_1_1; tim0_6_3 = tim2_1_0 - tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 - tim1_1_2; tim2_0_0 = tim1_1_0 + tre1_1_2; tre2_1_0 = tre1_1_0 + tim1_1_2; tim2_1_0 = tim1_1_0 - tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 - tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 + tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 + tim1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 - tim1_1_3); tre2_0_1 = tre3_0_0 - tre3_1_0; tim2_0_1 = tim3_0_0 + tim3_1_0; tre2_1_1 = tre3_0_0 + tre3_1_0; tim2_1_1 = tim3_0_0 - tim3_1_0; } tre0_1_3 = tre2_0_0 + tre2_0_1; tim0_1_3 = tim2_0_0 + tim2_0_1; tre0_5_3 = tre2_0_0 - tre2_0_1; tim0_5_3 = tim2_0_0 - tim2_0_1; tre0_3_3 = tre2_1_0 - tim2_1_1; tim0_3_3 = tim2_1_0 + tre2_1_1; tre0_7_3 = tre2_1_0 + tim2_1_1; tim0_7_3 = tim2_1_0 - tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[4 * stride]); ti = c_im(inout[4 * stride]); twr = c_re(W[3]); twi = c_im(W[3]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[36 * stride]); ti = c_im(inout[36 * stride]); twr = c_re(W[35]); twi = c_im(W[35]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[12 * stride]); ti = c_im(inout[12 * stride]); twr = c_re(W[11]); twi = c_im(W[11]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[44 * stride]); ti = c_im(inout[44 * stride]); twr = c_re(W[43]); twi = c_im(W[43]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[20 * stride]); ti = c_im(inout[20 * stride]); twr = c_re(W[19]); twi = c_im(W[19]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[52 * stride]); ti = c_im(inout[52 * stride]); twr = c_re(W[51]); twi = c_im(W[51]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[28 * stride]); ti = c_im(inout[28 * stride]); twr = c_re(W[27]); twi = c_im(W[27]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[60 * stride]); ti = c_im(inout[60 * stride]); twr = c_re(W[59]); twi = c_im(W[59]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; tre0_0_4 = tre2_0_0 + tre2_0_1; tim0_0_4 = tim2_0_0 + tim2_0_1; tre0_4_4 = tre2_0_0 - tre2_0_1; tim0_4_4 = tim2_0_0 - tim2_0_1; tre0_2_4 = tre2_1_0 - tim2_1_1; tim0_2_4 = tim2_1_0 + tre2_1_1; tre0_6_4 = tre2_1_0 + tim2_1_1; tim0_6_4 = tim2_1_0 - tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 - tim1_1_2; tim2_0_0 = tim1_1_0 + tre1_1_2; tre2_1_0 = tre1_1_0 + tim1_1_2; tim2_1_0 = tim1_1_0 - tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 - tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 + tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 + tim1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 - tim1_1_3); tre2_0_1 = tre3_0_0 - tre3_1_0; tim2_0_1 = tim3_0_0 + tim3_1_0; tre2_1_1 = tre3_0_0 + tre3_1_0; tim2_1_1 = tim3_0_0 - tim3_1_0; } tre0_1_4 = tre2_0_0 + tre2_0_1; tim0_1_4 = tim2_0_0 + tim2_0_1; tre0_5_4 = tre2_0_0 - tre2_0_1; tim0_5_4 = tim2_0_0 - tim2_0_1; tre0_3_4 = tre2_1_0 - tim2_1_1; tim0_3_4 = tim2_1_0 + tre2_1_1; tre0_7_4 = tre2_1_0 + tim2_1_1; tim0_7_4 = tim2_1_0 - tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[5 * stride]); ti = c_im(inout[5 * stride]); twr = c_re(W[4]); twi = c_im(W[4]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[37 * stride]); ti = c_im(inout[37 * stride]); twr = c_re(W[36]); twi = c_im(W[36]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[13 * stride]); ti = c_im(inout[13 * stride]); twr = c_re(W[12]); twi = c_im(W[12]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[45 * stride]); ti = c_im(inout[45 * stride]); twr = c_re(W[44]); twi = c_im(W[44]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[21 * stride]); ti = c_im(inout[21 * stride]); twr = c_re(W[20]); twi = c_im(W[20]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[53 * stride]); ti = c_im(inout[53 * stride]); twr = c_re(W[52]); twi = c_im(W[52]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[29 * stride]); ti = c_im(inout[29 * stride]); twr = c_re(W[28]); twi = c_im(W[28]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[61 * stride]); ti = c_im(inout[61 * stride]); twr = c_re(W[60]); twi = c_im(W[60]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; tre0_0_5 = tre2_0_0 + tre2_0_1; tim0_0_5 = tim2_0_0 + tim2_0_1; tre0_4_5 = tre2_0_0 - tre2_0_1; tim0_4_5 = tim2_0_0 - tim2_0_1; tre0_2_5 = tre2_1_0 - tim2_1_1; tim0_2_5 = tim2_1_0 + tre2_1_1; tre0_6_5 = tre2_1_0 + tim2_1_1; tim0_6_5 = tim2_1_0 - tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 - tim1_1_2; tim2_0_0 = tim1_1_0 + tre1_1_2; tre2_1_0 = tre1_1_0 + tim1_1_2; tim2_1_0 = tim1_1_0 - tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 - tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 + tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 + tim1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 - tim1_1_3); tre2_0_1 = tre3_0_0 - tre3_1_0; tim2_0_1 = tim3_0_0 + tim3_1_0; tre2_1_1 = tre3_0_0 + tre3_1_0; tim2_1_1 = tim3_0_0 - tim3_1_0; } tre0_1_5 = tre2_0_0 + tre2_0_1; tim0_1_5 = tim2_0_0 + tim2_0_1; tre0_5_5 = tre2_0_0 - tre2_0_1; tim0_5_5 = tim2_0_0 - tim2_0_1; tre0_3_5 = tre2_1_0 - tim2_1_1; tim0_3_5 = tim2_1_0 + tre2_1_1; tre0_7_5 = tre2_1_0 + tim2_1_1; tim0_7_5 = tim2_1_0 - tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[6 * stride]); ti = c_im(inout[6 * stride]); twr = c_re(W[5]); twi = c_im(W[5]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[38 * stride]); ti = c_im(inout[38 * stride]); twr = c_re(W[37]); twi = c_im(W[37]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[14 * stride]); ti = c_im(inout[14 * stride]); twr = c_re(W[13]); twi = c_im(W[13]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[46 * stride]); ti = c_im(inout[46 * stride]); twr = c_re(W[45]); twi = c_im(W[45]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[22 * stride]); ti = c_im(inout[22 * stride]); twr = c_re(W[21]); twi = c_im(W[21]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[54 * stride]); ti = c_im(inout[54 * stride]); twr = c_re(W[53]); twi = c_im(W[53]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[30 * stride]); ti = c_im(inout[30 * stride]); twr = c_re(W[29]); twi = c_im(W[29]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[62 * stride]); ti = c_im(inout[62 * stride]); twr = c_re(W[61]); twi = c_im(W[61]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; tre0_0_6 = tre2_0_0 + tre2_0_1; tim0_0_6 = tim2_0_0 + tim2_0_1; tre0_4_6 = tre2_0_0 - tre2_0_1; tim0_4_6 = tim2_0_0 - tim2_0_1; tre0_2_6 = tre2_1_0 - tim2_1_1; tim0_2_6 = tim2_1_0 + tre2_1_1; tre0_6_6 = tre2_1_0 + tim2_1_1; tim0_6_6 = tim2_1_0 - tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 - tim1_1_2; tim2_0_0 = tim1_1_0 + tre1_1_2; tre2_1_0 = tre1_1_0 + tim1_1_2; tim2_1_0 = tim1_1_0 - tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 - tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 + tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 + tim1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 - tim1_1_3); tre2_0_1 = tre3_0_0 - tre3_1_0; tim2_0_1 = tim3_0_0 + tim3_1_0; tre2_1_1 = tre3_0_0 + tre3_1_0; tim2_1_1 = tim3_0_0 - tim3_1_0; } tre0_1_6 = tre2_0_0 + tre2_0_1; tim0_1_6 = tim2_0_0 + tim2_0_1; tre0_5_6 = tre2_0_0 - tre2_0_1; tim0_5_6 = tim2_0_0 - tim2_0_1; tre0_3_6 = tre2_1_0 - tim2_1_1; tim0_3_6 = tim2_1_0 + tre2_1_1; tre0_7_6 = tre2_1_0 + tim2_1_1; tim0_7_6 = tim2_1_0 - tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[7 * stride]); ti = c_im(inout[7 * stride]); twr = c_re(W[6]); twi = c_im(W[6]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[39 * stride]); ti = c_im(inout[39 * stride]); twr = c_re(W[38]); twi = c_im(W[38]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_0 = tre2_0_0 + tre2_1_0; tim1_0_0 = tim2_0_0 + tim2_1_0; tre1_1_0 = tre2_0_0 - tre2_1_0; tim1_1_0 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[15 * stride]); ti = c_im(inout[15 * stride]); twr = c_re(W[14]); twi = c_im(W[14]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[47 * stride]); ti = c_im(inout[47 * stride]); twr = c_re(W[46]); twi = c_im(W[46]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[23 * stride]); ti = c_im(inout[23 * stride]); twr = c_re(W[22]); twi = c_im(W[22]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[55 * stride]); ti = c_im(inout[55 * stride]); twr = c_re(W[54]); twi = c_im(W[54]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[31 * stride]); ti = c_im(inout[31 * stride]); twr = c_re(W[30]); twi = c_im(W[30]); tre2_0_0 = (tr * twr) + (ti * twi); tim2_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[63 * stride]); ti = c_im(inout[63 * stride]); twr = c_re(W[62]); twi = c_im(W[62]); tre2_1_0 = (tr * twr) + (ti * twi); tim2_1_0 = (ti * twr) - (tr * twi); } tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; tre0_0_7 = tre2_0_0 + tre2_0_1; tim0_0_7 = tim2_0_0 + tim2_0_1; tre0_4_7 = tre2_0_0 - tre2_0_1; tim0_4_7 = tim2_0_0 - tim2_0_1; tre0_2_7 = tre2_1_0 - tim2_1_1; tim0_2_7 = tim2_1_0 + tre2_1_1; tre0_6_7 = tre2_1_0 + tim2_1_1; tim0_6_7 = tim2_1_0 - tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 - tim1_1_2; tim2_0_0 = tim1_1_0 + tre1_1_2; tre2_1_0 = tre1_1_0 + tim1_1_2; tim2_1_0 = tim1_1_0 - tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 - tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 + tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 + tim1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 - tim1_1_3); tre2_0_1 = tre3_0_0 - tre3_1_0; tim2_0_1 = tim3_0_0 + tim3_1_0; tre2_1_1 = tre3_0_0 + tre3_1_0; tim2_1_1 = tim3_0_0 - tim3_1_0; } tre0_1_7 = tre2_0_0 + tre2_0_1; tim0_1_7 = tim2_0_0 + tim2_0_1; tre0_5_7 = tre2_0_0 - tre2_0_1; tim0_5_7 = tim2_0_0 - tim2_0_1; tre0_3_7 = tre2_1_0 - tim2_1_1; tim0_3_7 = tim2_1_0 + tre2_1_1; tre0_7_7 = tre2_1_0 + tim2_1_1; tim0_7_7 = tim2_1_0 - tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; tre1_0_0 = tre0_0_0 + tre0_0_4; tim1_0_0 = tim0_0_0 + tim0_0_4; tre1_1_0 = tre0_0_0 - tre0_0_4; tim1_1_0 = tim0_0_0 - tim0_0_4; tre1_0_1 = tre0_0_1 + tre0_0_5; tim1_0_1 = tim0_0_1 + tim0_0_5; tre1_1_1 = tre0_0_1 - tre0_0_5; tim1_1_1 = tim0_0_1 - tim0_0_5; tre1_0_2 = tre0_0_2 + tre0_0_6; tim1_0_2 = tim0_0_2 + tim0_0_6; tre1_1_2 = tre0_0_2 - tre0_0_6; tim1_1_2 = tim0_0_2 - tim0_0_6; tre1_0_3 = tre0_0_3 + tre0_0_7; tim1_0_3 = tim0_0_3 + tim0_0_7; tre1_1_3 = tre0_0_3 - tre0_0_7; tim1_1_3 = tim0_0_3 - tim0_0_7; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; c_re(inout[0]) = tre2_0_0 + tre2_0_1; c_im(inout[0]) = tim2_0_0 + tim2_0_1; c_re(inout[32 * stride]) = tre2_0_0 - tre2_0_1; c_im(inout[32 * stride]) = tim2_0_0 - tim2_0_1; c_re(inout[16 * stride]) = tre2_1_0 - tim2_1_1; c_im(inout[16 * stride]) = tim2_1_0 + tre2_1_1; c_re(inout[48 * stride]) = tre2_1_0 + tim2_1_1; c_im(inout[48 * stride]) = tim2_1_0 - tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 - tim1_1_2; tim2_0_0 = tim1_1_0 + tre1_1_2; tre2_1_0 = tre1_1_0 + tim1_1_2; tim2_1_0 = tim1_1_0 - tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 - tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 + tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 + tim1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 - tim1_1_3); tre2_0_1 = tre3_0_0 - tre3_1_0; tim2_0_1 = tim3_0_0 + tim3_1_0; tre2_1_1 = tre3_0_0 + tre3_1_0; tim2_1_1 = tim3_0_0 - tim3_1_0; } c_re(inout[8 * stride]) = tre2_0_0 + tre2_0_1; c_im(inout[8 * stride]) = tim2_0_0 + tim2_0_1; c_re(inout[40 * stride]) = tre2_0_0 - tre2_0_1; c_im(inout[40 * stride]) = tim2_0_0 - tim2_0_1; c_re(inout[24 * stride]) = tre2_1_0 - tim2_1_1; c_im(inout[24 * stride]) = tim2_1_0 + tre2_1_1; c_re(inout[56 * stride]) = tre2_1_0 + tim2_1_1; c_im(inout[56 * stride]) = tim2_1_0 - tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_1_0 = (((FFTW_REAL) FFTW_K923879532) * tre0_1_4) - (((FFTW_REAL) FFTW_K382683432) * tim0_1_4); tim2_1_0 = (((FFTW_REAL) FFTW_K923879532) * tim0_1_4) + (((FFTW_REAL) FFTW_K382683432) * tre0_1_4); tre1_0_0 = tre0_1_0 + tre2_1_0; tim1_0_0 = tim0_1_0 + tim2_1_0; tre1_1_0 = tre0_1_0 - tre2_1_0; tim1_1_0 = tim0_1_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K995184726) * tre0_1_1) - (((FFTW_REAL) FFTW_K098017140) * tim0_1_1); tim2_0_0 = (((FFTW_REAL) FFTW_K995184726) * tim0_1_1) + (((FFTW_REAL) FFTW_K098017140) * tre0_1_1); tre2_1_0 = (((FFTW_REAL) FFTW_K881921264) * tre0_1_5) - (((FFTW_REAL) FFTW_K471396736) * tim0_1_5); tim2_1_0 = (((FFTW_REAL) FFTW_K881921264) * tim0_1_5) + (((FFTW_REAL) FFTW_K471396736) * tre0_1_5); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K980785280) * tre0_1_2) - (((FFTW_REAL) FFTW_K195090322) * tim0_1_2); tim2_0_0 = (((FFTW_REAL) FFTW_K980785280) * tim0_1_2) + (((FFTW_REAL) FFTW_K195090322) * tre0_1_2); tre2_1_0 = (((FFTW_REAL) FFTW_K831469612) * tre0_1_6) - (((FFTW_REAL) FFTW_K555570233) * tim0_1_6); tim2_1_0 = (((FFTW_REAL) FFTW_K831469612) * tim0_1_6) + (((FFTW_REAL) FFTW_K555570233) * tre0_1_6); tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K956940335) * tre0_1_3) - (((FFTW_REAL) FFTW_K290284677) * tim0_1_3); tim2_0_0 = (((FFTW_REAL) FFTW_K956940335) * tim0_1_3) + (((FFTW_REAL) FFTW_K290284677) * tre0_1_3); tre2_1_0 = (((FFTW_REAL) FFTW_K773010453) * tre0_1_7) - (((FFTW_REAL) FFTW_K634393284) * tim0_1_7); tim2_1_0 = (((FFTW_REAL) FFTW_K773010453) * tim0_1_7) + (((FFTW_REAL) FFTW_K634393284) * tre0_1_7); tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; c_re(inout[stride]) = tre2_0_0 + tre2_0_1; c_im(inout[stride]) = tim2_0_0 + tim2_0_1; c_re(inout[33 * stride]) = tre2_0_0 - tre2_0_1; c_im(inout[33 * stride]) = tim2_0_0 - tim2_0_1; c_re(inout[17 * stride]) = tre2_1_0 - tim2_1_1; c_im(inout[17 * stride]) = tim2_1_0 + tre2_1_1; c_re(inout[49 * stride]) = tre2_1_0 + tim2_1_1; c_im(inout[49 * stride]) = tim2_1_0 - tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 - tim1_1_2; tim2_0_0 = tim1_1_0 + tre1_1_2; tre2_1_0 = tre1_1_0 + tim1_1_2; tim2_1_0 = tim1_1_0 - tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 - tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 + tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 + tim1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 - tim1_1_3); tre2_0_1 = tre3_0_0 - tre3_1_0; tim2_0_1 = tim3_0_0 + tim3_1_0; tre2_1_1 = tre3_0_0 + tre3_1_0; tim2_1_1 = tim3_0_0 - tim3_1_0; } c_re(inout[9 * stride]) = tre2_0_0 + tre2_0_1; c_im(inout[9 * stride]) = tim2_0_0 + tim2_0_1; c_re(inout[41 * stride]) = tre2_0_0 - tre2_0_1; c_im(inout[41 * stride]) = tim2_0_0 - tim2_0_1; c_re(inout[25 * stride]) = tre2_1_0 - tim2_1_1; c_im(inout[25 * stride]) = tim2_1_0 + tre2_1_1; c_re(inout[57 * stride]) = tre2_1_0 + tim2_1_1; c_im(inout[57 * stride]) = tim2_1_0 - tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_2_4 - tim0_2_4); tim2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_2_4 + tre0_2_4); tre1_0_0 = tre0_2_0 + tre2_1_0; tim1_0_0 = tim0_2_0 + tim2_1_0; tre1_1_0 = tre0_2_0 - tre2_1_0; tim1_1_0 = tim0_2_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K980785280) * tre0_2_1) - (((FFTW_REAL) FFTW_K195090322) * tim0_2_1); tim2_0_0 = (((FFTW_REAL) FFTW_K980785280) * tim0_2_1) + (((FFTW_REAL) FFTW_K195090322) * tre0_2_1); tre2_1_0 = (((FFTW_REAL) FFTW_K555570233) * tre0_2_5) - (((FFTW_REAL) FFTW_K831469612) * tim0_2_5); tim2_1_0 = (((FFTW_REAL) FFTW_K555570233) * tim0_2_5) + (((FFTW_REAL) FFTW_K831469612) * tre0_2_5); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K923879532) * tre0_2_2) - (((FFTW_REAL) FFTW_K382683432) * tim0_2_2); tim2_0_0 = (((FFTW_REAL) FFTW_K923879532) * tim0_2_2) + (((FFTW_REAL) FFTW_K382683432) * tre0_2_2); tre2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_2_6) - (((FFTW_REAL) FFTW_K923879532) * tim0_2_6); tim2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_2_6) + (((FFTW_REAL) FFTW_K923879532) * tre0_2_6); tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K831469612) * tre0_2_3) - (((FFTW_REAL) FFTW_K555570233) * tim0_2_3); tim2_0_0 = (((FFTW_REAL) FFTW_K831469612) * tim0_2_3) + (((FFTW_REAL) FFTW_K555570233) * tre0_2_3); tre2_1_0 = (((FFTW_REAL) FFTW_K195090322) * tre0_2_7) - (((FFTW_REAL) FFTW_K980785280) * tim0_2_7); tim2_1_0 = (((FFTW_REAL) FFTW_K195090322) * tim0_2_7) + (((FFTW_REAL) FFTW_K980785280) * tre0_2_7); tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; c_re(inout[2 * stride]) = tre2_0_0 + tre2_0_1; c_im(inout[2 * stride]) = tim2_0_0 + tim2_0_1; c_re(inout[34 * stride]) = tre2_0_0 - tre2_0_1; c_im(inout[34 * stride]) = tim2_0_0 - tim2_0_1; c_re(inout[18 * stride]) = tre2_1_0 - tim2_1_1; c_im(inout[18 * stride]) = tim2_1_0 + tre2_1_1; c_re(inout[50 * stride]) = tre2_1_0 + tim2_1_1; c_im(inout[50 * stride]) = tim2_1_0 - tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 - tim1_1_2; tim2_0_0 = tim1_1_0 + tre1_1_2; tre2_1_0 = tre1_1_0 + tim1_1_2; tim2_1_0 = tim1_1_0 - tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 - tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 + tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 + tim1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 - tim1_1_3); tre2_0_1 = tre3_0_0 - tre3_1_0; tim2_0_1 = tim3_0_0 + tim3_1_0; tre2_1_1 = tre3_0_0 + tre3_1_0; tim2_1_1 = tim3_0_0 - tim3_1_0; } c_re(inout[10 * stride]) = tre2_0_0 + tre2_0_1; c_im(inout[10 * stride]) = tim2_0_0 + tim2_0_1; c_re(inout[42 * stride]) = tre2_0_0 - tre2_0_1; c_im(inout[42 * stride]) = tim2_0_0 - tim2_0_1; c_re(inout[26 * stride]) = tre2_1_0 - tim2_1_1; c_im(inout[26 * stride]) = tim2_1_0 + tre2_1_1; c_re(inout[58 * stride]) = tre2_1_0 + tim2_1_1; c_im(inout[58 * stride]) = tim2_1_0 - tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_3_4) - (((FFTW_REAL) FFTW_K923879532) * tim0_3_4); tim2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_3_4) + (((FFTW_REAL) FFTW_K923879532) * tre0_3_4); tre1_0_0 = tre0_3_0 + tre2_1_0; tim1_0_0 = tim0_3_0 + tim2_1_0; tre1_1_0 = tre0_3_0 - tre2_1_0; tim1_1_0 = tim0_3_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K956940335) * tre0_3_1) - (((FFTW_REAL) FFTW_K290284677) * tim0_3_1); tim2_0_0 = (((FFTW_REAL) FFTW_K956940335) * tim0_3_1) + (((FFTW_REAL) FFTW_K290284677) * tre0_3_1); tre2_1_0 = (((FFTW_REAL) FFTW_K098017140) * tre0_3_5) - (((FFTW_REAL) FFTW_K995184726) * tim0_3_5); tim2_1_0 = (((FFTW_REAL) FFTW_K098017140) * tim0_3_5) + (((FFTW_REAL) FFTW_K995184726) * tre0_3_5); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K831469612) * tre0_3_2) - (((FFTW_REAL) FFTW_K555570233) * tim0_3_2); tim2_0_0 = (((FFTW_REAL) FFTW_K831469612) * tim0_3_2) + (((FFTW_REAL) FFTW_K555570233) * tre0_3_2); tre2_1_0 = (((FFTW_REAL) FFTW_K195090322) * tre0_3_6) + (((FFTW_REAL) FFTW_K980785280) * tim0_3_6); tim2_1_0 = (((FFTW_REAL) FFTW_K980785280) * tre0_3_6) - (((FFTW_REAL) FFTW_K195090322) * tim0_3_6); tre1_0_2 = tre2_0_0 - tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 + tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K634393284) * tre0_3_3) - (((FFTW_REAL) FFTW_K773010453) * tim0_3_3); tim2_0_0 = (((FFTW_REAL) FFTW_K634393284) * tim0_3_3) + (((FFTW_REAL) FFTW_K773010453) * tre0_3_3); tre2_1_0 = (((FFTW_REAL) FFTW_K471396736) * tre0_3_7) + (((FFTW_REAL) FFTW_K881921264) * tim0_3_7); tim2_1_0 = (((FFTW_REAL) FFTW_K881921264) * tre0_3_7) - (((FFTW_REAL) FFTW_K471396736) * tim0_3_7); tre1_0_3 = tre2_0_0 - tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 + tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; c_re(inout[3 * stride]) = tre2_0_0 + tre2_0_1; c_im(inout[3 * stride]) = tim2_0_0 + tim2_0_1; c_re(inout[35 * stride]) = tre2_0_0 - tre2_0_1; c_im(inout[35 * stride]) = tim2_0_0 - tim2_0_1; c_re(inout[19 * stride]) = tre2_1_0 - tim2_1_1; c_im(inout[19 * stride]) = tim2_1_0 + tre2_1_1; c_re(inout[51 * stride]) = tre2_1_0 + tim2_1_1; c_im(inout[51 * stride]) = tim2_1_0 - tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 - tim1_1_2; tim2_0_0 = tim1_1_0 + tre1_1_2; tre2_1_0 = tre1_1_0 + tim1_1_2; tim2_1_0 = tim1_1_0 - tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 - tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 + tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 + tim1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 - tim1_1_3); tre2_0_1 = tre3_0_0 - tre3_1_0; tim2_0_1 = tim3_0_0 + tim3_1_0; tre2_1_1 = tre3_0_0 + tre3_1_0; tim2_1_1 = tim3_0_0 - tim3_1_0; } c_re(inout[11 * stride]) = tre2_0_0 + tre2_0_1; c_im(inout[11 * stride]) = tim2_0_0 + tim2_0_1; c_re(inout[43 * stride]) = tre2_0_0 - tre2_0_1; c_im(inout[43 * stride]) = tim2_0_0 - tim2_0_1; c_re(inout[27 * stride]) = tre2_1_0 - tim2_1_1; c_im(inout[27 * stride]) = tim2_1_0 + tre2_1_1; c_re(inout[59 * stride]) = tre2_1_0 + tim2_1_1; c_im(inout[59 * stride]) = tim2_1_0 - tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; tre1_0_0 = tre0_4_0 - tim0_4_4; tim1_0_0 = tim0_4_0 + tre0_4_4; tre1_1_0 = tre0_4_0 + tim0_4_4; tim1_1_0 = tim0_4_0 - tre0_4_4; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K923879532) * tre0_4_1) - (((FFTW_REAL) FFTW_K382683432) * tim0_4_1); tim2_0_0 = (((FFTW_REAL) FFTW_K923879532) * tim0_4_1) + (((FFTW_REAL) FFTW_K382683432) * tre0_4_1); tre2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_4_5) + (((FFTW_REAL) FFTW_K923879532) * tim0_4_5); tim2_1_0 = (((FFTW_REAL) FFTW_K923879532) * tre0_4_5) - (((FFTW_REAL) FFTW_K382683432) * tim0_4_5); tre1_0_1 = tre2_0_0 - tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 + tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_4_2 - tim0_4_2); tim2_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_4_2 + tre0_4_2); tre2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_4_6 + tim0_4_6); tim2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_4_6 - tim0_4_6); tre1_0_2 = tre2_0_0 - tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 + tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_4_3) - (((FFTW_REAL) FFTW_K923879532) * tim0_4_3); tim2_0_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_4_3) + (((FFTW_REAL) FFTW_K923879532) * tre0_4_3); tre2_1_0 = (((FFTW_REAL) FFTW_K923879532) * tre0_4_7) + (((FFTW_REAL) FFTW_K382683432) * tim0_4_7); tim2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_4_7) - (((FFTW_REAL) FFTW_K923879532) * tim0_4_7); tre1_0_3 = tre2_0_0 - tre2_1_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = tre2_0_0 + tre2_1_0; tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; c_re(inout[4 * stride]) = tre2_0_0 + tre2_0_1; c_im(inout[4 * stride]) = tim2_0_0 + tim2_0_1; c_re(inout[36 * stride]) = tre2_0_0 - tre2_0_1; c_im(inout[36 * stride]) = tim2_0_0 - tim2_0_1; c_re(inout[20 * stride]) = tre2_1_0 - tim2_1_1; c_im(inout[20 * stride]) = tim2_1_0 + tre2_1_1; c_re(inout[52 * stride]) = tre2_1_0 + tim2_1_1; c_im(inout[52 * stride]) = tim2_1_0 - tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 - tim1_1_2; tim2_0_0 = tim1_1_0 + tre1_1_2; tre2_1_0 = tre1_1_0 + tim1_1_2; tim2_1_0 = tim1_1_0 - tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 - tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 + tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 + tim1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 - tim1_1_3); tre2_0_1 = tre3_0_0 - tre3_1_0; tim2_0_1 = tim3_0_0 + tim3_1_0; tre2_1_1 = tre3_0_0 + tre3_1_0; tim2_1_1 = tim3_0_0 - tim3_1_0; } c_re(inout[12 * stride]) = tre2_0_0 + tre2_0_1; c_im(inout[12 * stride]) = tim2_0_0 + tim2_0_1; c_re(inout[44 * stride]) = tre2_0_0 - tre2_0_1; c_im(inout[44 * stride]) = tim2_0_0 - tim2_0_1; c_re(inout[28 * stride]) = tre2_1_0 - tim2_1_1; c_im(inout[28 * stride]) = tim2_1_0 + tre2_1_1; c_re(inout[60 * stride]) = tre2_1_0 + tim2_1_1; c_im(inout[60 * stride]) = tim2_1_0 - tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_5_4) + (((FFTW_REAL) FFTW_K923879532) * tim0_5_4); tim2_1_0 = (((FFTW_REAL) FFTW_K923879532) * tre0_5_4) - (((FFTW_REAL) FFTW_K382683432) * tim0_5_4); tre1_0_0 = tre0_5_0 - tre2_1_0; tim1_0_0 = tim0_5_0 + tim2_1_0; tre1_1_0 = tre0_5_0 + tre2_1_0; tim1_1_0 = tim0_5_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K881921264) * tre0_5_1) - (((FFTW_REAL) FFTW_K471396736) * tim0_5_1); tim2_0_0 = (((FFTW_REAL) FFTW_K881921264) * tim0_5_1) + (((FFTW_REAL) FFTW_K471396736) * tre0_5_1); tre2_1_0 = (((FFTW_REAL) FFTW_K773010453) * tre0_5_5) + (((FFTW_REAL) FFTW_K634393284) * tim0_5_5); tim2_1_0 = (((FFTW_REAL) FFTW_K634393284) * tre0_5_5) - (((FFTW_REAL) FFTW_K773010453) * tim0_5_5); tre1_0_1 = tre2_0_0 - tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 + tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K555570233) * tre0_5_2) - (((FFTW_REAL) FFTW_K831469612) * tim0_5_2); tim2_0_0 = (((FFTW_REAL) FFTW_K555570233) * tim0_5_2) + (((FFTW_REAL) FFTW_K831469612) * tre0_5_2); tre2_1_0 = (((FFTW_REAL) FFTW_K980785280) * tre0_5_6) + (((FFTW_REAL) FFTW_K195090322) * tim0_5_6); tim2_1_0 = (((FFTW_REAL) FFTW_K195090322) * tre0_5_6) - (((FFTW_REAL) FFTW_K980785280) * tim0_5_6); tre1_0_2 = tre2_0_0 - tre2_1_0; tim1_0_2 = tim2_0_0 + tim2_1_0; tre1_1_2 = tre2_0_0 + tre2_1_0; tim1_1_2 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K098017140) * tre0_5_3) - (((FFTW_REAL) FFTW_K995184726) * tim0_5_3); tim2_0_0 = (((FFTW_REAL) FFTW_K098017140) * tim0_5_3) + (((FFTW_REAL) FFTW_K995184726) * tre0_5_3); tre2_1_0 = (((FFTW_REAL) FFTW_K290284677) * tim0_5_7) - (((FFTW_REAL) FFTW_K956940335) * tre0_5_7); tim2_1_0 = (((FFTW_REAL) FFTW_K956940335) * tim0_5_7) + (((FFTW_REAL) FFTW_K290284677) * tre0_5_7); tre1_0_3 = tre2_0_0 + tre2_1_0; tim1_0_3 = tim2_0_0 - tim2_1_0; tre1_1_3 = tre2_0_0 - tre2_1_0; tim1_1_3 = tim2_0_0 + tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; c_re(inout[5 * stride]) = tre2_0_0 + tre2_0_1; c_im(inout[5 * stride]) = tim2_0_0 + tim2_0_1; c_re(inout[37 * stride]) = tre2_0_0 - tre2_0_1; c_im(inout[37 * stride]) = tim2_0_0 - tim2_0_1; c_re(inout[21 * stride]) = tre2_1_0 - tim2_1_1; c_im(inout[21 * stride]) = tim2_1_0 + tre2_1_1; c_re(inout[53 * stride]) = tre2_1_0 + tim2_1_1; c_im(inout[53 * stride]) = tim2_1_0 - tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 - tim1_1_2; tim2_0_0 = tim1_1_0 + tre1_1_2; tre2_1_0 = tre1_1_0 + tim1_1_2; tim2_1_0 = tim1_1_0 - tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 - tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 + tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 + tim1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 - tim1_1_3); tre2_0_1 = tre3_0_0 - tre3_1_0; tim2_0_1 = tim3_0_0 + tim3_1_0; tre2_1_1 = tre3_0_0 + tre3_1_0; tim2_1_1 = tim3_0_0 - tim3_1_0; } c_re(inout[13 * stride]) = tre2_0_0 + tre2_0_1; c_im(inout[13 * stride]) = tim2_0_0 + tim2_0_1; c_re(inout[45 * stride]) = tre2_0_0 - tre2_0_1; c_im(inout[45 * stride]) = tim2_0_0 - tim2_0_1; c_re(inout[29 * stride]) = tre2_1_0 - tim2_1_1; c_im(inout[29 * stride]) = tim2_1_0 + tre2_1_1; c_re(inout[61 * stride]) = tre2_1_0 + tim2_1_1; c_im(inout[61 * stride]) = tim2_1_0 - tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_6_4 + tim0_6_4); tim2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_6_4 - tim0_6_4); tre1_0_0 = tre0_6_0 - tre2_1_0; tim1_0_0 = tim0_6_0 + tim2_1_0; tre1_1_0 = tre0_6_0 + tre2_1_0; tim1_1_0 = tim0_6_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K831469612) * tre0_6_1) - (((FFTW_REAL) FFTW_K555570233) * tim0_6_1); tim2_0_0 = (((FFTW_REAL) FFTW_K831469612) * tim0_6_1) + (((FFTW_REAL) FFTW_K555570233) * tre0_6_1); tre2_1_0 = (((FFTW_REAL) FFTW_K980785280) * tre0_6_5) + (((FFTW_REAL) FFTW_K195090322) * tim0_6_5); tim2_1_0 = (((FFTW_REAL) FFTW_K195090322) * tre0_6_5) - (((FFTW_REAL) FFTW_K980785280) * tim0_6_5); tre1_0_1 = tre2_0_0 - tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 + tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_6_2) - (((FFTW_REAL) FFTW_K923879532) * tim0_6_2); tim2_0_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_6_2) + (((FFTW_REAL) FFTW_K923879532) * tre0_6_2); tre2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tim0_6_6) - (((FFTW_REAL) FFTW_K923879532) * tre0_6_6); tim2_1_0 = (((FFTW_REAL) FFTW_K923879532) * tim0_6_6) + (((FFTW_REAL) FFTW_K382683432) * tre0_6_6); tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 - tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 + tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K195090322) * tre0_6_3) + (((FFTW_REAL) FFTW_K980785280) * tim0_6_3); tim2_0_0 = (((FFTW_REAL) FFTW_K980785280) * tre0_6_3) - (((FFTW_REAL) FFTW_K195090322) * tim0_6_3); tre2_1_0 = (((FFTW_REAL) FFTW_K831469612) * tim0_6_7) - (((FFTW_REAL) FFTW_K555570233) * tre0_6_7); tim2_1_0 = (((FFTW_REAL) FFTW_K555570233) * tim0_6_7) + (((FFTW_REAL) FFTW_K831469612) * tre0_6_7); tre1_0_3 = tre2_1_0 - tre2_0_0; tim1_0_3 = tim2_0_0 - tim2_1_0; tre1_1_3 = (-(tre2_0_0 + tre2_1_0)); tim1_1_3 = tim2_0_0 + tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; c_re(inout[6 * stride]) = tre2_0_0 + tre2_0_1; c_im(inout[6 * stride]) = tim2_0_0 + tim2_0_1; c_re(inout[38 * stride]) = tre2_0_0 - tre2_0_1; c_im(inout[38 * stride]) = tim2_0_0 - tim2_0_1; c_re(inout[22 * stride]) = tre2_1_0 - tim2_1_1; c_im(inout[22 * stride]) = tim2_1_0 + tre2_1_1; c_re(inout[54 * stride]) = tre2_1_0 + tim2_1_1; c_im(inout[54 * stride]) = tim2_1_0 - tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 - tim1_1_2; tim2_0_0 = tim1_1_0 + tre1_1_2; tre2_1_0 = tre1_1_0 + tim1_1_2; tim2_1_0 = tim1_1_0 - tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 - tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 + tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 + tim1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 - tim1_1_3); tre2_0_1 = tre3_0_0 - tre3_1_0; tim2_0_1 = tim3_0_0 + tim3_1_0; tre2_1_1 = tre3_0_0 + tre3_1_0; tim2_1_1 = tim3_0_0 - tim3_1_0; } c_re(inout[14 * stride]) = tre2_0_0 + tre2_0_1; c_im(inout[14 * stride]) = tim2_0_0 + tim2_0_1; c_re(inout[46 * stride]) = tre2_0_0 - tre2_0_1; c_im(inout[46 * stride]) = tim2_0_0 - tim2_0_1; c_re(inout[30 * stride]) = tre2_1_0 - tim2_1_1; c_im(inout[30 * stride]) = tim2_1_0 + tre2_1_1; c_re(inout[62 * stride]) = tre2_1_0 + tim2_1_1; c_im(inout[62 * stride]) = tim2_1_0 - tre2_1_1; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_0_2; FFTW_REAL tim1_0_2; FFTW_REAL tre1_0_3; FFTW_REAL tim1_0_3; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; FFTW_REAL tre1_1_2; FFTW_REAL tim1_1_2; FFTW_REAL tre1_1_3; FFTW_REAL tim1_1_3; { FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_1_0 = (((FFTW_REAL) FFTW_K923879532) * tre0_7_4) + (((FFTW_REAL) FFTW_K382683432) * tim0_7_4); tim2_1_0 = (((FFTW_REAL) FFTW_K382683432) * tre0_7_4) - (((FFTW_REAL) FFTW_K923879532) * tim0_7_4); tre1_0_0 = tre0_7_0 - tre2_1_0; tim1_0_0 = tim0_7_0 + tim2_1_0; tre1_1_0 = tre0_7_0 + tre2_1_0; tim1_1_0 = tim0_7_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K773010453) * tre0_7_1) - (((FFTW_REAL) FFTW_K634393284) * tim0_7_1); tim2_0_0 = (((FFTW_REAL) FFTW_K773010453) * tim0_7_1) + (((FFTW_REAL) FFTW_K634393284) * tre0_7_1); tre2_1_0 = (((FFTW_REAL) FFTW_K290284677) * tim0_7_5) - (((FFTW_REAL) FFTW_K956940335) * tre0_7_5); tim2_1_0 = (((FFTW_REAL) FFTW_K956940335) * tim0_7_5) + (((FFTW_REAL) FFTW_K290284677) * tre0_7_5); tre1_0_1 = tre2_0_0 + tre2_1_0; tim1_0_1 = tim2_0_0 - tim2_1_0; tre1_1_1 = tre2_0_0 - tre2_1_0; tim1_1_1 = tim2_0_0 + tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K195090322) * tre0_7_2) - (((FFTW_REAL) FFTW_K980785280) * tim0_7_2); tim2_0_0 = (((FFTW_REAL) FFTW_K195090322) * tim0_7_2) + (((FFTW_REAL) FFTW_K980785280) * tre0_7_2); tre2_1_0 = (((FFTW_REAL) FFTW_K831469612) * tim0_7_6) - (((FFTW_REAL) FFTW_K555570233) * tre0_7_6); tim2_1_0 = (((FFTW_REAL) FFTW_K555570233) * tim0_7_6) + (((FFTW_REAL) FFTW_K831469612) * tre0_7_6); tre1_0_2 = tre2_0_0 + tre2_1_0; tim1_0_2 = tim2_0_0 - tim2_1_0; tre1_1_2 = tre2_0_0 - tre2_1_0; tim1_1_2 = tim2_0_0 + tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = (((FFTW_REAL) FFTW_K471396736) * tre0_7_3) + (((FFTW_REAL) FFTW_K881921264) * tim0_7_3); tim2_0_0 = (((FFTW_REAL) FFTW_K881921264) * tre0_7_3) - (((FFTW_REAL) FFTW_K471396736) * tim0_7_3); tre2_1_0 = (((FFTW_REAL) FFTW_K098017140) * tre0_7_7) + (((FFTW_REAL) FFTW_K995184726) * tim0_7_7); tim2_1_0 = (((FFTW_REAL) FFTW_K098017140) * tim0_7_7) - (((FFTW_REAL) FFTW_K995184726) * tre0_7_7); tre1_0_3 = tre2_1_0 - tre2_0_0; tim1_0_3 = tim2_0_0 + tim2_1_0; tre1_1_3 = (-(tre2_0_0 + tre2_1_0)); tim1_1_3 = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_0_0 + tre1_0_2; tim2_0_0 = tim1_0_0 + tim1_0_2; tre2_1_0 = tre1_0_0 - tre1_0_2; tim2_1_0 = tim1_0_0 - tim1_0_2; tre2_0_1 = tre1_0_1 + tre1_0_3; tim2_0_1 = tim1_0_1 + tim1_0_3; tre2_1_1 = tre1_0_1 - tre1_0_3; tim2_1_1 = tim1_0_1 - tim1_0_3; c_re(inout[7 * stride]) = tre2_0_0 + tre2_0_1; c_im(inout[7 * stride]) = tim2_0_0 + tim2_0_1; c_re(inout[39 * stride]) = tre2_0_0 - tre2_0_1; c_im(inout[39 * stride]) = tim2_0_0 - tim2_0_1; c_re(inout[23 * stride]) = tre2_1_0 - tim2_1_1; c_im(inout[23 * stride]) = tim2_1_0 + tre2_1_1; c_re(inout[55 * stride]) = tre2_1_0 + tim2_1_1; c_im(inout[55 * stride]) = tim2_1_0 - tre2_1_1; } { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_0_1; FFTW_REAL tim2_0_1; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; FFTW_REAL tre2_1_1; FFTW_REAL tim2_1_1; tre2_0_0 = tre1_1_0 - tim1_1_2; tim2_0_0 = tim1_1_0 + tre1_1_2; tre2_1_0 = tre1_1_0 + tim1_1_2; tim2_1_0 = tim1_1_0 - tre1_1_2; { FFTW_REAL tre3_0_0; FFTW_REAL tim3_0_0; FFTW_REAL tre3_1_0; FFTW_REAL tim3_1_0; tre3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_1 - tim1_1_1); tim3_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim1_1_1 + tre1_1_1); tre3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 + tim1_1_3); tim3_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre1_1_3 - tim1_1_3); tre2_0_1 = tre3_0_0 - tre3_1_0; tim2_0_1 = tim3_0_0 + tim3_1_0; tre2_1_1 = tre3_0_0 + tre3_1_0; tim2_1_1 = tim3_0_0 - tim3_1_0; } c_re(inout[15 * stride]) = tre2_0_0 + tre2_0_1; c_im(inout[15 * stride]) = tim2_0_0 + tim2_0_1; c_re(inout[47 * stride]) = tre2_0_0 - tre2_0_1; c_im(inout[47 * stride]) = tim2_0_0 - tim2_0_1; c_re(inout[31 * stride]) = tre2_1_0 - tim2_1_1; c_im(inout[31 * stride]) = tim2_1_0 + tre2_1_1; c_re(inout[63 * stride]) = tre2_1_0 + tim2_1_1; c_im(inout[63 * stride]) = tim2_1_0 - tre2_1_1; } } } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 102 FP additions and 60 FP multiplications */ void fftwi_twiddle_7(FFTW_COMPLEX *A, const FFTW_COMPLEX *W, int stride, int m, int dist) { int i; COMPLEX *inout; inout = A; for (i = 0; i < m; i = i + 1, inout = inout + dist, W = W + 6) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_2_0; FFTW_REAL tim0_2_0; FFTW_REAL tre0_3_0; FFTW_REAL tim0_3_0; FFTW_REAL tre0_4_0; FFTW_REAL tim0_4_0; FFTW_REAL tre0_5_0; FFTW_REAL tim0_5_0; FFTW_REAL tre0_6_0; FFTW_REAL tim0_6_0; tre0_0_0 = c_re(inout[0]); tim0_0_0 = c_im(inout[0]); { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[stride]); ti = c_im(inout[stride]); twr = c_re(W[0]); twi = c_im(W[0]); tre0_1_0 = (tr * twr) + (ti * twi); tim0_1_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[2 * stride]); ti = c_im(inout[2 * stride]); twr = c_re(W[1]); twi = c_im(W[1]); tre0_2_0 = (tr * twr) + (ti * twi); tim0_2_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[3 * stride]); ti = c_im(inout[3 * stride]); twr = c_re(W[2]); twi = c_im(W[2]); tre0_3_0 = (tr * twr) + (ti * twi); tim0_3_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[4 * stride]); ti = c_im(inout[4 * stride]); twr = c_re(W[3]); twi = c_im(W[3]); tre0_4_0 = (tr * twr) + (ti * twi); tim0_4_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[5 * stride]); ti = c_im(inout[5 * stride]); twr = c_re(W[4]); twi = c_im(W[4]); tre0_5_0 = (tr * twr) + (ti * twi); tim0_5_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[6 * stride]); ti = c_im(inout[6 * stride]); twr = c_re(W[5]); twi = c_im(W[5]); tre0_6_0 = (tr * twr) + (ti * twi); tim0_6_0 = (ti * twr) - (tr * twi); } c_re(inout[0]) = tre0_0_0 + tre0_1_0 + tre0_2_0 + tre0_3_0 + tre0_4_0 + tre0_5_0 + tre0_6_0; c_im(inout[0]) = tim0_0_0 + tim0_1_0 + tim0_2_0 + tim0_3_0 + tim0_4_0 + tim0_5_0 + tim0_6_0; { FFTW_REAL tre1_0_0; FFTW_REAL tre1_1_0; tre1_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K623489801) * (tre0_1_0 + tre0_6_0)) - (((FFTW_REAL) FFTW_K900968867) * (tre0_3_0 + tre0_4_0)) - (((FFTW_REAL) FFTW_K222520933) * (tre0_2_0 + tre0_5_0)); tre1_1_0 = (((FFTW_REAL) FFTW_K781831482) * (tim0_6_0 - tim0_1_0)) + (((FFTW_REAL) FFTW_K974927912) * (tim0_5_0 - tim0_2_0)) + (((FFTW_REAL) FFTW_K433883739) * (tim0_4_0 - tim0_3_0)); c_re(inout[stride]) = tre1_0_0 + tre1_1_0; c_re(inout[6 * stride]) = tre1_0_0 - tre1_1_0; } { FFTW_REAL tim1_0_0; FFTW_REAL tim1_1_0; tim1_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K623489801) * (tim0_1_0 + tim0_6_0)) - (((FFTW_REAL) FFTW_K900968867) * (tim0_3_0 + tim0_4_0)) - (((FFTW_REAL) FFTW_K222520933) * (tim0_2_0 + tim0_5_0)); tim1_1_0 = (((FFTW_REAL) FFTW_K781831482) * (tre0_1_0 - tre0_6_0)) + (((FFTW_REAL) FFTW_K974927912) * (tre0_2_0 - tre0_5_0)) + (((FFTW_REAL) FFTW_K433883739) * (tre0_3_0 - tre0_4_0)); c_im(inout[stride]) = tim1_0_0 + tim1_1_0; c_im(inout[6 * stride]) = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tre1_1_0; tre1_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K623489801) * (tre0_3_0 + tre0_4_0)) - (((FFTW_REAL) FFTW_K900968867) * (tre0_2_0 + tre0_5_0)) - (((FFTW_REAL) FFTW_K222520933) * (tre0_1_0 + tre0_6_0)); tre1_1_0 = (((FFTW_REAL) FFTW_K974927912) * (tim0_6_0 - tim0_1_0)) + (((FFTW_REAL) FFTW_K433883739) * (tim0_2_0 - tim0_5_0)) + (((FFTW_REAL) FFTW_K781831482) * (tim0_3_0 - tim0_4_0)); c_re(inout[2 * stride]) = tre1_0_0 + tre1_1_0; c_re(inout[5 * stride]) = tre1_0_0 - tre1_1_0; } { FFTW_REAL tim1_0_0; FFTW_REAL tim1_1_0; tim1_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K623489801) * (tim0_3_0 + tim0_4_0)) - (((FFTW_REAL) FFTW_K900968867) * (tim0_2_0 + tim0_5_0)) - (((FFTW_REAL) FFTW_K222520933) * (tim0_1_0 + tim0_6_0)); tim1_1_0 = (((FFTW_REAL) FFTW_K974927912) * (tre0_1_0 - tre0_6_0)) + (((FFTW_REAL) FFTW_K433883739) * (tre0_5_0 - tre0_2_0)) + (((FFTW_REAL) FFTW_K781831482) * (tre0_4_0 - tre0_3_0)); c_im(inout[2 * stride]) = tim1_0_0 + tim1_1_0; c_im(inout[5 * stride]) = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tre1_1_0; tre1_0_0 = tre0_0_0 + (((FFTW_REAL) FFTW_K623489801) * (tre0_2_0 + tre0_5_0)) - (((FFTW_REAL) FFTW_K222520933) * (tre0_3_0 + tre0_4_0)) - (((FFTW_REAL) FFTW_K900968867) * (tre0_1_0 + tre0_6_0)); tre1_1_0 = (((FFTW_REAL) FFTW_K433883739) * (tim0_6_0 - tim0_1_0)) + (((FFTW_REAL) FFTW_K781831482) * (tim0_2_0 - tim0_5_0)) + (((FFTW_REAL) FFTW_K974927912) * (tim0_4_0 - tim0_3_0)); c_re(inout[3 * stride]) = tre1_0_0 + tre1_1_0; c_re(inout[4 * stride]) = tre1_0_0 - tre1_1_0; } { FFTW_REAL tim1_0_0; FFTW_REAL tim1_1_0; tim1_0_0 = tim0_0_0 + (((FFTW_REAL) FFTW_K623489801) * (tim0_2_0 + tim0_5_0)) - (((FFTW_REAL) FFTW_K222520933) * (tim0_3_0 + tim0_4_0)) - (((FFTW_REAL) FFTW_K900968867) * (tim0_1_0 + tim0_6_0)); tim1_1_0 = (((FFTW_REAL) FFTW_K433883739) * (tre0_1_0 - tre0_6_0)) + (((FFTW_REAL) FFTW_K781831482) * (tre0_5_0 - tre0_2_0)) + (((FFTW_REAL) FFTW_K974927912) * (tre0_3_0 - tre0_4_0)); c_im(inout[3 * stride]) = tim1_0_0 + tim1_1_0; c_im(inout[4 * stride]) = tim1_0_0 - tim1_1_0; } } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 66 FP additions and 32 FP multiplications */ void fftwi_twiddle_8(FFTW_COMPLEX *A, const FFTW_COMPLEX *W, int stride, int m, int dist) { int i; COMPLEX *inout; inout = A; for (i = 0; i < m; i = i + 1, inout = inout + dist, W = W + 7) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_0_1; FFTW_REAL tim0_0_1; FFTW_REAL tre0_0_2; FFTW_REAL tim0_0_2; FFTW_REAL tre0_0_3; FFTW_REAL tim0_0_3; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_1_1; FFTW_REAL tim0_1_1; FFTW_REAL tre0_1_2; FFTW_REAL tim0_1_2; FFTW_REAL tre0_1_3; FFTW_REAL tim0_1_3; { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; tre1_0_0 = c_re(inout[0]); tim1_0_0 = c_im(inout[0]); { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[4 * stride]); ti = c_im(inout[4 * stride]); twr = c_re(W[3]); twi = c_im(W[3]); tre1_1_0 = (tr * twr) + (ti * twi); tim1_1_0 = (ti * twr) - (tr * twi); } tre0_0_0 = tre1_0_0 + tre1_1_0; tim0_0_0 = tim1_0_0 + tim1_1_0; tre0_1_0 = tre1_0_0 - tre1_1_0; tim0_1_0 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[stride]); ti = c_im(inout[stride]); twr = c_re(W[0]); twi = c_im(W[0]); tre1_0_0 = (tr * twr) + (ti * twi); tim1_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[5 * stride]); ti = c_im(inout[5 * stride]); twr = c_re(W[4]); twi = c_im(W[4]); tre1_1_0 = (tr * twr) + (ti * twi); tim1_1_0 = (ti * twr) - (tr * twi); } tre0_0_1 = tre1_0_0 + tre1_1_0; tim0_0_1 = tim1_0_0 + tim1_1_0; tre0_1_1 = tre1_0_0 - tre1_1_0; tim0_1_1 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[2 * stride]); ti = c_im(inout[2 * stride]); twr = c_re(W[1]); twi = c_im(W[1]); tre1_0_0 = (tr * twr) + (ti * twi); tim1_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[6 * stride]); ti = c_im(inout[6 * stride]); twr = c_re(W[5]); twi = c_im(W[5]); tre1_1_0 = (tr * twr) + (ti * twi); tim1_1_0 = (ti * twr) - (tr * twi); } tre0_0_2 = tre1_0_0 + tre1_1_0; tim0_0_2 = tim1_0_0 + tim1_1_0; tre0_1_2 = tre1_0_0 - tre1_1_0; tim0_1_2 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[3 * stride]); ti = c_im(inout[3 * stride]); twr = c_re(W[2]); twi = c_im(W[2]); tre1_0_0 = (tr * twr) + (ti * twi); tim1_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[7 * stride]); ti = c_im(inout[7 * stride]); twr = c_re(W[6]); twi = c_im(W[6]); tre1_1_0 = (tr * twr) + (ti * twi); tim1_1_0 = (ti * twr) - (tr * twi); } tre0_0_3 = tre1_0_0 + tre1_1_0; tim0_0_3 = tim1_0_0 + tim1_1_0; tre0_1_3 = tre1_0_0 - tre1_1_0; tim0_1_3 = tim1_0_0 - tim1_1_0; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; tre1_0_0 = tre0_0_0 + tre0_0_2; tim1_0_0 = tim0_0_0 + tim0_0_2; tre1_1_0 = tre0_0_0 - tre0_0_2; tim1_1_0 = tim0_0_0 - tim0_0_2; tre1_0_1 = tre0_0_1 + tre0_0_3; tim1_0_1 = tim0_0_1 + tim0_0_3; tre1_1_1 = tre0_0_1 - tre0_0_3; tim1_1_1 = tim0_0_1 - tim0_0_3; c_re(inout[0]) = tre1_0_0 + tre1_0_1; c_im(inout[0]) = tim1_0_0 + tim1_0_1; c_re(inout[4 * stride]) = tre1_0_0 - tre1_0_1; c_im(inout[4 * stride]) = tim1_0_0 - tim1_0_1; c_re(inout[2 * stride]) = tre1_1_0 - tim1_1_1; c_im(inout[2 * stride]) = tim1_1_0 + tre1_1_1; c_re(inout[6 * stride]) = tre1_1_0 + tim1_1_1; c_im(inout[6 * stride]) = tim1_1_0 - tre1_1_1; } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_0_1; FFTW_REAL tim1_0_1; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_1_1; FFTW_REAL tim1_1_1; tre1_0_0 = tre0_1_0 - tim0_1_2; tim1_0_0 = tim0_1_0 + tre0_1_2; tre1_1_0 = tre0_1_0 + tim0_1_2; tim1_1_0 = tim0_1_0 - tre0_1_2; { FFTW_REAL tre2_0_0; FFTW_REAL tim2_0_0; FFTW_REAL tre2_1_0; FFTW_REAL tim2_1_0; tre2_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_1_1 - tim0_1_1); tim2_0_0 = ((FFTW_REAL) FFTW_K707106781) * (tim0_1_1 + tre0_1_1); tre2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_1_3 + tim0_1_3); tim2_1_0 = ((FFTW_REAL) FFTW_K707106781) * (tre0_1_3 - tim0_1_3); tre1_0_1 = tre2_0_0 - tre2_1_0; tim1_0_1 = tim2_0_0 + tim2_1_0; tre1_1_1 = tre2_0_0 + tre2_1_0; tim1_1_1 = tim2_0_0 - tim2_1_0; } c_re(inout[stride]) = tre1_0_0 + tre1_0_1; c_im(inout[stride]) = tim1_0_0 + tim1_0_1; c_re(inout[5 * stride]) = tre1_0_0 - tre1_0_1; c_im(inout[5 * stride]) = tim1_0_0 - tim1_0_1; c_re(inout[3 * stride]) = tre1_1_0 - tim1_1_1; c_im(inout[3 * stride]) = tim1_1_0 + tre1_1_1; c_re(inout[7 * stride]) = tre1_1_0 + tim1_1_1; c_im(inout[7 * stride]) = tim1_1_0 - tre1_1_1; } } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* This file has been automatically generated --- DO NOT EDIT */ #include "fftw.h" #include "konst.h" /* Generated by $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ /* This function contains 108 FP additions and 72 FP multiplications */ void fftwi_twiddle_9(FFTW_COMPLEX *A, const FFTW_COMPLEX *W, int stride, int m, int dist) { int i; COMPLEX *inout; inout = A; for (i = 0; i < m; i = i + 1, inout = inout + dist, W = W + 8) { FFTW_REAL tre0_0_0; FFTW_REAL tim0_0_0; FFTW_REAL tre0_0_1; FFTW_REAL tim0_0_1; FFTW_REAL tre0_0_2; FFTW_REAL tim0_0_2; FFTW_REAL tre0_1_0; FFTW_REAL tim0_1_0; FFTW_REAL tre0_1_1; FFTW_REAL tim0_1_1; FFTW_REAL tre0_1_2; FFTW_REAL tim0_1_2; FFTW_REAL tre0_2_0; FFTW_REAL tim0_2_0; FFTW_REAL tre0_2_1; FFTW_REAL tim0_2_1; FFTW_REAL tre0_2_2; FFTW_REAL tim0_2_2; { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_2_0; FFTW_REAL tim1_2_0; tre1_0_0 = c_re(inout[0]); tim1_0_0 = c_im(inout[0]); { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[3 * stride]); ti = c_im(inout[3 * stride]); twr = c_re(W[2]); twi = c_im(W[2]); tre1_1_0 = (tr * twr) + (ti * twi); tim1_1_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[6 * stride]); ti = c_im(inout[6 * stride]); twr = c_re(W[5]); twi = c_im(W[5]); tre1_2_0 = (tr * twr) + (ti * twi); tim1_2_0 = (ti * twr) - (tr * twi); } tre0_0_0 = tre1_0_0 + tre1_1_0 + tre1_2_0; tim0_0_0 = tim1_0_0 + tim1_1_0 + tim1_2_0; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tre1_1_0 + tre1_2_0)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim1_2_0 - tim1_1_0); tre0_1_0 = tre2_0_0 + tre2_1_0; tre0_2_0 = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tim1_1_0 + tim1_2_0)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre1_1_0 - tre1_2_0); tim0_1_0 = tim2_0_0 + tim2_1_0; tim0_2_0 = tim2_0_0 - tim2_1_0; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_2_0; FFTW_REAL tim1_2_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[stride]); ti = c_im(inout[stride]); twr = c_re(W[0]); twi = c_im(W[0]); tre1_0_0 = (tr * twr) + (ti * twi); tim1_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[4 * stride]); ti = c_im(inout[4 * stride]); twr = c_re(W[3]); twi = c_im(W[3]); tre1_1_0 = (tr * twr) + (ti * twi); tim1_1_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[7 * stride]); ti = c_im(inout[7 * stride]); twr = c_re(W[6]); twi = c_im(W[6]); tre1_2_0 = (tr * twr) + (ti * twi); tim1_2_0 = (ti * twr) - (tr * twi); } tre0_0_1 = tre1_0_0 + tre1_1_0 + tre1_2_0; tim0_0_1 = tim1_0_0 + tim1_1_0 + tim1_2_0; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tre1_1_0 + tre1_2_0)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim1_2_0 - tim1_1_0); tre0_1_1 = tre2_0_0 + tre2_1_0; tre0_2_1 = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tim1_1_0 + tim1_2_0)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre1_1_0 - tre1_2_0); tim0_1_1 = tim2_0_0 + tim2_1_0; tim0_2_1 = tim2_0_0 - tim2_1_0; } } { FFTW_REAL tre1_0_0; FFTW_REAL tim1_0_0; FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_2_0; FFTW_REAL tim1_2_0; { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[2 * stride]); ti = c_im(inout[2 * stride]); twr = c_re(W[1]); twi = c_im(W[1]); tre1_0_0 = (tr * twr) + (ti * twi); tim1_0_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[5 * stride]); ti = c_im(inout[5 * stride]); twr = c_re(W[4]); twi = c_im(W[4]); tre1_1_0 = (tr * twr) + (ti * twi); tim1_1_0 = (ti * twr) - (tr * twi); } { FFTW_REAL tr; FFTW_REAL ti; FFTW_REAL twr; FFTW_REAL twi; tr = c_re(inout[8 * stride]); ti = c_im(inout[8 * stride]); twr = c_re(W[7]); twi = c_im(W[7]); tre1_2_0 = (tr * twr) + (ti * twi); tim1_2_0 = (ti * twr) - (tr * twi); } tre0_0_2 = tre1_0_0 + tre1_1_0 + tre1_2_0; tim0_0_2 = tim1_0_0 + tim1_1_0 + tim1_2_0; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tre1_1_0 + tre1_2_0)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim1_2_0 - tim1_1_0); tre0_1_2 = tre2_0_0 + tre2_1_0; tre0_2_2 = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim1_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tim1_1_0 + tim1_2_0)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre1_1_0 - tre1_2_0); tim0_1_2 = tim2_0_0 + tim2_1_0; tim0_2_2 = tim2_0_0 - tim2_1_0; } } c_re(inout[0]) = tre0_0_0 + tre0_0_1 + tre0_0_2; c_im(inout[0]) = tim0_0_0 + tim0_0_1 + tim0_0_2; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tre0_0_1 + tre0_0_2)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim0_0_2 - tim0_0_1); c_re(inout[3 * stride]) = tre2_0_0 + tre2_1_0; c_re(inout[6 * stride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_0_0 - (((FFTW_REAL) FFTW_K499999999) * (tim0_0_1 + tim0_0_2)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre0_0_1 - tre0_0_2); c_im(inout[3 * stride]) = tim2_0_0 + tim2_1_0; c_im(inout[6 * stride]) = tim2_0_0 - tim2_1_0; } { FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_2_0; FFTW_REAL tim1_2_0; tre1_1_0 = (((FFTW_REAL) FFTW_K766044443) * tre0_1_1) - (((FFTW_REAL) FFTW_K642787609) * tim0_1_1); tim1_1_0 = (((FFTW_REAL) FFTW_K766044443) * tim0_1_1) + (((FFTW_REAL) FFTW_K642787609) * tre0_1_1); tre1_2_0 = (((FFTW_REAL) FFTW_K173648177) * tre0_1_2) - (((FFTW_REAL) FFTW_K984807753) * tim0_1_2); tim1_2_0 = (((FFTW_REAL) FFTW_K173648177) * tim0_1_2) + (((FFTW_REAL) FFTW_K984807753) * tre0_1_2); c_re(inout[stride]) = tre0_1_0 + tre1_1_0 + tre1_2_0; c_im(inout[stride]) = tim0_1_0 + tim1_1_0 + tim1_2_0; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_1_0 - (((FFTW_REAL) FFTW_K499999999) * (tre1_1_0 + tre1_2_0)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim1_2_0 - tim1_1_0); c_re(inout[4 * stride]) = tre2_0_0 + tre2_1_0; c_re(inout[7 * stride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_1_0 - (((FFTW_REAL) FFTW_K499999999) * (tim1_1_0 + tim1_2_0)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre1_1_0 - tre1_2_0); c_im(inout[4 * stride]) = tim2_0_0 + tim2_1_0; c_im(inout[7 * stride]) = tim2_0_0 - tim2_1_0; } } { FFTW_REAL tre1_1_0; FFTW_REAL tim1_1_0; FFTW_REAL tre1_2_0; FFTW_REAL tim1_2_0; tre1_1_0 = (((FFTW_REAL) FFTW_K173648177) * tre0_2_1) - (((FFTW_REAL) FFTW_K984807753) * tim0_2_1); tim1_1_0 = (((FFTW_REAL) FFTW_K173648177) * tim0_2_1) + (((FFTW_REAL) FFTW_K984807753) * tre0_2_1); tre1_2_0 = (((FFTW_REAL) FFTW_K939692620) * tre0_2_2) + (((FFTW_REAL) FFTW_K342020143) * tim0_2_2); tim1_2_0 = (((FFTW_REAL) FFTW_K342020143) * tre0_2_2) - (((FFTW_REAL) FFTW_K939692620) * tim0_2_2); c_re(inout[2 * stride]) = tre0_2_0 + tre1_1_0 - tre1_2_0; c_im(inout[2 * stride]) = tim0_2_0 + tim1_1_0 + tim1_2_0; { FFTW_REAL tre2_0_0; FFTW_REAL tre2_1_0; tre2_0_0 = tre0_2_0 + (((FFTW_REAL) FFTW_K499999999) * (tre1_2_0 - tre1_1_0)); tre2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tim1_2_0 - tim1_1_0); c_re(inout[5 * stride]) = tre2_0_0 + tre2_1_0; c_re(inout[8 * stride]) = tre2_0_0 - tre2_1_0; } { FFTW_REAL tim2_0_0; FFTW_REAL tim2_1_0; tim2_0_0 = tim0_2_0 - (((FFTW_REAL) FFTW_K499999999) * (tim1_1_0 + tim1_2_0)); tim2_1_0 = ((FFTW_REAL) FFTW_K866025403) * (tre1_1_0 + tre1_2_0); c_im(inout[5 * stride]) = tim2_0_0 + tim2_1_0; c_im(inout[8 * stride]) = tim2_0_0 - tim2_1_0; } } } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* * generic.c -- "generic" solvers. They work for all * n (and are slow) */ #include "fftw.h" #include #include void fftw_twiddle_generic(FFTW_COMPLEX *A, const FFTW_COMPLEX *W, int m, int r, int n, int stride) { int i, j, k; const FFTW_COMPLEX *jp; FFTW_COMPLEX *kp; FFTW_COMPLEX *tmp = (FFTW_COMPLEX *) fftw_malloc(r * sizeof(FFTW_COMPLEX)); for (i = 0; i < m; ++i) { for (k = 0, kp = tmp; k < r; ++k, kp++) { FFTW_REAL r0, i0, rt, it, rw, iw; int l1 = i + m * k; int l0; r0 = i0 = 0.0; for (j = 0, jp = A + i * stride, l0 = 0; j < r; ++j, jp += m * stride) { rw = c_re(W[l0]); iw = c_im(W[l0]); rt = c_re(*jp); it = c_im(*jp); r0 += rt * rw - it * iw; i0 += rt * iw + it * rw; l0 += l1; if (l0 > n) l0 -= n; } c_re(*kp) = r0; c_im(*kp) = i0; } for (k = 0, kp = A + i * stride; k < r; ++k, kp += m * stride) *kp = tmp[k]; } fftw_free(tmp); } void fftwi_twiddle_generic(FFTW_COMPLEX *A, const FFTW_COMPLEX *W, int m, int r, int n, int stride) { int i, j, k; const FFTW_COMPLEX *jp; FFTW_COMPLEX *kp; FFTW_COMPLEX *tmp = (FFTW_COMPLEX *) fftw_malloc(r * sizeof(FFTW_COMPLEX)); for (i = 0; i < m; ++i) { for (k = 0, kp = tmp; k < r; ++k, kp++) { FFTW_REAL r0, i0, rt, it, rw, iw; int l1 = i + m * k; int l0; r0 = i0 = 0.0; for (j = 0, jp = A + i * stride, l0 = 0; j < r; ++j, jp += m * stride) { rw = c_re(W[l0]); iw = c_im(W[l0]); rt = c_re(*jp); it = c_im(*jp); r0 += rt * rw + it * iw; i0 += it * rw - rt * iw; l0 += l1; if (l0 > n) l0 -= n; } c_re(*kp) = r0; c_im(*kp) = i0; } for (k = 0, kp = A + i * stride; k < r; ++k, kp += m * stride) *kp = tmp[k]; } fftw_free(tmp); } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* * malloc.c -- memory allocation related functions */ /* $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ #if defined FFTW_USING_CILK #include #include #endif #include "fftw.h" #include #include int fftw_malloc_cnt = 0; void *(*fftw_malloc_hook) (size_t n) = (void *(*)(size_t n)) 0; void (*fftw_free_hook) (void *p) = (void (*)(void *p)) 0; #define FFTW_MALLOC_DEBUG 0 /* sorry for this debugging hack ... */ #define COMMA , #if FFTW_MALLOC_DEBUG #define WHEN_DEBUG(a) a /* * debugging malloc/free. Initialize every malloced and freed area to * random values, just to make sure we are not using uninitialized * pointers. Also check for writes past the ends of allocated blocks, * and a couple of other things. * * This code is a quick and dirty hack -- use at your own risk. */ int fftw_malloc_total = 0; #define MAGIC 0xABadCafe #define PAD_FACTOR 2 #define TWOINTS (2 * sizeof(int)) #define VERBOSE_ALLOCATION 0 #if VERBOSE_ALLOCATION #define WHEN_VERBOSE(a) a #else #define WHEN_VERBOSE(a) #endif void *fftw_malloc(size_t n) { char *p; int i; WHEN_VERBOSE({ printf("FFTW_MALLOC %d\n",n); fflush(stdout); }) if (n == 0) fftw_die("Tried to allocate a block of zero size!\n"); fftw_malloc_total += n; p = (char *) malloc(PAD_FACTOR*n + TWOINTS); if (!p) fftw_die("fftw_malloc: out of memory\n"); /* store the size in a known position */ ((int *) p)[0] = n; ((int *) p)[1] = MAGIC; for (i = 0; i < PAD_FACTOR*n; ++i) p[i + TWOINTS] = (char) (i ^ 0xDEADBEEF); ++fftw_malloc_cnt; /* skip the size we stored previously */ return (void *) (p + TWOINTS); } void fftw_free(void *p) { char *q = ((char *) p) - TWOINTS; if (!p) fftw_die("fftw_free: tried to free NULL pointer!\n"); if (!q) fftw_die("fftw_free: tried to free NULL+TWOINTS pointer!\n"); { int n = ((int *) q)[0]; int magic = ((int *) q)[1]; int i; WHEN_VERBOSE({ printf("FFTW_FREE %d\n",n); fflush(stdout); }) if (n == 0) fftw_die("Tried to free a freed pointer!\n"); *((int *) q) = 0; /* set to zero to detect duplicate free's */ if (magic != MAGIC) fftw_die("Wrong magic in fftw_free()!\n"); ((int *) q)[1] = ~MAGIC; if (n < 0) fftw_die("Tried to free block with corrupt size descriptor!\n"); fftw_malloc_total -= n; if (fftw_malloc_total < 0) fftw_die("fftw_malloc_total went negative!\n"); /* check for writing past end of array: */ for (i = n; i < PAD_FACTOR*n; ++i) if (q[i+TWOINTS] != (char) (i ^ 0xDEADBEEF)) { fprintf(stderr, "Byte %d past end of array has changed!\n", i - n + 1); fftw_die("Array bounds overwritten!\n"); } for (i = 0; i < PAD_FACTOR*n; ++i) q[i + TWOINTS] = (char) (i ^ 0xBEEFDEAD); --fftw_malloc_cnt; free(q); } } #else /* production version, no hacks */ #define WHEN_DEBUG(a) void *fftw_malloc(size_t n) { void *p; if (fftw_malloc_hook) return fftw_malloc_hook(n); if (n == 0) n = 1; p = malloc(n); if (!p) fftw_die("fftw_malloc: out of memory\n"); return p; } void fftw_free(void *p) { if (p) { if (fftw_free_hook) { fftw_free_hook(p); return; } free(p); } } #endif /* die when fatal errors occur */ void fftw_die(char *s) { fprintf(stderr, "%s", s); exit(1); } /* check for memory leaks when debugging */ void fftw_check_memory_leaks(void) { extern int fftw_node_cnt, fftw_plan_cnt, fftw_twiddle_size; if (WHEN_DEBUG(fftw_malloc_cnt ||) WHEN_DEBUG(fftw_malloc_total ||) fftw_node_cnt || fftw_plan_cnt || fftw_twiddle_size) { fprintf(stderr, "MEMORY LEAK!!!\n" WHEN_DEBUG("fftw_malloc = %d") " node=%d plan=%d twiddle=%d\n" WHEN_DEBUG("fftw_malloc_total = %d\n"), WHEN_DEBUG(fftw_malloc_cnt COMMA) fftw_node_cnt, fftw_plan_cnt, fftw_twiddle_size WHEN_DEBUG(COMMA fftw_malloc_total)); exit(1); } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ #include "fftw.h" #include /* * Naive O(n^2) algorithm, used for testing purposes */ void fftw_naive(int n, FFTW_COMPLEX *in, FFTW_COMPLEX *out) { int i, j; FFTW_COMPLEX sum; FFTW_COMPLEX w; FFTW_REAL pi = 3.1415926535897932384626434; for (j = 0; j < n; ++j) { c_re(sum) = c_im(sum) = 0.0; for (i = 0; i < n; ++i) { c_re(w) = cos((2.0 * pi * (i * j % n)) / n); c_im(w) = -sin((2.0 * pi * (i * j % n)) / n); c_re(sum) += c_re(in[i]) * c_re(w) - c_im(in[i]) * c_im(w); c_im(sum) += c_im(in[i]) * c_re(w) + c_re(in[i]) * c_im(w); } out[j] = sum; } return; } /* * Naive O(n^2) algorithm, for the inverse. */ void fftwi_naive(int n, FFTW_COMPLEX *in, FFTW_COMPLEX *out) { int i, j; FFTW_COMPLEX sum; FFTW_COMPLEX w; FFTW_REAL pi = 3.1415926535897932384626434; for (j = 0; j < n; ++j) { c_re(sum) = c_im(sum) = 0.0; for (i = 0; i < n; ++i) { c_re(w) = cos((2.0 * pi * (i * j % n)) / n); c_im(w) = sin((2.0 * pi * (i * j % n)) / n); c_re(sum) += c_re(in[i]) * c_re(w) - c_im(in[i]) * c_im(w); c_im(sum) += c_im(in[i]) * c_re(w) + c_re(in[i]) * c_im(w); } out[j] = sum; } return; } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* * planner.c -- find the optimal plan */ /* $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ #if defined FFTW_USING_CILK #include #include #endif #include "fftw.h" #include #include int fftw_node_cnt = 0; int fftw_plan_cnt = 0; #define NOTW_OPTIMAL_SIZE 32 #define TWIDDLE_OPTIMAL_SIZE 12 /* wisdom prototypes */ extern int fftw_wisdom_lookup(int n, int flags, fftw_direction dir, enum fftw_node_type *type, int *signature, int replace_p); extern void fftw_wisdom_add(int n, int flags, fftw_direction dir, enum fftw_node_type type, int signature); /* constructors --- I wish I had ML */ static fftw_plan_node *make_node(void) { fftw_plan_node *p = (fftw_plan_node *) fftw_malloc(sizeof(fftw_plan_node)); p->refcnt = 0; fftw_node_cnt++; return p; } static void use_node(fftw_plan_node *p) { ++p->refcnt; } static fftw_plan_node *make_node_notw(int size, notw_codelet *codelet) { fftw_plan_node *p = make_node(); p->type = FFTW_NOTW; p->nodeu.notw.size = size; p->nodeu.notw.codelet = codelet; return p; } static fftw_plan_node *make_node_twiddle(int n, int size, twiddle_codelet *codelet, fftw_plan_node *recurse, int flags) { fftw_plan_node *p = make_node(); p->type = FFTW_TWIDDLE; p->nodeu.twiddle.size = size; p->nodeu.twiddle.codelet = codelet; p->nodeu.twiddle.recurse = recurse; use_node(recurse); if (flags & FFTW_MEASURE) p->nodeu.twiddle.tw = fftw_create_twiddle(n, size, n / size); else p->nodeu.twiddle.tw = 0; return p; } static fftw_plan_node *make_node_generic(int n, int size, generic_codelet *codelet, fftw_plan_node *recurse, int flags) { fftw_plan_node *p = make_node(); p->type = FFTW_GENERIC; p->nodeu.generic.size = size; p->nodeu.generic.codelet = codelet; p->nodeu.generic.recurse = recurse; use_node(recurse); if (flags & FFTW_MEASURE) p->nodeu.generic.tw = fftw_create_twiddle(n, 2, n); else p->nodeu.generic.tw = 0; return p; } static void destroy_tree(fftw_plan_node *p) { if (p) { --p->refcnt; if (p->refcnt == 0) { switch (p->type) { case FFTW_NOTW: break; case FFTW_TWIDDLE: if (p->nodeu.twiddle.tw) fftw_destroy_twiddle(p->nodeu.twiddle.tw); destroy_tree(p->nodeu.twiddle.recurse); break; case FFTW_GENERIC: if (p->nodeu.generic.tw) fftw_destroy_twiddle(p->nodeu.generic.tw); destroy_tree(p->nodeu.generic.recurse); break; } fftw_free(p); fftw_node_cnt--; } } } /* create a plan with twiddle factors, and other bells and whistles */ static fftw_plan make_plan(int n, fftw_direction dir, fftw_plan_node *root, int flags, enum fftw_node_type wisdom_type, int wisdom_signature) { fftw_plan p = (fftw_plan) fftw_malloc(sizeof(struct fftw_plan_struct)); p->n = n; p->dir = dir; p->flags = flags; use_node(root); p->root = root; p->cost = 0.0; p->wisdom_type = wisdom_type; p->wisdom_signature = wisdom_signature; p->next = (fftw_plan) 0; p->refcnt = 0; fftw_plan_cnt++; return p; } /* * complete with twiddle factors (because nodes don't have * them when FFTW_ESTIMATE is set) */ static void complete_twiddle(fftw_plan_node *p, int n) { int r; switch (p->type) { case FFTW_NOTW: break; case FFTW_TWIDDLE: r = p->nodeu.twiddle.size; if (!p->nodeu.twiddle.tw) p->nodeu.twiddle.tw = fftw_create_twiddle(n, r, n / r); complete_twiddle(p->nodeu.twiddle.recurse, n / r); break; case FFTW_GENERIC: r = p->nodeu.generic.size; if (!p->nodeu.generic.tw) p->nodeu.generic.tw = fftw_create_twiddle(n, 2, n); complete_twiddle(p->nodeu.generic.recurse, n / r); break; } } static void use_plan(fftw_plan p) { ++p->refcnt; } static void destroy_plan(fftw_plan p) { --p->refcnt; if (p->refcnt == 0) { destroy_tree(p->root); fftw_plan_cnt--; fftw_free(p); } } /* end of constructors */ /* management of plan tables */ static void make_empty_table(fftw_plan *table) { *table = (fftw_plan) 0; } static void insert(fftw_plan *table, fftw_plan this_plan, int n) { use_plan(this_plan); this_plan->n = n; this_plan->next = *table; *table = this_plan; } static fftw_plan lookup(fftw_plan *table, int n, int flags) { fftw_plan p; for (p = *table; p && ((p->n != n) || (p->flags != flags)); p = p->next); return p; } static void destroy_table(fftw_plan *table) { fftw_plan p, q; for (p = *table; p; p = q) { q = p->next; destroy_plan(p); } } static double estimate_node(fftw_plan_node *p) { int k; switch (p->type) { case FFTW_NOTW: k = p->nodeu.notw.size; return 1.0 + 0.1 * (k - NOTW_OPTIMAL_SIZE) * (k - NOTW_OPTIMAL_SIZE); case FFTW_TWIDDLE: k = p->nodeu.twiddle.size; return 1.0 + 0.1 * (k - TWIDDLE_OPTIMAL_SIZE) * (k - TWIDDLE_OPTIMAL_SIZE) + estimate_node(p->nodeu.twiddle.recurse); case FFTW_GENERIC: k = p->nodeu.generic.size; return 10.0 + k * k + estimate_node(p->nodeu.generic.recurse); } return 1.0E20; } /* auxiliary functions */ static void compute_cost(fftw_plan plan) { if (plan->flags & FFTW_MEASURE) plan->cost = fftw_measure_runtime(plan); else { double c; c = plan->n * estimate_node(plan->root); plan->cost = c; } } /* pick the better of two plans and destroy the other one. */ static fftw_plan pick_better(fftw_plan p1, fftw_plan p2) { if (!p1) return p2; if (!p2) return p1; if (p1->cost > p2->cost) { destroy_plan(p1); return p2; } else { destroy_plan(p2); return p1; } } /* find the smallest prime factor of n */ static int factor(int n) { int r; /* try 2 */ if ((n & 1) == 0) return 2; /* try odd numbers up to sqrt(n) */ for (r = 3; r * r <= n; r += 2) if (n % r == 0) return r; /* n is prime */ return n; } /* * Some macrology for the planner. If you have to write * the same line of code twice, there must be some bug. */ #define NOTW_ITERATOR(p, dir) \ config_notw *p = \ p = (dir == FFTW_FORWARD ? \ fftw_config_notw : fftwi_config_notw) #define TWIDDLE_ITERATOR(p, dir) \ config_twiddle *p = \ p = (dir == FFTW_FORWARD ? \ fftw_config_twiddle : fftwi_config_twiddle); #define FORALL_NOTW(p) \ for (; p->size; ++p) #define FORALL_TWIDDLE(p) \ for (; p->size; ++p) /****************************************** * Recursive planner * ******************************************/ fftw_plan planner(fftw_plan *table, int n, fftw_direction dir, int flags); /* * the planner consists of two parts: one that tries to * use accumulated wisdom, and one that does not. * A small driver invokes both parts in sequence */ /* planner with wisdom: look up the codelet suggested by the wisdom */ fftw_plan planner_wisdom(fftw_plan *table, int n, fftw_direction dir, int flags) { fftw_plan best = (fftw_plan) 0; fftw_plan_node *node; int have_wisdom; enum fftw_node_type wisdom_type; int wisdom_signature; /* see if we remember any wisdom for this case */ have_wisdom = fftw_wisdom_lookup(n, flags, dir, &wisdom_type, &wisdom_signature, 0); if (!have_wisdom) return best; if (wisdom_type == FFTW_NOTW) { NOTW_ITERATOR(p, dir); FORALL_NOTW(p) { /* see if wisdom applies */ if (wisdom_signature == p->signature && p->size == n) { node = make_node_notw(n, p->codelet); best = make_plan(n, dir, node, flags, FFTW_NOTW, p->signature); use_plan(best); return best; } } } if (wisdom_type == FFTW_TWIDDLE) { TWIDDLE_ITERATOR(p, dir); FORALL_TWIDDLE(p) { /* see if wisdom applies */ if (wisdom_signature == p->signature && (n % p->size) == 0) { fftw_plan r = planner(table, n / p->size, dir, flags); node = make_node_twiddle(n, p->size, p->codelet, r->root, flags); best = make_plan(n, dir, node, flags, FFTW_TWIDDLE, p->signature); use_plan(best); destroy_plan(r); return best; } } } /* * BUG (or: TODO) Can we have generic wisdom? This is probably * an academic question */ return best; } /* * planner with no wisdom: try all combinations and pick * the best */ fftw_plan planner_normal(fftw_plan *table, int n, fftw_direction dir, int flags) { fftw_plan best = (fftw_plan) 0; fftw_plan newplan; fftw_plan_node *node; /* see if we have any codelet that solves the problem */ { NOTW_ITERATOR(p, dir); FORALL_NOTW(p) { if (p->size == n) { node = make_node_notw(n, p->codelet); newplan = make_plan(n, dir, node, flags, FFTW_NOTW, p->signature); use_plan(newplan); compute_cost(newplan); best = pick_better(newplan, best); } } } /* Then, try all available twiddle codelets */ { TWIDDLE_ITERATOR(p, dir); FORALL_TWIDDLE(p) { if ((n % p->size) == 0 && (!best || n != p->size)) { fftw_plan r = planner(table, n / p->size, dir, flags); node = make_node_twiddle(n, p->size, p->codelet, r->root, flags); newplan = make_plan(n, dir, node, flags, FFTW_TWIDDLE, p->signature); use_plan(newplan); destroy_plan(r); compute_cost(newplan); best = pick_better(newplan, best); } } } /* * if no plan has been found so far, resort to generic codelets */ if (!best) { generic_codelet *codelet = (dir == FFTW_FORWARD ? fftw_twiddle_generic : fftwi_twiddle_generic); int size = factor(n); fftw_plan r = planner(table, n / size, dir, flags); node = make_node_generic(n, size, codelet, r->root, flags); newplan = make_plan(n, dir, node, flags, FFTW_GENERIC, 0); use_plan(newplan); destroy_plan(r); compute_cost(newplan); best = pick_better(newplan, best); } return best; } fftw_plan planner(fftw_plan *table, int n, fftw_direction dir, int flags) { fftw_plan best = (fftw_plan) 0; /* see if plan has already been computed */ best = lookup(table, n, flags); if (best) { use_plan(best); return best; } /* try a wise plan */ best = planner_wisdom(table, n, dir, flags); if (!best) { /* No wisdom. Plan normally. */ best = planner_normal(table, n, dir, flags); } if (best) { insert(table, best, n); /* remember the wisdom */ fftw_wisdom_add(n, flags, dir, best->wisdom_type, best->wisdom_signature); } return best; } fftw_plan fftw_create_plan(int n, fftw_direction dir, int flags) { fftw_plan table; fftw_plan p1; /* validate parameters */ if (n <= 0) return (fftw_plan) 0; if ((dir != FFTW_FORWARD) && (dir != FFTW_BACKWARD)) return (fftw_plan) 0; make_empty_table(&table); p1 = planner(&table, n, dir, flags); destroy_table(&table); complete_twiddle(p1->root, n); return p1; } void fftw_destroy_plan(fftw_plan plan) { destroy_plan(plan); } static void print_node(FILE * f, fftw_plan_node *p, int indent) { if (p) { switch (p->type) { case FFTW_NOTW: fprintf(f, "%*sFFTW_NOTW %d\n", indent, "", p->nodeu.notw.size); break; case FFTW_TWIDDLE: fprintf(f, "%*sFFTW_TWIDDLE %d\n", indent, "", p->nodeu.twiddle.size); print_node(f, p->nodeu.twiddle.recurse, indent); break; case FFTW_GENERIC: fprintf(f, "%*sFFTW_GENERIC %d\n", indent, "", p->nodeu.generic.size); print_node(f, p->nodeu.generic.recurse, indent); break; } } } void fftw_fprint_plan(FILE * f, fftw_plan p) { fprintf(f, "plan: (cost = %e)\n", p->cost); print_node(f, p->root, 0); } void fftw_print_plan(fftw_plan p) { fftw_fprint_plan(stdout, p); } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* * timer.c -- this file measures the execution time of * ffts. This information is used by the planner. */ /* $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ #include #include "fftw.h" #include #include /* * The timer keeps doubling the number of iterations * until the program runs for more than FFTW_TIME_MIN */ double fftw_measure_runtime(fftw_plan plan) { FFTW_COMPLEX *in, *out; fftw_time begin, end; double t; int i, iter; int n; n = plan->n; iter = 1; retry: in = (FFTW_COMPLEX *) fftw_malloc(n * sizeof(FFTW_COMPLEX)); out = (FFTW_COMPLEX *) fftw_malloc(n * sizeof(FFTW_COMPLEX)); begin = fftw_get_time(); for (i = 0; i < iter; ++i) { int j; /* generate random inputs */ for (j = 0; j < n; ++j) { c_re(in[j]) = 1.0; c_im(in[j]) = 32.432; } fftw(plan, 1, in, 1, 0, out, 1, 0); } end = fftw_get_time(); t = fftw_time_to_sec(fftw_time_diff(end,begin)); fftw_free(in); fftw_free(out); if (t < FFTW_TIME_MIN) { iter *= 2; /* * See D. E. Knuth, Structured Programming with GOTO Statements, * Computing Surveys (6), December 1974, for a justification * of this `goto' in the `n + 1/2' loop. */ goto retry; } return t / (double)iter; } #if defined(MAC) || defined(macintosh) /* Use Macintosh Time Manager to get the time: */ #pragma only_std_keywords off /* make sure compiler (CW) recognizes the pascal keywords that are in Timer.h */ #include #pragma only_std_keywords reset fftw_time get_Mac_microseconds(void) { fftw_time t; UnsignedWide microsec; /* * microsec.lo and microsec.hi are * unsigned long's, and are the two parts * of a 64 bit unsigned integer */ Microseconds(µsec); /* get time in microseconds */ /* store lo and hi words into our structure: */ t.lo = microsec.lo; t.hi = microsec.hi; return t; } fftw_time fftw_time_diff(fftw_time t1, fftw_time t2) /* This function takes the difference t1 - t2 of two 64 bit integers, represented by the 32 bit lo and hi words. if t1 < t2, returns 0. */ { fftw_time diff; if (t1.hi < t2.hi) { /* something is wrong...t1 < t2! */ diff.hi = diff.lo = 0; return diff; } else diff.hi = t1.hi - t2.hi; if (t1.lo < t2.lo) { if (diff.hi > 0) diff.hi -= 1; /* carry */ else { /* something is wrong...t1 < t2! */ diff.hi = diff.lo = 0; return diff; } } diff.lo = t1.lo - t2.lo; return diff; } #endif #if defined __WIN32__ #include static LARGE_INTEGER gFreq; static int gHaveHiResTimer = 0; static int gFirstTime = 1; unsigned long GetPerfTime(void) { LARGE_INTEGER lCounter; if (gFirstTime) { gFirstTime = 0; if (QueryPerformanceFrequency(&gFreq)) { gHaveHiResTimer = 1; } } if (gHaveHiResTimer) { QueryPerformanceCounter(&lCounter); return lCounter.u.LowPart; } else { return (unsigned long) clock(); } } double GetPerfSec(double pTime) { if (gHaveHiResTimer) { return pTime / gFreq.u.LowPart; // assumes HighPart==0 } else { return pTime / CLOCKS_PER_SEC; } } #endif /* __WIN32__ */ /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* * twiddle.c -- compute twiddle factors * These are the twiddle factors for *direct* fft. Flip sign to get * the inverse */ /* $Id: fftw.c,v 1.1.1.1 2003-01-19 21:58:43 giannozz Exp $ */ #if defined FFTW_USING_CILK #include #include #endif #include "fftw.h" #include #include #define FFTW_K2PI 6.2831853071795864769252867665590057683943387987502 /* * compute the W coefficients (that is, powers of the root of 1) * and store them into an array. */ static void fftw_compute_twiddle(int n, int r, int m, FFTW_COMPLEX *W) { double twoPiOverN; int i, j; twoPiOverN = FFTW_K2PI / (double) n; for (i = 0; i < m; ++i) for (j = 1; j < r; ++j) { int k = i * (r - 1) + (j - 1); c_re(W[k]) = cos(twoPiOverN * (double) i * (double) j); c_im(W[k]) = -sin(twoPiOverN * (double) i * (double) j); } } /* * these routines implement a simple reference-count-based * management of twiddle structures */ static fftw_twiddle *twlist = (fftw_twiddle *) 0; int fftw_twiddle_size = 0; /* total allocated size, for debugging */ fftw_twiddle *fftw_create_twiddle(int n, int r, int m) { fftw_twiddle *tw; FFTW_COMPLEX *W; /* lookup for this n in the twiddle list */ for (tw = twlist; tw; tw = tw->next) if (tw->n == n && tw->r == r && tw->m == m) { ++tw->refcnt; return tw; } /* not found --- allocate a new struct twiddle */ tw = (fftw_twiddle *) fftw_malloc(sizeof(fftw_twiddle)); W = (FFTW_COMPLEX *) fftw_malloc(m * (r - 1) * sizeof(FFTW_COMPLEX)); fftw_twiddle_size += n; tw->n = n; tw->r = r; tw->m = m; tw->twarray = W; tw->refcnt = 1; fftw_compute_twiddle(n, r, m, W); /* enqueue the new struct */ tw->next = twlist; twlist = tw; return tw; } void fftw_destroy_twiddle(fftw_twiddle * tw) { fftw_twiddle **p; --tw->refcnt; if (tw->refcnt == 0) { /* remove from the list of known twiddle factors */ for (p = &twlist; p; p = &((*p)->next)) if (*p == tw) { *p = tw->next; fftw_twiddle_size -= tw->n; fftw_free(tw->twarray); fftw_free(tw); return; } fftw_die("BUG in fftw_destroy_twiddle\n"); } } /* * Copyright (c) 1997 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to use, copy, modify, and distribute the Software without * restriction, provided the Software, including any modified copies made * under this license, is not distributed for a fee, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of the Massachusetts * Institute of Technology shall not be used in advertising or otherwise * to promote the sale, use or other dealings in this Software without * prior written authorization from the Massachusetts Institute of * Technology. * */ /* * wisdom.c -- manage the wisdom */ #include "fftw.h" #include #include #include struct wisdom { int n; int flags; fftw_direction dir; enum fftw_node_type type; /* this is the wisdom */ int signature; /* this is the wisdom */ struct wisdom *next; }; /* list of wisdom */ static struct wisdom *wisdom_list = (struct wisdom *) 0; int fftw_wisdom_lookup(int n, int flags, fftw_direction dir, enum fftw_node_type *type, int *signature, int replacep) { struct wisdom *p; if (!(flags & FFTW_USE_WISDOM)) return 0; /* simply ignore if wisdom is disabled */ flags |= FFTW_MEASURE; /* always use (only) wisdom from measurements */ for (p = wisdom_list; p; p = p->next) { if (p->n == n && p->flags == flags && p->dir == dir) { /* found wisdom */ if (replacep) { /* replace old wisdom with new */ p->type = *type; p->signature = *signature; } else { *type = p->type; *signature = p->signature; } return 1; } } return 0; } void fftw_wisdom_add(int n, int flags, fftw_direction dir, enum fftw_node_type type, int signature) { struct wisdom *p; if (!(flags & FFTW_USE_WISDOM)) return; /* simply ignore if wisdom is disabled */ if (!(flags & FFTW_MEASURE)) return; /* only measurements produce wisdom */ if (fftw_wisdom_lookup(n, flags, dir, &type, &signature, 1)) return; /* wisdom overwrote old wisdom */ p = (struct wisdom *) fftw_malloc(sizeof(struct wisdom)); p->n = n; p->flags = flags; p->dir = dir; p->type = type; p->signature = signature; /* remember this wisdom */ p->next = wisdom_list; wisdom_list = p; } void fftw_forget_wisdom(void) { while (wisdom_list) { struct wisdom *p; p = wisdom_list; wisdom_list = wisdom_list->next; fftw_free(p); } } /* * user-visible routines, to convert wisdom into strings etc. */ #define WISDOM_FORMAT_VERSION "FFTW-1.2" static void (*emit)(char c, void *data); static void emit_string(char *s, void *data) { while (*s) emit(*s++, data); } static void emit_int(int n, void *data) { char buf[128]; sprintf(buf, "%d", n); emit_string(buf, data); } /* dump wisdom in lisp-like format */ void fftw_export_wisdom(void (*emitter)(char c, void *), void *data) { struct wisdom *p; /* install the output handler */ emit = emitter; emit('(',data); emit_string(WISDOM_FORMAT_VERSION,data); for (p = wisdom_list; p; p = p->next) { emit(' ',data); /* separator to make the output nicer */ emit('(',data); emit_int((int) p->n, data); emit(' ',data); emit_int((int) p->flags, data); emit(' ',data); emit_int((int) p->dir, data); emit(' ',data); emit_int((int) p->type, data); emit(' ',data); emit_int((int) p->signature, data); emit(')',data); } emit(')',data); } /* input part */ static int next_char; static int (*get_input)(void *data); static fftw_status input_error; static void read_char(void *data) { next_char = get_input(data); if (next_char == 0 || next_char == EOF) input_error = FFTW_FAILURE; } /* skip blanks, newlines, tabs, etc */ static void eat_blanks(void *data) { while (isspace(next_char)) read_char(data); } static int read_int(void *data) { int sign = 1; int n = 0; eat_blanks(data); if (next_char == '-') { sign = -1; read_char(data); eat_blanks(data); } if (!isdigit(next_char)) { /* error, no digit */ input_error = FFTW_FAILURE; return 0; } while (isdigit(next_char)) { n = n * 10 + (next_char - '0'); read_char(data); } return sign * n; } #define EXPECT(c) \ { \ eat_blanks(data); \ if (input_error == FFTW_FAILURE || \ next_char != c) \ return FFTW_FAILURE; \ read_char(data); \ } #define EXPECT_INT(n) \ { \ n = read_int(data); \ if (input_error == FFTW_FAILURE) \ return FFTW_FAILURE; \ } #define EXPECT_STRING(s) \ { \ char *s1 = s; \ while (*s1) { \ EXPECT(*s1); \ ++s1; \ } \ } fftw_status fftw_import_wisdom(int (*g)(void *), void *data) { int n; int flags; fftw_direction dir; enum fftw_node_type type; int signature; get_input = g; input_error = FFTW_SUCCESS; read_char(data); eat_blanks(data); EXPECT('('); eat_blanks(data); EXPECT_STRING(WISDOM_FORMAT_VERSION); eat_blanks(data); while (next_char != ')') { EXPECT('('); EXPECT_INT(n); EXPECT_INT(flags); EXPECT_INT(dir); EXPECT_INT(type); EXPECT_INT(signature); eat_blanks(data); EXPECT(')'); /* the wisdom has been read properly. Add it */ fftw_wisdom_add(n, flags, dir, type, signature); /* prepare for next morsel of wisdom */ eat_blanks(data); } return FFTW_SUCCESS; }