From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18079 invoked by alias); 20 May 2003 19:26:03 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 18012 invoked by uid 71); 20 May 2003 19:26:02 -0000 Date: Tue, 20 May 2003 19:26:00 -0000 Message-ID: <20030520192601.18011.qmail@sources.redhat.com> To: ebotcazou@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org, From: "Aaron Williams" Subject: Re: optimization/10876: [3.3/3.4 regression] [Sparc] ICE in calculate_giv_inc at unroll.c:1588 on FP code Reply-To: "Aaron Williams" X-SW-Source: 2003-05/txt/msg02197.txt.bz2 List-Id: The following reply was made to PR optimization/10876; it has been noted by GNATS. From: "Aaron Williams" To: gcc-prs@gcc.gnu.org, ebotcazou@gcc.gnu.org, aaronw@attbi.com, gcc-bugs@gcc.gnu.org, gcc-gnats@gcc.gnu.org Cc: Subject: Re: optimization/10876: [3.3/3.4 regression] [Sparc] ICE in calculate_giv_inc at unroll.c:1588 on FP code Date: Tue, 20 May 2003 12:25:59 -0700 --Boundary-00=_HFoy+N6CAAjpCAA Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=10876 I have attached the pre-processed source from which the sample code was taken. Unlike the test code, which does compile with -O3, the attached file also crashes. Also, the below causes an abort instead of a segfault: gcc -c -O3 gslfft_pp.c -fpeephole2 -fssa -falign-functions -falign-loops -foptimize-register-move -frename-registers -freorder-functions -freorder-blocks -fsched-interblock -fschedule-insns2 -fschedule-insns -frerun-loop-opt -frerun-cse-after-loop -floop-optimize -fgcse-lm -fdelayed-branch -fpeephole -freduce-all-givs -fprefetch-loop-arrays -funroll-loops -fstrength-reduce gslfft.c: In function `gsl_power2_fftac': gslfft.c:8810: warning: concatenation of string literals with __FUNCTION__ is deprecated gslfft.c: In function `gsl_power2_fftsc': gslfft.c:8836: warning: concatenation of string literals with __FUNCTION__ is deprecated gslfft.c: In function `gsl_power2_fftar': gslfft.c:8867: warning: concatenation of string literals with __FUNCTION__ is deprecated gslfft.c: In function `gsl_power2_fftsr': gslfft.c:8921: warning: concatenation of string literals with __FUNCTION__ is deprecated gslfft.c: In function `gsl_power2_fftar_simple': gslfft.c:9015: warning: concatenation of string literals with __FUNCTION__ is deprecated gslfft.c: In function `gsl_power2_fftsr_simple': gslfft.c:9039: warning: concatenation of string literals with __FUNCTION__ is deprecated gslfft.c: In function `gsl_power2_fft256analysis_skip2': gslfft.c:3445: internal compiler error: in calculate_giv_inc, at unroll.c:1693 Please submit a full bug report, with preprocessed source if appropriate. See for instructions. --Boundary-00=_HFoy+N6CAAjpCAA Content-Type: text/x-csrc; charset="us-ascii"; name="gslfft_pp.c" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="gslfft_pp.c" # 1 "gslfft.c" # 1 "" # 1 "" # 1 "gslfft.c" # 1 "gslfft.h" 1 # 22 "gslfft.h" # 1 "../gsl/gsldefs.h" 1 # 23 "../gsl/gsldefs.h" # 1 "../gsl/gslconfig.h" 1 # 24 "../gsl/gsldefs.h" 2 # 1 "../gsl/gslglib.h" 1 # 27 "../gsl/gslglib.h" # 1 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/limits.h" 1 3 4 # 11 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/limits.h" 3 4 # 1 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/syslimits.h" 1 3 4 # 25 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/syslimits.h" 3 4 #pragma ident "@(#)limits.h 1.48 98/07/20 SMI" # 1 "/usr/include/sys/feature_tests.h" 1 3 4 # 13 "/usr/include/sys/feature_tests.h" 3 4 #pragma ident "@(#)feature_tests.h 1.17 97/12/04 SMI" # 1 "/usr/include/sys/isa_defs.h" 1 3 4 # 9 "/usr/include/sys/isa_defs.h" 3 4 #pragma ident "@(#)isa_defs.h 1.16 99/05/25 SMI" # 16 "/usr/include/sys/feature_tests.h" 2 3 4 # 28 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/syslimits.h" 2 3 4 # 40 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/syslimits.h" 3 4 # 1 "/usr/include/sys/int_limits.h" 1 3 4 # 9 "/usr/include/sys/int_limits.h" 3 4 #pragma ident "@(#)int_limits.h 1.5 98/01/06 SMI" # 41 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/syslimits.h" 2 3 4 # 282 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/syslimits.h" 3 4 typedef long clock_t; extern long _sysconf(int); # 12 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/limits.h" 2 3 4 # 28 "../gsl/gslglib.h" 2 # 1 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/float.h" 1 3 4 # 29 "../gsl/gslglib.h" 2 # 1 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/stddef.h" 1 3 4 # 151 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/stddef.h" 3 4 typedef int ptrdiff_t; # 213 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/stddef.h" 3 4 typedef unsigned int size_t; # 325 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/stddef.h" 3 4 typedef long int wchar_t; # 30 "../gsl/gslglib.h" 2 # 1 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/stdarg.h" 1 3 4 # 43 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/stdarg.h" 3 4 typedef __builtin_va_list __gnuc_va_list; # 85 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/stdarg.h" 3 4 typedef __gnuc_va_list va_list; # 31 "../gsl/gslglib.h" 2 # 48 "../gsl/gslglib.h" typedef void* gpointer; typedef const void* gconstpointer; typedef char gchar; typedef unsigned char guchar; typedef signed short gshort; typedef unsigned short gushort; typedef signed int gint; typedef unsigned int guint; typedef signed long glong; typedef unsigned long gulong; typedef float gfloat; typedef double gdouble; typedef size_t gsize; typedef gchar gint8; typedef guchar guint8; typedef gshort gint16; typedef gushort guint16; typedef gint gint32; typedef guint guint32; typedef gint gboolean; typedef gint32 GTime; typedef long long int gint64; typedef unsigned long long int guint64; typedef struct _GString GString; typedef struct _GDebugKey GDebugKey; struct _GDebugKey { const gchar *key; guint value; }; typedef struct _GTimeVal GTimeVal; struct _GTimeVal { glong tv_sec; glong tv_usec; }; typedef gint (*GCompareFunc) (gconstpointer a, gconstpointer b); # 254 "../gsl/gslglib.h" void gsl_g_log (const gchar*msg,const char *format, va_list ap); void gsl_g_print_fd (int fd,const char *format, va_list ap); static __inline__ void g_error (const gchar *format, ...) { va_list args; __builtin_va_start(args,format); gsl_g_log ("**ERROR**", format, args); __builtin_va_end(args); } static __inline__ void g_message (const gchar *format, ...) { va_list args; __builtin_va_start(args,format); gsl_g_log ("**MESSAGE**", format, args); __builtin_va_end(args); } static __inline__ void g_critical (const gchar *format, ...) { va_list args; __builtin_va_start(args,format); gsl_g_log ("**CRITICAL**", format, args); __builtin_va_end(args); } static __inline__ void g_warning (const gchar *format, ...) { va_list args; __builtin_va_start(args,format); gsl_g_log ("**WARNING**", format, args); __builtin_va_end(args); } static __inline__ void g_print (const gchar *format, ...) { va_list args; __builtin_va_start(args,format); gsl_g_print_fd (1, format, args); __builtin_va_end(args); } static __inline__ void g_printerr (const gchar *format, ...) { va_list args; __builtin_va_start(args,format); gsl_g_print_fd (2, format, args); __builtin_va_end(args); } typedef struct _GTrashStack GTrashStack; struct _GTrashStack { GTrashStack *next; }; static __inline__ guint g_bit_storage (gulong number) { register guint n_bits = 0; do { n_bits++; number >>= 1; } while (number); return n_bits; } static __inline__ void g_trash_stack_push (GTrashStack **stack_p, gpointer data_p) { GTrashStack *data = (GTrashStack *) data_p; data->next = *stack_p; *stack_p = data; } static __inline__ gpointer g_trash_stack_pop (GTrashStack **stack_p) { GTrashStack *data; data = *stack_p; if (data) { *stack_p = data->next; data->next = ((void *)0); } return data; } static __inline__ gpointer g_trash_stack_peek (GTrashStack **stack_p) { GTrashStack *data; data = *stack_p; return data; } static __inline__ guint g_trash_stack_height (GTrashStack **stack_p) { GTrashStack *data; guint i = 0; for (data = *stack_p; data; data = data->next) i++; return i; } # 413 "../gsl/gslglib.h" typedef struct { gint fd; gushort events; gushort revents; } GPollFD; # 448 "../gsl/gslglib.h" gpointer gsl_g_malloc (gulong n_bytes); gpointer gsl_g_malloc0 (gulong n_bytes); gpointer gsl_g_realloc (gpointer mem, gulong n_bytes); void gsl_g_free (gpointer mem); gpointer gsl_g_memdup (gconstpointer mem, guint byte_size); gchar* gsl_g_strdup (const gchar *str); gchar* gsl_g_strndup (const gchar *str, gsize n); gchar* gsl_g_strdup_printf (const gchar *format, ...) ; gchar* gsl_g_strdup_vprintf (const gchar *format, va_list args); gchar* gsl_g_strndup (const gchar *str, gsize n); gchar* gsl_g_strconcat (const gchar *string1, ...); gchar* gsl_g_convert (const gchar *str, gsize len, const gchar *to_codeset, const gchar *from_codeset, gsize *bytes_read, gsize *bytes_written, void **error); void gsl_g_usleep(unsigned long usec); char* gsl_g_strerror(int e); guint gsl_g_direct_hash (gconstpointer v); gboolean gsl_g_direct_equal (gconstpointer v1, gconstpointer v2); gboolean gsl_g_str_equal (gconstpointer v1, gconstpointer v2); guint gsl_g_str_hash (gconstpointer key); gdouble gsl_g_strtod (const gchar *nptr, gchar **endptr); gsize gsl_g_printf_string_upper_bound (const gchar *format, va_list args); gchar * gsl_g_stpcpy (gchar *dest, const gchar *src); gchar * gsl_g_strescape (const gchar *source, const gchar *exceptions); gchar * gsl_g_get_current_dir (void); gboolean gsl_g_path_is_absolute (const gchar *file_name); # 525 "../gsl/gslglib.h" typedef union _GDoubleIEEE754 GDoubleIEEE754; typedef union _GFloatIEEE754 GFloatIEEE754; union _GFloatIEEE754 { gfloat v_float; struct { guint mantissa : 23; guint biased_exponent : 8; guint sign : 1; } mpn; }; union _GDoubleIEEE754 { gdouble v_double; struct { guint mantissa_low : 32; guint mantissa_high : 20; guint biased_exponent : 11; guint sign : 1; } mpn; }; # 578 "../gsl/gslglib.h" typedef struct _GHashTable GHashTable; typedef gboolean (*GHRFunc) (gpointer key, gpointer value, gpointer user_data); typedef void (*GHFunc) (gpointer key, gpointer value, gpointer user_data); typedef guint (*GHashFunc) (gconstpointer key); typedef gboolean (*GEqualFunc) (gconstpointer a, gconstpointer b); typedef void (*GDestroyNotify) (gpointer data); # 602 "../gsl/gslglib.h" GHashTable* gsl_g_hash_table_new (GHashFunc hash_func, GEqualFunc key_equal_func); GHashTable* gsl_g_hash_table_new_full (GHashFunc hash_func, GEqualFunc key_equal_func, GDestroyNotify key_destroy_func, GDestroyNotify value_destroy_func); void gsl_g_hash_table_destroy (GHashTable *hash_table); void gsl_g_hash_table_insert (GHashTable *hash_table, gpointer key, gpointer value); void gsl_g_hash_table_replace (GHashTable *hash_table, gpointer key, gpointer value); gboolean gsl_g_hash_table_remove (GHashTable *hash_table, gconstpointer key); gboolean gsl_g_hash_table_steal (GHashTable *hash_table, gconstpointer key); gpointer gsl_g_hash_table_lookup (GHashTable *hash_table, gconstpointer key); gboolean gsl_g_hash_table_lookup_extended (GHashTable *hash_table, gconstpointer lookup_key, gpointer *orig_key, gpointer *value); void gsl_g_hash_table_foreach (GHashTable *hash_table, GHFunc func, gpointer user_data); guint gsl_g_hash_table_foreach_remove (GHashTable *hash_table, GHRFunc func, gpointer user_data); guint gsl_g_hash_table_foreach_steal (GHashTable *hash_table, GHRFunc func, gpointer user_data); guint gsl_g_hash_table_size (GHashTable *hash_table); typedef struct _GScanner GScanner; typedef struct _GScannerConfig GScannerConfig; typedef union _GTokenValue GTokenValue; typedef void (*GScannerMsgFunc) (GScanner *scanner, gchar *message, gint error); # 655 "../gsl/gslglib.h" typedef enum { G_ERR_UNKNOWN, G_ERR_UNEXP_EOF, G_ERR_UNEXP_EOF_IN_STRING, G_ERR_UNEXP_EOF_IN_COMMENT, G_ERR_NON_DIGIT_IN_CONST, G_ERR_DIGIT_RADIX, G_ERR_FLOAT_RADIX, G_ERR_FLOAT_MALFORMED } GErrorType; typedef enum { G_TOKEN_EOF = 0, G_TOKEN_LEFT_PAREN = '(', G_TOKEN_RIGHT_PAREN = ')', G_TOKEN_LEFT_CURLY = '{', G_TOKEN_RIGHT_CURLY = '}', G_TOKEN_LEFT_BRACE = '[', G_TOKEN_RIGHT_BRACE = ']', G_TOKEN_EQUAL_SIGN = '=', G_TOKEN_COMMA = ',', G_TOKEN_NONE = 256, G_TOKEN_ERROR, G_TOKEN_CHAR, G_TOKEN_BINARY, G_TOKEN_OCTAL, G_TOKEN_INT, G_TOKEN_HEX, G_TOKEN_FLOAT, G_TOKEN_STRING, G_TOKEN_SYMBOL, G_TOKEN_IDENTIFIER, G_TOKEN_IDENTIFIER_NULL, G_TOKEN_COMMENT_SINGLE, G_TOKEN_COMMENT_MULTI, G_TOKEN_LAST } GTokenType; union _GTokenValue { gpointer v_symbol; gchar *v_identifier; gulong v_binary; gulong v_octal; gulong v_int; gdouble v_float; gulong v_hex; gchar *v_string; gchar *v_comment; guchar v_char; guint v_error; }; struct _GScannerConfig { const gchar *cset_skip_characters; const gchar *cset_identifier_first; const gchar *cset_identifier_nth; const gchar *cpair_comment_single; guint case_sensitive : 1; guint skip_comment_multi : 1; guint skip_comment_single : 1; guint scan_comment_multi : 1; guint scan_identifier : 1; guint scan_identifier_1char : 1; guint scan_identifier_NULL : 1; guint scan_symbols : 1; guint scan_binary : 1; guint scan_octal : 1; guint scan_float : 1; guint scan_hex : 1; guint scan_hex_dollar : 1; guint scan_string_sq : 1; guint scan_string_dq : 1; guint numbers_2_int : 1; guint int_2_float : 1; guint identifier_2_string : 1; guint char_2_token : 1; guint symbol_2_token : 1; guint scope_0_fallback : 1; }; struct _GScanner { gpointer user_data; guint max_parse_errors; guint parse_errors; const gchar *input_name; GScannerConfig *config; GTokenType token; GTokenValue value; guint line; guint position; GTokenType next_token; GTokenValue next_value; guint next_line; guint next_position; GHashTable *symbol_table; gint input_fd; const gchar *text; const gchar *text_end; gchar *buffer; guint scope_id; GScannerMsgFunc msg_handler; }; # 786 "../gsl/gslglib.h" GScanner* gsl_g_scanner_new (const GScannerConfig *config_templ); void gsl_g_scanner_destroy (GScanner *scanner); void gsl_g_scanner_input_file (GScanner *scanner, gint input_fd); void gsl_g_scanner_sync_file_offset (GScanner *scanner); void gsl_g_scanner_input_text (GScanner *scanner, const gchar *text, guint text_len); GTokenType gsl_g_scanner_get_next_token (GScanner *scanner); GTokenType gsl_g_scanner_peek_next_token (GScanner *scanner); GTokenType gsl_g_scanner_cur_token (GScanner *scanner); GTokenValue gsl_g_scanner_cur_value (GScanner *scanner); guint gsl_g_scanner_cur_line (GScanner *scanner); guint gsl_g_scanner_cur_position (GScanner *scanner); gboolean gsl_g_scanner_eof (GScanner *scanner); guint gsl_g_scanner_set_scope (GScanner *scanner, guint scope_id); void gsl_g_scanner_scope_add_symbol (GScanner *scanner, guint scope_id, const gchar *symbol, gpointer value); void gsl_g_scanner_scope_remove_symbol (GScanner *scanner, guint scope_id, const gchar *symbol); gpointer gsl_g_scanner_scope_lookup_symbol (GScanner *scanner, guint scope_id, const gchar *symbol); void gsl_g_scanner_scope_foreach_symbol (GScanner *scanner, guint scope_id, GHFunc func, gpointer user_data); gpointer gsl_g_scanner_lookup_symbol (GScanner *scanner, const gchar *symbol); void gsl_g_scanner_unexp_token (GScanner *scanner, GTokenType expected_token, const gchar *identifier_spec, const gchar *symbol_spec, const gchar *symbol_name, const gchar *message, gint is_error); void gsl_g_scanner_error (GScanner *scanner, const gchar *format, ...) ; void gsl_g_scanner_warn (GScanner *scanner, const gchar *format, ...) ; # 849 "../gsl/gslglib.h" # 1 "../gsl/gslconfig.h" 1 # 850 "../gsl/gslglib.h" 2 # 1 "../gsl/gslartsthreads.h" 1 typedef struct _GError { const char *message; } GError; typedef struct _GThread { void *data; } GThread; typedef enum { G_THREAD_PRIORITY_LOW, G_THREAD_PRIORITY_NORMAL, G_THREAD_PRIORITY_HIGH, G_THREAD_PRIORITY_URGENT } GThreadPriority; # 45 "../gsl/gslartsthreads.h" gpointer gsl_arts_mutex_new (); void gsl_arts_mutex_free (gpointer mutex); void gsl_arts_mutex_lock (gpointer mutex); gboolean gsl_arts_mutex_trylock (gpointer mutex); void gsl_arts_mutex_unlock (gpointer mutex); gpointer gsl_arts_cond_new (); void gsl_arts_cond_free (gpointer cond); void gsl_arts_cond_signal (gpointer cond); void gsl_arts_cond_broadcast (gpointer cond); void gsl_arts_cond_wait (gpointer cond, gpointer mutex); void gsl_arts_cond_timed_wait (gpointer cond, gpointer mutex, GTimeVal *abstime); GThread* gsl_arts_thread_create_full(gpointer (*func)(gpointer data), gpointer data, gulong stack_size, gboolean joinable, gboolean bound, GThreadPriority priority, GError **error); gpointer gsl_arts_thread_self (); void gsl_arts_thread_init (gpointer arg); # 852 "../gsl/gslglib.h" 2 # 27 "../gsl/gsldefs.h" 2 # 37 "../gsl/gsldefs.h" typedef struct _GslMagic GslMagic; typedef struct _GslClass GslClass; typedef struct _GslComplex GslComplex; typedef struct _GslDataCache GslDataCache; typedef struct _GslDataHandle GslDataHandle; typedef struct _GslDataHandleFuncs GslDataHandleFuncs; typedef struct _GslGlueContext GslGlueContext; typedef struct _GslJob GslJob; typedef struct _GslModule GslModule; typedef struct _GslIStream GslIStream; typedef struct _GslJStream GslJStream; typedef struct _GslLoader GslLoader; typedef struct _GslOStream GslOStream; typedef struct _GslThread GslThread; typedef struct _GslTrans GslTrans; typedef struct _GslWaveChunk GslWaveChunk; typedef struct _GslWaveChunkBlock GslWaveChunkBlock; typedef struct _GslRecMutex GslRecMutex; typedef struct _GslRing GslRing; typedef union _GslCond GslCond; typedef union _GslMutex GslMutex; typedef glong GslLong; typedef enum { GSL_ERROR_NONE, GSL_ERROR_INTERNAL, GSL_ERROR_UNKNOWN, GSL_ERROR_IO, GSL_ERROR_PERMS, GSL_ERROR_BUSY, GSL_ERROR_EXISTS, GSL_ERROR_TEMP, GSL_ERROR_EOF, GSL_ERROR_NOT_FOUND, GSL_ERROR_OPEN_FAILED, GSL_ERROR_SEEK_FAILED, GSL_ERROR_READ_FAILED, GSL_ERROR_WRITE_FAILED, GSL_ERROR_FORMAT_INVALID, GSL_ERROR_FORMAT_UNKNOWN, GSL_ERROR_DATA_CORRUPT, GSL_ERROR_CONTENT_GLITCH, GSL_ERROR_NO_RESOURCE, GSL_ERROR_CODEC_FAILURE, GSL_ERROR_LAST } GslErrorType; typedef void (*GslAccessFunc) (GslModule *module, gpointer data); typedef void (*GslFreeFunc) (gpointer data); typedef void (*GslModuleFreeFunc) (gpointer data, const GslClass *klass); # 111 "../gsl/gsldefs.h" union _GslCond { gpointer cond_pointer; guint8 cond_dummy[((8) > ((16)) ? (8) : ((16)))]; }; union _GslMutex { gpointer mutex_pointer; guint8 mutex_dummy[((8) > ((24)) ? (8) : ((24)))]; }; struct _GslRecMutex { GslMutex sync_mutex; gpointer owner; guint depth; }; # 23 "gslfft.h" 2 # 48 "gslfft.h" void gsl_power2_fftac (const unsigned int n_values, const double *ri_values_in, double *ri_values_out); # 66 "gslfft.h" void gsl_power2_fftsc (const unsigned int n_values, const double *ri_values_in, double *ri_values_out); # 91 "gslfft.h" void gsl_power2_fftar (const unsigned int n_values, const double *r_values_in, double *ri_values_out); # 107 "gslfft.h" void gsl_power2_fftsr (const unsigned int n_values, const double *ri_values_in, double *r_values_out); void gsl_power2_fftar_simple (const unsigned int n_values, const float *real_values, float *complex_values); void gsl_power2_fftsr_simple (const unsigned int n_values, const float *complex_values, float *real_values); # 2 "gslfft.c" 2 # 1 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/math.h" 1 3 4 # 27 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/math.h" 3 4 #pragma ident "@(#)math.h 2.7 98/01/27" # 46 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/math.h" 3 4 typedef union _h_val { unsigned long _i[sizeof(double) / sizeof(unsigned long)]; double _d; } _h_val; extern const _h_val __huge_val; # 80 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/math.h" 3 4 extern int signgam; enum version {libm_ieee = -1, c_issue_4, ansi_1, strict_ansi}; extern const enum version _lib_version; struct exception { int type; char *name; double arg1; double arg2; double retval; }; # 134 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/math.h" 3 4 extern double acos (double); extern double asin (double); extern double atan (double); extern double atan2 (double, double); extern double cos (double); extern double sin (double); extern double tan (double); extern double cosh (double); extern double sinh (double); extern double tanh (double); extern double exp (double); extern double frexp (double, int *); extern double ldexp (double, int); extern double log (double); extern double log10 (double); extern double modf (double, double *); extern double pow (double, double); extern double sqrt (double); extern double ceil (double); extern double fabs (double); extern double floor (double); extern double fmod (double, double); extern double erf (double); extern double erfc (double); extern double gamma (double); extern double hypot (double, double); extern int isnan (double); extern double j0 (double); extern double j1 (double); extern double jn (int, double); extern double lgamma (double); extern double y0 (double); extern double y1 (double); extern double yn (int, double); extern double acosh (double); extern double asinh (double); extern double atanh (double); extern double cbrt (double); extern double logb (double); extern double nextafter (double, double); extern double remainder (double, double); extern double scalb (double, double); extern double expm1 (double); extern int ilogb (double); extern double log1p (double); extern double rint (double); extern int matherr (struct exception *); extern double significand (double); extern double copysign (double, double); extern double scalbn (double, int); # 232 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/math.h" 3 4 extern float modff (float, float *); # 1 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/floatingpoint.h" 1 3 4 # 24 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/floatingpoint.h" 3 4 #pragma ident "@(#)floatingpoint.h 2.4 94/06/09" # 42 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/floatingpoint.h" 3 4 # 1 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/stdio.h" 1 3 4 # 34 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/stdio.h" 3 4 #pragma ident "@(#)stdio.h 1.69 98/07/13 SMI" # 1 "/usr/include/sys/va_list.h" 1 3 4 # 9 "/usr/include/sys/va_list.h" 3 4 #pragma ident "@(#)va_list.h 1.11 97/11/22 SMI" # 26 "/usr/include/sys/va_list.h" 3 4 typedef void *__va_list; # 38 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/stdio.h" 2 3 4 # 1 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/stdio_tag.h" 1 3 4 # 18 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/stdio_tag.h" 3 4 #pragma ident "@(#)stdio_tag.h 1.3 98/04/20 SMI" # 30 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/stdio_tag.h" 3 4 typedef struct __FILE __FILE; # 39 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/stdio.h" 2 3 4 # 1 "/usr/include/stdio_impl.h" 1 3 4 # 9 "/usr/include/stdio_impl.h" 3 4 #pragma ident "@(#)stdio_impl.h 1.8 99/06/30 SMI" # 22 "/usr/include/stdio_impl.h" 3 4 typedef int ssize_t; # 38 "/usr/include/stdio_impl.h" 3 4 struct __FILE { ssize_t _cnt; unsigned char *_ptr; unsigned char *_base; unsigned char _flag; unsigned char _file; unsigned __orientation:2; unsigned __ionolock:1; unsigned __filler:5; }; # 40 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/stdio.h" 2 3 4 # 55 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/stdio.h" 3 4 typedef __FILE FILE; # 74 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/stdio.h" 3 4 typedef long long __longlong_t; # 88 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/stdio.h" 3 4 typedef long off_t; typedef __longlong_t off64_t; typedef long fpos_t; typedef __longlong_t fpos64_t; # 203 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/stdio.h" 3 4 extern FILE __iob[20]; # 215 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/stdio.h" 3 4 extern unsigned char _sibuf[], _sobuf[]; # 244 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/stdio.h" 3 4 extern unsigned char *_bufendtab[]; extern FILE *_lastbuf; # 275 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/stdio.h" 3 4 extern int remove(const char *); extern int rename(const char *, const char *); extern FILE *tmpfile(void); extern char *tmpnam(char *); extern int fclose(FILE *); extern int fflush(FILE *); extern FILE *fopen(const char *, const char *); extern FILE *freopen(const char *, const char *, FILE *); extern void setbuf(FILE *, char *); extern void setbuffer(FILE *, char *, size_t); extern int setlinebuf(FILE *); extern int setvbuf(FILE *, char *, int, size_t); extern int fprintf(FILE *, const char *, ...); extern int fscanf(FILE *, const char *, ...); extern int printf(const char *, ...); extern int scanf(const char *, ...); extern int snprintf(char *, size_t, const char *, ...); extern int sprintf(char *, const char *, ...); extern int sscanf(const char *, const char *, ...); extern int vfprintf(FILE *, const char *, __gnuc_va_list); extern int vprintf(const char *, __gnuc_va_list); extern int vsnprintf(char *, size_t, const char *, __gnuc_va_list); extern int vsprintf(char *, const char *, __gnuc_va_list); extern int fgetc(FILE *); extern char *fgets(char *, int, FILE *); extern int fputc(int, FILE *); extern int fputs(const char *, FILE *); extern int getc(FILE *); extern int getchar(void); extern char *gets(char *); extern int putc(int, FILE *); extern int putchar(int); extern int puts(const char *); extern int ungetc(int, FILE *); extern size_t fread(void *, size_t, size_t, FILE *); extern size_t fwrite(const void *, size_t, size_t, FILE *); extern int fgetpos(FILE *, fpos_t *); extern int fseek(FILE *, long, int); extern int fsetpos(FILE *, const fpos_t *); extern long ftell(FILE *); extern void rewind(FILE *); extern void clearerr(FILE *); extern int feof(FILE *); extern int ferror(FILE *); extern void perror(const char *); extern int __filbuf(FILE *); extern int __flsbuf(int, FILE *); # 353 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/stdio.h" 3 4 extern FILE *fdopen(int, const char *); extern char *ctermid(char *); extern int fileno(FILE *); # 379 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/stdio.h" 3 4 extern FILE *popen(const char *, const char *); extern char *cuserid(char *); extern char *tempnam(const char *, const char *); extern int getopt(int, char *const *, const char *); extern int getsubopt(char **, char *const *, char **); extern char *optarg; extern int optind, opterr, optopt; extern int getw(FILE *); extern int putw(int, FILE *); extern int pclose(FILE *); extern int fseeko(FILE *, off_t, int); extern off_t ftello(FILE *); # 408 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/stdio.h" 3 4 extern FILE *fopen64(const char *, const char *); extern FILE *freopen64(const char *, const char *, FILE *); extern FILE *tmpfile64(void); extern int fgetpos64(FILE *, fpos64_t *); extern int fsetpos64(FILE *, const fpos64_t *); extern int fseeko64(FILE *, off64_t, int); extern off64_t ftello64(FILE *); # 43 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/floatingpoint.h" 2 3 4 # 1 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/sys/ieeefp.h" 1 3 4 # 17 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/sys/ieeefp.h" 3 4 #pragma ident "@(#)ieeefp.h 2.7 94/11/09" # 27 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/sys/ieeefp.h" 3 4 enum fp_direction_type { fp_nearest = 0, fp_tozero = 1, fp_positive = 2, fp_negative = 3 }; enum fp_precision_type { fp_extended = 0, fp_single = 1, fp_double = 2, fp_precision_3 = 3 }; enum fp_exception_type { fp_inexact = 0, fp_division = 1, fp_underflow = 2, fp_overflow = 3, fp_invalid = 4 }; enum fp_trap_enable_type { fp_trap_inexact = 0, fp_trap_division = 1, fp_trap_underflow = 2, fp_trap_overflow = 3, fp_trap_invalid = 4 }; # 133 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/sys/ieeefp.h" 3 4 enum fp_class_type { fp_zero = 0, fp_subnormal = 1, fp_normal = 2, fp_infinity = 3, fp_quiet = 4, fp_signaling = 5 }; # 45 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/floatingpoint.h" 2 3 4 # 58 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/floatingpoint.h" 3 4 typedef int sigfpe_code_type; typedef void (*sigfpe_handler_type)(); extern sigfpe_handler_type sigfpe (sigfpe_code_type, sigfpe_handler_type); typedef float single; typedef unsigned extended[3]; typedef long double quadruple; typedef unsigned fp_exception_field_type; # 90 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/floatingpoint.h" 3 4 typedef char decimal_string[512]; typedef struct { enum fp_class_type fpclass; int sign; int exponent; decimal_string ds; int more; int ndigits; } decimal_record; enum decimal_form { fixed_form, floating_form }; typedef struct { enum fp_direction_type rd; enum decimal_form df; int ndigits; } decimal_mode; enum decimal_string_form { invalid_form, whitespace_form, fixed_int_form, fixed_intdot_form, fixed_dotfrac_form, fixed_intdotfrac_form, floating_int_form, floating_intdot_form, floating_dotfrac_form, floating_intdotfrac_form, inf_form, infinity_form, nan_form, nanstring_form }; extern void single_to_decimal (single *, decimal_mode *, decimal_record *, fp_exception_field_type *); extern void double_to_decimal (double *, decimal_mode *, decimal_record *, fp_exception_field_type *); extern void extended_to_decimal (extended *, decimal_mode *, decimal_record *, fp_exception_field_type *); extern void quadruple_to_decimal (quadruple *, decimal_mode *, decimal_record *, fp_exception_field_type *); extern void decimal_to_single (single *, decimal_mode *, decimal_record *, fp_exception_field_type *); extern void decimal_to_double (double *, decimal_mode *, decimal_record *, fp_exception_field_type *); extern void decimal_to_extended (extended *, decimal_mode *, decimal_record *, fp_exception_field_type *); extern void decimal_to_quadruple (quadruple *, decimal_mode *, decimal_record *, fp_exception_field_type *); extern void string_to_decimal (char **, int, int, decimal_record *, enum decimal_string_form *, char **); extern void func_to_decimal (char **, int, int, decimal_record *, enum decimal_string_form *, char **, int (*)(void), int *, int (*)(int)); extern void file_to_decimal (char **, int, int, decimal_record *, enum decimal_string_form *, char **, FILE *, int *); extern char *seconvert (single *, int, int *, int *, char *); extern char *sfconvert (single *, int, int *, int *, char *); extern char *sgconvert (single *, int, int, char *); extern char *econvert (double, int, int *, int *, char *); extern char *fconvert (double, int, int *, int *, char *); extern char *gconvert (double, int, int, char *); extern char *qeconvert (quadruple *, int, int *, int *, char *); extern char *qfconvert (quadruple *, int, int *, int *, char *); extern char *qgconvert (quadruple *, int, int, char *); extern char *ecvt (double, int, int *, int *); extern char *fcvt (double, int, int *, int *); extern char *gcvt (double, int, char *); extern double atof (const char *); extern double strtod (const char *, char **); # 235 "/tools/gcc-3.2/lib/gcc-lib/sparc-sun-solaris2.7/3.3/include/math.h" 2 3 4 # 3 "gslfft.c" 2 # 129 "gslfft.c" static __inline__ void bitreverse_fft2analysis (const unsigned int n, const double *X, double *Y) { const unsigned int n2 = n >> 1, n1 = n + n2, max = n >> 2; unsigned int i, r; { register double T2re, T2im; T2re = X[0] - X[n]; T2im = X[1] - X[n + 1]; Y[0] = X[0] + X[n]; Y[1] = X[1] + X[n + 1]; Y[2] = T2re; Y[3] = T2im; }; { register double T2re, T2im; T2re = X[n2] - X[n1]; T2im = X[n2 + 1] - X[n1 + 1]; Y[4] = X[n2] + X[n1]; Y[5] = X[n2 + 1] + X[n1 + 1]; Y[6] = T2re; Y[7] = T2im; }; for (i = 1, r = 0; i < max; i++) { unsigned int k, j = n >> 1; while (r >= j) { r -= j; j >>= 1; } r |= j; k = r >> 1; j = i << 3; { register double T2re, T2im; T2re = X[k] - X[k + n]; T2im = X[k + 1] - X[k + n + 1]; Y[j] = X[k] + X[k + n]; Y[j + 1] = X[k + 1] + X[k + n + 1]; Y[j + 2] = T2re; Y[j + 3] = T2im; }; k += n2; j += 4; { register double T2re, T2im; T2re = X[k] - X[k + n]; T2im = X[k + 1] - X[k + n + 1]; Y[j] = X[k] + X[k + n]; Y[j + 1] = X[k + 1] + X[k + n + 1]; Y[j + 2] = T2re; Y[j + 3] = T2im; }; } } static __inline__ void bitreverse_fft2synthesis (const unsigned int n, const double *X, double *Y) { const unsigned int n2 = n >> 1, n1 = n + n2, max = n >> 2; unsigned int i, r; double scale = n; scale = 1.0 / scale; { register double T2re, T2im; T2re = X[0] - X[n]; T2im = X[1] - X[n + 1]; Y[0] = X[0] + X[n]; Y[1] = X[1] + X[n + 1]; Y[2] = T2re * scale; Y[3] = T2im * scale; Y[0] *= scale; Y[1] *= scale; }; { register double T2re, T2im; T2re = X[n2] - X[n1]; T2im = X[n2 + 1] - X[n1 + 1]; Y[4] = X[n2] + X[n1]; Y[5] = X[n2 + 1] + X[n1 + 1]; Y[6] = T2re * scale; Y[7] = T2im * scale; Y[4] *= scale; Y[5] *= scale; }; for (i = 1, r = 0; i < max; i++) { unsigned int k, j = n >> 1; while (r >= j) { r -= j; j >>= 1; } r |= j; k = r >> 1; j = i << 3; { register double T2re, T2im; T2re = X[k] - X[k + n]; T2im = X[k + 1] - X[k + n + 1]; Y[j] = X[k] + X[k + n]; Y[j + 1] = X[k + 1] + X[k + n + 1]; Y[j + 2] = T2re * scale; Y[j + 3] = T2im * scale; Y[j] *= scale; Y[j + 1] *= scale; }; k += n2; j += 4; { register double T2re, T2im; T2re = X[k] - X[k + n]; T2im = X[k + 1] - X[k + n + 1]; Y[j] = X[k] + X[k + n]; Y[j + 1] = X[k + 1] + X[k + n + 1]; Y[j + 2] = T2re * scale; Y[j + 3] = T2im * scale; Y[j] *= scale; Y[j + 1] *= scale; }; } } static void gsl_power2_fft2analysis (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; { register double T2re, T2im; T2re = X[0] - X[2]; T2im = X[0 + 1] - X[2 + 1]; Y[0] = X[0] + X[2]; Y[0 + 1] = X[0 + 1] + X[2 + 1]; Y[2] = T2re; Y[2 + 1] = T2im; }; } static void gsl_power2_fft4analysis_skip2 (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; { register double T2re, T2im; T2re = Y[0] - Y[4]; T2im = Y[0 + 1] - Y[4 + 1]; Y[0] = Y[0] + Y[4]; Y[0 + 1] = Y[0 + 1] + Y[4 + 1]; Y[4] = T2re; Y[4 + 1] = T2im; }; # 266 "gslfft.c" { register double T2re, T2im; T2re = Y[2] + Y[6 + 1]; T2im = Y[2 + 1] - Y[6]; Y[2] = Y[2] - Y[6 + 1]; Y[2 + 1] = Y[2 + 1] + Y[6]; Y[6] = T2re; Y[6 + 1] = T2im; }; # 275 "gslfft.c" } static void gsl_power2_fft4analysis (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; { register double T2re, T2im; T2re = X[0] - X[4]; T2im = X[0 + 1] - X[4 + 1]; Y[0] = X[0] + X[4]; Y[0 + 1] = X[0 + 1] + X[4 + 1]; Y[2] = T2re; Y[2 + 1] = T2im; }; { register double T2re, T2im; T2re = X[2] - X[6]; T2im = X[2 + 1] - X[6 + 1]; Y[4] = X[2] + X[6]; Y[4 + 1] = X[2 + 1] + X[6 + 1]; Y[6] = T2re; Y[6 + 1] = T2im; }; gsl_power2_fft4analysis_skip2 (X, Y); } static void gsl_power2_fft8analysis_skip2 (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; { register double T2re, T2im; T2re = Y[0] - Y[4]; T2im = Y[0 + 1] - Y[4 + 1]; Y[0] = Y[0] + Y[4]; Y[0 + 1] = Y[0 + 1] + Y[4 + 1]; Y[4] = T2re; Y[4 + 1] = T2im; }; # 333 "gslfft.c" { register double T2re, T2im; T2re = Y[8] - Y[12]; T2im = Y[8 + 1] - Y[12 + 1]; Y[8] = Y[8] + Y[12]; Y[8 + 1] = Y[8 + 1] + Y[12 + 1]; Y[12] = T2re; Y[12 + 1] = T2im; }; # 342 "gslfft.c" { register double T2re, T2im; T2re = Y[2] + Y[6 + 1]; T2im = Y[2 + 1] - Y[6]; Y[2] = Y[2] - Y[6 + 1]; Y[2 + 1] = Y[2 + 1] + Y[6]; Y[6] = T2re; Y[6 + 1] = T2im; }; # 351 "gslfft.c" { register double T2re, T2im; T2re = Y[10] + Y[14 + 1]; T2im = Y[10 + 1] - Y[14]; Y[10] = Y[10] - Y[14 + 1]; Y[10 + 1] = Y[10 + 1] + Y[14]; Y[14] = T2re; Y[14 + 1] = T2im; }; # 362 "gslfft.c" { register double T2re, T2im; T2re = Y[0] - Y[8]; T2im = Y[0 + 1] - Y[8 + 1]; Y[0] = Y[0] + Y[8]; Y[0 + 1] = Y[0 + 1] + Y[8 + 1]; Y[8] = T2re; Y[8 + 1] = T2im; }; # 371 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[10] * (double) +0.707106781186548; T1im = Y[10 + 1] * (double) +0.707106781186548; T2re = T1im; T2im = T1re; T1re -= T2re; T1im += T2im; T2re = Y[2] - T1re; T2im = Y[2 + 1] - T1im; Y[2] = Y[2] + T1re; Y[2 + 1] = Y[2 + 1] + T1im; Y[10] = T2re; Y[10 + 1] = T2im; }; # 380 "gslfft.c" { register double T2re, T2im; T2re = Y[4] + Y[12 + 1]; T2im = Y[4 + 1] - Y[12]; Y[4] = Y[4] - Y[12 + 1]; Y[4 + 1] = Y[4 + 1] + Y[12]; Y[12] = T2re; Y[12 + 1] = T2im; }; # 389 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[14] * (double) -0.707106781186547; T1im = Y[14 + 1] * (double) -0.707106781186547; T2re = T1im; T2im = T1re; T1re += T2re; T1im -= T2im; T2re = Y[6] - T1re; T2im = Y[6 + 1] - T1im; Y[6] = Y[6] + T1re; Y[6 + 1] = Y[6 + 1] + T1im; Y[14] = T2re; Y[14 + 1] = T2im; }; # 398 "gslfft.c" } static void gsl_power2_fft8analysis (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; { register double T2re, T2im; T2re = X[0] - X[8]; T2im = X[0 + 1] - X[8 + 1]; Y[0] = X[0] + X[8]; Y[0 + 1] = X[0 + 1] + X[8 + 1]; Y[2] = T2re; Y[2 + 1] = T2im; }; { register double T2re, T2im; T2re = X[4] - X[12]; T2im = X[4 + 1] - X[12 + 1]; Y[4] = X[4] + X[12]; Y[4 + 1] = X[4 + 1] + X[12 + 1]; Y[6] = T2re; Y[6 + 1] = T2im; }; { register double T2re, T2im; T2re = X[2] - X[10]; T2im = X[2 + 1] - X[10 + 1]; Y[8] = X[2] + X[10]; Y[8 + 1] = X[2 + 1] + X[10 + 1]; Y[10] = T2re; Y[10 + 1] = T2im; }; { register double T2re, T2im; T2re = X[6] - X[14]; T2im = X[6 + 1] - X[14 + 1]; Y[12] = X[6] + X[14]; Y[12 + 1] = X[6 + 1] + X[14 + 1]; Y[14] = T2re; Y[14 + 1] = T2im; }; # 439 "gslfft.c" gsl_power2_fft8analysis_skip2 (X, Y); } static void gsl_power2_fft16analysis_skip2 (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; { register double T2re, T2im; T2re = Y[0] - Y[4]; T2im = Y[0 + 1] - Y[4 + 1]; Y[0] = Y[0] + Y[4]; Y[0 + 1] = Y[0 + 1] + Y[4 + 1]; Y[4] = T2re; Y[4 + 1] = T2im; }; # 468 "gslfft.c" { register double T2re, T2im; T2re = Y[8] - Y[12]; T2im = Y[8 + 1] - Y[12 + 1]; Y[8] = Y[8] + Y[12]; Y[8 + 1] = Y[8 + 1] + Y[12 + 1]; Y[12] = T2re; Y[12 + 1] = T2im; }; # 477 "gslfft.c" { register double T2re, T2im; T2re = Y[16] - Y[20]; T2im = Y[16 + 1] - Y[20 + 1]; Y[16] = Y[16] + Y[20]; Y[16 + 1] = Y[16 + 1] + Y[20 + 1]; Y[20] = T2re; Y[20 + 1] = T2im; }; # 486 "gslfft.c" { register double T2re, T2im; T2re = Y[24] - Y[28]; T2im = Y[24 + 1] - Y[28 + 1]; Y[24] = Y[24] + Y[28]; Y[24 + 1] = Y[24 + 1] + Y[28 + 1]; Y[28] = T2re; Y[28 + 1] = T2im; }; # 495 "gslfft.c" { register double T2re, T2im; T2re = Y[2] + Y[6 + 1]; T2im = Y[2 + 1] - Y[6]; Y[2] = Y[2] - Y[6 + 1]; Y[2 + 1] = Y[2 + 1] + Y[6]; Y[6] = T2re; Y[6 + 1] = T2im; }; # 504 "gslfft.c" { register double T2re, T2im; T2re = Y[10] + Y[14 + 1]; T2im = Y[10 + 1] - Y[14]; Y[10] = Y[10] - Y[14 + 1]; Y[10 + 1] = Y[10 + 1] + Y[14]; Y[14] = T2re; Y[14 + 1] = T2im; }; # 513 "gslfft.c" { register double T2re, T2im; T2re = Y[18] + Y[22 + 1]; T2im = Y[18 + 1] - Y[22]; Y[18] = Y[18] - Y[22 + 1]; Y[18 + 1] = Y[18 + 1] + Y[22]; Y[22] = T2re; Y[22 + 1] = T2im; }; # 522 "gslfft.c" { register double T2re, T2im; T2re = Y[26] + Y[30 + 1]; T2im = Y[26 + 1] - Y[30]; Y[26] = Y[26] - Y[30 + 1]; Y[26 + 1] = Y[26 + 1] + Y[30]; Y[30] = T2re; Y[30 + 1] = T2im; }; # 533 "gslfft.c" { register double T2re, T2im; T2re = Y[0] - Y[8]; T2im = Y[0 + 1] - Y[8 + 1]; Y[0] = Y[0] + Y[8]; Y[0 + 1] = Y[0 + 1] + Y[8 + 1]; Y[8] = T2re; Y[8 + 1] = T2im; }; # 542 "gslfft.c" { register double T2re, T2im; T2re = Y[16] - Y[24]; T2im = Y[16 + 1] - Y[24 + 1]; Y[16] = Y[16] + Y[24]; Y[16 + 1] = Y[16 + 1] + Y[24 + 1]; Y[24] = T2re; Y[24 + 1] = T2im; }; # 551 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[10] * (double) +0.707106781186548; T1im = Y[10 + 1] * (double) +0.707106781186548; T2re = T1im; T2im = T1re; T1re -= T2re; T1im += T2im; T2re = Y[2] - T1re; T2im = Y[2 + 1] - T1im; Y[2] = Y[2] + T1re; Y[2 + 1] = Y[2 + 1] + T1im; Y[10] = T2re; Y[10 + 1] = T2im; }; # 560 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[26] * (double) +0.707106781186548; T1im = Y[26 + 1] * (double) +0.707106781186548; T2re = T1im; T2im = T1re; T1re -= T2re; T1im += T2im; T2re = Y[18] - T1re; T2im = Y[18 + 1] - T1im; Y[18] = Y[18] + T1re; Y[18 + 1] = Y[18 + 1] + T1im; Y[26] = T2re; Y[26 + 1] = T2im; }; # 569 "gslfft.c" { register double T2re, T2im; T2re = Y[4] + Y[12 + 1]; T2im = Y[4 + 1] - Y[12]; Y[4] = Y[4] - Y[12 + 1]; Y[4 + 1] = Y[4 + 1] + Y[12]; Y[12] = T2re; Y[12 + 1] = T2im; }; # 578 "gslfft.c" { register double T2re, T2im; T2re = Y[20] + Y[28 + 1]; T2im = Y[20 + 1] - Y[28]; Y[20] = Y[20] - Y[28 + 1]; Y[20 + 1] = Y[20 + 1] + Y[28]; Y[28] = T2re; Y[28 + 1] = T2im; }; # 587 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[14] * (double) -0.707106781186547; T1im = Y[14 + 1] * (double) -0.707106781186547; T2re = T1im; T2im = T1re; T1re += T2re; T1im -= T2im; T2re = Y[6] - T1re; T2im = Y[6 + 1] - T1im; Y[6] = Y[6] + T1re; Y[6 + 1] = Y[6 + 1] + T1im; Y[14] = T2re; Y[14 + 1] = T2im; }; # 596 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[30] * (double) -0.707106781186547; T1im = Y[30 + 1] * (double) -0.707106781186547; T2re = T1im; T2im = T1re; T1re += T2re; T1im -= T2im; T2re = Y[22] - T1re; T2im = Y[22 + 1] - T1im; Y[22] = Y[22] + T1re; Y[22 + 1] = Y[22 + 1] + T1im; Y[30] = T2re; Y[30 + 1] = T2im; }; # 607 "gslfft.c" { register double T2re, T2im; T2re = Y[0] - Y[16]; T2im = Y[0 + 1] - Y[16 + 1]; Y[0] = Y[0] + Y[16]; Y[0 + 1] = Y[0 + 1] + Y[16 + 1]; Y[16] = T2re; Y[16 + 1] = T2im; }; # 616 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[18] * (double) +0.923879532511287; T1im = Y[18 + 1] * (double) +0.923879532511287; T2re = Y[18 + 1] * (double) +0.382683432365090; T2im = Y[18] * (double) +0.382683432365090; T1re -= T2re; T1im += T2im; T2re = Y[2] - T1re; T2im = Y[2 + 1] - T1im; Y[2] = Y[2] + T1re; Y[2 + 1] = Y[2 + 1] + T1im; Y[18] = T2re; Y[18 + 1] = T2im; }; # 625 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[20] * (double) +0.707106781186548; T1im = Y[20 + 1] * (double) +0.707106781186548; T2re = T1im; T2im = T1re; T1re -= T2re; T1im += T2im; T2re = Y[4] - T1re; T2im = Y[4 + 1] - T1im; Y[4] = Y[4] + T1re; Y[4 + 1] = Y[4 + 1] + T1im; Y[20] = T2re; Y[20 + 1] = T2im; }; # 634 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[22] * (double) +0.382683432365090; T1im = Y[22 + 1] * (double) +0.382683432365090; T2re = Y[22 + 1] * (double) +0.923879532511287; T2im = Y[22] * (double) +0.923879532511287; T1re -= T2re; T1im += T2im; T2re = Y[6] - T1re; T2im = Y[6 + 1] - T1im; Y[6] = Y[6] + T1re; Y[6 + 1] = Y[6 + 1] + T1im; Y[22] = T2re; Y[22 + 1] = T2im; }; # 643 "gslfft.c" { register double T2re, T2im; T2re = Y[8] + Y[24 + 1]; T2im = Y[8 + 1] - Y[24]; Y[8] = Y[8] - Y[24 + 1]; Y[8 + 1] = Y[8 + 1] + Y[24]; Y[24] = T2re; Y[24 + 1] = T2im; }; # 652 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[26] * (double) -0.382683432365090; T1im = Y[26 + 1] * (double) -0.382683432365090; T2re = Y[26 + 1] * (double) +0.923879532511287; T2im = Y[26] * (double) +0.923879532511287; T1re -= T2re; T1im += T2im; T2re = Y[10] - T1re; T2im = Y[10 + 1] - T1im; Y[10] = Y[10] + T1re; Y[10 + 1] = Y[10 + 1] + T1im; Y[26] = T2re; Y[26 + 1] = T2im; }; # 661 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[28] * (double) -0.707106781186547; T1im = Y[28 + 1] * (double) -0.707106781186547; T2re = T1im; T2im = T1re; T1re += T2re; T1im -= T2im; T2re = Y[12] - T1re; T2im = Y[12 + 1] - T1im; Y[12] = Y[12] + T1re; Y[12 + 1] = Y[12 + 1] + T1im; Y[28] = T2re; Y[28 + 1] = T2im; }; # 670 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[30] * (double) -0.923879532511287; T1im = Y[30 + 1] * (double) -0.923879532511287; T2re = Y[30 + 1] * (double) +0.382683432365090; T2im = Y[30] * (double) +0.382683432365090; T1re -= T2re; T1im += T2im; T2re = Y[14] - T1re; T2im = Y[14 + 1] - T1im; Y[14] = Y[14] + T1re; Y[14 + 1] = Y[14 + 1] + T1im; Y[30] = T2re; Y[30 + 1] = T2im; }; # 679 "gslfft.c" } static void gsl_power2_fft16analysis (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; { register double T2re, T2im; T2re = X[0] - X[16]; T2im = X[0 + 1] - X[16 + 1]; Y[0] = X[0] + X[16]; Y[0 + 1] = X[0 + 1] + X[16 + 1]; Y[2] = T2re; Y[2 + 1] = T2im; }; { register double T2re, T2im; T2re = X[8] - X[24]; T2im = X[8 + 1] - X[24 + 1]; Y[4] = X[8] + X[24]; Y[4 + 1] = X[8 + 1] + X[24 + 1]; Y[6] = T2re; Y[6 + 1] = T2im; }; { register double T2re, T2im; T2re = X[4] - X[20]; T2im = X[4 + 1] - X[20 + 1]; Y[8] = X[4] + X[20]; Y[8 + 1] = X[4 + 1] + X[20 + 1]; Y[10] = T2re; Y[10 + 1] = T2im; }; { register double T2re, T2im; T2re = X[12] - X[28]; T2im = X[12 + 1] - X[28 + 1]; Y[12] = X[12] + X[28]; Y[12 + 1] = X[12 + 1] + X[28 + 1]; Y[14] = T2re; Y[14 + 1] = T2im; }; { register double T2re, T2im; T2re = X[2] - X[18]; T2im = X[2 + 1] - X[18 + 1]; Y[16] = X[2] + X[18]; Y[16 + 1] = X[2 + 1] + X[18 + 1]; Y[18] = T2re; Y[18 + 1] = T2im; }; { register double T2re, T2im; T2re = X[10] - X[26]; T2im = X[10 + 1] - X[26 + 1]; Y[20] = X[10] + X[26]; Y[20 + 1] = X[10 + 1] + X[26 + 1]; Y[22] = T2re; Y[22 + 1] = T2im; }; { register double T2re, T2im; T2re = X[6] - X[22]; T2im = X[6 + 1] - X[22 + 1]; Y[24] = X[6] + X[22]; Y[24 + 1] = X[6 + 1] + X[22 + 1]; Y[26] = T2re; Y[26 + 1] = T2im; }; { register double T2re, T2im; T2re = X[14] - X[30]; T2im = X[14 + 1] - X[30 + 1]; Y[28] = X[14] + X[30]; Y[28 + 1] = X[14 + 1] + X[30 + 1]; Y[30] = T2re; Y[30 + 1] = T2im; }; # 742 "gslfft.c" gsl_power2_fft16analysis_skip2 (X, Y); } static void gsl_power2_fft32analysis_skip2 (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; { register double T2re, T2im; T2re = Y[0] - Y[4]; T2im = Y[0 + 1] - Y[4 + 1]; Y[0] = Y[0] + Y[4]; Y[0 + 1] = Y[0 + 1] + Y[4 + 1]; Y[4] = T2re; Y[4 + 1] = T2im; }; # 771 "gslfft.c" { register double T2re, T2im; T2re = Y[8] - Y[12]; T2im = Y[8 + 1] - Y[12 + 1]; Y[8] = Y[8] + Y[12]; Y[8 + 1] = Y[8 + 1] + Y[12 + 1]; Y[12] = T2re; Y[12 + 1] = T2im; }; # 780 "gslfft.c" { register double T2re, T2im; T2re = Y[16] - Y[20]; T2im = Y[16 + 1] - Y[20 + 1]; Y[16] = Y[16] + Y[20]; Y[16 + 1] = Y[16 + 1] + Y[20 + 1]; Y[20] = T2re; Y[20 + 1] = T2im; }; # 789 "gslfft.c" { register double T2re, T2im; T2re = Y[24] - Y[28]; T2im = Y[24 + 1] - Y[28 + 1]; Y[24] = Y[24] + Y[28]; Y[24 + 1] = Y[24 + 1] + Y[28 + 1]; Y[28] = T2re; Y[28 + 1] = T2im; }; # 798 "gslfft.c" { register double T2re, T2im; T2re = Y[32] - Y[36]; T2im = Y[32 + 1] - Y[36 + 1]; Y[32] = Y[32] + Y[36]; Y[32 + 1] = Y[32 + 1] + Y[36 + 1]; Y[36] = T2re; Y[36 + 1] = T2im; }; # 807 "gslfft.c" { register double T2re, T2im; T2re = Y[40] - Y[44]; T2im = Y[40 + 1] - Y[44 + 1]; Y[40] = Y[40] + Y[44]; Y[40 + 1] = Y[40 + 1] + Y[44 + 1]; Y[44] = T2re; Y[44 + 1] = T2im; }; # 816 "gslfft.c" { register double T2re, T2im; T2re = Y[48] - Y[52]; T2im = Y[48 + 1] - Y[52 + 1]; Y[48] = Y[48] + Y[52]; Y[48 + 1] = Y[48 + 1] + Y[52 + 1]; Y[52] = T2re; Y[52 + 1] = T2im; }; # 825 "gslfft.c" { register double T2re, T2im; T2re = Y[56] - Y[60]; T2im = Y[56 + 1] - Y[60 + 1]; Y[56] = Y[56] + Y[60]; Y[56 + 1] = Y[56 + 1] + Y[60 + 1]; Y[60] = T2re; Y[60 + 1] = T2im; }; # 834 "gslfft.c" { register double T2re, T2im; T2re = Y[2] + Y[6 + 1]; T2im = Y[2 + 1] - Y[6]; Y[2] = Y[2] - Y[6 + 1]; Y[2 + 1] = Y[2 + 1] + Y[6]; Y[6] = T2re; Y[6 + 1] = T2im; }; # 843 "gslfft.c" { register double T2re, T2im; T2re = Y[10] + Y[14 + 1]; T2im = Y[10 + 1] - Y[14]; Y[10] = Y[10] - Y[14 + 1]; Y[10 + 1] = Y[10 + 1] + Y[14]; Y[14] = T2re; Y[14 + 1] = T2im; }; # 852 "gslfft.c" { register double T2re, T2im; T2re = Y[18] + Y[22 + 1]; T2im = Y[18 + 1] - Y[22]; Y[18] = Y[18] - Y[22 + 1]; Y[18 + 1] = Y[18 + 1] + Y[22]; Y[22] = T2re; Y[22 + 1] = T2im; }; # 861 "gslfft.c" { register double T2re, T2im; T2re = Y[26] + Y[30 + 1]; T2im = Y[26 + 1] - Y[30]; Y[26] = Y[26] - Y[30 + 1]; Y[26 + 1] = Y[26 + 1] + Y[30]; Y[30] = T2re; Y[30 + 1] = T2im; }; # 870 "gslfft.c" { register double T2re, T2im; T2re = Y[34] + Y[38 + 1]; T2im = Y[34 + 1] - Y[38]; Y[34] = Y[34] - Y[38 + 1]; Y[34 + 1] = Y[34 + 1] + Y[38]; Y[38] = T2re; Y[38 + 1] = T2im; }; # 879 "gslfft.c" { register double T2re, T2im; T2re = Y[42] + Y[46 + 1]; T2im = Y[42 + 1] - Y[46]; Y[42] = Y[42] - Y[46 + 1]; Y[42 + 1] = Y[42 + 1] + Y[46]; Y[46] = T2re; Y[46 + 1] = T2im; }; # 888 "gslfft.c" { register double T2re, T2im; T2re = Y[50] + Y[54 + 1]; T2im = Y[50 + 1] - Y[54]; Y[50] = Y[50] - Y[54 + 1]; Y[50 + 1] = Y[50 + 1] + Y[54]; Y[54] = T2re; Y[54 + 1] = T2im; }; # 897 "gslfft.c" { register double T2re, T2im; T2re = Y[58] + Y[62 + 1]; T2im = Y[58 + 1] - Y[62]; Y[58] = Y[58] - Y[62 + 1]; Y[58 + 1] = Y[58 + 1] + Y[62]; Y[62] = T2re; Y[62 + 1] = T2im; }; # 908 "gslfft.c" { register double T2re, T2im; T2re = Y[0] - Y[8]; T2im = Y[0 + 1] - Y[8 + 1]; Y[0] = Y[0] + Y[8]; Y[0 + 1] = Y[0 + 1] + Y[8 + 1]; Y[8] = T2re; Y[8 + 1] = T2im; }; # 917 "gslfft.c" { register double T2re, T2im; T2re = Y[16] - Y[24]; T2im = Y[16 + 1] - Y[24 + 1]; Y[16] = Y[16] + Y[24]; Y[16 + 1] = Y[16 + 1] + Y[24 + 1]; Y[24] = T2re; Y[24 + 1] = T2im; }; # 926 "gslfft.c" { register double T2re, T2im; T2re = Y[32] - Y[40]; T2im = Y[32 + 1] - Y[40 + 1]; Y[32] = Y[32] + Y[40]; Y[32 + 1] = Y[32 + 1] + Y[40 + 1]; Y[40] = T2re; Y[40 + 1] = T2im; }; # 935 "gslfft.c" { register double T2re, T2im; T2re = Y[48] - Y[56]; T2im = Y[48 + 1] - Y[56 + 1]; Y[48] = Y[48] + Y[56]; Y[48 + 1] = Y[48 + 1] + Y[56 + 1]; Y[56] = T2re; Y[56 + 1] = T2im; }; # 944 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[10] * (double) +0.707106781186548; T1im = Y[10 + 1] * (double) +0.707106781186548; T2re = T1im; T2im = T1re; T1re -= T2re; T1im += T2im; T2re = Y[2] - T1re; T2im = Y[2 + 1] - T1im; Y[2] = Y[2] + T1re; Y[2 + 1] = Y[2 + 1] + T1im; Y[10] = T2re; Y[10 + 1] = T2im; }; # 953 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[26] * (double) +0.707106781186548; T1im = Y[26 + 1] * (double) +0.707106781186548; T2re = T1im; T2im = T1re; T1re -= T2re; T1im += T2im; T2re = Y[18] - T1re; T2im = Y[18 + 1] - T1im; Y[18] = Y[18] + T1re; Y[18 + 1] = Y[18 + 1] + T1im; Y[26] = T2re; Y[26 + 1] = T2im; }; # 962 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[42] * (double) +0.707106781186548; T1im = Y[42 + 1] * (double) +0.707106781186548; T2re = T1im; T2im = T1re; T1re -= T2re; T1im += T2im; T2re = Y[34] - T1re; T2im = Y[34 + 1] - T1im; Y[34] = Y[34] + T1re; Y[34 + 1] = Y[34 + 1] + T1im; Y[42] = T2re; Y[42 + 1] = T2im; }; # 971 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[58] * (double) +0.707106781186548; T1im = Y[58 + 1] * (double) +0.707106781186548; T2re = T1im; T2im = T1re; T1re -= T2re; T1im += T2im; T2re = Y[50] - T1re; T2im = Y[50 + 1] - T1im; Y[50] = Y[50] + T1re; Y[50 + 1] = Y[50 + 1] + T1im; Y[58] = T2re; Y[58 + 1] = T2im; }; # 980 "gslfft.c" { register double T2re, T2im; T2re = Y[4] + Y[12 + 1]; T2im = Y[4 + 1] - Y[12]; Y[4] = Y[4] - Y[12 + 1]; Y[4 + 1] = Y[4 + 1] + Y[12]; Y[12] = T2re; Y[12 + 1] = T2im; }; # 989 "gslfft.c" { register double T2re, T2im; T2re = Y[20] + Y[28 + 1]; T2im = Y[20 + 1] - Y[28]; Y[20] = Y[20] - Y[28 + 1]; Y[20 + 1] = Y[20 + 1] + Y[28]; Y[28] = T2re; Y[28 + 1] = T2im; }; # 998 "gslfft.c" { register double T2re, T2im; T2re = Y[36] + Y[44 + 1]; T2im = Y[36 + 1] - Y[44]; Y[36] = Y[36] - Y[44 + 1]; Y[36 + 1] = Y[36 + 1] + Y[44]; Y[44] = T2re; Y[44 + 1] = T2im; }; # 1007 "gslfft.c" { register double T2re, T2im; T2re = Y[52] + Y[60 + 1]; T2im = Y[52 + 1] - Y[60]; Y[52] = Y[52] - Y[60 + 1]; Y[52 + 1] = Y[52 + 1] + Y[60]; Y[60] = T2re; Y[60 + 1] = T2im; }; # 1016 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[14] * (double) -0.707106781186547; T1im = Y[14 + 1] * (double) -0.707106781186547; T2re = T1im; T2im = T1re; T1re += T2re; T1im -= T2im; T2re = Y[6] - T1re; T2im = Y[6 + 1] - T1im; Y[6] = Y[6] + T1re; Y[6 + 1] = Y[6 + 1] + T1im; Y[14] = T2re; Y[14 + 1] = T2im; }; # 1025 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[30] * (double) -0.707106781186547; T1im = Y[30 + 1] * (double) -0.707106781186547; T2re = T1im; T2im = T1re; T1re += T2re; T1im -= T2im; T2re = Y[22] - T1re; T2im = Y[22 + 1] - T1im; Y[22] = Y[22] + T1re; Y[22 + 1] = Y[22 + 1] + T1im; Y[30] = T2re; Y[30 + 1] = T2im; }; # 1034 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[46] * (double) -0.707106781186547; T1im = Y[46 + 1] * (double) -0.707106781186547; T2re = T1im; T2im = T1re; T1re += T2re; T1im -= T2im; T2re = Y[38] - T1re; T2im = Y[38 + 1] - T1im; Y[38] = Y[38] + T1re; Y[38 + 1] = Y[38 + 1] + T1im; Y[46] = T2re; Y[46 + 1] = T2im; }; # 1043 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[62] * (double) -0.707106781186547; T1im = Y[62 + 1] * (double) -0.707106781186547; T2re = T1im; T2im = T1re; T1re += T2re; T1im -= T2im; T2re = Y[54] - T1re; T2im = Y[54 + 1] - T1im; Y[54] = Y[54] + T1re; Y[54 + 1] = Y[54 + 1] + T1im; Y[62] = T2re; Y[62 + 1] = T2im; }; # 1054 "gslfft.c" { register double T2re, T2im; T2re = Y[0] - Y[16]; T2im = Y[0 + 1] - Y[16 + 1]; Y[0] = Y[0] + Y[16]; Y[0 + 1] = Y[0 + 1] + Y[16 + 1]; Y[16] = T2re; Y[16 + 1] = T2im; }; # 1063 "gslfft.c" { register double T2re, T2im; T2re = Y[32] - Y[48]; T2im = Y[32 + 1] - Y[48 + 1]; Y[32] = Y[32] + Y[48]; Y[32 + 1] = Y[32 + 1] + Y[48 + 1]; Y[48] = T2re; Y[48 + 1] = T2im; }; # 1072 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[18] * (double) +0.923879532511287; T1im = Y[18 + 1] * (double) +0.923879532511287; T2re = Y[18 + 1] * (double) +0.382683432365090; T2im = Y[18] * (double) +0.382683432365090; T1re -= T2re; T1im += T2im; T2re = Y[2] - T1re; T2im = Y[2 + 1] - T1im; Y[2] = Y[2] + T1re; Y[2 + 1] = Y[2 + 1] + T1im; Y[18] = T2re; Y[18 + 1] = T2im; }; # 1081 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[50] * (double) +0.923879532511287; T1im = Y[50 + 1] * (double) +0.923879532511287; T2re = Y[50 + 1] * (double) +0.382683432365090; T2im = Y[50] * (double) +0.382683432365090; T1re -= T2re; T1im += T2im; T2re = Y[34] - T1re; T2im = Y[34 + 1] - T1im; Y[34] = Y[34] + T1re; Y[34 + 1] = Y[34 + 1] + T1im; Y[50] = T2re; Y[50 + 1] = T2im; }; # 1090 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[20] * (double) +0.707106781186548; T1im = Y[20 + 1] * (double) +0.707106781186548; T2re = T1im; T2im = T1re; T1re -= T2re; T1im += T2im; T2re = Y[4] - T1re; T2im = Y[4 + 1] - T1im; Y[4] = Y[4] + T1re; Y[4 + 1] = Y[4 + 1] + T1im; Y[20] = T2re; Y[20 + 1] = T2im; }; # 1099 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[52] * (double) +0.707106781186548; T1im = Y[52 + 1] * (double) +0.707106781186548; T2re = T1im; T2im = T1re; T1re -= T2re; T1im += T2im; T2re = Y[36] - T1re; T2im = Y[36 + 1] - T1im; Y[36] = Y[36] + T1re; Y[36 + 1] = Y[36 + 1] + T1im; Y[52] = T2re; Y[52 + 1] = T2im; }; # 1108 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[22] * (double) +0.382683432365090; T1im = Y[22 + 1] * (double) +0.382683432365090; T2re = Y[22 + 1] * (double) +0.923879532511287; T2im = Y[22] * (double) +0.923879532511287; T1re -= T2re; T1im += T2im; T2re = Y[6] - T1re; T2im = Y[6 + 1] - T1im; Y[6] = Y[6] + T1re; Y[6 + 1] = Y[6 + 1] + T1im; Y[22] = T2re; Y[22 + 1] = T2im; }; # 1117 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[54] * (double) +0.382683432365090; T1im = Y[54 + 1] * (double) +0.382683432365090; T2re = Y[54 + 1] * (double) +0.923879532511287; T2im = Y[54] * (double) +0.923879532511287; T1re -= T2re; T1im += T2im; T2re = Y[38] - T1re; T2im = Y[38 + 1] - T1im; Y[38] = Y[38] + T1re; Y[38 + 1] = Y[38 + 1] + T1im; Y[54] = T2re; Y[54 + 1] = T2im; }; # 1126 "gslfft.c" { register double T2re, T2im; T2re = Y[8] + Y[24 + 1]; T2im = Y[8 + 1] - Y[24]; Y[8] = Y[8] - Y[24 + 1]; Y[8 + 1] = Y[8 + 1] + Y[24]; Y[24] = T2re; Y[24 + 1] = T2im; }; # 1135 "gslfft.c" { register double T2re, T2im; T2re = Y[40] + Y[56 + 1]; T2im = Y[40 + 1] - Y[56]; Y[40] = Y[40] - Y[56 + 1]; Y[40 + 1] = Y[40 + 1] + Y[56]; Y[56] = T2re; Y[56 + 1] = T2im; }; # 1144 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[26] * (double) -0.382683432365090; T1im = Y[26 + 1] * (double) -0.382683432365090; T2re = Y[26 + 1] * (double) +0.923879532511287; T2im = Y[26] * (double) +0.923879532511287; T1re -= T2re; T1im += T2im; T2re = Y[10] - T1re; T2im = Y[10 + 1] - T1im; Y[10] = Y[10] + T1re; Y[10 + 1] = Y[10 + 1] + T1im; Y[26] = T2re; Y[26 + 1] = T2im; }; # 1153 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[58] * (double) -0.382683432365090; T1im = Y[58 + 1] * (double) -0.382683432365090; T2re = Y[58 + 1] * (double) +0.923879532511287; T2im = Y[58] * (double) +0.923879532511287; T1re -= T2re; T1im += T2im; T2re = Y[42] - T1re; T2im = Y[42 + 1] - T1im; Y[42] = Y[42] + T1re; Y[42 + 1] = Y[42 + 1] + T1im; Y[58] = T2re; Y[58 + 1] = T2im; }; # 1162 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[28] * (double) -0.707106781186547; T1im = Y[28 + 1] * (double) -0.707106781186547; T2re = T1im; T2im = T1re; T1re += T2re; T1im -= T2im; T2re = Y[12] - T1re; T2im = Y[12 + 1] - T1im; Y[12] = Y[12] + T1re; Y[12 + 1] = Y[12 + 1] + T1im; Y[28] = T2re; Y[28 + 1] = T2im; }; # 1171 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[60] * (double) -0.707106781186547; T1im = Y[60 + 1] * (double) -0.707106781186547; T2re = T1im; T2im = T1re; T1re += T2re; T1im -= T2im; T2re = Y[44] - T1re; T2im = Y[44 + 1] - T1im; Y[44] = Y[44] + T1re; Y[44 + 1] = Y[44 + 1] + T1im; Y[60] = T2re; Y[60 + 1] = T2im; }; # 1180 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[30] * (double) -0.923879532511287; T1im = Y[30 + 1] * (double) -0.923879532511287; T2re = Y[30 + 1] * (double) +0.382683432365090; T2im = Y[30] * (double) +0.382683432365090; T1re -= T2re; T1im += T2im; T2re = Y[14] - T1re; T2im = Y[14 + 1] - T1im; Y[14] = Y[14] + T1re; Y[14 + 1] = Y[14 + 1] + T1im; Y[30] = T2re; Y[30 + 1] = T2im; }; # 1189 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[62] * (double) -0.923879532511287; T1im = Y[62 + 1] * (double) -0.923879532511287; T2re = Y[62 + 1] * (double) +0.382683432365090; T2im = Y[62] * (double) +0.382683432365090; T1re -= T2re; T1im += T2im; T2re = Y[46] - T1re; T2im = Y[46 + 1] - T1im; Y[46] = Y[46] + T1re; Y[46 + 1] = Y[46 + 1] + T1im; Y[62] = T2re; Y[62 + 1] = T2im; }; # 1200 "gslfft.c" { register double T2re, T2im; T2re = Y[0] - Y[32]; T2im = Y[0 + 1] - Y[32 + 1]; Y[0] = Y[0] + Y[32]; Y[0 + 1] = Y[0 + 1] + Y[32 + 1]; Y[32] = T2re; Y[32 + 1] = T2im; }; # 1209 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[34] * (double) +0.980785280403230; T1im = Y[34 + 1] * (double) +0.980785280403230; T2re = Y[34 + 1] * (double) +0.195090322016128; T2im = Y[34] * (double) +0.195090322016128; T1re -= T2re; T1im += T2im; T2re = Y[2] - T1re; T2im = Y[2 + 1] - T1im; Y[2] = Y[2] + T1re; Y[2 + 1] = Y[2 + 1] + T1im; Y[34] = T2re; Y[34 + 1] = T2im; }; # 1218 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[36] * (double) +0.923879532511287; T1im = Y[36 + 1] * (double) +0.923879532511287; T2re = Y[36 + 1] * (double) +0.382683432365090; T2im = Y[36] * (double) +0.382683432365090; T1re -= T2re; T1im += T2im; T2re = Y[4] - T1re; T2im = Y[4 + 1] - T1im; Y[4] = Y[4] + T1re; Y[4 + 1] = Y[4 + 1] + T1im; Y[36] = T2re; Y[36 + 1] = T2im; }; # 1227 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[38] * (double) +0.831469612302545; T1im = Y[38 + 1] * (double) +0.831469612302545; T2re = Y[38 + 1] * (double) +0.555570233019602; T2im = Y[38] * (double) +0.555570233019602; T1re -= T2re; T1im += T2im; T2re = Y[6] - T1re; T2im = Y[6 + 1] - T1im; Y[6] = Y[6] + T1re; Y[6 + 1] = Y[6 + 1] + T1im; Y[38] = T2re; Y[38 + 1] = T2im; }; # 1236 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[40] * (double) +0.707106781186548; T1im = Y[40 + 1] * (double) +0.707106781186548; T2re = T1im; T2im = T1re; T1re -= T2re; T1im += T2im; T2re = Y[8] - T1re; T2im = Y[8 + 1] - T1im; Y[8] = Y[8] + T1re; Y[8 + 1] = Y[8 + 1] + T1im; Y[40] = T2re; Y[40 + 1] = T2im; }; # 1245 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[42] * (double) +0.555570233019602; T1im = Y[42 + 1] * (double) +0.555570233019602; T2re = Y[42 + 1] * (double) +0.831469612302545; T2im = Y[42] * (double) +0.831469612302545; T1re -= T2re; T1im += T2im; T2re = Y[10] - T1re; T2im = Y[10 + 1] - T1im; Y[10] = Y[10] + T1re; Y[10 + 1] = Y[10 + 1] + T1im; Y[42] = T2re; Y[42 + 1] = T2im; }; # 1254 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[44] * (double) +0.382683432365090; T1im = Y[44 + 1] * (double) +0.382683432365090; T2re = Y[44 + 1] * (double) +0.923879532511287; T2im = Y[44] * (double) +0.923879532511287; T1re -= T2re; T1im += T2im; T2re = Y[12] - T1re; T2im = Y[12 + 1] - T1im; Y[12] = Y[12] + T1re; Y[12 + 1] = Y[12 + 1] + T1im; Y[44] = T2re; Y[44 + 1] = T2im; }; # 1263 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[46] * (double) +0.195090322016128; T1im = Y[46 + 1] * (double) +0.195090322016128; T2re = Y[46 + 1] * (double) +0.980785280403230; T2im = Y[46] * (double) +0.980785280403230; T1re -= T2re; T1im += T2im; T2re = Y[14] - T1re; T2im = Y[14 + 1] - T1im; Y[14] = Y[14] + T1re; Y[14 + 1] = Y[14 + 1] + T1im; Y[46] = T2re; Y[46 + 1] = T2im; }; # 1272 "gslfft.c" { register double T2re, T2im; T2re = Y[16] + Y[48 + 1]; T2im = Y[16 + 1] - Y[48]; Y[16] = Y[16] - Y[48 + 1]; Y[16 + 1] = Y[16 + 1] + Y[48]; Y[48] = T2re; Y[48 + 1] = T2im; }; # 1281 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[50] * (double) -0.195090322016128; T1im = Y[50 + 1] * (double) -0.195090322016128; T2re = Y[50 + 1] * (double) +0.980785280403230; T2im = Y[50] * (double) +0.980785280403230; T1re -= T2re; T1im += T2im; T2re = Y[18] - T1re; T2im = Y[18 + 1] - T1im; Y[18] = Y[18] + T1re; Y[18 + 1] = Y[18 + 1] + T1im; Y[50] = T2re; Y[50 + 1] = T2im; }; # 1290 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[52] * (double) -0.382683432365090; T1im = Y[52 + 1] * (double) -0.382683432365090; T2re = Y[52 + 1] * (double) +0.923879532511287; T2im = Y[52] * (double) +0.923879532511287; T1re -= T2re; T1im += T2im; T2re = Y[20] - T1re; T2im = Y[20 + 1] - T1im; Y[20] = Y[20] + T1re; Y[20 + 1] = Y[20 + 1] + T1im; Y[52] = T2re; Y[52 + 1] = T2im; }; # 1299 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[54] * (double) -0.555570233019602; T1im = Y[54 + 1] * (double) -0.555570233019602; T2re = Y[54 + 1] * (double) +0.831469612302545; T2im = Y[54] * (double) +0.831469612302545; T1re -= T2re; T1im += T2im; T2re = Y[22] - T1re; T2im = Y[22 + 1] - T1im; Y[22] = Y[22] + T1re; Y[22 + 1] = Y[22 + 1] + T1im; Y[54] = T2re; Y[54 + 1] = T2im; }; # 1308 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[56] * (double) -0.707106781186547; T1im = Y[56 + 1] * (double) -0.707106781186547; T2re = T1im; T2im = T1re; T1re += T2re; T1im -= T2im; T2re = Y[24] - T1re; T2im = Y[24 + 1] - T1im; Y[24] = Y[24] + T1re; Y[24 + 1] = Y[24 + 1] + T1im; Y[56] = T2re; Y[56 + 1] = T2im; }; # 1317 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[58] * (double) -0.831469612302545; T1im = Y[58 + 1] * (double) -0.831469612302545; T2re = Y[58 + 1] * (double) +0.555570233019602; T2im = Y[58] * (double) +0.555570233019602; T1re -= T2re; T1im += T2im; T2re = Y[26] - T1re; T2im = Y[26 + 1] - T1im; Y[26] = Y[26] + T1re; Y[26 + 1] = Y[26 + 1] + T1im; Y[58] = T2re; Y[58 + 1] = T2im; }; # 1326 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[60] * (double) -0.923879532511287; T1im = Y[60 + 1] * (double) -0.923879532511287; T2re = Y[60 + 1] * (double) +0.382683432365090; T2im = Y[60] * (double) +0.382683432365090; T1re -= T2re; T1im += T2im; T2re = Y[28] - T1re; T2im = Y[28 + 1] - T1im; Y[28] = Y[28] + T1re; Y[28 + 1] = Y[28 + 1] + T1im; Y[60] = T2re; Y[60 + 1] = T2im; }; # 1335 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[62] * (double) -0.980785280403230; T1im = Y[62 + 1] * (double) -0.980785280403230; T2re = Y[62 + 1] * (double) +0.195090322016129; T2im = Y[62] * (double) +0.195090322016129; T1re -= T2re; T1im += T2im; T2re = Y[30] - T1re; T2im = Y[30 + 1] - T1im; Y[30] = Y[30] + T1re; Y[30 + 1] = Y[30 + 1] + T1im; Y[62] = T2re; Y[62 + 1] = T2im; }; # 1344 "gslfft.c" } static void gsl_power2_fft32analysis (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; { register double T2re, T2im; T2re = X[0] - X[32]; T2im = X[0 + 1] - X[32 + 1]; Y[0] = X[0] + X[32]; Y[0 + 1] = X[0 + 1] + X[32 + 1]; Y[2] = T2re; Y[2 + 1] = T2im; }; { register double T2re, T2im; T2re = X[16] - X[48]; T2im = X[16 + 1] - X[48 + 1]; Y[4] = X[16] + X[48]; Y[4 + 1] = X[16 + 1] + X[48 + 1]; Y[6] = T2re; Y[6 + 1] = T2im; }; { register double T2re, T2im; T2re = X[8] - X[40]; T2im = X[8 + 1] - X[40 + 1]; Y[8] = X[8] + X[40]; Y[8 + 1] = X[8 + 1] + X[40 + 1]; Y[10] = T2re; Y[10 + 1] = T2im; }; { register double T2re, T2im; T2re = X[24] - X[56]; T2im = X[24 + 1] - X[56 + 1]; Y[12] = X[24] + X[56]; Y[12 + 1] = X[24 + 1] + X[56 + 1]; Y[14] = T2re; Y[14 + 1] = T2im; }; { register double T2re, T2im; T2re = X[4] - X[36]; T2im = X[4 + 1] - X[36 + 1]; Y[16] = X[4] + X[36]; Y[16 + 1] = X[4 + 1] + X[36 + 1]; Y[18] = T2re; Y[18 + 1] = T2im; }; { register double T2re, T2im; T2re = X[20] - X[52]; T2im = X[20 + 1] - X[52 + 1]; Y[20] = X[20] + X[52]; Y[20 + 1] = X[20 + 1] + X[52 + 1]; Y[22] = T2re; Y[22 + 1] = T2im; }; { register double T2re, T2im; T2re = X[12] - X[44]; T2im = X[12 + 1] - X[44 + 1]; Y[24] = X[12] + X[44]; Y[24 + 1] = X[12 + 1] + X[44 + 1]; Y[26] = T2re; Y[26 + 1] = T2im; }; { register double T2re, T2im; T2re = X[28] - X[60]; T2im = X[28 + 1] - X[60 + 1]; Y[28] = X[28] + X[60]; Y[28 + 1] = X[28 + 1] + X[60 + 1]; Y[30] = T2re; Y[30 + 1] = T2im; }; { register double T2re, T2im; T2re = X[2] - X[34]; T2im = X[2 + 1] - X[34 + 1]; Y[32] = X[2] + X[34]; Y[32 + 1] = X[2 + 1] + X[34 + 1]; Y[34] = T2re; Y[34 + 1] = T2im; }; { register double T2re, T2im; T2re = X[18] - X[50]; T2im = X[18 + 1] - X[50 + 1]; Y[36] = X[18] + X[50]; Y[36 + 1] = X[18 + 1] + X[50 + 1]; Y[38] = T2re; Y[38 + 1] = T2im; }; { register double T2re, T2im; T2re = X[10] - X[42]; T2im = X[10 + 1] - X[42 + 1]; Y[40] = X[10] + X[42]; Y[40 + 1] = X[10 + 1] + X[42 + 1]; Y[42] = T2re; Y[42 + 1] = T2im; }; { register double T2re, T2im; T2re = X[26] - X[58]; T2im = X[26 + 1] - X[58 + 1]; Y[44] = X[26] + X[58]; Y[44 + 1] = X[26 + 1] + X[58 + 1]; Y[46] = T2re; Y[46 + 1] = T2im; }; { register double T2re, T2im; T2re = X[6] - X[38]; T2im = X[6 + 1] - X[38 + 1]; Y[48] = X[6] + X[38]; Y[48 + 1] = X[6 + 1] + X[38 + 1]; Y[50] = T2re; Y[50 + 1] = T2im; }; { register double T2re, T2im; T2re = X[22] - X[54]; T2im = X[22 + 1] - X[54 + 1]; Y[52] = X[22] + X[54]; Y[52 + 1] = X[22 + 1] + X[54 + 1]; Y[54] = T2re; Y[54 + 1] = T2im; }; { register double T2re, T2im; T2re = X[14] - X[46]; T2im = X[14 + 1] - X[46 + 1]; Y[56] = X[14] + X[46]; Y[56 + 1] = X[14 + 1] + X[46 + 1]; Y[58] = T2re; Y[58 + 1] = T2im; }; { register double T2re, T2im; T2re = X[30] - X[62]; T2im = X[30 + 1] - X[62 + 1]; Y[60] = X[30] + X[62]; Y[60 + 1] = X[30 + 1] + X[62 + 1]; Y[62] = T2re; Y[62 + 1] = T2im; }; # 1449 "gslfft.c" gsl_power2_fft32analysis_skip2 (X, Y); } static void gsl_power2_fft64analysis_skip2 (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; for (block = 0; block < 128; block += 8) { { register double T2re, T2im; T2re = Y[block + 0] - Y[block + 4]; T2im = Y[block + 0 + 1] - Y[block + 4 + 1]; Y[block + 0] = Y[block + 0] + Y[block + 4]; Y[block + 0 + 1] = Y[block + 0 + 1] + Y[block + 4 + 1]; Y[block + 4] = T2re; Y[block + 4 + 1] = T2im; }; # 1479 "gslfft.c" { register double T2re, T2im; T2re = Y[block + 2] + Y[block + 6 + 1]; T2im = Y[block + 2 + 1] - Y[block + 6]; Y[block + 2] = Y[block + 2] - Y[block + 6 + 1]; Y[block + 2 + 1] = Y[block + 2 + 1] + Y[block + 6]; Y[block + 6] = T2re; Y[block + 6 + 1] = T2im; }; # 1488 "gslfft.c" } for (block = 0; block < 128; block += 16) { { register double T2re, T2im; T2re = Y[block + 0] - Y[block + 8]; T2im = Y[block + 0 + 1] - Y[block + 8 + 1]; Y[block + 0] = Y[block + 0] + Y[block + 8]; Y[block + 0 + 1] = Y[block + 0 + 1] + Y[block + 8 + 1]; Y[block + 8] = T2re; Y[block + 8 + 1] = T2im; }; # 1501 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 10] * (double) +0.707106781186548; T1im = Y[block + 10 + 1] * (double) +0.707106781186548; T2re = T1im; T2im = T1re; T1re -= T2re; T1im += T2im; T2re = Y[block + 2] - T1re; T2im = Y[block + 2 + 1] - T1im; Y[block + 2] = Y[block + 2] + T1re; Y[block + 2 + 1] = Y[block + 2 + 1] + T1im; Y[block + 10] = T2re; Y[block + 10 + 1] = T2im; }; # 1510 "gslfft.c" { register double T2re, T2im; T2re = Y[block + 4] + Y[block + 12 + 1]; T2im = Y[block + 4 + 1] - Y[block + 12]; Y[block + 4] = Y[block + 4] - Y[block + 12 + 1]; Y[block + 4 + 1] = Y[block + 4 + 1] + Y[block + 12]; Y[block + 12] = T2re; Y[block + 12 + 1] = T2im; }; # 1519 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 14] * (double) -0.707106781186547; T1im = Y[block + 14 + 1] * (double) -0.707106781186547; T2re = T1im; T2im = T1re; T1re += T2re; T1im -= T2im; T2re = Y[block + 6] - T1re; T2im = Y[block + 6 + 1] - T1im; Y[block + 6] = Y[block + 6] + T1re; Y[block + 6 + 1] = Y[block + 6 + 1] + T1im; Y[block + 14] = T2re; Y[block + 14 + 1] = T2im; }; # 1528 "gslfft.c" } for (block = 0; block < 128; block += 32) { { register double T2re, T2im; T2re = Y[block + 0] - Y[block + 16]; T2im = Y[block + 0 + 1] - Y[block + 16 + 1]; Y[block + 0] = Y[block + 0] + Y[block + 16]; Y[block + 0 + 1] = Y[block + 0 + 1] + Y[block + 16 + 1]; Y[block + 16] = T2re; Y[block + 16 + 1] = T2im; }; # 1541 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 18] * (double) +0.923879532511287; T1im = Y[block + 18 + 1] * (double) +0.923879532511287; T2re = Y[block + 18 + 1] * (double) +0.382683432365090; T2im = Y[block + 18] * (double) +0.382683432365090; T1re -= T2re; T1im += T2im; T2re = Y[block + 2] - T1re; T2im = Y[block + 2 + 1] - T1im; Y[block + 2] = Y[block + 2] + T1re; Y[block + 2 + 1] = Y[block + 2 + 1] + T1im; Y[block + 18] = T2re; Y[block + 18 + 1] = T2im; }; # 1550 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 20] * (double) +0.707106781186548; T1im = Y[block + 20 + 1] * (double) +0.707106781186548; T2re = T1im; T2im = T1re; T1re -= T2re; T1im += T2im; T2re = Y[block + 4] - T1re; T2im = Y[block + 4 + 1] - T1im; Y[block + 4] = Y[block + 4] + T1re; Y[block + 4 + 1] = Y[block + 4 + 1] + T1im; Y[block + 20] = T2re; Y[block + 20 + 1] = T2im; }; # 1559 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 22] * (double) +0.382683432365090; T1im = Y[block + 22 + 1] * (double) +0.382683432365090; T2re = Y[block + 22 + 1] * (double) +0.923879532511287; T2im = Y[block + 22] * (double) +0.923879532511287; T1re -= T2re; T1im += T2im; T2re = Y[block + 6] - T1re; T2im = Y[block + 6 + 1] - T1im; Y[block + 6] = Y[block + 6] + T1re; Y[block + 6 + 1] = Y[block + 6 + 1] + T1im; Y[block + 22] = T2re; Y[block + 22 + 1] = T2im; }; # 1568 "gslfft.c" { register double T2re, T2im; T2re = Y[block + 8] + Y[block + 24 + 1]; T2im = Y[block + 8 + 1] - Y[block + 24]; Y[block + 8] = Y[block + 8] - Y[block + 24 + 1]; Y[block + 8 + 1] = Y[block + 8 + 1] + Y[block + 24]; Y[block + 24] = T2re; Y[block + 24 + 1] = T2im; }; # 1577 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 26] * (double) -0.382683432365090; T1im = Y[block + 26 + 1] * (double) -0.382683432365090; T2re = Y[block + 26 + 1] * (double) +0.923879532511287; T2im = Y[block + 26] * (double) +0.923879532511287; T1re -= T2re; T1im += T2im; T2re = Y[block + 10] - T1re; T2im = Y[block + 10 + 1] - T1im; Y[block + 10] = Y[block + 10] + T1re; Y[block + 10 + 1] = Y[block + 10 + 1] + T1im; Y[block + 26] = T2re; Y[block + 26 + 1] = T2im; }; # 1586 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 28] * (double) -0.707106781186547; T1im = Y[block + 28 + 1] * (double) -0.707106781186547; T2re = T1im; T2im = T1re; T1re += T2re; T1im -= T2im; T2re = Y[block + 12] - T1re; T2im = Y[block + 12 + 1] - T1im; Y[block + 12] = Y[block + 12] + T1re; Y[block + 12 + 1] = Y[block + 12 + 1] + T1im; Y[block + 28] = T2re; Y[block + 28 + 1] = T2im; }; # 1595 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 30] * (double) -0.923879532511287; T1im = Y[block + 30 + 1] * (double) -0.923879532511287; T2re = Y[block + 30 + 1] * (double) +0.382683432365090; T2im = Y[block + 30] * (double) +0.382683432365090; T1re -= T2re; T1im += T2im; T2re = Y[block + 14] - T1re; T2im = Y[block + 14 + 1] - T1im; Y[block + 14] = Y[block + 14] + T1re; Y[block + 14 + 1] = Y[block + 14 + 1] + T1im; Y[block + 30] = T2re; Y[block + 30 + 1] = T2im; }; # 1604 "gslfft.c" } for (block = 0; block < 128; block += 64) { { register double T2re, T2im; T2re = Y[block + 0] - Y[block + 32]; T2im = Y[block + 0 + 1] - Y[block + 32 + 1]; Y[block + 0] = Y[block + 0] + Y[block + 32]; Y[block + 0 + 1] = Y[block + 0 + 1] + Y[block + 32 + 1]; Y[block + 32] = T2re; Y[block + 32 + 1] = T2im; }; # 1617 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 34] * (double) +0.980785280403230; T1im = Y[block + 34 + 1] * (double) +0.980785280403230; T2re = Y[block + 34 + 1] * (double) +0.195090322016128; T2im = Y[block + 34] * (double) +0.195090322016128; T1re -= T2re; T1im += T2im; T2re = Y[block + 2] - T1re; T2im = Y[block + 2 + 1] - T1im; Y[block + 2] = Y[block + 2] + T1re; Y[block + 2 + 1] = Y[block + 2 + 1] + T1im; Y[block + 34] = T2re; Y[block + 34 + 1] = T2im; }; # 1626 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 36] * (double) +0.923879532511287; T1im = Y[block + 36 + 1] * (double) +0.923879532511287; T2re = Y[block + 36 + 1] * (double) +0.382683432365090; T2im = Y[block + 36] * (double) +0.382683432365090; T1re -= T2re; T1im += T2im; T2re = Y[block + 4] - T1re; T2im = Y[block + 4 + 1] - T1im; Y[block + 4] = Y[block + 4] + T1re; Y[block + 4 + 1] = Y[block + 4 + 1] + T1im; Y[block + 36] = T2re; Y[block + 36 + 1] = T2im; }; # 1635 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 38] * (double) +0.831469612302545; T1im = Y[block + 38 + 1] * (double) +0.831469612302545; T2re = Y[block + 38 + 1] * (double) +0.555570233019602; T2im = Y[block + 38] * (double) +0.555570233019602; T1re -= T2re; T1im += T2im; T2re = Y[block + 6] - T1re; T2im = Y[block + 6 + 1] - T1im; Y[block + 6] = Y[block + 6] + T1re; Y[block + 6 + 1] = Y[block + 6 + 1] + T1im; Y[block + 38] = T2re; Y[block + 38 + 1] = T2im; }; # 1644 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 40] * (double) +0.707106781186548; T1im = Y[block + 40 + 1] * (double) +0.707106781186548; T2re = T1im; T2im = T1re; T1re -= T2re; T1im += T2im; T2re = Y[block + 8] - T1re; T2im = Y[block + 8 + 1] - T1im; Y[block + 8] = Y[block + 8] + T1re; Y[block + 8 + 1] = Y[block + 8 + 1] + T1im; Y[block + 40] = T2re; Y[block + 40 + 1] = T2im; }; # 1653 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 42] * (double) +0.555570233019602; T1im = Y[block + 42 + 1] * (double) +0.555570233019602; T2re = Y[block + 42 + 1] * (double) +0.831469612302545; T2im = Y[block + 42] * (double) +0.831469612302545; T1re -= T2re; T1im += T2im; T2re = Y[block + 10] - T1re; T2im = Y[block + 10 + 1] - T1im; Y[block + 10] = Y[block + 10] + T1re; Y[block + 10 + 1] = Y[block + 10 + 1] + T1im; Y[block + 42] = T2re; Y[block + 42 + 1] = T2im; }; # 1662 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 44] * (double) +0.382683432365090; T1im = Y[block + 44 + 1] * (double) +0.382683432365090; T2re = Y[block + 44 + 1] * (double) +0.923879532511287; T2im = Y[block + 44] * (double) +0.923879532511287; T1re -= T2re; T1im += T2im; T2re = Y[block + 12] - T1re; T2im = Y[block + 12 + 1] - T1im; Y[block + 12] = Y[block + 12] + T1re; Y[block + 12 + 1] = Y[block + 12 + 1] + T1im; Y[block + 44] = T2re; Y[block + 44 + 1] = T2im; }; # 1671 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 46] * (double) +0.195090322016128; T1im = Y[block + 46 + 1] * (double) +0.195090322016128; T2re = Y[block + 46 + 1] * (double) +0.980785280403230; T2im = Y[block + 46] * (double) +0.980785280403230; T1re -= T2re; T1im += T2im; T2re = Y[block + 14] - T1re; T2im = Y[block + 14 + 1] - T1im; Y[block + 14] = Y[block + 14] + T1re; Y[block + 14 + 1] = Y[block + 14 + 1] + T1im; Y[block + 46] = T2re; Y[block + 46 + 1] = T2im; }; # 1680 "gslfft.c" { register double T2re, T2im; T2re = Y[block + 16] + Y[block + 48 + 1]; T2im = Y[block + 16 + 1] - Y[block + 48]; Y[block + 16] = Y[block + 16] - Y[block + 48 + 1]; Y[block + 16 + 1] = Y[block + 16 + 1] + Y[block + 48]; Y[block + 48] = T2re; Y[block + 48 + 1] = T2im; }; # 1689 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 50] * (double) -0.195090322016128; T1im = Y[block + 50 + 1] * (double) -0.195090322016128; T2re = Y[block + 50 + 1] * (double) +0.980785280403230; T2im = Y[block + 50] * (double) +0.980785280403230; T1re -= T2re; T1im += T2im; T2re = Y[block + 18] - T1re; T2im = Y[block + 18 + 1] - T1im; Y[block + 18] = Y[block + 18] + T1re; Y[block + 18 + 1] = Y[block + 18 + 1] + T1im; Y[block + 50] = T2re; Y[block + 50 + 1] = T2im; }; # 1698 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 52] * (double) -0.382683432365090; T1im = Y[block + 52 + 1] * (double) -0.382683432365090; T2re = Y[block + 52 + 1] * (double) +0.923879532511287; T2im = Y[block + 52] * (double) +0.923879532511287; T1re -= T2re; T1im += T2im; T2re = Y[block + 20] - T1re; T2im = Y[block + 20 + 1] - T1im; Y[block + 20] = Y[block + 20] + T1re; Y[block + 20 + 1] = Y[block + 20 + 1] + T1im; Y[block + 52] = T2re; Y[block + 52 + 1] = T2im; }; # 1707 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 54] * (double) -0.555570233019602; T1im = Y[block + 54 + 1] * (double) -0.555570233019602; T2re = Y[block + 54 + 1] * (double) +0.831469612302545; T2im = Y[block + 54] * (double) +0.831469612302545; T1re -= T2re; T1im += T2im; T2re = Y[block + 22] - T1re; T2im = Y[block + 22 + 1] - T1im; Y[block + 22] = Y[block + 22] + T1re; Y[block + 22 + 1] = Y[block + 22 + 1] + T1im; Y[block + 54] = T2re; Y[block + 54 + 1] = T2im; }; # 1716 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 56] * (double) -0.707106781186547; T1im = Y[block + 56 + 1] * (double) -0.707106781186547; T2re = T1im; T2im = T1re; T1re += T2re; T1im -= T2im; T2re = Y[block + 24] - T1re; T2im = Y[block + 24 + 1] - T1im; Y[block + 24] = Y[block + 24] + T1re; Y[block + 24 + 1] = Y[block + 24 + 1] + T1im; Y[block + 56] = T2re; Y[block + 56 + 1] = T2im; }; # 1725 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 58] * (double) -0.831469612302545; T1im = Y[block + 58 + 1] * (double) -0.831469612302545; T2re = Y[block + 58 + 1] * (double) +0.555570233019602; T2im = Y[block + 58] * (double) +0.555570233019602; T1re -= T2re; T1im += T2im; T2re = Y[block + 26] - T1re; T2im = Y[block + 26 + 1] - T1im; Y[block + 26] = Y[block + 26] + T1re; Y[block + 26 + 1] = Y[block + 26 + 1] + T1im; Y[block + 58] = T2re; Y[block + 58 + 1] = T2im; }; # 1734 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 60] * (double) -0.923879532511287; T1im = Y[block + 60 + 1] * (double) -0.923879532511287; T2re = Y[block + 60 + 1] * (double) +0.382683432365090; T2im = Y[block + 60] * (double) +0.382683432365090; T1re -= T2re; T1im += T2im; T2re = Y[block + 28] - T1re; T2im = Y[block + 28 + 1] - T1im; Y[block + 28] = Y[block + 28] + T1re; Y[block + 28 + 1] = Y[block + 28 + 1] + T1im; Y[block + 60] = T2re; Y[block + 60 + 1] = T2im; }; # 1743 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 62] * (double) -0.980785280403230; T1im = Y[block + 62 + 1] * (double) -0.980785280403230; T2re = Y[block + 62 + 1] * (double) +0.195090322016129; T2im = Y[block + 62] * (double) +0.195090322016129; T1re -= T2re; T1im += T2im; T2re = Y[block + 30] - T1re; T2im = Y[block + 30 + 1] - T1im; Y[block + 30] = Y[block + 30] + T1re; Y[block + 30 + 1] = Y[block + 30 + 1] + T1im; Y[block + 62] = T2re; Y[block + 62 + 1] = T2im; }; # 1752 "gslfft.c" } { register double T2re, T2im; T2re = Y[0] - Y[64]; T2im = Y[0 + 1] - Y[64 + 1]; Y[0] = Y[0] + Y[64]; Y[0 + 1] = Y[0 + 1] + Y[64 + 1]; Y[64] = T2re; Y[64 + 1] = T2im; }; # 1764 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[66] * (double) +0.995184726672197; T1im = Y[66 + 1] * (double) +0.995184726672197; T2re = Y[66 + 1] * (double) +0.098017140329561; T2im = Y[66] * (double) +0.098017140329561; T1re -= T2re; T1im += T2im; T2re = Y[2] - T1re; T2im = Y[2 + 1] - T1im; Y[2] = Y[2] + T1re; Y[2 + 1] = Y[2 + 1] + T1im; Y[66] = T2re; Y[66 + 1] = T2im; }; # 1773 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[68] * (double) +0.980785280403230; T1im = Y[68 + 1] * (double) +0.980785280403230; T2re = Y[68 + 1] * (double) +0.195090322016128; T2im = Y[68] * (double) +0.195090322016128; T1re -= T2re; T1im += T2im; T2re = Y[4] - T1re; T2im = Y[4 + 1] - T1im; Y[4] = Y[4] + T1re; Y[4 + 1] = Y[4 + 1] + T1im; Y[68] = T2re; Y[68 + 1] = T2im; }; # 1782 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[70] * (double) +0.956940335732209; T1im = Y[70 + 1] * (double) +0.956940335732209; T2re = Y[70 + 1] * (double) +0.290284677254462; T2im = Y[70] * (double) +0.290284677254462; T1re -= T2re; T1im += T2im; T2re = Y[6] - T1re; T2im = Y[6 + 1] - T1im; Y[6] = Y[6] + T1re; Y[6 + 1] = Y[6 + 1] + T1im; Y[70] = T2re; Y[70 + 1] = T2im; }; # 1791 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[72] * (double) +0.923879532511287; T1im = Y[72 + 1] * (double) +0.923879532511287; T2re = Y[72 + 1] * (double) +0.382683432365090; T2im = Y[72] * (double) +0.382683432365090; T1re -= T2re; T1im += T2im; T2re = Y[8] - T1re; T2im = Y[8 + 1] - T1im; Y[8] = Y[8] + T1re; Y[8 + 1] = Y[8 + 1] + T1im; Y[72] = T2re; Y[72 + 1] = T2im; }; # 1800 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[74] * (double) +0.881921264348355; T1im = Y[74 + 1] * (double) +0.881921264348355; T2re = Y[74 + 1] * (double) +0.471396736825998; T2im = Y[74] * (double) +0.471396736825998; T1re -= T2re; T1im += T2im; T2re = Y[10] - T1re; T2im = Y[10 + 1] - T1im; Y[10] = Y[10] + T1re; Y[10 + 1] = Y[10 + 1] + T1im; Y[74] = T2re; Y[74 + 1] = T2im; }; # 1809 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[76] * (double) +0.831469612302545; T1im = Y[76 + 1] * (double) +0.831469612302545; T2re = Y[76 + 1] * (double) +0.555570233019602; T2im = Y[76] * (double) +0.555570233019602; T1re -= T2re; T1im += T2im; T2re = Y[12] - T1re; T2im = Y[12 + 1] - T1im; Y[12] = Y[12] + T1re; Y[12 + 1] = Y[12 + 1] + T1im; Y[76] = T2re; Y[76 + 1] = T2im; }; # 1818 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[78] * (double) +0.773010453362737; T1im = Y[78 + 1] * (double) +0.773010453362737; T2re = Y[78 + 1] * (double) +0.634393284163645; T2im = Y[78] * (double) +0.634393284163645; T1re -= T2re; T1im += T2im; T2re = Y[14] - T1re; T2im = Y[14 + 1] - T1im; Y[14] = Y[14] + T1re; Y[14 + 1] = Y[14 + 1] + T1im; Y[78] = T2re; Y[78 + 1] = T2im; }; # 1827 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[80] * (double) +0.707106781186548; T1im = Y[80 + 1] * (double) +0.707106781186548; T2re = T1im; T2im = T1re; T1re -= T2re; T1im += T2im; T2re = Y[16] - T1re; T2im = Y[16 + 1] - T1im; Y[16] = Y[16] + T1re; Y[16 + 1] = Y[16 + 1] + T1im; Y[80] = T2re; Y[80 + 1] = T2im; }; # 1836 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[82] * (double) +0.634393284163645; T1im = Y[82 + 1] * (double) +0.634393284163645; T2re = Y[82 + 1] * (double) +0.773010453362737; T2im = Y[82] * (double) +0.773010453362737; T1re -= T2re; T1im += T2im; T2re = Y[18] - T1re; T2im = Y[18 + 1] - T1im; Y[18] = Y[18] + T1re; Y[18 + 1] = Y[18 + 1] + T1im; Y[82] = T2re; Y[82 + 1] = T2im; }; # 1845 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[84] * (double) +0.555570233019602; T1im = Y[84 + 1] * (double) +0.555570233019602; T2re = Y[84 + 1] * (double) +0.831469612302545; T2im = Y[84] * (double) +0.831469612302545; T1re -= T2re; T1im += T2im; T2re = Y[20] - T1re; T2im = Y[20 + 1] - T1im; Y[20] = Y[20] + T1re; Y[20 + 1] = Y[20 + 1] + T1im; Y[84] = T2re; Y[84 + 1] = T2im; }; # 1854 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[86] * (double) +0.471396736825998; T1im = Y[86 + 1] * (double) +0.471396736825998; T2re = Y[86 + 1] * (double) +0.881921264348355; T2im = Y[86] * (double) +0.881921264348355; T1re -= T2re; T1im += T2im; T2re = Y[22] - T1re; T2im = Y[22 + 1] - T1im; Y[22] = Y[22] + T1re; Y[22 + 1] = Y[22 + 1] + T1im; Y[86] = T2re; Y[86 + 1] = T2im; }; # 1863 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[88] * (double) +0.382683432365090; T1im = Y[88 + 1] * (double) +0.382683432365090; T2re = Y[88 + 1] * (double) +0.923879532511287; T2im = Y[88] * (double) +0.923879532511287; T1re -= T2re; T1im += T2im; T2re = Y[24] - T1re; T2im = Y[24 + 1] - T1im; Y[24] = Y[24] + T1re; Y[24 + 1] = Y[24 + 1] + T1im; Y[88] = T2re; Y[88 + 1] = T2im; }; # 1872 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[90] * (double) +0.290284677254462; T1im = Y[90 + 1] * (double) +0.290284677254462; T2re = Y[90 + 1] * (double) +0.956940335732209; T2im = Y[90] * (double) +0.956940335732209; T1re -= T2re; T1im += T2im; T2re = Y[26] - T1re; T2im = Y[26 + 1] - T1im; Y[26] = Y[26] + T1re; Y[26 + 1] = Y[26 + 1] + T1im; Y[90] = T2re; Y[90 + 1] = T2im; }; # 1881 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[92] * (double) +0.195090322016128; T1im = Y[92 + 1] * (double) +0.195090322016128; T2re = Y[92 + 1] * (double) +0.980785280403230; T2im = Y[92] * (double) +0.980785280403230; T1re -= T2re; T1im += T2im; T2re = Y[28] - T1re; T2im = Y[28 + 1] - T1im; Y[28] = Y[28] + T1re; Y[28 + 1] = Y[28 + 1] + T1im; Y[92] = T2re; Y[92 + 1] = T2im; }; # 1890 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[94] * (double) +0.098017140329561; T1im = Y[94 + 1] * (double) +0.098017140329561; T2re = Y[94 + 1] * (double) +0.995184726672197; T2im = Y[94] * (double) +0.995184726672197; T1re -= T2re; T1im += T2im; T2re = Y[30] - T1re; T2im = Y[30 + 1] - T1im; Y[30] = Y[30] + T1re; Y[30 + 1] = Y[30 + 1] + T1im; Y[94] = T2re; Y[94 + 1] = T2im; }; # 1899 "gslfft.c" { register double T2re, T2im; T2re = Y[32] + Y[96 + 1]; T2im = Y[32 + 1] - Y[96]; Y[32] = Y[32] - Y[96 + 1]; Y[32 + 1] = Y[32 + 1] + Y[96]; Y[96] = T2re; Y[96 + 1] = T2im; }; # 1908 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[98] * (double) -0.098017140329561; T1im = Y[98 + 1] * (double) -0.098017140329561; T2re = Y[98 + 1] * (double) +0.995184726672197; T2im = Y[98] * (double) +0.995184726672197; T1re -= T2re; T1im += T2im; T2re = Y[34] - T1re; T2im = Y[34 + 1] - T1im; Y[34] = Y[34] + T1re; Y[34 + 1] = Y[34 + 1] + T1im; Y[98] = T2re; Y[98 + 1] = T2im; }; # 1917 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[100] * (double) -0.195090322016128; T1im = Y[100 + 1] * (double) -0.195090322016128; T2re = Y[100 + 1] * (double) +0.980785280403230; T2im = Y[100] * (double) +0.980785280403230; T1re -= T2re; T1im += T2im; T2re = Y[36] - T1re; T2im = Y[36 + 1] - T1im; Y[36] = Y[36] + T1re; Y[36 + 1] = Y[36 + 1] + T1im; Y[100] = T2re; Y[100 + 1] = T2im; }; # 1926 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[102] * (double) -0.290284677254462; T1im = Y[102 + 1] * (double) -0.290284677254462; T2re = Y[102 + 1] * (double) +0.956940335732209; T2im = Y[102] * (double) +0.956940335732209; T1re -= T2re; T1im += T2im; T2re = Y[38] - T1re; T2im = Y[38 + 1] - T1im; Y[38] = Y[38] + T1re; Y[38 + 1] = Y[38 + 1] + T1im; Y[102] = T2re; Y[102 + 1] = T2im; }; # 1935 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[104] * (double) -0.382683432365090; T1im = Y[104 + 1] * (double) -0.382683432365090; T2re = Y[104 + 1] * (double) +0.923879532511287; T2im = Y[104] * (double) +0.923879532511287; T1re -= T2re; T1im += T2im; T2re = Y[40] - T1re; T2im = Y[40 + 1] - T1im; Y[40] = Y[40] + T1re; Y[40 + 1] = Y[40 + 1] + T1im; Y[104] = T2re; Y[104 + 1] = T2im; }; # 1944 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[106] * (double) -0.471396736825998; T1im = Y[106 + 1] * (double) -0.471396736825998; T2re = Y[106 + 1] * (double) +0.881921264348355; T2im = Y[106] * (double) +0.881921264348355; T1re -= T2re; T1im += T2im; T2re = Y[42] - T1re; T2im = Y[42 + 1] - T1im; Y[42] = Y[42] + T1re; Y[42 + 1] = Y[42 + 1] + T1im; Y[106] = T2re; Y[106 + 1] = T2im; }; # 1953 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[108] * (double) -0.555570233019602; T1im = Y[108 + 1] * (double) -0.555570233019602; T2re = Y[108 + 1] * (double) +0.831469612302545; T2im = Y[108] * (double) +0.831469612302545; T1re -= T2re; T1im += T2im; T2re = Y[44] - T1re; T2im = Y[44 + 1] - T1im; Y[44] = Y[44] + T1re; Y[44 + 1] = Y[44 + 1] + T1im; Y[108] = T2re; Y[108 + 1] = T2im; }; # 1962 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[110] * (double) -0.634393284163645; T1im = Y[110 + 1] * (double) -0.634393284163645; T2re = Y[110 + 1] * (double) +0.773010453362737; T2im = Y[110] * (double) +0.773010453362737; T1re -= T2re; T1im += T2im; T2re = Y[46] - T1re; T2im = Y[46 + 1] - T1im; Y[46] = Y[46] + T1re; Y[46 + 1] = Y[46 + 1] + T1im; Y[110] = T2re; Y[110 + 1] = T2im; }; # 1971 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[112] * (double) -0.707106781186547; T1im = Y[112 + 1] * (double) -0.707106781186547; T2re = T1im; T2im = T1re; T1re += T2re; T1im -= T2im; T2re = Y[48] - T1re; T2im = Y[48 + 1] - T1im; Y[48] = Y[48] + T1re; Y[48 + 1] = Y[48 + 1] + T1im; Y[112] = T2re; Y[112 + 1] = T2im; }; # 1980 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[114] * (double) -0.773010453362737; T1im = Y[114 + 1] * (double) -0.773010453362737; T2re = Y[114 + 1] * (double) +0.634393284163645; T2im = Y[114] * (double) +0.634393284163645; T1re -= T2re; T1im += T2im; T2re = Y[50] - T1re; T2im = Y[50 + 1] - T1im; Y[50] = Y[50] + T1re; Y[50 + 1] = Y[50 + 1] + T1im; Y[114] = T2re; Y[114 + 1] = T2im; }; # 1989 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[116] * (double) -0.831469612302545; T1im = Y[116 + 1] * (double) -0.831469612302545; T2re = Y[116 + 1] * (double) +0.555570233019602; T2im = Y[116] * (double) +0.555570233019602; T1re -= T2re; T1im += T2im; T2re = Y[52] - T1re; T2im = Y[52 + 1] - T1im; Y[52] = Y[52] + T1re; Y[52 + 1] = Y[52 + 1] + T1im; Y[116] = T2re; Y[116 + 1] = T2im; }; # 1998 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[118] * (double) -0.881921264348355; T1im = Y[118 + 1] * (double) -0.881921264348355; T2re = Y[118 + 1] * (double) +0.471396736825998; T2im = Y[118] * (double) +0.471396736825998; T1re -= T2re; T1im += T2im; T2re = Y[54] - T1re; T2im = Y[54 + 1] - T1im; Y[54] = Y[54] + T1re; Y[54 + 1] = Y[54 + 1] + T1im; Y[118] = T2re; Y[118 + 1] = T2im; }; # 2007 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[120] * (double) -0.923879532511287; T1im = Y[120 + 1] * (double) -0.923879532511287; T2re = Y[120 + 1] * (double) +0.382683432365090; T2im = Y[120] * (double) +0.382683432365090; T1re -= T2re; T1im += T2im; T2re = Y[56] - T1re; T2im = Y[56 + 1] - T1im; Y[56] = Y[56] + T1re; Y[56 + 1] = Y[56 + 1] + T1im; Y[120] = T2re; Y[120 + 1] = T2im; }; # 2016 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[122] * (double) -0.956940335732209; T1im = Y[122 + 1] * (double) -0.956940335732209; T2re = Y[122 + 1] * (double) +0.290284677254462; T2im = Y[122] * (double) +0.290284677254462; T1re -= T2re; T1im += T2im; T2re = Y[58] - T1re; T2im = Y[58 + 1] - T1im; Y[58] = Y[58] + T1re; Y[58 + 1] = Y[58 + 1] + T1im; Y[122] = T2re; Y[122 + 1] = T2im; }; # 2025 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[124] * (double) -0.980785280403230; T1im = Y[124 + 1] * (double) -0.980785280403230; T2re = Y[124 + 1] * (double) +0.195090322016129; T2im = Y[124] * (double) +0.195090322016129; T1re -= T2re; T1im += T2im; T2re = Y[60] - T1re; T2im = Y[60 + 1] - T1im; Y[60] = Y[60] + T1re; Y[60 + 1] = Y[60 + 1] + T1im; Y[124] = T2re; Y[124 + 1] = T2im; }; # 2034 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[126] * (double) -0.995184726672197; T1im = Y[126 + 1] * (double) -0.995184726672197; T2re = Y[126 + 1] * (double) +0.098017140329561; T2im = Y[126] * (double) +0.098017140329561; T1re -= T2re; T1im += T2im; T2re = Y[62] - T1re; T2im = Y[62 + 1] - T1im; Y[62] = Y[62] + T1re; Y[62 + 1] = Y[62 + 1] + T1im; Y[126] = T2re; Y[126 + 1] = T2im; }; # 2043 "gslfft.c" } static void gsl_power2_fft64analysis (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; { register double T2re, T2im; T2re = X[0] - X[64]; T2im = X[0 + 1] - X[64 + 1]; Y[0] = X[0] + X[64]; Y[0 + 1] = X[0 + 1] + X[64 + 1]; Y[2] = T2re; Y[2 + 1] = T2im; }; { register double T2re, T2im; T2re = X[32] - X[96]; T2im = X[32 + 1] - X[96 + 1]; Y[4] = X[32] + X[96]; Y[4 + 1] = X[32 + 1] + X[96 + 1]; Y[6] = T2re; Y[6 + 1] = T2im; }; { register double T2re, T2im; T2re = X[16] - X[80]; T2im = X[16 + 1] - X[80 + 1]; Y[8] = X[16] + X[80]; Y[8 + 1] = X[16 + 1] + X[80 + 1]; Y[10] = T2re; Y[10 + 1] = T2im; }; { register double T2re, T2im; T2re = X[48] - X[112]; T2im = X[48 + 1] - X[112 + 1]; Y[12] = X[48] + X[112]; Y[12 + 1] = X[48 + 1] + X[112 + 1]; Y[14] = T2re; Y[14 + 1] = T2im; }; { register double T2re, T2im; T2re = X[8] - X[72]; T2im = X[8 + 1] - X[72 + 1]; Y[16] = X[8] + X[72]; Y[16 + 1] = X[8 + 1] + X[72 + 1]; Y[18] = T2re; Y[18 + 1] = T2im; }; { register double T2re, T2im; T2re = X[40] - X[104]; T2im = X[40 + 1] - X[104 + 1]; Y[20] = X[40] + X[104]; Y[20 + 1] = X[40 + 1] + X[104 + 1]; Y[22] = T2re; Y[22 + 1] = T2im; }; { register double T2re, T2im; T2re = X[24] - X[88]; T2im = X[24 + 1] - X[88 + 1]; Y[24] = X[24] + X[88]; Y[24 + 1] = X[24 + 1] + X[88 + 1]; Y[26] = T2re; Y[26 + 1] = T2im; }; { register double T2re, T2im; T2re = X[56] - X[120]; T2im = X[56 + 1] - X[120 + 1]; Y[28] = X[56] + X[120]; Y[28 + 1] = X[56 + 1] + X[120 + 1]; Y[30] = T2re; Y[30 + 1] = T2im; }; { register double T2re, T2im; T2re = X[4] - X[68]; T2im = X[4 + 1] - X[68 + 1]; Y[32] = X[4] + X[68]; Y[32 + 1] = X[4 + 1] + X[68 + 1]; Y[34] = T2re; Y[34 + 1] = T2im; }; { register double T2re, T2im; T2re = X[36] - X[100]; T2im = X[36 + 1] - X[100 + 1]; Y[36] = X[36] + X[100]; Y[36 + 1] = X[36 + 1] + X[100 + 1]; Y[38] = T2re; Y[38 + 1] = T2im; }; { register double T2re, T2im; T2re = X[20] - X[84]; T2im = X[20 + 1] - X[84 + 1]; Y[40] = X[20] + X[84]; Y[40 + 1] = X[20 + 1] + X[84 + 1]; Y[42] = T2re; Y[42 + 1] = T2im; }; { register double T2re, T2im; T2re = X[52] - X[116]; T2im = X[52 + 1] - X[116 + 1]; Y[44] = X[52] + X[116]; Y[44 + 1] = X[52 + 1] + X[116 + 1]; Y[46] = T2re; Y[46 + 1] = T2im; }; { register double T2re, T2im; T2re = X[12] - X[76]; T2im = X[12 + 1] - X[76 + 1]; Y[48] = X[12] + X[76]; Y[48 + 1] = X[12 + 1] + X[76 + 1]; Y[50] = T2re; Y[50 + 1] = T2im; }; { register double T2re, T2im; T2re = X[44] - X[108]; T2im = X[44 + 1] - X[108 + 1]; Y[52] = X[44] + X[108]; Y[52 + 1] = X[44 + 1] + X[108 + 1]; Y[54] = T2re; Y[54 + 1] = T2im; }; { register double T2re, T2im; T2re = X[28] - X[92]; T2im = X[28 + 1] - X[92 + 1]; Y[56] = X[28] + X[92]; Y[56 + 1] = X[28 + 1] + X[92 + 1]; Y[58] = T2re; Y[58 + 1] = T2im; }; { register double T2re, T2im; T2re = X[60] - X[124]; T2im = X[60 + 1] - X[124 + 1]; Y[60] = X[60] + X[124]; Y[60 + 1] = X[60 + 1] + X[124 + 1]; Y[62] = T2re; Y[62 + 1] = T2im; }; { register double T2re, T2im; T2re = X[2] - X[66]; T2im = X[2 + 1] - X[66 + 1]; Y[64] = X[2] + X[66]; Y[64 + 1] = X[2 + 1] + X[66 + 1]; Y[66] = T2re; Y[66 + 1] = T2im; }; { register double T2re, T2im; T2re = X[34] - X[98]; T2im = X[34 + 1] - X[98 + 1]; Y[68] = X[34] + X[98]; Y[68 + 1] = X[34 + 1] + X[98 + 1]; Y[70] = T2re; Y[70 + 1] = T2im; }; { register double T2re, T2im; T2re = X[18] - X[82]; T2im = X[18 + 1] - X[82 + 1]; Y[72] = X[18] + X[82]; Y[72 + 1] = X[18 + 1] + X[82 + 1]; Y[74] = T2re; Y[74 + 1] = T2im; }; { register double T2re, T2im; T2re = X[50] - X[114]; T2im = X[50 + 1] - X[114 + 1]; Y[76] = X[50] + X[114]; Y[76 + 1] = X[50 + 1] + X[114 + 1]; Y[78] = T2re; Y[78 + 1] = T2im; }; { register double T2re, T2im; T2re = X[10] - X[74]; T2im = X[10 + 1] - X[74 + 1]; Y[80] = X[10] + X[74]; Y[80 + 1] = X[10 + 1] + X[74 + 1]; Y[82] = T2re; Y[82 + 1] = T2im; }; { register double T2re, T2im; T2re = X[42] - X[106]; T2im = X[42 + 1] - X[106 + 1]; Y[84] = X[42] + X[106]; Y[84 + 1] = X[42 + 1] + X[106 + 1]; Y[86] = T2re; Y[86 + 1] = T2im; }; { register double T2re, T2im; T2re = X[26] - X[90]; T2im = X[26 + 1] - X[90 + 1]; Y[88] = X[26] + X[90]; Y[88 + 1] = X[26 + 1] + X[90 + 1]; Y[90] = T2re; Y[90 + 1] = T2im; }; { register double T2re, T2im; T2re = X[58] - X[122]; T2im = X[58 + 1] - X[122 + 1]; Y[92] = X[58] + X[122]; Y[92 + 1] = X[58 + 1] + X[122 + 1]; Y[94] = T2re; Y[94 + 1] = T2im; }; { register double T2re, T2im; T2re = X[6] - X[70]; T2im = X[6 + 1] - X[70 + 1]; Y[96] = X[6] + X[70]; Y[96 + 1] = X[6 + 1] + X[70 + 1]; Y[98] = T2re; Y[98 + 1] = T2im; }; { register double T2re, T2im; T2re = X[38] - X[102]; T2im = X[38 + 1] - X[102 + 1]; Y[100] = X[38] + X[102]; Y[100 + 1] = X[38 + 1] + X[102 + 1]; Y[102] = T2re; Y[102 + 1] = T2im; }; { register double T2re, T2im; T2re = X[22] - X[86]; T2im = X[22 + 1] - X[86 + 1]; Y[104] = X[22] + X[86]; Y[104 + 1] = X[22 + 1] + X[86 + 1]; Y[106] = T2re; Y[106 + 1] = T2im; }; { register double T2re, T2im; T2re = X[54] - X[118]; T2im = X[54 + 1] - X[118 + 1]; Y[108] = X[54] + X[118]; Y[108 + 1] = X[54 + 1] + X[118 + 1]; Y[110] = T2re; Y[110 + 1] = T2im; }; { register double T2re, T2im; T2re = X[14] - X[78]; T2im = X[14 + 1] - X[78 + 1]; Y[112] = X[14] + X[78]; Y[112 + 1] = X[14 + 1] + X[78 + 1]; Y[114] = T2re; Y[114 + 1] = T2im; }; { register double T2re, T2im; T2re = X[46] - X[110]; T2im = X[46 + 1] - X[110 + 1]; Y[116] = X[46] + X[110]; Y[116 + 1] = X[46 + 1] + X[110 + 1]; Y[118] = T2re; Y[118 + 1] = T2im; }; { register double T2re, T2im; T2re = X[30] - X[94]; T2im = X[30 + 1] - X[94 + 1]; Y[120] = X[30] + X[94]; Y[120 + 1] = X[30 + 1] + X[94 + 1]; Y[122] = T2re; Y[122 + 1] = T2im; }; { register double T2re, T2im; T2re = X[62] - X[126]; T2im = X[62 + 1] - X[126 + 1]; Y[124] = X[62] + X[126]; Y[124 + 1] = X[62 + 1] + X[126 + 1]; Y[126] = T2re; Y[126 + 1] = T2im; }; # 2230 "gslfft.c" gsl_power2_fft64analysis_skip2 (X, Y); } static void gsl_power2_fft128analysis_skip2 (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; for (block = 0; block < 256; block += 8) { { register double T2re, T2im; T2re = Y[block + 0] - Y[block + 4]; T2im = Y[block + 0 + 1] - Y[block + 4 + 1]; Y[block + 0] = Y[block + 0] + Y[block + 4]; Y[block + 0 + 1] = Y[block + 0 + 1] + Y[block + 4 + 1]; Y[block + 4] = T2re; Y[block + 4 + 1] = T2im; }; # 2260 "gslfft.c" { register double T2re, T2im; T2re = Y[block + 2] + Y[block + 6 + 1]; T2im = Y[block + 2 + 1] - Y[block + 6]; Y[block + 2] = Y[block + 2] - Y[block + 6 + 1]; Y[block + 2 + 1] = Y[block + 2 + 1] + Y[block + 6]; Y[block + 6] = T2re; Y[block + 6 + 1] = T2im; }; # 2269 "gslfft.c" } for (block = 0; block < 256; block += 16) { { register double T2re, T2im; T2re = Y[block + 0] - Y[block + 8]; T2im = Y[block + 0 + 1] - Y[block + 8 + 1]; Y[block + 0] = Y[block + 0] + Y[block + 8]; Y[block + 0 + 1] = Y[block + 0 + 1] + Y[block + 8 + 1]; Y[block + 8] = T2re; Y[block + 8 + 1] = T2im; }; # 2282 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 10] * (double) +0.707106781186548; T1im = Y[block + 10 + 1] * (double) +0.707106781186548; T2re = T1im; T2im = T1re; T1re -= T2re; T1im += T2im; T2re = Y[block + 2] - T1re; T2im = Y[block + 2 + 1] - T1im; Y[block + 2] = Y[block + 2] + T1re; Y[block + 2 + 1] = Y[block + 2 + 1] + T1im; Y[block + 10] = T2re; Y[block + 10 + 1] = T2im; }; # 2291 "gslfft.c" { register double T2re, T2im; T2re = Y[block + 4] + Y[block + 12 + 1]; T2im = Y[block + 4 + 1] - Y[block + 12]; Y[block + 4] = Y[block + 4] - Y[block + 12 + 1]; Y[block + 4 + 1] = Y[block + 4 + 1] + Y[block + 12]; Y[block + 12] = T2re; Y[block + 12 + 1] = T2im; }; # 2300 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 14] * (double) -0.707106781186547; T1im = Y[block + 14 + 1] * (double) -0.707106781186547; T2re = T1im; T2im = T1re; T1re += T2re; T1im -= T2im; T2re = Y[block + 6] - T1re; T2im = Y[block + 6 + 1] - T1im; Y[block + 6] = Y[block + 6] + T1re; Y[block + 6 + 1] = Y[block + 6 + 1] + T1im; Y[block + 14] = T2re; Y[block + 14 + 1] = T2im; }; # 2309 "gslfft.c" } for (block = 0; block < 256; block += 32) { { register double T2re, T2im; T2re = Y[block + 0] - Y[block + 16]; T2im = Y[block + 0 + 1] - Y[block + 16 + 1]; Y[block + 0] = Y[block + 0] + Y[block + 16]; Y[block + 0 + 1] = Y[block + 0 + 1] + Y[block + 16 + 1]; Y[block + 16] = T2re; Y[block + 16 + 1] = T2im; }; # 2322 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 18] * (double) +0.923879532511287; T1im = Y[block + 18 + 1] * (double) +0.923879532511287; T2re = Y[block + 18 + 1] * (double) +0.382683432365090; T2im = Y[block + 18] * (double) +0.382683432365090; T1re -= T2re; T1im += T2im; T2re = Y[block + 2] - T1re; T2im = Y[block + 2 + 1] - T1im; Y[block + 2] = Y[block + 2] + T1re; Y[block + 2 + 1] = Y[block + 2 + 1] + T1im; Y[block + 18] = T2re; Y[block + 18 + 1] = T2im; }; # 2331 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 20] * (double) +0.707106781186548; T1im = Y[block + 20 + 1] * (double) +0.707106781186548; T2re = T1im; T2im = T1re; T1re -= T2re; T1im += T2im; T2re = Y[block + 4] - T1re; T2im = Y[block + 4 + 1] - T1im; Y[block + 4] = Y[block + 4] + T1re; Y[block + 4 + 1] = Y[block + 4 + 1] + T1im; Y[block + 20] = T2re; Y[block + 20 + 1] = T2im; }; # 2340 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 22] * (double) +0.382683432365090; T1im = Y[block + 22 + 1] * (double) +0.382683432365090; T2re = Y[block + 22 + 1] * (double) +0.923879532511287; T2im = Y[block + 22] * (double) +0.923879532511287; T1re -= T2re; T1im += T2im; T2re = Y[block + 6] - T1re; T2im = Y[block + 6 + 1] - T1im; Y[block + 6] = Y[block + 6] + T1re; Y[block + 6 + 1] = Y[block + 6 + 1] + T1im; Y[block + 22] = T2re; Y[block + 22 + 1] = T2im; }; # 2349 "gslfft.c" { register double T2re, T2im; T2re = Y[block + 8] + Y[block + 24 + 1]; T2im = Y[block + 8 + 1] - Y[block + 24]; Y[block + 8] = Y[block + 8] - Y[block + 24 + 1]; Y[block + 8 + 1] = Y[block + 8 + 1] + Y[block + 24]; Y[block + 24] = T2re; Y[block + 24 + 1] = T2im; }; # 2358 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 26] * (double) -0.382683432365090; T1im = Y[block + 26 + 1] * (double) -0.382683432365090; T2re = Y[block + 26 + 1] * (double) +0.923879532511287; T2im = Y[block + 26] * (double) +0.923879532511287; T1re -= T2re; T1im += T2im; T2re = Y[block + 10] - T1re; T2im = Y[block + 10 + 1] - T1im; Y[block + 10] = Y[block + 10] + T1re; Y[block + 10 + 1] = Y[block + 10 + 1] + T1im; Y[block + 26] = T2re; Y[block + 26 + 1] = T2im; }; # 2367 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 28] * (double) -0.707106781186547; T1im = Y[block + 28 + 1] * (double) -0.707106781186547; T2re = T1im; T2im = T1re; T1re += T2re; T1im -= T2im; T2re = Y[block + 12] - T1re; T2im = Y[block + 12 + 1] - T1im; Y[block + 12] = Y[block + 12] + T1re; Y[block + 12 + 1] = Y[block + 12 + 1] + T1im; Y[block + 28] = T2re; Y[block + 28 + 1] = T2im; }; # 2376 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 30] * (double) -0.923879532511287; T1im = Y[block + 30 + 1] * (double) -0.923879532511287; T2re = Y[block + 30 + 1] * (double) +0.382683432365090; T2im = Y[block + 30] * (double) +0.382683432365090; T1re -= T2re; T1im += T2im; T2re = Y[block + 14] - T1re; T2im = Y[block + 14 + 1] - T1im; Y[block + 14] = Y[block + 14] + T1re; Y[block + 14 + 1] = Y[block + 14 + 1] + T1im; Y[block + 30] = T2re; Y[block + 30 + 1] = T2im; }; # 2385 "gslfft.c" } for (block = 0; block < 256; block += 64) { { register double T2re, T2im; T2re = Y[block + 0] - Y[block + 32]; T2im = Y[block + 0 + 1] - Y[block + 32 + 1]; Y[block + 0] = Y[block + 0] + Y[block + 32]; Y[block + 0 + 1] = Y[block + 0 + 1] + Y[block + 32 + 1]; Y[block + 32] = T2re; Y[block + 32 + 1] = T2im; }; # 2398 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 34] * (double) +0.980785280403230; T1im = Y[block + 34 + 1] * (double) +0.980785280403230; T2re = Y[block + 34 + 1] * (double) +0.195090322016128; T2im = Y[block + 34] * (double) +0.195090322016128; T1re -= T2re; T1im += T2im; T2re = Y[block + 2] - T1re; T2im = Y[block + 2 + 1] - T1im; Y[block + 2] = Y[block + 2] + T1re; Y[block + 2 + 1] = Y[block + 2 + 1] + T1im; Y[block + 34] = T2re; Y[block + 34 + 1] = T2im; }; # 2407 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 36] * (double) +0.923879532511287; T1im = Y[block + 36 + 1] * (double) +0.923879532511287; T2re = Y[block + 36 + 1] * (double) +0.382683432365090; T2im = Y[block + 36] * (double) +0.382683432365090; T1re -= T2re; T1im += T2im; T2re = Y[block + 4] - T1re; T2im = Y[block + 4 + 1] - T1im; Y[block + 4] = Y[block + 4] + T1re; Y[block + 4 + 1] = Y[block + 4 + 1] + T1im; Y[block + 36] = T2re; Y[block + 36 + 1] = T2im; }; # 2416 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 38] * (double) +0.831469612302545; T1im = Y[block + 38 + 1] * (double) +0.831469612302545; T2re = Y[block + 38 + 1] * (double) +0.555570233019602; T2im = Y[block + 38] * (double) +0.555570233019602; T1re -= T2re; T1im += T2im; T2re = Y[block + 6] - T1re; T2im = Y[block + 6 + 1] - T1im; Y[block + 6] = Y[block + 6] + T1re; Y[block + 6 + 1] = Y[block + 6 + 1] + T1im; Y[block + 38] = T2re; Y[block + 38 + 1] = T2im; }; # 2425 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 40] * (double) +0.707106781186548; T1im = Y[block + 40 + 1] * (double) +0.707106781186548; T2re = T1im; T2im = T1re; T1re -= T2re; T1im += T2im; T2re = Y[block + 8] - T1re; T2im = Y[block + 8 + 1] - T1im; Y[block + 8] = Y[block + 8] + T1re; Y[block + 8 + 1] = Y[block + 8 + 1] + T1im; Y[block + 40] = T2re; Y[block + 40 + 1] = T2im; }; # 2434 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 42] * (double) +0.555570233019602; T1im = Y[block + 42 + 1] * (double) +0.555570233019602; T2re = Y[block + 42 + 1] * (double) +0.831469612302545; T2im = Y[block + 42] * (double) +0.831469612302545; T1re -= T2re; T1im += T2im; T2re = Y[block + 10] - T1re; T2im = Y[block + 10 + 1] - T1im; Y[block + 10] = Y[block + 10] + T1re; Y[block + 10 + 1] = Y[block + 10 + 1] + T1im; Y[block + 42] = T2re; Y[block + 42 + 1] = T2im; }; # 2443 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 44] * (double) +0.382683432365090; T1im = Y[block + 44 + 1] * (double) +0.382683432365090; T2re = Y[block + 44 + 1] * (double) +0.923879532511287; T2im = Y[block + 44] * (double) +0.923879532511287; T1re -= T2re; T1im += T2im; T2re = Y[block + 12] - T1re; T2im = Y[block + 12 + 1] - T1im; Y[block + 12] = Y[block + 12] + T1re; Y[block + 12 + 1] = Y[block + 12 + 1] + T1im; Y[block + 44] = T2re; Y[block + 44 + 1] = T2im; }; # 2452 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 46] * (double) +0.195090322016128; T1im = Y[block + 46 + 1] * (double) +0.195090322016128; T2re = Y[block + 46 + 1] * (double) +0.980785280403230; T2im = Y[block + 46] * (double) +0.980785280403230; T1re -= T2re; T1im += T2im; T2re = Y[block + 14] - T1re; T2im = Y[block + 14 + 1] - T1im; Y[block + 14] = Y[block + 14] + T1re; Y[block + 14 + 1] = Y[block + 14 + 1] + T1im; Y[block + 46] = T2re; Y[block + 46 + 1] = T2im; }; # 2461 "gslfft.c" { register double T2re, T2im; T2re = Y[block + 16] + Y[block + 48 + 1]; T2im = Y[block + 16 + 1] - Y[block + 48]; Y[block + 16] = Y[block + 16] - Y[block + 48 + 1]; Y[block + 16 + 1] = Y[block + 16 + 1] + Y[block + 48]; Y[block + 48] = T2re; Y[block + 48 + 1] = T2im; }; # 2470 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 50] * (double) -0.195090322016128; T1im = Y[block + 50 + 1] * (double) -0.195090322016128; T2re = Y[block + 50 + 1] * (double) +0.980785280403230; T2im = Y[block + 50] * (double) +0.980785280403230; T1re -= T2re; T1im += T2im; T2re = Y[block + 18] - T1re; T2im = Y[block + 18 + 1] - T1im; Y[block + 18] = Y[block + 18] + T1re; Y[block + 18 + 1] = Y[block + 18 + 1] + T1im; Y[block + 50] = T2re; Y[block + 50 + 1] = T2im; }; # 2479 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 52] * (double) -0.382683432365090; T1im = Y[block + 52 + 1] * (double) -0.382683432365090; T2re = Y[block + 52 + 1] * (double) +0.923879532511287; T2im = Y[block + 52] * (double) +0.923879532511287; T1re -= T2re; T1im += T2im; T2re = Y[block + 20] - T1re; T2im = Y[block + 20 + 1] - T1im; Y[block + 20] = Y[block + 20] + T1re; Y[block + 20 + 1] = Y[block + 20 + 1] + T1im; Y[block + 52] = T2re; Y[block + 52 + 1] = T2im; }; # 2488 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 54] * (double) -0.555570233019602; T1im = Y[block + 54 + 1] * (double) -0.555570233019602; T2re = Y[block + 54 + 1] * (double) +0.831469612302545; T2im = Y[block + 54] * (double) +0.831469612302545; T1re -= T2re; T1im += T2im; T2re = Y[block + 22] - T1re; T2im = Y[block + 22 + 1] - T1im; Y[block + 22] = Y[block + 22] + T1re; Y[block + 22 + 1] = Y[block + 22 + 1] + T1im; Y[block + 54] = T2re; Y[block + 54 + 1] = T2im; }; # 2497 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 56] * (double) -0.707106781186547; T1im = Y[block + 56 + 1] * (double) -0.707106781186547; T2re = T1im; T2im = T1re; T1re += T2re; T1im -= T2im; T2re = Y[block + 24] - T1re; T2im = Y[block + 24 + 1] - T1im; Y[block + 24] = Y[block + 24] + T1re; Y[block + 24 + 1] = Y[block + 24 + 1] + T1im; Y[block + 56] = T2re; Y[block + 56 + 1] = T2im; }; # 2506 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 58] * (double) -0.831469612302545; T1im = Y[block + 58 + 1] * (double) -0.831469612302545; T2re = Y[block + 58 + 1] * (double) +0.555570233019602; T2im = Y[block + 58] * (double) +0.555570233019602; T1re -= T2re; T1im += T2im; T2re = Y[block + 26] - T1re; T2im = Y[block + 26 + 1] - T1im; Y[block + 26] = Y[block + 26] + T1re; Y[block + 26 + 1] = Y[block + 26 + 1] + T1im; Y[block + 58] = T2re; Y[block + 58 + 1] = T2im; }; # 2515 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 60] * (double) -0.923879532511287; T1im = Y[block + 60 + 1] * (double) -0.923879532511287; T2re = Y[block + 60 + 1] * (double) +0.382683432365090; T2im = Y[block + 60] * (double) +0.382683432365090; T1re -= T2re; T1im += T2im; T2re = Y[block + 28] - T1re; T2im = Y[block + 28 + 1] - T1im; Y[block + 28] = Y[block + 28] + T1re; Y[block + 28 + 1] = Y[block + 28 + 1] + T1im; Y[block + 60] = T2re; Y[block + 60 + 1] = T2im; }; # 2524 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 62] * (double) -0.980785280403230; T1im = Y[block + 62 + 1] * (double) -0.980785280403230; T2re = Y[block + 62 + 1] * (double) +0.195090322016129; T2im = Y[block + 62] * (double) +0.195090322016129; T1re -= T2re; T1im += T2im; T2re = Y[block + 30] - T1re; T2im = Y[block + 30 + 1] - T1im; Y[block + 30] = Y[block + 30] + T1re; Y[block + 30 + 1] = Y[block + 30 + 1] + T1im; Y[block + 62] = T2re; Y[block + 62 + 1] = T2im; }; # 2533 "gslfft.c" } for (block = 0; block < 256; block += 128) { { register double T2re, T2im; T2re = Y[block + 0] - Y[block + 64]; T2im = Y[block + 0 + 1] - Y[block + 64 + 1]; Y[block + 0] = Y[block + 0] + Y[block + 64]; Y[block + 0 + 1] = Y[block + 0 + 1] + Y[block + 64 + 1]; Y[block + 64] = T2re; Y[block + 64 + 1] = T2im; }; # 2546 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 66] * (double) +0.995184726672197; T1im = Y[block + 66 + 1] * (double) +0.995184726672197; T2re = Y[block + 66 + 1] * (double) +0.098017140329561; T2im = Y[block + 66] * (double) +0.098017140329561; T1re -= T2re; T1im += T2im; T2re = Y[block + 2] - T1re; T2im = Y[block + 2 + 1] - T1im; Y[block + 2] = Y[block + 2] + T1re; Y[block + 2 + 1] = Y[block + 2 + 1] + T1im; Y[block + 66] = T2re; Y[block + 66 + 1] = T2im; }; # 2555 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 68] * (double) +0.980785280403230; T1im = Y[block + 68 + 1] * (double) +0.980785280403230; T2re = Y[block + 68 + 1] * (double) +0.195090322016128; T2im = Y[block + 68] * (double) +0.195090322016128; T1re -= T2re; T1im += T2im; T2re = Y[block + 4] - T1re; T2im = Y[block + 4 + 1] - T1im; Y[block + 4] = Y[block + 4] + T1re; Y[block + 4 + 1] = Y[block + 4 + 1] + T1im; Y[block + 68] = T2re; Y[block + 68 + 1] = T2im; }; # 2564 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 70] * (double) +0.956940335732209; T1im = Y[block + 70 + 1] * (double) +0.956940335732209; T2re = Y[block + 70 + 1] * (double) +0.290284677254462; T2im = Y[block + 70] * (double) +0.290284677254462; T1re -= T2re; T1im += T2im; T2re = Y[block + 6] - T1re; T2im = Y[block + 6 + 1] - T1im; Y[block + 6] = Y[block + 6] + T1re; Y[block + 6 + 1] = Y[block + 6 + 1] + T1im; Y[block + 70] = T2re; Y[block + 70 + 1] = T2im; }; # 2573 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 72] * (double) +0.923879532511287; T1im = Y[block + 72 + 1] * (double) +0.923879532511287; T2re = Y[block + 72 + 1] * (double) +0.382683432365090; T2im = Y[block + 72] * (double) +0.382683432365090; T1re -= T2re; T1im += T2im; T2re = Y[block + 8] - T1re; T2im = Y[block + 8 + 1] - T1im; Y[block + 8] = Y[block + 8] + T1re; Y[block + 8 + 1] = Y[block + 8 + 1] + T1im; Y[block + 72] = T2re; Y[block + 72 + 1] = T2im; }; # 2582 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 74] * (double) +0.881921264348355; T1im = Y[block + 74 + 1] * (double) +0.881921264348355; T2re = Y[block + 74 + 1] * (double) +0.471396736825998; T2im = Y[block + 74] * (double) +0.471396736825998; T1re -= T2re; T1im += T2im; T2re = Y[block + 10] - T1re; T2im = Y[block + 10 + 1] - T1im; Y[block + 10] = Y[block + 10] + T1re; Y[block + 10 + 1] = Y[block + 10 + 1] + T1im; Y[block + 74] = T2re; Y[block + 74 + 1] = T2im; }; # 2591 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 76] * (double) +0.831469612302545; T1im = Y[block + 76 + 1] * (double) +0.831469612302545; T2re = Y[block + 76 + 1] * (double) +0.555570233019602; T2im = Y[block + 76] * (double) +0.555570233019602; T1re -= T2re; T1im += T2im; T2re = Y[block + 12] - T1re; T2im = Y[block + 12 + 1] - T1im; Y[block + 12] = Y[block + 12] + T1re; Y[block + 12 + 1] = Y[block + 12 + 1] + T1im; Y[block + 76] = T2re; Y[block + 76 + 1] = T2im; }; # 2600 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 78] * (double) +0.773010453362737; T1im = Y[block + 78 + 1] * (double) +0.773010453362737; T2re = Y[block + 78 + 1] * (double) +0.634393284163645; T2im = Y[block + 78] * (double) +0.634393284163645; T1re -= T2re; T1im += T2im; T2re = Y[block + 14] - T1re; T2im = Y[block + 14 + 1] - T1im; Y[block + 14] = Y[block + 14] + T1re; Y[block + 14 + 1] = Y[block + 14 + 1] + T1im; Y[block + 78] = T2re; Y[block + 78 + 1] = T2im; }; # 2609 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 80] * (double) +0.707106781186548; T1im = Y[block + 80 + 1] * (double) +0.707106781186548; T2re = T1im; T2im = T1re; T1re -= T2re; T1im += T2im; T2re = Y[block + 16] - T1re; T2im = Y[block + 16 + 1] - T1im; Y[block + 16] = Y[block + 16] + T1re; Y[block + 16 + 1] = Y[block + 16 + 1] + T1im; Y[block + 80] = T2re; Y[block + 80 + 1] = T2im; }; # 2618 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 82] * (double) +0.634393284163645; T1im = Y[block + 82 + 1] * (double) +0.634393284163645; T2re = Y[block + 82 + 1] * (double) +0.773010453362737; T2im = Y[block + 82] * (double) +0.773010453362737; T1re -= T2re; T1im += T2im; T2re = Y[block + 18] - T1re; T2im = Y[block + 18 + 1] - T1im; Y[block + 18] = Y[block + 18] + T1re; Y[block + 18 + 1] = Y[block + 18 + 1] + T1im; Y[block + 82] = T2re; Y[block + 82 + 1] = T2im; }; # 2627 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 84] * (double) +0.555570233019602; T1im = Y[block + 84 + 1] * (double) +0.555570233019602; T2re = Y[block + 84 + 1] * (double) +0.831469612302545; T2im = Y[block + 84] * (double) +0.831469612302545; T1re -= T2re; T1im += T2im; T2re = Y[block + 20] - T1re; T2im = Y[block + 20 + 1] - T1im; Y[block + 20] = Y[block + 20] + T1re; Y[block + 20 + 1] = Y[block + 20 + 1] + T1im; Y[block + 84] = T2re; Y[block + 84 + 1] = T2im; }; # 2636 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 86] * (double) +0.471396736825998; T1im = Y[block + 86 + 1] * (double) +0.471396736825998; T2re = Y[block + 86 + 1] * (double) +0.881921264348355; T2im = Y[block + 86] * (double) +0.881921264348355; T1re -= T2re; T1im += T2im; T2re = Y[block + 22] - T1re; T2im = Y[block + 22 + 1] - T1im; Y[block + 22] = Y[block + 22] + T1re; Y[block + 22 + 1] = Y[block + 22 + 1] + T1im; Y[block + 86] = T2re; Y[block + 86 + 1] = T2im; }; # 2645 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 88] * (double) +0.382683432365090; T1im = Y[block + 88 + 1] * (double) +0.382683432365090; T2re = Y[block + 88 + 1] * (double) +0.923879532511287; T2im = Y[block + 88] * (double) +0.923879532511287; T1re -= T2re; T1im += T2im; T2re = Y[block + 24] - T1re; T2im = Y[block + 24 + 1] - T1im; Y[block + 24] = Y[block + 24] + T1re; Y[block + 24 + 1] = Y[block + 24 + 1] + T1im; Y[block + 88] = T2re; Y[block + 88 + 1] = T2im; }; # 2654 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 90] * (double) +0.290284677254462; T1im = Y[block + 90 + 1] * (double) +0.290284677254462; T2re = Y[block + 90 + 1] * (double) +0.956940335732209; T2im = Y[block + 90] * (double) +0.956940335732209; T1re -= T2re; T1im += T2im; T2re = Y[block + 26] - T1re; T2im = Y[block + 26 + 1] - T1im; Y[block + 26] = Y[block + 26] + T1re; Y[block + 26 + 1] = Y[block + 26 + 1] + T1im; Y[block + 90] = T2re; Y[block + 90 + 1] = T2im; }; # 2663 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 92] * (double) +0.195090322016128; T1im = Y[block + 92 + 1] * (double) +0.195090322016128; T2re = Y[block + 92 + 1] * (double) +0.980785280403230; T2im = Y[block + 92] * (double) +0.980785280403230; T1re -= T2re; T1im += T2im; T2re = Y[block + 28] - T1re; T2im = Y[block + 28 + 1] - T1im; Y[block + 28] = Y[block + 28] + T1re; Y[block + 28 + 1] = Y[block + 28 + 1] + T1im; Y[block + 92] = T2re; Y[block + 92 + 1] = T2im; }; # 2672 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 94] * (double) +0.098017140329561; T1im = Y[block + 94 + 1] * (double) +0.098017140329561; T2re = Y[block + 94 + 1] * (double) +0.995184726672197; T2im = Y[block + 94] * (double) +0.995184726672197; T1re -= T2re; T1im += T2im; T2re = Y[block + 30] - T1re; T2im = Y[block + 30 + 1] - T1im; Y[block + 30] = Y[block + 30] + T1re; Y[block + 30 + 1] = Y[block + 30 + 1] + T1im; Y[block + 94] = T2re; Y[block + 94 + 1] = T2im; }; # 2681 "gslfft.c" { register double T2re, T2im; T2re = Y[block + 32] + Y[block + 96 + 1]; T2im = Y[block + 32 + 1] - Y[block + 96]; Y[block + 32] = Y[block + 32] - Y[block + 96 + 1]; Y[block + 32 + 1] = Y[block + 32 + 1] + Y[block + 96]; Y[block + 96] = T2re; Y[block + 96 + 1] = T2im; }; # 2690 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 98] * (double) -0.098017140329561; T1im = Y[block + 98 + 1] * (double) -0.098017140329561; T2re = Y[block + 98 + 1] * (double) +0.995184726672197; T2im = Y[block + 98] * (double) +0.995184726672197; T1re -= T2re; T1im += T2im; T2re = Y[block + 34] - T1re; T2im = Y[block + 34 + 1] - T1im; Y[block + 34] = Y[block + 34] + T1re; Y[block + 34 + 1] = Y[block + 34 + 1] + T1im; Y[block + 98] = T2re; Y[block + 98 + 1] = T2im; }; # 2699 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 100] * (double) -0.195090322016128; T1im = Y[block + 100 + 1] * (double) -0.195090322016128; T2re = Y[block + 100 + 1] * (double) +0.980785280403230; T2im = Y[block + 100] * (double) +0.980785280403230; T1re -= T2re; T1im += T2im; T2re = Y[block + 36] - T1re; T2im = Y[block + 36 + 1] - T1im; Y[block + 36] = Y[block + 36] + T1re; Y[block + 36 + 1] = Y[block + 36 + 1] + T1im; Y[block + 100] = T2re; Y[block + 100 + 1] = T2im; }; # 2708 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 102] * (double) -0.290284677254462; T1im = Y[block + 102 + 1] * (double) -0.290284677254462; T2re = Y[block + 102 + 1] * (double) +0.956940335732209; T2im = Y[block + 102] * (double) +0.956940335732209; T1re -= T2re; T1im += T2im; T2re = Y[block + 38] - T1re; T2im = Y[block + 38 + 1] - T1im; Y[block + 38] = Y[block + 38] + T1re; Y[block + 38 + 1] = Y[block + 38 + 1] + T1im; Y[block + 102] = T2re; Y[block + 102 + 1] = T2im; }; # 2717 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 104] * (double) -0.382683432365090; T1im = Y[block + 104 + 1] * (double) -0.382683432365090; T2re = Y[block + 104 + 1] * (double) +0.923879532511287; T2im = Y[block + 104] * (double) +0.923879532511287; T1re -= T2re; T1im += T2im; T2re = Y[block + 40] - T1re; T2im = Y[block + 40 + 1] - T1im; Y[block + 40] = Y[block + 40] + T1re; Y[block + 40 + 1] = Y[block + 40 + 1] + T1im; Y[block + 104] = T2re; Y[block + 104 + 1] = T2im; }; # 2726 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 106] * (double) -0.471396736825998; T1im = Y[block + 106 + 1] * (double) -0.471396736825998; T2re = Y[block + 106 + 1] * (double) +0.881921264348355; T2im = Y[block + 106] * (double) +0.881921264348355; T1re -= T2re; T1im += T2im; T2re = Y[block + 42] - T1re; T2im = Y[block + 42 + 1] - T1im; Y[block + 42] = Y[block + 42] + T1re; Y[block + 42 + 1] = Y[block + 42 + 1] + T1im; Y[block + 106] = T2re; Y[block + 106 + 1] = T2im; }; # 2735 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 108] * (double) -0.555570233019602; T1im = Y[block + 108 + 1] * (double) -0.555570233019602; T2re = Y[block + 108 + 1] * (double) +0.831469612302545; T2im = Y[block + 108] * (double) +0.831469612302545; T1re -= T2re; T1im += T2im; T2re = Y[block + 44] - T1re; T2im = Y[block + 44 + 1] - T1im; Y[block + 44] = Y[block + 44] + T1re; Y[block + 44 + 1] = Y[block + 44 + 1] + T1im; Y[block + 108] = T2re; Y[block + 108 + 1] = T2im; }; # 2744 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 110] * (double) -0.634393284163645; T1im = Y[block + 110 + 1] * (double) -0.634393284163645; T2re = Y[block + 110 + 1] * (double) +0.773010453362737; T2im = Y[block + 110] * (double) +0.773010453362737; T1re -= T2re; T1im += T2im; T2re = Y[block + 46] - T1re; T2im = Y[block + 46 + 1] - T1im; Y[block + 46] = Y[block + 46] + T1re; Y[block + 46 + 1] = Y[block + 46 + 1] + T1im; Y[block + 110] = T2re; Y[block + 110 + 1] = T2im; }; # 2753 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 112] * (double) -0.707106781186547; T1im = Y[block + 112 + 1] * (double) -0.707106781186547; T2re = T1im; T2im = T1re; T1re += T2re; T1im -= T2im; T2re = Y[block + 48] - T1re; T2im = Y[block + 48 + 1] - T1im; Y[block + 48] = Y[block + 48] + T1re; Y[block + 48 + 1] = Y[block + 48 + 1] + T1im; Y[block + 112] = T2re; Y[block + 112 + 1] = T2im; }; # 2762 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 114] * (double) -0.773010453362737; T1im = Y[block + 114 + 1] * (double) -0.773010453362737; T2re = Y[block + 114 + 1] * (double) +0.634393284163645; T2im = Y[block + 114] * (double) +0.634393284163645; T1re -= T2re; T1im += T2im; T2re = Y[block + 50] - T1re; T2im = Y[block + 50 + 1] - T1im; Y[block + 50] = Y[block + 50] + T1re; Y[block + 50 + 1] = Y[block + 50 + 1] + T1im; Y[block + 114] = T2re; Y[block + 114 + 1] = T2im; }; # 2771 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 116] * (double) -0.831469612302545; T1im = Y[block + 116 + 1] * (double) -0.831469612302545; T2re = Y[block + 116 + 1] * (double) +0.555570233019602; T2im = Y[block + 116] * (double) +0.555570233019602; T1re -= T2re; T1im += T2im; T2re = Y[block + 52] - T1re; T2im = Y[block + 52 + 1] - T1im; Y[block + 52] = Y[block + 52] + T1re; Y[block + 52 + 1] = Y[block + 52 + 1] + T1im; Y[block + 116] = T2re; Y[block + 116 + 1] = T2im; }; # 2780 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 118] * (double) -0.881921264348355; T1im = Y[block + 118 + 1] * (double) -0.881921264348355; T2re = Y[block + 118 + 1] * (double) +0.471396736825998; T2im = Y[block + 118] * (double) +0.471396736825998; T1re -= T2re; T1im += T2im; T2re = Y[block + 54] - T1re; T2im = Y[block + 54 + 1] - T1im; Y[block + 54] = Y[block + 54] + T1re; Y[block + 54 + 1] = Y[block + 54 + 1] + T1im; Y[block + 118] = T2re; Y[block + 118 + 1] = T2im; }; # 2789 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 120] * (double) -0.923879532511287; T1im = Y[block + 120 + 1] * (double) -0.923879532511287; T2re = Y[block + 120 + 1] * (double) +0.382683432365090; T2im = Y[block + 120] * (double) +0.382683432365090; T1re -= T2re; T1im += T2im; T2re = Y[block + 56] - T1re; T2im = Y[block + 56 + 1] - T1im; Y[block + 56] = Y[block + 56] + T1re; Y[block + 56 + 1] = Y[block + 56 + 1] + T1im; Y[block + 120] = T2re; Y[block + 120 + 1] = T2im; }; # 2798 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 122] * (double) -0.956940335732209; T1im = Y[block + 122 + 1] * (double) -0.956940335732209; T2re = Y[block + 122 + 1] * (double) +0.290284677254462; T2im = Y[block + 122] * (double) +0.290284677254462; T1re -= T2re; T1im += T2im; T2re = Y[block + 58] - T1re; T2im = Y[block + 58 + 1] - T1im; Y[block + 58] = Y[block + 58] + T1re; Y[block + 58 + 1] = Y[block + 58 + 1] + T1im; Y[block + 122] = T2re; Y[block + 122 + 1] = T2im; }; # 2807 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 124] * (double) -0.980785280403230; T1im = Y[block + 124 + 1] * (double) -0.980785280403230; T2re = Y[block + 124 + 1] * (double) +0.195090322016129; T2im = Y[block + 124] * (double) +0.195090322016129; T1re -= T2re; T1im += T2im; T2re = Y[block + 60] - T1re; T2im = Y[block + 60 + 1] - T1im; Y[block + 60] = Y[block + 60] + T1re; Y[block + 60 + 1] = Y[block + 60 + 1] + T1im; Y[block + 124] = T2re; Y[block + 124 + 1] = T2im; }; # 2816 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 126] * (double) -0.995184726672197; T1im = Y[block + 126 + 1] * (double) -0.995184726672197; T2re = Y[block + 126 + 1] * (double) +0.098017140329561; T2im = Y[block + 126] * (double) +0.098017140329561; T1re -= T2re; T1im += T2im; T2re = Y[block + 62] - T1re; T2im = Y[block + 62 + 1] - T1im; Y[block + 62] = Y[block + 62] + T1re; Y[block + 62 + 1] = Y[block + 62 + 1] + T1im; Y[block + 126] = T2re; Y[block + 126 + 1] = T2im; }; # 2825 "gslfft.c" } { register double T2re, T2im; T2re = Y[0] - Y[128]; T2im = Y[0 + 1] - Y[128 + 1]; Y[0] = Y[0] + Y[128]; Y[0 + 1] = Y[0 + 1] + Y[128 + 1]; Y[128] = T2re; Y[128 + 1] = T2im; }; # 2837 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[130] * (double) +0.998795456205172; T1im = Y[130 + 1] * (double) +0.998795456205172; T2re = Y[130 + 1] * (double) +0.049067674327418; T2im = Y[130] * (double) +0.049067674327418; T1re -= T2re; T1im += T2im; T2re = Y[2] - T1re; T2im = Y[2 + 1] - T1im; Y[2] = Y[2] + T1re; Y[2 + 1] = Y[2 + 1] + T1im; Y[130] = T2re; Y[130 + 1] = T2im; }; # 2846 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[132] * (double) +0.995184726672197; T1im = Y[132 + 1] * (double) +0.995184726672197; T2re = Y[132 + 1] * (double) +0.098017140329561; T2im = Y[132] * (double) +0.098017140329561; T1re -= T2re; T1im += T2im; T2re = Y[4] - T1re; T2im = Y[4 + 1] - T1im; Y[4] = Y[4] + T1re; Y[4 + 1] = Y[4 + 1] + T1im; Y[132] = T2re; Y[132 + 1] = T2im; }; # 2855 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[134] * (double) +0.989176509964781; T1im = Y[134 + 1] * (double) +0.989176509964781; T2re = Y[134 + 1] * (double) +0.146730474455362; T2im = Y[134] * (double) +0.146730474455362; T1re -= T2re; T1im += T2im; T2re = Y[6] - T1re; T2im = Y[6 + 1] - T1im; Y[6] = Y[6] + T1re; Y[6 + 1] = Y[6 + 1] + T1im; Y[134] = T2re; Y[134 + 1] = T2im; }; # 2864 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[136] * (double) +0.980785280403230; T1im = Y[136 + 1] * (double) +0.980785280403230; T2re = Y[136 + 1] * (double) +0.195090322016128; T2im = Y[136] * (double) +0.195090322016128; T1re -= T2re; T1im += T2im; T2re = Y[8] - T1re; T2im = Y[8 + 1] - T1im; Y[8] = Y[8] + T1re; Y[8 + 1] = Y[8 + 1] + T1im; Y[136] = T2re; Y[136 + 1] = T2im; }; # 2873 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[138] * (double) +0.970031253194544; T1im = Y[138 + 1] * (double) +0.970031253194544; T2re = Y[138 + 1] * (double) +0.242980179903264; T2im = Y[138] * (double) +0.242980179903264; T1re -= T2re; T1im += T2im; T2re = Y[10] - T1re; T2im = Y[10 + 1] - T1im; Y[10] = Y[10] + T1re; Y[10 + 1] = Y[10 + 1] + T1im; Y[138] = T2re; Y[138 + 1] = T2im; }; # 2882 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[140] * (double) +0.956940335732209; T1im = Y[140 + 1] * (double) +0.956940335732209; T2re = Y[140 + 1] * (double) +0.290284677254462; T2im = Y[140] * (double) +0.290284677254462; T1re -= T2re; T1im += T2im; T2re = Y[12] - T1re; T2im = Y[12 + 1] - T1im; Y[12] = Y[12] + T1re; Y[12 + 1] = Y[12 + 1] + T1im; Y[140] = T2re; Y[140 + 1] = T2im; }; # 2891 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[142] * (double) +0.941544065183021; T1im = Y[142 + 1] * (double) +0.941544065183021; T2re = Y[142 + 1] * (double) +0.336889853392220; T2im = Y[142] * (double) +0.336889853392220; T1re -= T2re; T1im += T2im; T2re = Y[14] - T1re; T2im = Y[14 + 1] - T1im; Y[14] = Y[14] + T1re; Y[14 + 1] = Y[14 + 1] + T1im; Y[142] = T2re; Y[142 + 1] = T2im; }; # 2900 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[144] * (double) +0.923879532511287; T1im = Y[144 + 1] * (double) +0.923879532511287; T2re = Y[144 + 1] * (double) +0.382683432365090; T2im = Y[144] * (double) +0.382683432365090; T1re -= T2re; T1im += T2im; T2re = Y[16] - T1re; T2im = Y[16 + 1] - T1im; Y[16] = Y[16] + T1re; Y[16 + 1] = Y[16 + 1] + T1im; Y[144] = T2re; Y[144 + 1] = T2im; }; # 2909 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[146] * (double) +0.903989293123443; T1im = Y[146 + 1] * (double) +0.903989293123443; T2re = Y[146 + 1] * (double) +0.427555093430282; T2im = Y[146] * (double) +0.427555093430282; T1re -= T2re; T1im += T2im; T2re = Y[18] - T1re; T2im = Y[18 + 1] - T1im; Y[18] = Y[18] + T1re; Y[18 + 1] = Y[18 + 1] + T1im; Y[146] = T2re; Y[146 + 1] = T2im; }; # 2918 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[148] * (double) +0.881921264348355; T1im = Y[148 + 1] * (double) +0.881921264348355; T2re = Y[148 + 1] * (double) +0.471396736825998; T2im = Y[148] * (double) +0.471396736825998; T1re -= T2re; T1im += T2im; T2re = Y[20] - T1re; T2im = Y[20 + 1] - T1im; Y[20] = Y[20] + T1re; Y[20 + 1] = Y[20 + 1] + T1im; Y[148] = T2re; Y[148 + 1] = T2im; }; # 2927 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[150] * (double) +0.857728610000272; T1im = Y[150 + 1] * (double) +0.857728610000272; T2re = Y[150 + 1] * (double) +0.514102744193222; T2im = Y[150] * (double) +0.514102744193222; T1re -= T2re; T1im += T2im; T2re = Y[22] - T1re; T2im = Y[22 + 1] - T1im; Y[22] = Y[22] + T1re; Y[22 + 1] = Y[22 + 1] + T1im; Y[150] = T2re; Y[150 + 1] = T2im; }; # 2936 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[152] * (double) +0.831469612302545; T1im = Y[152 + 1] * (double) +0.831469612302545; T2re = Y[152 + 1] * (double) +0.555570233019602; T2im = Y[152] * (double) +0.555570233019602; T1re -= T2re; T1im += T2im; T2re = Y[24] - T1re; T2im = Y[24 + 1] - T1im; Y[24] = Y[24] + T1re; Y[24 + 1] = Y[24 + 1] + T1im; Y[152] = T2re; Y[152 + 1] = T2im; }; # 2945 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[154] * (double) +0.803207531480645; T1im = Y[154 + 1] * (double) +0.803207531480645; T2re = Y[154 + 1] * (double) +0.595699304492433; T2im = Y[154] * (double) +0.595699304492433; T1re -= T2re; T1im += T2im; T2re = Y[26] - T1re; T2im = Y[26 + 1] - T1im; Y[26] = Y[26] + T1re; Y[26 + 1] = Y[26 + 1] + T1im; Y[154] = T2re; Y[154 + 1] = T2im; }; # 2954 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[156] * (double) +0.773010453362737; T1im = Y[156 + 1] * (double) +0.773010453362737; T2re = Y[156 + 1] * (double) +0.634393284163645; T2im = Y[156] * (double) +0.634393284163645; T1re -= T2re; T1im += T2im; T2re = Y[28] - T1re; T2im = Y[28 + 1] - T1im; Y[28] = Y[28] + T1re; Y[28 + 1] = Y[28 + 1] + T1im; Y[156] = T2re; Y[156 + 1] = T2im; }; # 2963 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[158] * (double) +0.740951125354959; T1im = Y[158 + 1] * (double) +0.740951125354959; T2re = Y[158 + 1] * (double) +0.671558954847018; T2im = Y[158] * (double) +0.671558954847018; T1re -= T2re; T1im += T2im; T2re = Y[30] - T1re; T2im = Y[30 + 1] - T1im; Y[30] = Y[30] + T1re; Y[30 + 1] = Y[30 + 1] + T1im; Y[158] = T2re; Y[158 + 1] = T2im; }; # 2972 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[160] * (double) +0.707106781186548; T1im = Y[160 + 1] * (double) +0.707106781186548; T2re = T1im; T2im = T1re; T1re -= T2re; T1im += T2im; T2re = Y[32] - T1re; T2im = Y[32 + 1] - T1im; Y[32] = Y[32] + T1re; Y[32 + 1] = Y[32 + 1] + T1im; Y[160] = T2re; Y[160 + 1] = T2im; }; # 2981 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[162] * (double) +0.671558954847018; T1im = Y[162 + 1] * (double) +0.671558954847018; T2re = Y[162 + 1] * (double) +0.740951125354959; T2im = Y[162] * (double) +0.740951125354959; T1re -= T2re; T1im += T2im; T2re = Y[34] - T1re; T2im = Y[34 + 1] - T1im; Y[34] = Y[34] + T1re; Y[34 + 1] = Y[34 + 1] + T1im; Y[162] = T2re; Y[162 + 1] = T2im; }; # 2990 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[164] * (double) +0.634393284163645; T1im = Y[164 + 1] * (double) +0.634393284163645; T2re = Y[164 + 1] * (double) +0.773010453362737; T2im = Y[164] * (double) +0.773010453362737; T1re -= T2re; T1im += T2im; T2re = Y[36] - T1re; T2im = Y[36 + 1] - T1im; Y[36] = Y[36] + T1re; Y[36 + 1] = Y[36 + 1] + T1im; Y[164] = T2re; Y[164 + 1] = T2im; }; # 2999 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[166] * (double) +0.595699304492433; T1im = Y[166 + 1] * (double) +0.595699304492433; T2re = Y[166 + 1] * (double) +0.803207531480645; T2im = Y[166] * (double) +0.803207531480645; T1re -= T2re; T1im += T2im; T2re = Y[38] - T1re; T2im = Y[38 + 1] - T1im; Y[38] = Y[38] + T1re; Y[38 + 1] = Y[38 + 1] + T1im; Y[166] = T2re; Y[166 + 1] = T2im; }; # 3008 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[168] * (double) +0.555570233019602; T1im = Y[168 + 1] * (double) +0.555570233019602; T2re = Y[168 + 1] * (double) +0.831469612302545; T2im = Y[168] * (double) +0.831469612302545; T1re -= T2re; T1im += T2im; T2re = Y[40] - T1re; T2im = Y[40 + 1] - T1im; Y[40] = Y[40] + T1re; Y[40 + 1] = Y[40 + 1] + T1im; Y[168] = T2re; Y[168 + 1] = T2im; }; # 3017 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[170] * (double) +0.514102744193222; T1im = Y[170 + 1] * (double) +0.514102744193222; T2re = Y[170 + 1] * (double) +0.857728610000272; T2im = Y[170] * (double) +0.857728610000272; T1re -= T2re; T1im += T2im; T2re = Y[42] - T1re; T2im = Y[42 + 1] - T1im; Y[42] = Y[42] + T1re; Y[42 + 1] = Y[42 + 1] + T1im; Y[170] = T2re; Y[170 + 1] = T2im; }; # 3026 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[172] * (double) +0.471396736825998; T1im = Y[172 + 1] * (double) +0.471396736825998; T2re = Y[172 + 1] * (double) +0.881921264348355; T2im = Y[172] * (double) +0.881921264348355; T1re -= T2re; T1im += T2im; T2re = Y[44] - T1re; T2im = Y[44 + 1] - T1im; Y[44] = Y[44] + T1re; Y[44 + 1] = Y[44 + 1] + T1im; Y[172] = T2re; Y[172 + 1] = T2im; }; # 3035 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[174] * (double) +0.427555093430282; T1im = Y[174 + 1] * (double) +0.427555093430282; T2re = Y[174 + 1] * (double) +0.903989293123443; T2im = Y[174] * (double) +0.903989293123443; T1re -= T2re; T1im += T2im; T2re = Y[46] - T1re; T2im = Y[46 + 1] - T1im; Y[46] = Y[46] + T1re; Y[46 + 1] = Y[46 + 1] + T1im; Y[174] = T2re; Y[174 + 1] = T2im; }; # 3044 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[176] * (double) +0.382683432365090; T1im = Y[176 + 1] * (double) +0.382683432365090; T2re = Y[176 + 1] * (double) +0.923879532511287; T2im = Y[176] * (double) +0.923879532511287; T1re -= T2re; T1im += T2im; T2re = Y[48] - T1re; T2im = Y[48 + 1] - T1im; Y[48] = Y[48] + T1re; Y[48 + 1] = Y[48 + 1] + T1im; Y[176] = T2re; Y[176 + 1] = T2im; }; # 3053 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[178] * (double) +0.336889853392220; T1im = Y[178 + 1] * (double) +0.336889853392220; T2re = Y[178 + 1] * (double) +0.941544065183021; T2im = Y[178] * (double) +0.941544065183021; T1re -= T2re; T1im += T2im; T2re = Y[50] - T1re; T2im = Y[50 + 1] - T1im; Y[50] = Y[50] + T1re; Y[50 + 1] = Y[50 + 1] + T1im; Y[178] = T2re; Y[178 + 1] = T2im; }; # 3062 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[180] * (double) +0.290284677254462; T1im = Y[180 + 1] * (double) +0.290284677254462; T2re = Y[180 + 1] * (double) +0.956940335732209; T2im = Y[180] * (double) +0.956940335732209; T1re -= T2re; T1im += T2im; T2re = Y[52] - T1re; T2im = Y[52 + 1] - T1im; Y[52] = Y[52] + T1re; Y[52 + 1] = Y[52 + 1] + T1im; Y[180] = T2re; Y[180 + 1] = T2im; }; # 3071 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[182] * (double) +0.242980179903264; T1im = Y[182 + 1] * (double) +0.242980179903264; T2re = Y[182 + 1] * (double) +0.970031253194544; T2im = Y[182] * (double) +0.970031253194544; T1re -= T2re; T1im += T2im; T2re = Y[54] - T1re; T2im = Y[54 + 1] - T1im; Y[54] = Y[54] + T1re; Y[54 + 1] = Y[54 + 1] + T1im; Y[182] = T2re; Y[182 + 1] = T2im; }; # 3080 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[184] * (double) +0.195090322016128; T1im = Y[184 + 1] * (double) +0.195090322016128; T2re = Y[184 + 1] * (double) +0.980785280403230; T2im = Y[184] * (double) +0.980785280403230; T1re -= T2re; T1im += T2im; T2re = Y[56] - T1re; T2im = Y[56 + 1] - T1im; Y[56] = Y[56] + T1re; Y[56 + 1] = Y[56 + 1] + T1im; Y[184] = T2re; Y[184 + 1] = T2im; }; # 3089 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[186] * (double) +0.146730474455362; T1im = Y[186 + 1] * (double) +0.146730474455362; T2re = Y[186 + 1] * (double) +0.989176509964781; T2im = Y[186] * (double) +0.989176509964781; T1re -= T2re; T1im += T2im; T2re = Y[58] - T1re; T2im = Y[58 + 1] - T1im; Y[58] = Y[58] + T1re; Y[58 + 1] = Y[58 + 1] + T1im; Y[186] = T2re; Y[186 + 1] = T2im; }; # 3098 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[188] * (double) +0.098017140329561; T1im = Y[188 + 1] * (double) +0.098017140329561; T2re = Y[188 + 1] * (double) +0.995184726672197; T2im = Y[188] * (double) +0.995184726672197; T1re -= T2re; T1im += T2im; T2re = Y[60] - T1re; T2im = Y[60 + 1] - T1im; Y[60] = Y[60] + T1re; Y[60 + 1] = Y[60 + 1] + T1im; Y[188] = T2re; Y[188 + 1] = T2im; }; # 3107 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[190] * (double) +0.049067674327418; T1im = Y[190 + 1] * (double) +0.049067674327418; T2re = Y[190 + 1] * (double) +0.998795456205172; T2im = Y[190] * (double) +0.998795456205172; T1re -= T2re; T1im += T2im; T2re = Y[62] - T1re; T2im = Y[62 + 1] - T1im; Y[62] = Y[62] + T1re; Y[62 + 1] = Y[62 + 1] + T1im; Y[190] = T2re; Y[190 + 1] = T2im; }; # 3116 "gslfft.c" { register double T2re, T2im; T2re = Y[64] + Y[192 + 1]; T2im = Y[64 + 1] - Y[192]; Y[64] = Y[64] - Y[192 + 1]; Y[64 + 1] = Y[64 + 1] + Y[192]; Y[192] = T2re; Y[192 + 1] = T2im; }; # 3125 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[194] * (double) -0.049067674327418; T1im = Y[194 + 1] * (double) -0.049067674327418; T2re = Y[194 + 1] * (double) +0.998795456205172; T2im = Y[194] * (double) +0.998795456205172; T1re -= T2re; T1im += T2im; T2re = Y[66] - T1re; T2im = Y[66 + 1] - T1im; Y[66] = Y[66] + T1re; Y[66 + 1] = Y[66 + 1] + T1im; Y[194] = T2re; Y[194 + 1] = T2im; }; # 3134 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[196] * (double) -0.098017140329561; T1im = Y[196 + 1] * (double) -0.098017140329561; T2re = Y[196 + 1] * (double) +0.995184726672197; T2im = Y[196] * (double) +0.995184726672197; T1re -= T2re; T1im += T2im; T2re = Y[68] - T1re; T2im = Y[68 + 1] - T1im; Y[68] = Y[68] + T1re; Y[68 + 1] = Y[68 + 1] + T1im; Y[196] = T2re; Y[196 + 1] = T2im; }; # 3143 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[198] * (double) -0.146730474455362; T1im = Y[198 + 1] * (double) -0.146730474455362; T2re = Y[198 + 1] * (double) +0.989176509964781; T2im = Y[198] * (double) +0.989176509964781; T1re -= T2re; T1im += T2im; T2re = Y[70] - T1re; T2im = Y[70 + 1] - T1im; Y[70] = Y[70] + T1re; Y[70 + 1] = Y[70 + 1] + T1im; Y[198] = T2re; Y[198 + 1] = T2im; }; # 3152 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[200] * (double) -0.195090322016128; T1im = Y[200 + 1] * (double) -0.195090322016128; T2re = Y[200 + 1] * (double) +0.980785280403230; T2im = Y[200] * (double) +0.980785280403230; T1re -= T2re; T1im += T2im; T2re = Y[72] - T1re; T2im = Y[72 + 1] - T1im; Y[72] = Y[72] + T1re; Y[72 + 1] = Y[72 + 1] + T1im; Y[200] = T2re; Y[200 + 1] = T2im; }; # 3161 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[202] * (double) -0.242980179903264; T1im = Y[202 + 1] * (double) -0.242980179903264; T2re = Y[202 + 1] * (double) +0.970031253194544; T2im = Y[202] * (double) +0.970031253194544; T1re -= T2re; T1im += T2im; T2re = Y[74] - T1re; T2im = Y[74 + 1] - T1im; Y[74] = Y[74] + T1re; Y[74 + 1] = Y[74 + 1] + T1im; Y[202] = T2re; Y[202 + 1] = T2im; }; # 3170 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[204] * (double) -0.290284677254462; T1im = Y[204 + 1] * (double) -0.290284677254462; T2re = Y[204 + 1] * (double) +0.956940335732209; T2im = Y[204] * (double) +0.956940335732209; T1re -= T2re; T1im += T2im; T2re = Y[76] - T1re; T2im = Y[76 + 1] - T1im; Y[76] = Y[76] + T1re; Y[76 + 1] = Y[76 + 1] + T1im; Y[204] = T2re; Y[204 + 1] = T2im; }; # 3179 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[206] * (double) -0.336889853392220; T1im = Y[206 + 1] * (double) -0.336889853392220; T2re = Y[206 + 1] * (double) +0.941544065183021; T2im = Y[206] * (double) +0.941544065183021; T1re -= T2re; T1im += T2im; T2re = Y[78] - T1re; T2im = Y[78 + 1] - T1im; Y[78] = Y[78] + T1re; Y[78 + 1] = Y[78 + 1] + T1im; Y[206] = T2re; Y[206 + 1] = T2im; }; # 3188 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[208] * (double) -0.382683432365090; T1im = Y[208 + 1] * (double) -0.382683432365090; T2re = Y[208 + 1] * (double) +0.923879532511287; T2im = Y[208] * (double) +0.923879532511287; T1re -= T2re; T1im += T2im; T2re = Y[80] - T1re; T2im = Y[80 + 1] - T1im; Y[80] = Y[80] + T1re; Y[80 + 1] = Y[80 + 1] + T1im; Y[208] = T2re; Y[208 + 1] = T2im; }; # 3197 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[210] * (double) -0.427555093430282; T1im = Y[210 + 1] * (double) -0.427555093430282; T2re = Y[210 + 1] * (double) +0.903989293123443; T2im = Y[210] * (double) +0.903989293123443; T1re -= T2re; T1im += T2im; T2re = Y[82] - T1re; T2im = Y[82 + 1] - T1im; Y[82] = Y[82] + T1re; Y[82 + 1] = Y[82 + 1] + T1im; Y[210] = T2re; Y[210 + 1] = T2im; }; # 3206 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[212] * (double) -0.471396736825998; T1im = Y[212 + 1] * (double) -0.471396736825998; T2re = Y[212 + 1] * (double) +0.881921264348355; T2im = Y[212] * (double) +0.881921264348355; T1re -= T2re; T1im += T2im; T2re = Y[84] - T1re; T2im = Y[84 + 1] - T1im; Y[84] = Y[84] + T1re; Y[84 + 1] = Y[84 + 1] + T1im; Y[212] = T2re; Y[212 + 1] = T2im; }; # 3215 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[214] * (double) -0.514102744193222; T1im = Y[214 + 1] * (double) -0.514102744193222; T2re = Y[214 + 1] * (double) +0.857728610000272; T2im = Y[214] * (double) +0.857728610000272; T1re -= T2re; T1im += T2im; T2re = Y[86] - T1re; T2im = Y[86 + 1] - T1im; Y[86] = Y[86] + T1re; Y[86 + 1] = Y[86 + 1] + T1im; Y[214] = T2re; Y[214 + 1] = T2im; }; # 3224 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[216] * (double) -0.555570233019602; T1im = Y[216 + 1] * (double) -0.555570233019602; T2re = Y[216 + 1] * (double) +0.831469612302545; T2im = Y[216] * (double) +0.831469612302545; T1re -= T2re; T1im += T2im; T2re = Y[88] - T1re; T2im = Y[88 + 1] - T1im; Y[88] = Y[88] + T1re; Y[88 + 1] = Y[88 + 1] + T1im; Y[216] = T2re; Y[216 + 1] = T2im; }; # 3233 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[218] * (double) -0.595699304492433; T1im = Y[218 + 1] * (double) -0.595699304492433; T2re = Y[218 + 1] * (double) +0.803207531480645; T2im = Y[218] * (double) +0.803207531480645; T1re -= T2re; T1im += T2im; T2re = Y[90] - T1re; T2im = Y[90 + 1] - T1im; Y[90] = Y[90] + T1re; Y[90 + 1] = Y[90 + 1] + T1im; Y[218] = T2re; Y[218 + 1] = T2im; }; # 3242 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[220] * (double) -0.634393284163645; T1im = Y[220 + 1] * (double) -0.634393284163645; T2re = Y[220 + 1] * (double) +0.773010453362737; T2im = Y[220] * (double) +0.773010453362737; T1re -= T2re; T1im += T2im; T2re = Y[92] - T1re; T2im = Y[92 + 1] - T1im; Y[92] = Y[92] + T1re; Y[92 + 1] = Y[92 + 1] + T1im; Y[220] = T2re; Y[220 + 1] = T2im; }; # 3251 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[222] * (double) -0.671558954847018; T1im = Y[222 + 1] * (double) -0.671558954847018; T2re = Y[222 + 1] * (double) +0.740951125354959; T2im = Y[222] * (double) +0.740951125354959; T1re -= T2re; T1im += T2im; T2re = Y[94] - T1re; T2im = Y[94 + 1] - T1im; Y[94] = Y[94] + T1re; Y[94 + 1] = Y[94 + 1] + T1im; Y[222] = T2re; Y[222 + 1] = T2im; }; # 3260 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[224] * (double) -0.707106781186547; T1im = Y[224 + 1] * (double) -0.707106781186547; T2re = T1im; T2im = T1re; T1re += T2re; T1im -= T2im; T2re = Y[96] - T1re; T2im = Y[96 + 1] - T1im; Y[96] = Y[96] + T1re; Y[96 + 1] = Y[96 + 1] + T1im; Y[224] = T2re; Y[224 + 1] = T2im; }; # 3269 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[226] * (double) -0.740951125354959; T1im = Y[226 + 1] * (double) -0.740951125354959; T2re = Y[226 + 1] * (double) +0.671558954847019; T2im = Y[226] * (double) +0.671558954847019; T1re -= T2re; T1im += T2im; T2re = Y[98] - T1re; T2im = Y[98 + 1] - T1im; Y[98] = Y[98] + T1re; Y[98 + 1] = Y[98 + 1] + T1im; Y[226] = T2re; Y[226 + 1] = T2im; }; # 3278 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[228] * (double) -0.773010453362737; T1im = Y[228 + 1] * (double) -0.773010453362737; T2re = Y[228 + 1] * (double) +0.634393284163645; T2im = Y[228] * (double) +0.634393284163645; T1re -= T2re; T1im += T2im; T2re = Y[100] - T1re; T2im = Y[100 + 1] - T1im; Y[100] = Y[100] + T1re; Y[100 + 1] = Y[100 + 1] + T1im; Y[228] = T2re; Y[228 + 1] = T2im; }; # 3287 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[230] * (double) -0.803207531480645; T1im = Y[230 + 1] * (double) -0.803207531480645; T2re = Y[230 + 1] * (double) +0.595699304492433; T2im = Y[230] * (double) +0.595699304492433; T1re -= T2re; T1im += T2im; T2re = Y[102] - T1re; T2im = Y[102 + 1] - T1im; Y[102] = Y[102] + T1re; Y[102 + 1] = Y[102 + 1] + T1im; Y[230] = T2re; Y[230 + 1] = T2im; }; # 3296 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[232] * (double) -0.831469612302545; T1im = Y[232 + 1] * (double) -0.831469612302545; T2re = Y[232 + 1] * (double) +0.555570233019602; T2im = Y[232] * (double) +0.555570233019602; T1re -= T2re; T1im += T2im; T2re = Y[104] - T1re; T2im = Y[104 + 1] - T1im; Y[104] = Y[104] + T1re; Y[104 + 1] = Y[104 + 1] + T1im; Y[232] = T2re; Y[232 + 1] = T2im; }; # 3305 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[234] * (double) -0.857728610000272; T1im = Y[234 + 1] * (double) -0.857728610000272; T2re = Y[234 + 1] * (double) +0.514102744193222; T2im = Y[234] * (double) +0.514102744193222; T1re -= T2re; T1im += T2im; T2re = Y[106] - T1re; T2im = Y[106 + 1] - T1im; Y[106] = Y[106] + T1re; Y[106 + 1] = Y[106 + 1] + T1im; Y[234] = T2re; Y[234 + 1] = T2im; }; # 3314 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[236] * (double) -0.881921264348355; T1im = Y[236 + 1] * (double) -0.881921264348355; T2re = Y[236 + 1] * (double) +0.471396736825998; T2im = Y[236] * (double) +0.471396736825998; T1re -= T2re; T1im += T2im; T2re = Y[108] - T1re; T2im = Y[108 + 1] - T1im; Y[108] = Y[108] + T1re; Y[108 + 1] = Y[108 + 1] + T1im; Y[236] = T2re; Y[236 + 1] = T2im; }; # 3323 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[238] * (double) -0.903989293123443; T1im = Y[238 + 1] * (double) -0.903989293123443; T2re = Y[238 + 1] * (double) +0.427555093430282; T2im = Y[238] * (double) +0.427555093430282; T1re -= T2re; T1im += T2im; T2re = Y[110] - T1re; T2im = Y[110 + 1] - T1im; Y[110] = Y[110] + T1re; Y[110 + 1] = Y[110 + 1] + T1im; Y[238] = T2re; Y[238 + 1] = T2im; }; # 3332 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[240] * (double) -0.923879532511287; T1im = Y[240 + 1] * (double) -0.923879532511287; T2re = Y[240 + 1] * (double) +0.382683432365090; T2im = Y[240] * (double) +0.382683432365090; T1re -= T2re; T1im += T2im; T2re = Y[112] - T1re; T2im = Y[112 + 1] - T1im; Y[112] = Y[112] + T1re; Y[112 + 1] = Y[112 + 1] + T1im; Y[240] = T2re; Y[240 + 1] = T2im; }; # 3341 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[242] * (double) -0.941544065183021; T1im = Y[242 + 1] * (double) -0.941544065183021; T2re = Y[242 + 1] * (double) +0.336889853392220; T2im = Y[242] * (double) +0.336889853392220; T1re -= T2re; T1im += T2im; T2re = Y[114] - T1re; T2im = Y[114 + 1] - T1im; Y[114] = Y[114] + T1re; Y[114 + 1] = Y[114 + 1] + T1im; Y[242] = T2re; Y[242 + 1] = T2im; }; # 3350 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[244] * (double) -0.956940335732209; T1im = Y[244 + 1] * (double) -0.956940335732209; T2re = Y[244 + 1] * (double) +0.290284677254462; T2im = Y[244] * (double) +0.290284677254462; T1re -= T2re; T1im += T2im; T2re = Y[116] - T1re; T2im = Y[116 + 1] - T1im; Y[116] = Y[116] + T1re; Y[116 + 1] = Y[116 + 1] + T1im; Y[244] = T2re; Y[244 + 1] = T2im; }; # 3359 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[246] * (double) -0.970031253194544; T1im = Y[246 + 1] * (double) -0.970031253194544; T2re = Y[246 + 1] * (double) +0.242980179903264; T2im = Y[246] * (double) +0.242980179903264; T1re -= T2re; T1im += T2im; T2re = Y[118] - T1re; T2im = Y[118 + 1] - T1im; Y[118] = Y[118] + T1re; Y[118 + 1] = Y[118 + 1] + T1im; Y[246] = T2re; Y[246 + 1] = T2im; }; # 3368 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[248] * (double) -0.980785280403230; T1im = Y[248 + 1] * (double) -0.980785280403230; T2re = Y[248 + 1] * (double) +0.195090322016129; T2im = Y[248] * (double) +0.195090322016129; T1re -= T2re; T1im += T2im; T2re = Y[120] - T1re; T2im = Y[120 + 1] - T1im; Y[120] = Y[120] + T1re; Y[120 + 1] = Y[120 + 1] + T1im; Y[248] = T2re; Y[248 + 1] = T2im; }; # 3377 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[250] * (double) -0.989176509964781; T1im = Y[250 + 1] * (double) -0.989176509964781; T2re = Y[250 + 1] * (double) +0.146730474455362; T2im = Y[250] * (double) +0.146730474455362; T1re -= T2re; T1im += T2im; T2re = Y[122] - T1re; T2im = Y[122 + 1] - T1im; Y[122] = Y[122] + T1re; Y[122 + 1] = Y[122 + 1] + T1im; Y[250] = T2re; Y[250 + 1] = T2im; }; # 3386 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[252] * (double) -0.995184726672197; T1im = Y[252 + 1] * (double) -0.995184726672197; T2re = Y[252 + 1] * (double) +0.098017140329561; T2im = Y[252] * (double) +0.098017140329561; T1re -= T2re; T1im += T2im; T2re = Y[124] - T1re; T2im = Y[124 + 1] - T1im; Y[124] = Y[124] + T1re; Y[124 + 1] = Y[124 + 1] + T1im; Y[252] = T2re; Y[252 + 1] = T2im; }; # 3395 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[254] * (double) -0.998795456205172; T1im = Y[254 + 1] * (double) -0.998795456205172; T2re = Y[254 + 1] * (double) +0.049067674327418; T2im = Y[254] * (double) +0.049067674327418; T1re -= T2re; T1im += T2im; T2re = Y[126] - T1re; T2im = Y[126 + 1] - T1im; Y[126] = Y[126] + T1re; Y[126 + 1] = Y[126 + 1] + T1im; Y[254] = T2re; Y[254 + 1] = T2im; }; # 3404 "gslfft.c" } static void gsl_power2_fft128analysis (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; bitreverse_fft2analysis (128, X, Y); # 3434 "gslfft.c" gsl_power2_fft128analysis_skip2 (X, Y); } static void gsl_power2_fft256analysis_skip2 (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; # 3464 "gslfft.c" gsl_power2_fft128analysis_skip2 (X, Y); gsl_power2_fft128analysis_skip2 (X + 256, Y + 256); { static const double Wconst256[] = { +0.999698818696204, +0.024541228522912, +0.998795456205172, +0.049067674327418, +0.997290456678690, +0.073564563599667, +0.995184726672197, +0.098017140329561, +0.992479534598710, +0.122410675199216, +0.989176509964781, +0.146730474455362, +0.985277642388941, +0.170961888760301, +0.980785280403230, +0.195090322016128, +0.975702130038529, +0.219101240156870, +0.970031253194544, +0.242980179903264, +0.963776065795440, +0.266712757474898, +0.956940335732209, +0.290284677254462, +0.949528180593037, +0.313681740398892, +0.941544065183021, +0.336889853392220, +0.932992798834739, +0.359895036534988, +0.923879532511287, +0.382683432365090, +0.914209755703531, +0.405241314004990, +0.903989293123443, +0.427555093430282, +0.893224301195515, +0.449611329654607, +0.881921264348355, +0.471396736825998, +0.870086991108711, +0.492898192229784, +0.857728610000272, +0.514102744193222, +0.844853565249707, +0.534997619887097, +0.831469612302545, +0.555570233019602, +0.817584813151584, +0.575808191417845, +0.803207531480645, +0.595699304492433, +0.788346427626606, +0.615231590580627, +0.773010453362737, +0.634393284163645, +0.757208846506485, +0.653172842953777, +0.740951125354959, +0.671558954847018, +0.724247082951467, +0.689540544737067, +0.707106781186548, +0.707106781186547, +0.689540544737067, +0.724247082951467, +0.671558954847018, +0.740951125354959, +0.653172842953777, +0.757208846506484, +0.634393284163645, +0.773010453362737, +0.615231590580627, +0.788346427626606, +0.595699304492433, +0.803207531480645, +0.575808191417845, +0.817584813151584, +0.555570233019602, +0.831469612302545, +0.534997619887097, +0.844853565249707, +0.514102744193222, +0.857728610000272, +0.492898192229784, +0.870086991108711, +0.471396736825998, +0.881921264348355, +0.449611329654607, +0.893224301195515, +0.427555093430282, +0.903989293123443, +0.405241314004990, +0.914209755703531, +0.382683432365090, +0.923879532511287, +0.359895036534988, +0.932992798834739, +0.336889853392220, +0.941544065183021, +0.313681740398892, +0.949528180593037, +0.290284677254462, +0.956940335732209, +0.266712757474898, +0.963776065795440, +0.242980179903264, +0.970031253194544, +0.219101240156870, +0.975702130038529, +0.195090322016128, +0.980785280403230, +0.170961888760301, +0.985277642388941, +0.146730474455362, +0.989176509964781, +0.122410675199216, +0.992479534598710, +0.098017140329561, +0.995184726672197, +0.073564563599667, +0.997290456678690, +0.049067674327418, +0.998795456205172, +0.024541228522912, +0.999698818696204, }; const double *W = Wconst256 - 2; double *Z = Y + 128; for (offset = 0; offset < 512; offset += 512) { { register double T2re, T2im; T2re = Y[offset] - Y[offset + 256]; T2im = Y[offset + 1] - Y[offset + 256 + 1]; Y[offset] = Y[offset] + Y[offset + 256]; Y[offset + 1] = Y[offset + 1] + Y[offset + 256 + 1]; Y[offset + 256] = T2re; Y[offset + 256 + 1] = T2im; }; { register double T2re, T2im; T2re = Z[offset] + Z[offset + 256 + 1]; T2im = Z[offset + 1] - Z[offset + 256]; Z[offset] = Z[offset] - Z[offset + 256 + 1]; Z[offset + 1] = Z[offset + 1] + Z[offset + 256]; Z[offset + 256] = T2re; Z[offset + 256 + 1] = T2im; }; } for (butterfly = 2; butterfly < 128; butterfly += 2) { Wre = W[butterfly]; Wim = W[butterfly + 1]; for (block = 0; block < 512; block += 512) { offset = butterfly + block; { register double T1re, T1im, T2re, T2im; T1re = Y[offset + 256] * Wre; T1im = Y[offset + 256 + 1] * Wre; T2re = Y[offset + 256 + 1] * Wim; T2im = Y[offset + 256] * Wim; T1re -= T2re; T1im += T2im; T2re = Y[offset] - T1re; T2im = Y[offset + 1] - T1im; Y[offset] = Y[offset] + T1re; Y[offset + 1] = Y[offset + 1] + T1im; Y[offset + 256] = T2re; Y[offset + 256 + 1] = T2im; }; { register double T1re, T1im, T2re, T2im; T1re = Z[offset + 256] * Wim; T1im = Z[offset + 256 + 1] * Wim; T2re = Z[offset + 256 + 1] * Wre; T2im = Z[offset + 256] * Wre; T1re += T2re; T1im -= T2im; T2re = Z[offset] + T1re; T2im = Z[offset + 1] + T1im; Z[offset] = Z[offset] - T1re; Z[offset + 1] = Z[offset + 1] - T1im; Z[offset + 256] = T2re; Z[offset + 256 + 1] = T2im; }; } } } } static void gsl_power2_fft256analysis (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; bitreverse_fft2analysis (256, X, Y); # 3597 "gslfft.c" gsl_power2_fft256analysis_skip2 (X, Y); } static void gsl_power2_fft512analysis_skip2 (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; # 3627 "gslfft.c" gsl_power2_fft128analysis_skip2 (X, Y); gsl_power2_fft128analysis_skip2 (X + 256, Y + 256); gsl_power2_fft128analysis_skip2 (X + 512, Y + 512); gsl_power2_fft128analysis_skip2 (X + 768, Y + 768); { static const double Wconst256[] = { +0.999698818696204, +0.024541228522912, +0.998795456205172, +0.049067674327418, +0.997290456678690, +0.073564563599667, +0.995184726672197, +0.098017140329561, +0.992479534598710, +0.122410675199216, +0.989176509964781, +0.146730474455362, +0.985277642388941, +0.170961888760301, +0.980785280403230, +0.195090322016128, +0.975702130038529, +0.219101240156870, +0.970031253194544, +0.242980179903264, +0.963776065795440, +0.266712757474898, +0.956940335732209, +0.290284677254462, +0.949528180593037, +0.313681740398892, +0.941544065183021, +0.336889853392220, +0.932992798834739, +0.359895036534988, +0.923879532511287, +0.382683432365090, +0.914209755703531, +0.405241314004990, +0.903989293123443, +0.427555093430282, +0.893224301195515, +0.449611329654607, +0.881921264348355, +0.471396736825998, +0.870086991108711, +0.492898192229784, +0.857728610000272, +0.514102744193222, +0.844853565249707, +0.534997619887097, +0.831469612302545, +0.555570233019602, +0.817584813151584, +0.575808191417845, +0.803207531480645, +0.595699304492433, +0.788346427626606, +0.615231590580627, +0.773010453362737, +0.634393284163645, +0.757208846506485, +0.653172842953777, +0.740951125354959, +0.671558954847018, +0.724247082951467, +0.689540544737067, +0.707106781186548, +0.707106781186547, +0.689540544737067, +0.724247082951467, +0.671558954847018, +0.740951125354959, +0.653172842953777, +0.757208846506484, +0.634393284163645, +0.773010453362737, +0.615231590580627, +0.788346427626606, +0.595699304492433, +0.803207531480645, +0.575808191417845, +0.817584813151584, +0.555570233019602, +0.831469612302545, +0.534997619887097, +0.844853565249707, +0.514102744193222, +0.857728610000272, +0.492898192229784, +0.870086991108711, +0.471396736825998, +0.881921264348355, +0.449611329654607, +0.893224301195515, +0.427555093430282, +0.903989293123443, +0.405241314004990, +0.914209755703531, +0.382683432365090, +0.923879532511287, +0.359895036534988, +0.932992798834739, +0.336889853392220, +0.941544065183021, +0.313681740398892, +0.949528180593037, +0.290284677254462, +0.956940335732209, +0.266712757474898, +0.963776065795440, +0.242980179903264, +0.970031253194544, +0.219101240156870, +0.975702130038529, +0.195090322016128, +0.980785280403230, +0.170961888760301, +0.985277642388941, +0.146730474455362, +0.989176509964781, +0.122410675199216, +0.992479534598710, +0.098017140329561, +0.995184726672197, +0.073564563599667, +0.997290456678690, +0.049067674327418, +0.998795456205172, +0.024541228522912, +0.999698818696204, }; const double *W = Wconst256 - 2; double *Z = Y + 128; for (offset = 0; offset < 1024; offset += 512) { { register double T2re, T2im; T2re = Y[offset] - Y[offset + 256]; T2im = Y[offset + 1] - Y[offset + 256 + 1]; Y[offset] = Y[offset] + Y[offset + 256]; Y[offset + 1] = Y[offset + 1] + Y[offset + 256 + 1]; Y[offset + 256] = T2re; Y[offset + 256 + 1] = T2im; }; { register double T2re, T2im; T2re = Z[offset] + Z[offset + 256 + 1]; T2im = Z[offset + 1] - Z[offset + 256]; Z[offset] = Z[offset] - Z[offset + 256 + 1]; Z[offset + 1] = Z[offset + 1] + Z[offset + 256]; Z[offset + 256] = T2re; Z[offset + 256 + 1] = T2im; }; } for (butterfly = 2; butterfly < 128; butterfly += 2) { Wre = W[butterfly]; Wim = W[butterfly + 1]; for (block = 0; block < 1024; block += 512) { offset = butterfly + block; { register double T1re, T1im, T2re, T2im; T1re = Y[offset + 256] * Wre; T1im = Y[offset + 256 + 1] * Wre; T2re = Y[offset + 256 + 1] * Wim; T2im = Y[offset + 256] * Wim; T1re -= T2re; T1im += T2im; T2re = Y[offset] - T1re; T2im = Y[offset + 1] - T1im; Y[offset] = Y[offset] + T1re; Y[offset + 1] = Y[offset + 1] + T1im; Y[offset + 256] = T2re; Y[offset + 256 + 1] = T2im; }; { register double T1re, T1im, T2re, T2im; T1re = Z[offset + 256] * Wim; T1im = Z[offset + 256 + 1] * Wim; T2re = Z[offset + 256 + 1] * Wre; T2im = Z[offset + 256] * Wre; T1re += T2re; T1im -= T2im; T2re = Z[offset] + T1re; T2im = Z[offset + 1] + T1im; Z[offset] = Z[offset] - T1re; Z[offset + 1] = Z[offset + 1] - T1im; Z[offset + 256] = T2re; Z[offset + 256 + 1] = T2im; }; } } } { static const double Wconst512[] = { +0.999924701839145, +0.012271538285720, +0.999698818696204, +0.024541228522912, +0.999322384588350, +0.036807222941359, +0.998795456205172, +0.049067674327418, +0.998118112900149, +0.061320736302209, +0.997290456678690, +0.073564563599667, +0.996312612182778, +0.085797312344440, +0.995184726672197, +0.098017140329561, +0.993906970002356, +0.110222207293883, +0.992479534598710, +0.122410675199216, +0.990902635427780, +0.134580708507126, +0.989176509964781, +0.146730474455362, +0.987301418157858, +0.158858143333861, +0.985277642388941, +0.170961888760301, +0.983105487431216, +0.183039887955141, +0.980785280403230, +0.195090322016128, +0.978317370719628, +0.207111376192219, +0.975702130038529, +0.219101240156870, +0.972939952205560, +0.231058108280671, +0.970031253194544, +0.242980179903264, +0.966976471044852, +0.254865659604515, +0.963776065795440, +0.266712757474898, +0.960430519415566, +0.278519689385053, +0.956940335732209, +0.290284677254462, +0.953306040354194, +0.302005949319228, +0.949528180593037, +0.313681740398892, +0.945607325380521, +0.325310292162263, +0.941544065183021, +0.336889853392220, +0.937339011912575, +0.348418680249435, +0.932992798834739, +0.359895036534988, +0.928506080473216, +0.371317193951838, +0.923879532511287, +0.382683432365090, +0.919113851690058, +0.393992040061048, +0.914209755703531, +0.405241314004990, +0.909167983090522, +0.416429560097637, +0.903989293123443, +0.427555093430282, +0.898674465693954, +0.438616238538528, +0.893224301195515, +0.449611329654607, +0.887639620402854, +0.460538710958240, +0.881921264348355, +0.471396736825998, +0.876070094195407, +0.482183772079123, +0.870086991108711, +0.492898192229784, +0.863972856121587, +0.503538383725718, +0.857728610000272, +0.514102744193222, +0.851355193105265, +0.524589682678469, +0.844853565249707, +0.534997619887097, +0.838224705554838, +0.545324988422046, +0.831469612302545, +0.555570233019602, +0.824589302785025, +0.565731810783613, +0.817584813151584, +0.575808191417845, +0.810457198252595, +0.585797857456439, +0.803207531480645, +0.595699304492433, +0.795836904608884, +0.605511041404326, +0.788346427626606, +0.615231590580627, +0.780737228572094, +0.624859488142386, +0.773010453362737, +0.634393284163645, +0.765167265622459, +0.643831542889791, +0.757208846506485, +0.653172842953777, +0.749136394523459, +0.662415777590172, +0.740951125354959, +0.671558954847018, +0.732654271672413, +0.680600997795453, +0.724247082951467, +0.689540544737067, +0.715730825283819, +0.698376249408973, +0.707106781186548, +0.707106781186547, +0.698376249408973, +0.715730825283819, +0.689540544737067, +0.724247082951467, +0.680600997795453, +0.732654271672413, +0.671558954847018, +0.740951125354959, +0.662415777590172, +0.749136394523459, +0.653172842953777, +0.757208846506484, +0.643831542889791, +0.765167265622459, +0.634393284163645, +0.773010453362737, +0.624859488142386, +0.780737228572094, +0.615231590580627, +0.788346427626606, +0.605511041404326, +0.795836904608883, +0.595699304492433, +0.803207531480645, +0.585797857456439, +0.810457198252595, +0.575808191417845, +0.817584813151584, +0.565731810783613, +0.824589302785025, +0.555570233019602, +0.831469612302545, +0.545324988422046, +0.838224705554838, +0.534997619887097, +0.844853565249707, +0.524589682678469, +0.851355193105265, +0.514102744193222, +0.857728610000272, +0.503538383725718, +0.863972856121587, +0.492898192229784, +0.870086991108711, +0.482183772079123, +0.876070094195407, +0.471396736825998, +0.881921264348355, +0.460538710958240, +0.887639620402854, +0.449611329654607, +0.893224301195515, +0.438616238538528, +0.898674465693954, +0.427555093430282, +0.903989293123443, +0.416429560097637, +0.909167983090522, +0.405241314004990, +0.914209755703531, +0.393992040061048, +0.919113851690058, +0.382683432365090, +0.923879532511287, +0.371317193951838, +0.928506080473216, +0.359895036534988, +0.932992798834739, +0.348418680249435, +0.937339011912575, +0.336889853392220, +0.941544065183021, +0.325310292162263, +0.945607325380521, +0.313681740398892, +0.949528180593037, +0.302005949319228, +0.953306040354194, +0.290284677254462, +0.956940335732209, +0.278519689385053, +0.960430519415566, +0.266712757474898, +0.963776065795440, +0.254865659604515, +0.966976471044852, +0.242980179903264, +0.970031253194544, +0.231058108280671, +0.972939952205560, +0.219101240156870, +0.975702130038529, +0.207111376192219, +0.978317370719628, +0.195090322016128, +0.980785280403230, +0.183039887955141, +0.983105487431216, +0.170961888760301, +0.985277642388941, +0.158858143333861, +0.987301418157858, +0.146730474455362, +0.989176509964781, +0.134580708507126, +0.990902635427780, +0.122410675199216, +0.992479534598710, +0.110222207293883, +0.993906970002356, +0.098017140329561, +0.995184726672197, +0.085797312344440, +0.996312612182778, +0.073564563599667, +0.997290456678690, +0.061320736302209, +0.998118112900149, +0.049067674327418, +0.998795456205172, +0.036807222941359, +0.999322384588350, +0.024541228522912, +0.999698818696204, +0.012271538285720, +0.999924701839145, }; const double *W = Wconst512 - 2; double *Z = Y + 256; for (offset = 0; offset < 1024; offset += 1024) { { register double T2re, T2im; T2re = Y[offset] - Y[offset + 512]; T2im = Y[offset + 1] - Y[offset + 512 + 1]; Y[offset] = Y[offset] + Y[offset + 512]; Y[offset + 1] = Y[offset + 1] + Y[offset + 512 + 1]; Y[offset + 512] = T2re; Y[offset + 512 + 1] = T2im; }; { register double T2re, T2im; T2re = Z[offset] + Z[offset + 512 + 1]; T2im = Z[offset + 1] - Z[offset + 512]; Z[offset] = Z[offset] - Z[offset + 512 + 1]; Z[offset + 1] = Z[offset + 1] + Z[offset + 512]; Z[offset + 512] = T2re; Z[offset + 512 + 1] = T2im; }; } for (butterfly = 2; butterfly < 256; butterfly += 2) { Wre = W[butterfly]; Wim = W[butterfly + 1]; for (block = 0; block < 1024; block += 1024) { offset = butterfly + block; { register double T1re, T1im, T2re, T2im; T1re = Y[offset + 512] * Wre; T1im = Y[offset + 512 + 1] * Wre; T2re = Y[offset + 512 + 1] * Wim; T2im = Y[offset + 512] * Wim; T1re -= T2re; T1im += T2im; T2re = Y[offset] - T1re; T2im = Y[offset + 1] - T1im; Y[offset] = Y[offset] + T1re; Y[offset + 1] = Y[offset + 1] + T1im; Y[offset + 512] = T2re; Y[offset + 512 + 1] = T2im; }; { register double T1re, T1im, T2re, T2im; T1re = Z[offset + 512] * Wim; T1im = Z[offset + 512 + 1] * Wim; T2re = Z[offset + 512 + 1] * Wre; T2im = Z[offset + 512] * Wre; T1re += T2re; T1im -= T2im; T2re = Z[offset] + T1re; T2im = Z[offset + 1] + T1im; Z[offset] = Z[offset] - T1re; Z[offset + 1] = Z[offset + 1] - T1im; Z[offset + 512] = T2re; Z[offset + 512 + 1] = T2im; }; } } } } static void gsl_power2_fft512analysis (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; bitreverse_fft2analysis (512, X, Y); # 3927 "gslfft.c" gsl_power2_fft512analysis_skip2 (X, Y); } static void gsl_power2_fft1024analysis_skip2 (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; # 3961 "gslfft.c" gsl_power2_fft512analysis_skip2 (X, Y); gsl_power2_fft512analysis_skip2 (X + 1024, Y + 1024); for (offset = 0; offset < 2048; offset += 2048) { { register double T2re, T2im; T2re = Y[offset] - Y[offset + 1024]; T2im = Y[offset + 1] - Y[offset + 1024 + 1]; Y[offset] = Y[offset] + Y[offset + 1024]; Y[offset + 1] = Y[offset + 1] + Y[offset + 1024 + 1]; Y[offset + 1024] = T2re; Y[offset + 1024 + 1] = T2im; }; } Wre = +0.999981175282601; Wim = +0.006135884649154; for (butterfly = 2; butterfly < 512; butterfly += 2) { for (block = 0; block < 2048; block += 2048) { offset = butterfly + block; { register double T1re, T1im, T2re, T2im; T1re = Y[offset + 1024] * Wre; T1im = Y[offset + 1024 + 1] * Wre; T2re = Y[offset + 1024 + 1] * Wim; T2im = Y[offset + 1024] * Wim; T1re -= T2re; T1im += T2im; T2re = Y[offset] - T1re; T2im = Y[offset + 1] - T1im; Y[offset] = Y[offset] + T1re; Y[offset + 1] = Y[offset + 1] + T1im; Y[offset + 1024] = T2re; Y[offset + 1024 + 1] = T2im; }; } { register double T1re, T1im, T2re, T2im; T1re = Wre * -0.000018824717399; T1im = Wim * -0.000018824717399; T2re = Wim * +0.006135884649154; T2im = Wre * +0.006135884649154; T1re -= T2re; T1im += T2im; Wre += T1re; Wim += T1im; }; } for (offset = 512; offset < 2048; offset += 2048) { { register double T2re, T2im; T2re = Y[offset] + Y[offset + 1024 + 1]; T2im = Y[offset + 1] - Y[offset + 1024]; Y[offset] = Y[offset] - Y[offset + 1024 + 1]; Y[offset + 1] = Y[offset + 1] + Y[offset + 1024]; Y[offset + 1024] = T2re; Y[offset + 1024 + 1] = T2im; }; } Wre = -0.006135884649154; Wim = +0.999981175282601; for (butterfly = 514; butterfly < 1024; butterfly += 2) { for (block = 0; block < 2048; block += 2048) { offset = butterfly + block; { register double T1re, T1im, T2re, T2im; T1re = Y[offset + 1024] * Wre; T1im = Y[offset + 1024 + 1] * Wre; T2re = Y[offset + 1024 + 1] * Wim; T2im = Y[offset + 1024] * Wim; T1re -= T2re; T1im += T2im; T2re = Y[offset] - T1re; T2im = Y[offset + 1] - T1im; Y[offset] = Y[offset] + T1re; Y[offset + 1] = Y[offset + 1] + T1im; Y[offset + 1024] = T2re; Y[offset + 1024 + 1] = T2im; }; } { register double T1re, T1im, T2re, T2im; T1re = Wre * -0.000018824717399; T1im = Wim * -0.000018824717399; T2re = Wim * +0.006135884649154; T2im = Wre * +0.006135884649154; T1re -= T2re; T1im += T2im; Wre += T1re; Wim += T1im; }; } } static void gsl_power2_fft1024analysis (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; bitreverse_fft2analysis (1024, X, Y); # 4039 "gslfft.c" gsl_power2_fft1024analysis_skip2 (X, Y); } static void gsl_power2_fft2048analysis_skip2 (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; # 4073 "gslfft.c" gsl_power2_fft512analysis_skip2 (X, Y); gsl_power2_fft512analysis_skip2 (X + 1024, Y + 1024); gsl_power2_fft512analysis_skip2 (X + 2048, Y + 2048); gsl_power2_fft512analysis_skip2 (X + 3072, Y + 3072); for (offset = 0; offset < 4096; offset += 2048) { { register double T2re, T2im; T2re = Y[offset] - Y[offset + 1024]; T2im = Y[offset + 1] - Y[offset + 1024 + 1]; Y[offset] = Y[offset] + Y[offset + 1024]; Y[offset + 1] = Y[offset + 1] + Y[offset + 1024 + 1]; Y[offset + 1024] = T2re; Y[offset + 1024 + 1] = T2im; }; } Wre = +0.999981175282601; Wim = +0.006135884649154; for (butterfly = 2; butterfly < 512; butterfly += 2) { for (block = 0; block < 4096; block += 2048) { offset = butterfly + block; { register double T1re, T1im, T2re, T2im; T1re = Y[offset + 1024] * Wre; T1im = Y[offset + 1024 + 1] * Wre; T2re = Y[offset + 1024 + 1] * Wim; T2im = Y[offset + 1024] * Wim; T1re -= T2re; T1im += T2im; T2re = Y[offset] - T1re; T2im = Y[offset + 1] - T1im; Y[offset] = Y[offset] + T1re; Y[offset + 1] = Y[offset + 1] + T1im; Y[offset + 1024] = T2re; Y[offset + 1024 + 1] = T2im; }; } { register double T1re, T1im, T2re, T2im; T1re = Wre * -0.000018824717399; T1im = Wim * -0.000018824717399; T2re = Wim * +0.006135884649154; T2im = Wre * +0.006135884649154; T1re -= T2re; T1im += T2im; Wre += T1re; Wim += T1im; }; } for (offset = 512; offset < 4096; offset += 2048) { { register double T2re, T2im; T2re = Y[offset] + Y[offset + 1024 + 1]; T2im = Y[offset + 1] - Y[offset + 1024]; Y[offset] = Y[offset] - Y[offset + 1024 + 1]; Y[offset + 1] = Y[offset + 1] + Y[offset + 1024]; Y[offset + 1024] = T2re; Y[offset + 1024 + 1] = T2im; }; } Wre = -0.006135884649154; Wim = +0.999981175282601; for (butterfly = 514; butterfly < 1024; butterfly += 2) { for (block = 0; block < 4096; block += 2048) { offset = butterfly + block; { register double T1re, T1im, T2re, T2im; T1re = Y[offset + 1024] * Wre; T1im = Y[offset + 1024 + 1] * Wre; T2re = Y[offset + 1024 + 1] * Wim; T2im = Y[offset + 1024] * Wim; T1re -= T2re; T1im += T2im; T2re = Y[offset] - T1re; T2im = Y[offset + 1] - T1im; Y[offset] = Y[offset] + T1re; Y[offset + 1] = Y[offset + 1] + T1im; Y[offset + 1024] = T2re; Y[offset + 1024 + 1] = T2im; }; } { register double T1re, T1im, T2re, T2im; T1re = Wre * -0.000018824717399; T1im = Wim * -0.000018824717399; T2re = Wim * +0.006135884649154; T2im = Wre * +0.006135884649154; T1re -= T2re; T1im += T2im; Wre += T1re; Wim += T1im; }; } for (offset = 0; offset < 4096; offset += 4096) { { register double T2re, T2im; T2re = Y[offset] - Y[offset + 2048]; T2im = Y[offset + 1] - Y[offset + 2048 + 1]; Y[offset] = Y[offset] + Y[offset + 2048]; Y[offset + 1] = Y[offset + 1] + Y[offset + 2048 + 1]; Y[offset + 2048] = T2re; Y[offset + 2048 + 1] = T2im; }; } Wre = +0.999995293809576; Wim = +0.003067956762966; for (butterfly = 2; butterfly < 1024; butterfly += 2) { for (block = 0; block < 4096; block += 4096) { offset = butterfly + block; { register double T1re, T1im, T2re, T2im; T1re = Y[offset + 2048] * Wre; T1im = Y[offset + 2048 + 1] * Wre; T2re = Y[offset + 2048 + 1] * Wim; T2im = Y[offset + 2048] * Wim; T1re -= T2re; T1im += T2im; T2re = Y[offset] - T1re; T2im = Y[offset + 1] - T1im; Y[offset] = Y[offset] + T1re; Y[offset + 1] = Y[offset + 1] + T1im; Y[offset + 2048] = T2re; Y[offset + 2048 + 1] = T2im; }; } { register double T1re, T1im, T2re, T2im; T1re = Wre * -0.000004706190424; T1im = Wim * -0.000004706190424; T2re = Wim * +0.003067956762966; T2im = Wre * +0.003067956762966; T1re -= T2re; T1im += T2im; Wre += T1re; Wim += T1im; }; } for (offset = 1024; offset < 4096; offset += 4096) { { register double T2re, T2im; T2re = Y[offset] + Y[offset + 2048 + 1]; T2im = Y[offset + 1] - Y[offset + 2048]; Y[offset] = Y[offset] - Y[offset + 2048 + 1]; Y[offset + 1] = Y[offset + 1] + Y[offset + 2048]; Y[offset + 2048] = T2re; Y[offset + 2048 + 1] = T2im; }; } Wre = -0.003067956762966; Wim = +0.999995293809576; for (butterfly = 1026; butterfly < 2048; butterfly += 2) { for (block = 0; block < 4096; block += 4096) { offset = butterfly + block; { register double T1re, T1im, T2re, T2im; T1re = Y[offset + 2048] * Wre; T1im = Y[offset + 2048 + 1] * Wre; T2re = Y[offset + 2048 + 1] * Wim; T2im = Y[offset + 2048] * Wim; T1re -= T2re; T1im += T2im; T2re = Y[offset] - T1re; T2im = Y[offset + 1] - T1im; Y[offset] = Y[offset] + T1re; Y[offset + 1] = Y[offset + 1] + T1im; Y[offset + 2048] = T2re; Y[offset + 2048 + 1] = T2im; }; } { register double T1re, T1im, T2re, T2im; T1re = Wre * -0.000004706190424; T1im = Wim * -0.000004706190424; T2re = Wim * +0.003067956762966; T2im = Wre * +0.003067956762966; T1re -= T2re; T1im += T2im; Wre += T1re; Wim += T1im; }; } } static void gsl_power2_fft2048analysis (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; bitreverse_fft2analysis (2048, X, Y); # 4195 "gslfft.c" gsl_power2_fft2048analysis_skip2 (X, Y); } static void gsl_power2_fft4096analysis_skip2 (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; # 4233 "gslfft.c" gsl_power2_fft2048analysis_skip2 (X, Y); gsl_power2_fft2048analysis_skip2 (X + 4096, Y + 4096); for (offset = 0; offset < 8192; offset += 8192) { { register double T2re, T2im; T2re = Y[offset] - Y[offset + 4096]; T2im = Y[offset + 1] - Y[offset + 4096 + 1]; Y[offset] = Y[offset] + Y[offset + 4096]; Y[offset + 1] = Y[offset + 1] + Y[offset + 4096 + 1]; Y[offset + 4096] = T2re; Y[offset + 4096 + 1] = T2im; }; } Wre = +0.999998823451702; Wim = +0.001533980186285; for (butterfly = 2; butterfly < 2048; butterfly += 2) { for (block = 0; block < 8192; block += 8192) { offset = butterfly + block; { register double T1re, T1im, T2re, T2im; T1re = Y[offset + 4096] * Wre; T1im = Y[offset + 4096 + 1] * Wre; T2re = Y[offset + 4096 + 1] * Wim; T2im = Y[offset + 4096] * Wim; T1re -= T2re; T1im += T2im; T2re = Y[offset] - T1re; T2im = Y[offset + 1] - T1im; Y[offset] = Y[offset] + T1re; Y[offset + 1] = Y[offset + 1] + T1im; Y[offset + 4096] = T2re; Y[offset + 4096 + 1] = T2im; }; } { register double T1re, T1im, T2re, T2im; T1re = Wre * -0.000001176548298; T1im = Wim * -0.000001176548298; T2re = Wim * +0.001533980186285; T2im = Wre * +0.001533980186285; T1re -= T2re; T1im += T2im; Wre += T1re; Wim += T1im; }; } for (offset = 2048; offset < 8192; offset += 8192) { { register double T2re, T2im; T2re = Y[offset] + Y[offset + 4096 + 1]; T2im = Y[offset + 1] - Y[offset + 4096]; Y[offset] = Y[offset] - Y[offset + 4096 + 1]; Y[offset + 1] = Y[offset + 1] + Y[offset + 4096]; Y[offset + 4096] = T2re; Y[offset + 4096 + 1] = T2im; }; } Wre = -0.001533980186285; Wim = +0.999998823451702; for (butterfly = 2050; butterfly < 4096; butterfly += 2) { for (block = 0; block < 8192; block += 8192) { offset = butterfly + block; { register double T1re, T1im, T2re, T2im; T1re = Y[offset + 4096] * Wre; T1im = Y[offset + 4096 + 1] * Wre; T2re = Y[offset + 4096 + 1] * Wim; T2im = Y[offset + 4096] * Wim; T1re -= T2re; T1im += T2im; T2re = Y[offset] - T1re; T2im = Y[offset + 1] - T1im; Y[offset] = Y[offset] + T1re; Y[offset + 1] = Y[offset + 1] + T1im; Y[offset + 4096] = T2re; Y[offset + 4096 + 1] = T2im; }; } { register double T1re, T1im, T2re, T2im; T1re = Wre * -0.000001176548298; T1im = Wim * -0.000001176548298; T2re = Wim * +0.001533980186285; T2im = Wre * +0.001533980186285; T1re -= T2re; T1im += T2im; Wre += T1re; Wim += T1im; }; } } static void gsl_power2_fft4096analysis (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; bitreverse_fft2analysis (4096, X, Y); # 4315 "gslfft.c" gsl_power2_fft4096analysis_skip2 (X, Y); } static void gsl_power2_fft8192analysis_skip2 (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; # 4355 "gslfft.c" gsl_power2_fft4096analysis_skip2 (X, Y); gsl_power2_fft4096analysis_skip2 (X + 8192, Y + 8192); for (offset = 0; offset < 16384; offset += 16384) { { register double T2re, T2im; T2re = Y[offset] - Y[offset + 8192]; T2im = Y[offset + 1] - Y[offset + 8192 + 1]; Y[offset] = Y[offset] + Y[offset + 8192]; Y[offset + 1] = Y[offset + 1] + Y[offset + 8192 + 1]; Y[offset + 8192] = T2re; Y[offset + 8192 + 1] = T2im; }; } Wre = +0.999999705862882; Wim = +0.000766990318743; for (butterfly = 2; butterfly < 4096; butterfly += 2) { for (block = 0; block < 16384; block += 16384) { offset = butterfly + block; { register double T1re, T1im, T2re, T2im; T1re = Y[offset + 8192] * Wre; T1im = Y[offset + 8192 + 1] * Wre; T2re = Y[offset + 8192 + 1] * Wim; T2im = Y[offset + 8192] * Wim; T1re -= T2re; T1im += T2im; T2re = Y[offset] - T1re; T2im = Y[offset + 1] - T1im; Y[offset] = Y[offset] + T1re; Y[offset + 1] = Y[offset + 1] + T1im; Y[offset + 8192] = T2re; Y[offset + 8192 + 1] = T2im; }; } { register double T1re, T1im, T2re, T2im; T1re = Wre * -0.000000294137118; T1im = Wim * -0.000000294137118; T2re = Wim * +0.000766990318743; T2im = Wre * +0.000766990318743; T1re -= T2re; T1im += T2im; Wre += T1re; Wim += T1im; }; } for (offset = 4096; offset < 16384; offset += 16384) { { register double T2re, T2im; T2re = Y[offset] + Y[offset + 8192 + 1]; T2im = Y[offset + 1] - Y[offset + 8192]; Y[offset] = Y[offset] - Y[offset + 8192 + 1]; Y[offset + 1] = Y[offset + 1] + Y[offset + 8192]; Y[offset + 8192] = T2re; Y[offset + 8192 + 1] = T2im; }; } Wre = -0.000766990318743; Wim = +0.999999705862882; for (butterfly = 4098; butterfly < 8192; butterfly += 2) { for (block = 0; block < 16384; block += 16384) { offset = butterfly + block; { register double T1re, T1im, T2re, T2im; T1re = Y[offset + 8192] * Wre; T1im = Y[offset + 8192 + 1] * Wre; T2re = Y[offset + 8192 + 1] * Wim; T2im = Y[offset + 8192] * Wim; T1re -= T2re; T1im += T2im; T2re = Y[offset] - T1re; T2im = Y[offset + 1] - T1im; Y[offset] = Y[offset] + T1re; Y[offset + 1] = Y[offset + 1] + T1im; Y[offset + 8192] = T2re; Y[offset + 8192 + 1] = T2im; }; } { register double T1re, T1im, T2re, T2im; T1re = Wre * -0.000000294137118; T1im = Wim * -0.000000294137118; T2re = Wim * +0.000766990318743; T2im = Wre * +0.000766990318743; T1re -= T2re; T1im += T2im; Wre += T1re; Wim += T1im; }; } } static void gsl_power2_fft8192analysis (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; bitreverse_fft2analysis (8192, X, Y); # 4439 "gslfft.c" gsl_power2_fft8192analysis_skip2 (X, Y); } static void gsl_power2_fft2synthesis (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; { register double T2re, T2im; T2re = X[0] - X[2]; T2im = X[0 + 1] - X[2 + 1]; Y[0] = X[0] + X[2]; Y[0 + 1] = X[0 + 1] + X[2 + 1]; Y[2] = T2re * 1.0 / (double) 2; Y[2 + 1] = T2im * 1.0 / (double) 2; Y[0] *= 1.0 / (double) 2; Y[0 + 1] *= 1.0 / (double) 2; }; } static void gsl_power2_fft4synthesis_skip2 (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; { register double T2re, T2im; T2re = Y[0] - Y[4]; T2im = Y[0 + 1] - Y[4 + 1]; Y[0] = Y[0] + Y[4]; Y[0 + 1] = Y[0 + 1] + Y[4 + 1]; Y[4] = T2re; Y[4 + 1] = T2im; }; # 4490 "gslfft.c" { register double T2re, T2im; T2re = Y[2] - Y[6 + 1]; T2im = Y[2 + 1] + Y[6]; Y[2] = Y[2] + Y[6 + 1]; Y[2 + 1] = Y[2 + 1] - Y[6]; Y[6] = T2re; Y[6 + 1] = T2im; }; # 4499 "gslfft.c" } static void gsl_power2_fft4synthesis (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; { register double T2re, T2im; T2re = X[0] - X[4]; T2im = X[0 + 1] - X[4 + 1]; Y[0] = X[0] + X[4]; Y[0 + 1] = X[0 + 1] + X[4 + 1]; Y[2] = T2re * 1.0 / (double) 4; Y[2 + 1] = T2im * 1.0 / (double) 4; Y[0] *= 1.0 / (double) 4; Y[0 + 1] *= 1.0 / (double) 4; }; { register double T2re, T2im; T2re = X[2] - X[6]; T2im = X[2 + 1] - X[6 + 1]; Y[4] = X[2] + X[6]; Y[4 + 1] = X[2 + 1] + X[6 + 1]; Y[6] = T2re * 1.0 / (double) 4; Y[6 + 1] = T2im * 1.0 / (double) 4; Y[4] *= 1.0 / (double) 4; Y[4 + 1] *= 1.0 / (double) 4; }; gsl_power2_fft4synthesis_skip2 (X, Y); } static void gsl_power2_fft8synthesis_skip2 (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; { register double T2re, T2im; T2re = Y[0] - Y[4]; T2im = Y[0 + 1] - Y[4 + 1]; Y[0] = Y[0] + Y[4]; Y[0 + 1] = Y[0 + 1] + Y[4 + 1]; Y[4] = T2re; Y[4 + 1] = T2im; }; # 4557 "gslfft.c" { register double T2re, T2im; T2re = Y[8] - Y[12]; T2im = Y[8 + 1] - Y[12 + 1]; Y[8] = Y[8] + Y[12]; Y[8 + 1] = Y[8 + 1] + Y[12 + 1]; Y[12] = T2re; Y[12 + 1] = T2im; }; # 4566 "gslfft.c" { register double T2re, T2im; T2re = Y[2] - Y[6 + 1]; T2im = Y[2 + 1] + Y[6]; Y[2] = Y[2] + Y[6 + 1]; Y[2 + 1] = Y[2 + 1] - Y[6]; Y[6] = T2re; Y[6 + 1] = T2im; }; # 4575 "gslfft.c" { register double T2re, T2im; T2re = Y[10] - Y[14 + 1]; T2im = Y[10 + 1] + Y[14]; Y[10] = Y[10] + Y[14 + 1]; Y[10 + 1] = Y[10 + 1] - Y[14]; Y[14] = T2re; Y[14 + 1] = T2im; }; # 4586 "gslfft.c" { register double T2re, T2im; T2re = Y[0] - Y[8]; T2im = Y[0 + 1] - Y[8 + 1]; Y[0] = Y[0] + Y[8]; Y[0 + 1] = Y[0 + 1] + Y[8 + 1]; Y[8] = T2re; Y[8 + 1] = T2im; }; # 4595 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[10] * (double) +0.707106781186548; T1im = Y[10 + 1] * (double) +0.707106781186548; T2re = T1im; T2im = T1re; T1re += T2re; T1im -= T2im; T2re = Y[2] - T1re; T2im = Y[2 + 1] - T1im; Y[2] = Y[2] + T1re; Y[2 + 1] = Y[2 + 1] + T1im; Y[10] = T2re; Y[10 + 1] = T2im; }; # 4604 "gslfft.c" { register double T2re, T2im; T2re = Y[4] - Y[12 + 1]; T2im = Y[4 + 1] + Y[12]; Y[4] = Y[4] + Y[12 + 1]; Y[4 + 1] = Y[4 + 1] - Y[12]; Y[12] = T2re; Y[12 + 1] = T2im; }; # 4613 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[14] * (double) -0.707106781186547; T1im = Y[14 + 1] * (double) -0.707106781186547; T2re = T1im; T2im = T1re; T1re -= T2re; T1im += T2im; T2re = Y[6] - T1re; T2im = Y[6 + 1] - T1im; Y[6] = Y[6] + T1re; Y[6 + 1] = Y[6 + 1] + T1im; Y[14] = T2re; Y[14 + 1] = T2im; }; # 4622 "gslfft.c" } static void gsl_power2_fft8synthesis (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; { register double T2re, T2im; T2re = X[0] - X[8]; T2im = X[0 + 1] - X[8 + 1]; Y[0] = X[0] + X[8]; Y[0 + 1] = X[0 + 1] + X[8 + 1]; Y[2] = T2re * 1.0 / (double) 8; Y[2 + 1] = T2im * 1.0 / (double) 8; Y[0] *= 1.0 / (double) 8; Y[0 + 1] *= 1.0 / (double) 8; }; { register double T2re, T2im; T2re = X[4] - X[12]; T2im = X[4 + 1] - X[12 + 1]; Y[4] = X[4] + X[12]; Y[4 + 1] = X[4 + 1] + X[12 + 1]; Y[6] = T2re * 1.0 / (double) 8; Y[6 + 1] = T2im * 1.0 / (double) 8; Y[4] *= 1.0 / (double) 8; Y[4 + 1] *= 1.0 / (double) 8; }; { register double T2re, T2im; T2re = X[2] - X[10]; T2im = X[2 + 1] - X[10 + 1]; Y[8] = X[2] + X[10]; Y[8 + 1] = X[2 + 1] + X[10 + 1]; Y[10] = T2re * 1.0 / (double) 8; Y[10 + 1] = T2im * 1.0 / (double) 8; Y[8] *= 1.0 / (double) 8; Y[8 + 1] *= 1.0 / (double) 8; }; { register double T2re, T2im; T2re = X[6] - X[14]; T2im = X[6 + 1] - X[14 + 1]; Y[12] = X[6] + X[14]; Y[12 + 1] = X[6 + 1] + X[14 + 1]; Y[14] = T2re * 1.0 / (double) 8; Y[14 + 1] = T2im * 1.0 / (double) 8; Y[12] *= 1.0 / (double) 8; Y[12 + 1] *= 1.0 / (double) 8; }; # 4663 "gslfft.c" gsl_power2_fft8synthesis_skip2 (X, Y); } static void gsl_power2_fft16synthesis_skip2 (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; { register double T2re, T2im; T2re = Y[0] - Y[4]; T2im = Y[0 + 1] - Y[4 + 1]; Y[0] = Y[0] + Y[4]; Y[0 + 1] = Y[0 + 1] + Y[4 + 1]; Y[4] = T2re; Y[4 + 1] = T2im; }; # 4692 "gslfft.c" { register double T2re, T2im; T2re = Y[8] - Y[12]; T2im = Y[8 + 1] - Y[12 + 1]; Y[8] = Y[8] + Y[12]; Y[8 + 1] = Y[8 + 1] + Y[12 + 1]; Y[12] = T2re; Y[12 + 1] = T2im; }; # 4701 "gslfft.c" { register double T2re, T2im; T2re = Y[16] - Y[20]; T2im = Y[16 + 1] - Y[20 + 1]; Y[16] = Y[16] + Y[20]; Y[16 + 1] = Y[16 + 1] + Y[20 + 1]; Y[20] = T2re; Y[20 + 1] = T2im; }; # 4710 "gslfft.c" { register double T2re, T2im; T2re = Y[24] - Y[28]; T2im = Y[24 + 1] - Y[28 + 1]; Y[24] = Y[24] + Y[28]; Y[24 + 1] = Y[24 + 1] + Y[28 + 1]; Y[28] = T2re; Y[28 + 1] = T2im; }; # 4719 "gslfft.c" { register double T2re, T2im; T2re = Y[2] - Y[6 + 1]; T2im = Y[2 + 1] + Y[6]; Y[2] = Y[2] + Y[6 + 1]; Y[2 + 1] = Y[2 + 1] - Y[6]; Y[6] = T2re; Y[6 + 1] = T2im; }; # 4728 "gslfft.c" { register double T2re, T2im; T2re = Y[10] - Y[14 + 1]; T2im = Y[10 + 1] + Y[14]; Y[10] = Y[10] + Y[14 + 1]; Y[10 + 1] = Y[10 + 1] - Y[14]; Y[14] = T2re; Y[14 + 1] = T2im; }; # 4737 "gslfft.c" { register double T2re, T2im; T2re = Y[18] - Y[22 + 1]; T2im = Y[18 + 1] + Y[22]; Y[18] = Y[18] + Y[22 + 1]; Y[18 + 1] = Y[18 + 1] - Y[22]; Y[22] = T2re; Y[22 + 1] = T2im; }; # 4746 "gslfft.c" { register double T2re, T2im; T2re = Y[26] - Y[30 + 1]; T2im = Y[26 + 1] + Y[30]; Y[26] = Y[26] + Y[30 + 1]; Y[26 + 1] = Y[26 + 1] - Y[30]; Y[30] = T2re; Y[30 + 1] = T2im; }; # 4757 "gslfft.c" { register double T2re, T2im; T2re = Y[0] - Y[8]; T2im = Y[0 + 1] - Y[8 + 1]; Y[0] = Y[0] + Y[8]; Y[0 + 1] = Y[0 + 1] + Y[8 + 1]; Y[8] = T2re; Y[8 + 1] = T2im; }; # 4766 "gslfft.c" { register double T2re, T2im; T2re = Y[16] - Y[24]; T2im = Y[16 + 1] - Y[24 + 1]; Y[16] = Y[16] + Y[24]; Y[16 + 1] = Y[16 + 1] + Y[24 + 1]; Y[24] = T2re; Y[24 + 1] = T2im; }; # 4775 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[10] * (double) +0.707106781186548; T1im = Y[10 + 1] * (double) +0.707106781186548; T2re = T1im; T2im = T1re; T1re += T2re; T1im -= T2im; T2re = Y[2] - T1re; T2im = Y[2 + 1] - T1im; Y[2] = Y[2] + T1re; Y[2 + 1] = Y[2 + 1] + T1im; Y[10] = T2re; Y[10 + 1] = T2im; }; # 4784 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[26] * (double) +0.707106781186548; T1im = Y[26 + 1] * (double) +0.707106781186548; T2re = T1im; T2im = T1re; T1re += T2re; T1im -= T2im; T2re = Y[18] - T1re; T2im = Y[18 + 1] - T1im; Y[18] = Y[18] + T1re; Y[18 + 1] = Y[18 + 1] + T1im; Y[26] = T2re; Y[26 + 1] = T2im; }; # 4793 "gslfft.c" { register double T2re, T2im; T2re = Y[4] - Y[12 + 1]; T2im = Y[4 + 1] + Y[12]; Y[4] = Y[4] + Y[12 + 1]; Y[4 + 1] = Y[4 + 1] - Y[12]; Y[12] = T2re; Y[12 + 1] = T2im; }; # 4802 "gslfft.c" { register double T2re, T2im; T2re = Y[20] - Y[28 + 1]; T2im = Y[20 + 1] + Y[28]; Y[20] = Y[20] + Y[28 + 1]; Y[20 + 1] = Y[20 + 1] - Y[28]; Y[28] = T2re; Y[28 + 1] = T2im; }; # 4811 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[14] * (double) -0.707106781186547; T1im = Y[14 + 1] * (double) -0.707106781186547; T2re = T1im; T2im = T1re; T1re -= T2re; T1im += T2im; T2re = Y[6] - T1re; T2im = Y[6 + 1] - T1im; Y[6] = Y[6] + T1re; Y[6 + 1] = Y[6 + 1] + T1im; Y[14] = T2re; Y[14 + 1] = T2im; }; # 4820 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[30] * (double) -0.707106781186547; T1im = Y[30 + 1] * (double) -0.707106781186547; T2re = T1im; T2im = T1re; T1re -= T2re; T1im += T2im; T2re = Y[22] - T1re; T2im = Y[22 + 1] - T1im; Y[22] = Y[22] + T1re; Y[22 + 1] = Y[22 + 1] + T1im; Y[30] = T2re; Y[30 + 1] = T2im; }; # 4831 "gslfft.c" { register double T2re, T2im; T2re = Y[0] - Y[16]; T2im = Y[0 + 1] - Y[16 + 1]; Y[0] = Y[0] + Y[16]; Y[0 + 1] = Y[0 + 1] + Y[16 + 1]; Y[16] = T2re; Y[16 + 1] = T2im; }; # 4840 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[18] * (double) +0.923879532511287; T1im = Y[18 + 1] * (double) +0.923879532511287; T2re = Y[18 + 1] * (double) -0.382683432365090; T2im = Y[18] * (double) -0.382683432365090; T1re -= T2re; T1im += T2im; T2re = Y[2] - T1re; T2im = Y[2 + 1] - T1im; Y[2] = Y[2] + T1re; Y[2 + 1] = Y[2 + 1] + T1im; Y[18] = T2re; Y[18 + 1] = T2im; }; # 4849 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[20] * (double) +0.707106781186548; T1im = Y[20 + 1] * (double) +0.707106781186548; T2re = T1im; T2im = T1re; T1re += T2re; T1im -= T2im; T2re = Y[4] - T1re; T2im = Y[4 + 1] - T1im; Y[4] = Y[4] + T1re; Y[4 + 1] = Y[4 + 1] + T1im; Y[20] = T2re; Y[20 + 1] = T2im; }; # 4858 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[22] * (double) +0.382683432365090; T1im = Y[22 + 1] * (double) +0.382683432365090; T2re = Y[22 + 1] * (double) -0.923879532511287; T2im = Y[22] * (double) -0.923879532511287; T1re -= T2re; T1im += T2im; T2re = Y[6] - T1re; T2im = Y[6 + 1] - T1im; Y[6] = Y[6] + T1re; Y[6 + 1] = Y[6 + 1] + T1im; Y[22] = T2re; Y[22 + 1] = T2im; }; # 4867 "gslfft.c" { register double T2re, T2im; T2re = Y[8] - Y[24 + 1]; T2im = Y[8 + 1] + Y[24]; Y[8] = Y[8] + Y[24 + 1]; Y[8 + 1] = Y[8 + 1] - Y[24]; Y[24] = T2re; Y[24 + 1] = T2im; }; # 4876 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[26] * (double) -0.382683432365090; T1im = Y[26 + 1] * (double) -0.382683432365090; T2re = Y[26 + 1] * (double) -0.923879532511287; T2im = Y[26] * (double) -0.923879532511287; T1re -= T2re; T1im += T2im; T2re = Y[10] - T1re; T2im = Y[10 + 1] - T1im; Y[10] = Y[10] + T1re; Y[10 + 1] = Y[10 + 1] + T1im; Y[26] = T2re; Y[26 + 1] = T2im; }; # 4885 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[28] * (double) -0.707106781186547; T1im = Y[28 + 1] * (double) -0.707106781186547; T2re = T1im; T2im = T1re; T1re -= T2re; T1im += T2im; T2re = Y[12] - T1re; T2im = Y[12 + 1] - T1im; Y[12] = Y[12] + T1re; Y[12 + 1] = Y[12 + 1] + T1im; Y[28] = T2re; Y[28 + 1] = T2im; }; # 4894 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[30] * (double) -0.923879532511287; T1im = Y[30 + 1] * (double) -0.923879532511287; T2re = Y[30 + 1] * (double) -0.382683432365090; T2im = Y[30] * (double) -0.382683432365090; T1re -= T2re; T1im += T2im; T2re = Y[14] - T1re; T2im = Y[14 + 1] - T1im; Y[14] = Y[14] + T1re; Y[14 + 1] = Y[14 + 1] + T1im; Y[30] = T2re; Y[30 + 1] = T2im; }; # 4903 "gslfft.c" } static void gsl_power2_fft16synthesis (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; { register double T2re, T2im; T2re = X[0] - X[16]; T2im = X[0 + 1] - X[16 + 1]; Y[0] = X[0] + X[16]; Y[0 + 1] = X[0 + 1] + X[16 + 1]; Y[2] = T2re * 1.0 / (double) 16; Y[2 + 1] = T2im * 1.0 / (double) 16; Y[0] *= 1.0 / (double) 16; Y[0 + 1] *= 1.0 / (double) 16; }; { register double T2re, T2im; T2re = X[8] - X[24]; T2im = X[8 + 1] - X[24 + 1]; Y[4] = X[8] + X[24]; Y[4 + 1] = X[8 + 1] + X[24 + 1]; Y[6] = T2re * 1.0 / (double) 16; Y[6 + 1] = T2im * 1.0 / (double) 16; Y[4] *= 1.0 / (double) 16; Y[4 + 1] *= 1.0 / (double) 16; }; { register double T2re, T2im; T2re = X[4] - X[20]; T2im = X[4 + 1] - X[20 + 1]; Y[8] = X[4] + X[20]; Y[8 + 1] = X[4 + 1] + X[20 + 1]; Y[10] = T2re * 1.0 / (double) 16; Y[10 + 1] = T2im * 1.0 / (double) 16; Y[8] *= 1.0 / (double) 16; Y[8 + 1] *= 1.0 / (double) 16; }; { register double T2re, T2im; T2re = X[12] - X[28]; T2im = X[12 + 1] - X[28 + 1]; Y[12] = X[12] + X[28]; Y[12 + 1] = X[12 + 1] + X[28 + 1]; Y[14] = T2re * 1.0 / (double) 16; Y[14 + 1] = T2im * 1.0 / (double) 16; Y[12] *= 1.0 / (double) 16; Y[12 + 1] *= 1.0 / (double) 16; }; { register double T2re, T2im; T2re = X[2] - X[18]; T2im = X[2 + 1] - X[18 + 1]; Y[16] = X[2] + X[18]; Y[16 + 1] = X[2 + 1] + X[18 + 1]; Y[18] = T2re * 1.0 / (double) 16; Y[18 + 1] = T2im * 1.0 / (double) 16; Y[16] *= 1.0 / (double) 16; Y[16 + 1] *= 1.0 / (double) 16; }; { register double T2re, T2im; T2re = X[10] - X[26]; T2im = X[10 + 1] - X[26 + 1]; Y[20] = X[10] + X[26]; Y[20 + 1] = X[10 + 1] + X[26 + 1]; Y[22] = T2re * 1.0 / (double) 16; Y[22 + 1] = T2im * 1.0 / (double) 16; Y[20] *= 1.0 / (double) 16; Y[20 + 1] *= 1.0 / (double) 16; }; { register double T2re, T2im; T2re = X[6] - X[22]; T2im = X[6 + 1] - X[22 + 1]; Y[24] = X[6] + X[22]; Y[24 + 1] = X[6 + 1] + X[22 + 1]; Y[26] = T2re * 1.0 / (double) 16; Y[26 + 1] = T2im * 1.0 / (double) 16; Y[24] *= 1.0 / (double) 16; Y[24 + 1] *= 1.0 / (double) 16; }; { register double T2re, T2im; T2re = X[14] - X[30]; T2im = X[14 + 1] - X[30 + 1]; Y[28] = X[14] + X[30]; Y[28 + 1] = X[14 + 1] + X[30 + 1]; Y[30] = T2re * 1.0 / (double) 16; Y[30 + 1] = T2im * 1.0 / (double) 16; Y[28] *= 1.0 / (double) 16; Y[28 + 1] *= 1.0 / (double) 16; }; # 4966 "gslfft.c" gsl_power2_fft16synthesis_skip2 (X, Y); } static void gsl_power2_fft32synthesis_skip2 (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; { register double T2re, T2im; T2re = Y[0] - Y[4]; T2im = Y[0 + 1] - Y[4 + 1]; Y[0] = Y[0] + Y[4]; Y[0 + 1] = Y[0 + 1] + Y[4 + 1]; Y[4] = T2re; Y[4 + 1] = T2im; }; # 4995 "gslfft.c" { register double T2re, T2im; T2re = Y[8] - Y[12]; T2im = Y[8 + 1] - Y[12 + 1]; Y[8] = Y[8] + Y[12]; Y[8 + 1] = Y[8 + 1] + Y[12 + 1]; Y[12] = T2re; Y[12 + 1] = T2im; }; # 5004 "gslfft.c" { register double T2re, T2im; T2re = Y[16] - Y[20]; T2im = Y[16 + 1] - Y[20 + 1]; Y[16] = Y[16] + Y[20]; Y[16 + 1] = Y[16 + 1] + Y[20 + 1]; Y[20] = T2re; Y[20 + 1] = T2im; }; # 5013 "gslfft.c" { register double T2re, T2im; T2re = Y[24] - Y[28]; T2im = Y[24 + 1] - Y[28 + 1]; Y[24] = Y[24] + Y[28]; Y[24 + 1] = Y[24 + 1] + Y[28 + 1]; Y[28] = T2re; Y[28 + 1] = T2im; }; # 5022 "gslfft.c" { register double T2re, T2im; T2re = Y[32] - Y[36]; T2im = Y[32 + 1] - Y[36 + 1]; Y[32] = Y[32] + Y[36]; Y[32 + 1] = Y[32 + 1] + Y[36 + 1]; Y[36] = T2re; Y[36 + 1] = T2im; }; # 5031 "gslfft.c" { register double T2re, T2im; T2re = Y[40] - Y[44]; T2im = Y[40 + 1] - Y[44 + 1]; Y[40] = Y[40] + Y[44]; Y[40 + 1] = Y[40 + 1] + Y[44 + 1]; Y[44] = T2re; Y[44 + 1] = T2im; }; # 5040 "gslfft.c" { register double T2re, T2im; T2re = Y[48] - Y[52]; T2im = Y[48 + 1] - Y[52 + 1]; Y[48] = Y[48] + Y[52]; Y[48 + 1] = Y[48 + 1] + Y[52 + 1]; Y[52] = T2re; Y[52 + 1] = T2im; }; # 5049 "gslfft.c" { register double T2re, T2im; T2re = Y[56] - Y[60]; T2im = Y[56 + 1] - Y[60 + 1]; Y[56] = Y[56] + Y[60]; Y[56 + 1] = Y[56 + 1] + Y[60 + 1]; Y[60] = T2re; Y[60 + 1] = T2im; }; # 5058 "gslfft.c" { register double T2re, T2im; T2re = Y[2] - Y[6 + 1]; T2im = Y[2 + 1] + Y[6]; Y[2] = Y[2] + Y[6 + 1]; Y[2 + 1] = Y[2 + 1] - Y[6]; Y[6] = T2re; Y[6 + 1] = T2im; }; # 5067 "gslfft.c" { register double T2re, T2im; T2re = Y[10] - Y[14 + 1]; T2im = Y[10 + 1] + Y[14]; Y[10] = Y[10] + Y[14 + 1]; Y[10 + 1] = Y[10 + 1] - Y[14]; Y[14] = T2re; Y[14 + 1] = T2im; }; # 5076 "gslfft.c" { register double T2re, T2im; T2re = Y[18] - Y[22 + 1]; T2im = Y[18 + 1] + Y[22]; Y[18] = Y[18] + Y[22 + 1]; Y[18 + 1] = Y[18 + 1] - Y[22]; Y[22] = T2re; Y[22 + 1] = T2im; }; # 5085 "gslfft.c" { register double T2re, T2im; T2re = Y[26] - Y[30 + 1]; T2im = Y[26 + 1] + Y[30]; Y[26] = Y[26] + Y[30 + 1]; Y[26 + 1] = Y[26 + 1] - Y[30]; Y[30] = T2re; Y[30 + 1] = T2im; }; # 5094 "gslfft.c" { register double T2re, T2im; T2re = Y[34] - Y[38 + 1]; T2im = Y[34 + 1] + Y[38]; Y[34] = Y[34] + Y[38 + 1]; Y[34 + 1] = Y[34 + 1] - Y[38]; Y[38] = T2re; Y[38 + 1] = T2im; }; # 5103 "gslfft.c" { register double T2re, T2im; T2re = Y[42] - Y[46 + 1]; T2im = Y[42 + 1] + Y[46]; Y[42] = Y[42] + Y[46 + 1]; Y[42 + 1] = Y[42 + 1] - Y[46]; Y[46] = T2re; Y[46 + 1] = T2im; }; # 5112 "gslfft.c" { register double T2re, T2im; T2re = Y[50] - Y[54 + 1]; T2im = Y[50 + 1] + Y[54]; Y[50] = Y[50] + Y[54 + 1]; Y[50 + 1] = Y[50 + 1] - Y[54]; Y[54] = T2re; Y[54 + 1] = T2im; }; # 5121 "gslfft.c" { register double T2re, T2im; T2re = Y[58] - Y[62 + 1]; T2im = Y[58 + 1] + Y[62]; Y[58] = Y[58] + Y[62 + 1]; Y[58 + 1] = Y[58 + 1] - Y[62]; Y[62] = T2re; Y[62 + 1] = T2im; }; # 5132 "gslfft.c" { register double T2re, T2im; T2re = Y[0] - Y[8]; T2im = Y[0 + 1] - Y[8 + 1]; Y[0] = Y[0] + Y[8]; Y[0 + 1] = Y[0 + 1] + Y[8 + 1]; Y[8] = T2re; Y[8 + 1] = T2im; }; # 5141 "gslfft.c" { register double T2re, T2im; T2re = Y[16] - Y[24]; T2im = Y[16 + 1] - Y[24 + 1]; Y[16] = Y[16] + Y[24]; Y[16 + 1] = Y[16 + 1] + Y[24 + 1]; Y[24] = T2re; Y[24 + 1] = T2im; }; # 5150 "gslfft.c" { register double T2re, T2im; T2re = Y[32] - Y[40]; T2im = Y[32 + 1] - Y[40 + 1]; Y[32] = Y[32] + Y[40]; Y[32 + 1] = Y[32 + 1] + Y[40 + 1]; Y[40] = T2re; Y[40 + 1] = T2im; }; # 5159 "gslfft.c" { register double T2re, T2im; T2re = Y[48] - Y[56]; T2im = Y[48 + 1] - Y[56 + 1]; Y[48] = Y[48] + Y[56]; Y[48 + 1] = Y[48 + 1] + Y[56 + 1]; Y[56] = T2re; Y[56 + 1] = T2im; }; # 5168 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[10] * (double) +0.707106781186548; T1im = Y[10 + 1] * (double) +0.707106781186548; T2re = T1im; T2im = T1re; T1re += T2re; T1im -= T2im; T2re = Y[2] - T1re; T2im = Y[2 + 1] - T1im; Y[2] = Y[2] + T1re; Y[2 + 1] = Y[2 + 1] + T1im; Y[10] = T2re; Y[10 + 1] = T2im; }; # 5177 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[26] * (double) +0.707106781186548; T1im = Y[26 + 1] * (double) +0.707106781186548; T2re = T1im; T2im = T1re; T1re += T2re; T1im -= T2im; T2re = Y[18] - T1re; T2im = Y[18 + 1] - T1im; Y[18] = Y[18] + T1re; Y[18 + 1] = Y[18 + 1] + T1im; Y[26] = T2re; Y[26 + 1] = T2im; }; # 5186 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[42] * (double) +0.707106781186548; T1im = Y[42 + 1] * (double) +0.707106781186548; T2re = T1im; T2im = T1re; T1re += T2re; T1im -= T2im; T2re = Y[34] - T1re; T2im = Y[34 + 1] - T1im; Y[34] = Y[34] + T1re; Y[34 + 1] = Y[34 + 1] + T1im; Y[42] = T2re; Y[42 + 1] = T2im; }; # 5195 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[58] * (double) +0.707106781186548; T1im = Y[58 + 1] * (double) +0.707106781186548; T2re = T1im; T2im = T1re; T1re += T2re; T1im -= T2im; T2re = Y[50] - T1re; T2im = Y[50 + 1] - T1im; Y[50] = Y[50] + T1re; Y[50 + 1] = Y[50 + 1] + T1im; Y[58] = T2re; Y[58 + 1] = T2im; }; # 5204 "gslfft.c" { register double T2re, T2im; T2re = Y[4] - Y[12 + 1]; T2im = Y[4 + 1] + Y[12]; Y[4] = Y[4] + Y[12 + 1]; Y[4 + 1] = Y[4 + 1] - Y[12]; Y[12] = T2re; Y[12 + 1] = T2im; }; # 5213 "gslfft.c" { register double T2re, T2im; T2re = Y[20] - Y[28 + 1]; T2im = Y[20 + 1] + Y[28]; Y[20] = Y[20] + Y[28 + 1]; Y[20 + 1] = Y[20 + 1] - Y[28]; Y[28] = T2re; Y[28 + 1] = T2im; }; # 5222 "gslfft.c" { register double T2re, T2im; T2re = Y[36] - Y[44 + 1]; T2im = Y[36 + 1] + Y[44]; Y[36] = Y[36] + Y[44 + 1]; Y[36 + 1] = Y[36 + 1] - Y[44]; Y[44] = T2re; Y[44 + 1] = T2im; }; # 5231 "gslfft.c" { register double T2re, T2im; T2re = Y[52] - Y[60 + 1]; T2im = Y[52 + 1] + Y[60]; Y[52] = Y[52] + Y[60 + 1]; Y[52 + 1] = Y[52 + 1] - Y[60]; Y[60] = T2re; Y[60 + 1] = T2im; }; # 5240 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[14] * (double) -0.707106781186547; T1im = Y[14 + 1] * (double) -0.707106781186547; T2re = T1im; T2im = T1re; T1re -= T2re; T1im += T2im; T2re = Y[6] - T1re; T2im = Y[6 + 1] - T1im; Y[6] = Y[6] + T1re; Y[6 + 1] = Y[6 + 1] + T1im; Y[14] = T2re; Y[14 + 1] = T2im; }; # 5249 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[30] * (double) -0.707106781186547; T1im = Y[30 + 1] * (double) -0.707106781186547; T2re = T1im; T2im = T1re; T1re -= T2re; T1im += T2im; T2re = Y[22] - T1re; T2im = Y[22 + 1] - T1im; Y[22] = Y[22] + T1re; Y[22 + 1] = Y[22 + 1] + T1im; Y[30] = T2re; Y[30 + 1] = T2im; }; # 5258 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[46] * (double) -0.707106781186547; T1im = Y[46 + 1] * (double) -0.707106781186547; T2re = T1im; T2im = T1re; T1re -= T2re; T1im += T2im; T2re = Y[38] - T1re; T2im = Y[38 + 1] - T1im; Y[38] = Y[38] + T1re; Y[38 + 1] = Y[38 + 1] + T1im; Y[46] = T2re; Y[46 + 1] = T2im; }; # 5267 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[62] * (double) -0.707106781186547; T1im = Y[62 + 1] * (double) -0.707106781186547; T2re = T1im; T2im = T1re; T1re -= T2re; T1im += T2im; T2re = Y[54] - T1re; T2im = Y[54 + 1] - T1im; Y[54] = Y[54] + T1re; Y[54 + 1] = Y[54 + 1] + T1im; Y[62] = T2re; Y[62 + 1] = T2im; }; # 5278 "gslfft.c" { register double T2re, T2im; T2re = Y[0] - Y[16]; T2im = Y[0 + 1] - Y[16 + 1]; Y[0] = Y[0] + Y[16]; Y[0 + 1] = Y[0 + 1] + Y[16 + 1]; Y[16] = T2re; Y[16 + 1] = T2im; }; # 5287 "gslfft.c" { register double T2re, T2im; T2re = Y[32] - Y[48]; T2im = Y[32 + 1] - Y[48 + 1]; Y[32] = Y[32] + Y[48]; Y[32 + 1] = Y[32 + 1] + Y[48 + 1]; Y[48] = T2re; Y[48 + 1] = T2im; }; # 5296 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[18] * (double) +0.923879532511287; T1im = Y[18 + 1] * (double) +0.923879532511287; T2re = Y[18 + 1] * (double) -0.382683432365090; T2im = Y[18] * (double) -0.382683432365090; T1re -= T2re; T1im += T2im; T2re = Y[2] - T1re; T2im = Y[2 + 1] - T1im; Y[2] = Y[2] + T1re; Y[2 + 1] = Y[2 + 1] + T1im; Y[18] = T2re; Y[18 + 1] = T2im; }; # 5305 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[50] * (double) +0.923879532511287; T1im = Y[50 + 1] * (double) +0.923879532511287; T2re = Y[50 + 1] * (double) -0.382683432365090; T2im = Y[50] * (double) -0.382683432365090; T1re -= T2re; T1im += T2im; T2re = Y[34] - T1re; T2im = Y[34 + 1] - T1im; Y[34] = Y[34] + T1re; Y[34 + 1] = Y[34 + 1] + T1im; Y[50] = T2re; Y[50 + 1] = T2im; }; # 5314 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[20] * (double) +0.707106781186548; T1im = Y[20 + 1] * (double) +0.707106781186548; T2re = T1im; T2im = T1re; T1re += T2re; T1im -= T2im; T2re = Y[4] - T1re; T2im = Y[4 + 1] - T1im; Y[4] = Y[4] + T1re; Y[4 + 1] = Y[4 + 1] + T1im; Y[20] = T2re; Y[20 + 1] = T2im; }; # 5323 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[52] * (double) +0.707106781186548; T1im = Y[52 + 1] * (double) +0.707106781186548; T2re = T1im; T2im = T1re; T1re += T2re; T1im -= T2im; T2re = Y[36] - T1re; T2im = Y[36 + 1] - T1im; Y[36] = Y[36] + T1re; Y[36 + 1] = Y[36 + 1] + T1im; Y[52] = T2re; Y[52 + 1] = T2im; }; # 5332 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[22] * (double) +0.382683432365090; T1im = Y[22 + 1] * (double) +0.382683432365090; T2re = Y[22 + 1] * (double) -0.923879532511287; T2im = Y[22] * (double) -0.923879532511287; T1re -= T2re; T1im += T2im; T2re = Y[6] - T1re; T2im = Y[6 + 1] - T1im; Y[6] = Y[6] + T1re; Y[6 + 1] = Y[6 + 1] + T1im; Y[22] = T2re; Y[22 + 1] = T2im; }; # 5341 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[54] * (double) +0.382683432365090; T1im = Y[54 + 1] * (double) +0.382683432365090; T2re = Y[54 + 1] * (double) -0.923879532511287; T2im = Y[54] * (double) -0.923879532511287; T1re -= T2re; T1im += T2im; T2re = Y[38] - T1re; T2im = Y[38 + 1] - T1im; Y[38] = Y[38] + T1re; Y[38 + 1] = Y[38 + 1] + T1im; Y[54] = T2re; Y[54 + 1] = T2im; }; # 5350 "gslfft.c" { register double T2re, T2im; T2re = Y[8] - Y[24 + 1]; T2im = Y[8 + 1] + Y[24]; Y[8] = Y[8] + Y[24 + 1]; Y[8 + 1] = Y[8 + 1] - Y[24]; Y[24] = T2re; Y[24 + 1] = T2im; }; # 5359 "gslfft.c" { register double T2re, T2im; T2re = Y[40] - Y[56 + 1]; T2im = Y[40 + 1] + Y[56]; Y[40] = Y[40] + Y[56 + 1]; Y[40 + 1] = Y[40 + 1] - Y[56]; Y[56] = T2re; Y[56 + 1] = T2im; }; # 5368 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[26] * (double) -0.382683432365090; T1im = Y[26 + 1] * (double) -0.382683432365090; T2re = Y[26 + 1] * (double) -0.923879532511287; T2im = Y[26] * (double) -0.923879532511287; T1re -= T2re; T1im += T2im; T2re = Y[10] - T1re; T2im = Y[10 + 1] - T1im; Y[10] = Y[10] + T1re; Y[10 + 1] = Y[10 + 1] + T1im; Y[26] = T2re; Y[26 + 1] = T2im; }; # 5377 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[58] * (double) -0.382683432365090; T1im = Y[58 + 1] * (double) -0.382683432365090; T2re = Y[58 + 1] * (double) -0.923879532511287; T2im = Y[58] * (double) -0.923879532511287; T1re -= T2re; T1im += T2im; T2re = Y[42] - T1re; T2im = Y[42 + 1] - T1im; Y[42] = Y[42] + T1re; Y[42 + 1] = Y[42 + 1] + T1im; Y[58] = T2re; Y[58 + 1] = T2im; }; # 5386 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[28] * (double) -0.707106781186547; T1im = Y[28 + 1] * (double) -0.707106781186547; T2re = T1im; T2im = T1re; T1re -= T2re; T1im += T2im; T2re = Y[12] - T1re; T2im = Y[12 + 1] - T1im; Y[12] = Y[12] + T1re; Y[12 + 1] = Y[12 + 1] + T1im; Y[28] = T2re; Y[28 + 1] = T2im; }; # 5395 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[60] * (double) -0.707106781186547; T1im = Y[60 + 1] * (double) -0.707106781186547; T2re = T1im; T2im = T1re; T1re -= T2re; T1im += T2im; T2re = Y[44] - T1re; T2im = Y[44 + 1] - T1im; Y[44] = Y[44] + T1re; Y[44 + 1] = Y[44 + 1] + T1im; Y[60] = T2re; Y[60 + 1] = T2im; }; # 5404 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[30] * (double) -0.923879532511287; T1im = Y[30 + 1] * (double) -0.923879532511287; T2re = Y[30 + 1] * (double) -0.382683432365090; T2im = Y[30] * (double) -0.382683432365090; T1re -= T2re; T1im += T2im; T2re = Y[14] - T1re; T2im = Y[14 + 1] - T1im; Y[14] = Y[14] + T1re; Y[14 + 1] = Y[14 + 1] + T1im; Y[30] = T2re; Y[30 + 1] = T2im; }; # 5413 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[62] * (double) -0.923879532511287; T1im = Y[62 + 1] * (double) -0.923879532511287; T2re = Y[62 + 1] * (double) -0.382683432365090; T2im = Y[62] * (double) -0.382683432365090; T1re -= T2re; T1im += T2im; T2re = Y[46] - T1re; T2im = Y[46 + 1] - T1im; Y[46] = Y[46] + T1re; Y[46 + 1] = Y[46 + 1] + T1im; Y[62] = T2re; Y[62 + 1] = T2im; }; # 5424 "gslfft.c" { register double T2re, T2im; T2re = Y[0] - Y[32]; T2im = Y[0 + 1] - Y[32 + 1]; Y[0] = Y[0] + Y[32]; Y[0 + 1] = Y[0 + 1] + Y[32 + 1]; Y[32] = T2re; Y[32 + 1] = T2im; }; # 5433 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[34] * (double) +0.980785280403230; T1im = Y[34 + 1] * (double) +0.980785280403230; T2re = Y[34 + 1] * (double) -0.195090322016128; T2im = Y[34] * (double) -0.195090322016128; T1re -= T2re; T1im += T2im; T2re = Y[2] - T1re; T2im = Y[2 + 1] - T1im; Y[2] = Y[2] + T1re; Y[2 + 1] = Y[2 + 1] + T1im; Y[34] = T2re; Y[34 + 1] = T2im; }; # 5442 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[36] * (double) +0.923879532511287; T1im = Y[36 + 1] * (double) +0.923879532511287; T2re = Y[36 + 1] * (double) -0.382683432365090; T2im = Y[36] * (double) -0.382683432365090; T1re -= T2re; T1im += T2im; T2re = Y[4] - T1re; T2im = Y[4 + 1] - T1im; Y[4] = Y[4] + T1re; Y[4 + 1] = Y[4 + 1] + T1im; Y[36] = T2re; Y[36 + 1] = T2im; }; # 5451 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[38] * (double) +0.831469612302545; T1im = Y[38 + 1] * (double) +0.831469612302545; T2re = Y[38 + 1] * (double) -0.555570233019602; T2im = Y[38] * (double) -0.555570233019602; T1re -= T2re; T1im += T2im; T2re = Y[6] - T1re; T2im = Y[6 + 1] - T1im; Y[6] = Y[6] + T1re; Y[6 + 1] = Y[6 + 1] + T1im; Y[38] = T2re; Y[38 + 1] = T2im; }; # 5460 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[40] * (double) +0.707106781186548; T1im = Y[40 + 1] * (double) +0.707106781186548; T2re = T1im; T2im = T1re; T1re += T2re; T1im -= T2im; T2re = Y[8] - T1re; T2im = Y[8 + 1] - T1im; Y[8] = Y[8] + T1re; Y[8 + 1] = Y[8 + 1] + T1im; Y[40] = T2re; Y[40 + 1] = T2im; }; # 5469 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[42] * (double) +0.555570233019602; T1im = Y[42 + 1] * (double) +0.555570233019602; T2re = Y[42 + 1] * (double) -0.831469612302545; T2im = Y[42] * (double) -0.831469612302545; T1re -= T2re; T1im += T2im; T2re = Y[10] - T1re; T2im = Y[10 + 1] - T1im; Y[10] = Y[10] + T1re; Y[10 + 1] = Y[10 + 1] + T1im; Y[42] = T2re; Y[42 + 1] = T2im; }; # 5478 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[44] * (double) +0.382683432365090; T1im = Y[44 + 1] * (double) +0.382683432365090; T2re = Y[44 + 1] * (double) -0.923879532511287; T2im = Y[44] * (double) -0.923879532511287; T1re -= T2re; T1im += T2im; T2re = Y[12] - T1re; T2im = Y[12 + 1] - T1im; Y[12] = Y[12] + T1re; Y[12 + 1] = Y[12 + 1] + T1im; Y[44] = T2re; Y[44 + 1] = T2im; }; # 5487 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[46] * (double) +0.195090322016128; T1im = Y[46 + 1] * (double) +0.195090322016128; T2re = Y[46 + 1] * (double) -0.980785280403230; T2im = Y[46] * (double) -0.980785280403230; T1re -= T2re; T1im += T2im; T2re = Y[14] - T1re; T2im = Y[14 + 1] - T1im; Y[14] = Y[14] + T1re; Y[14 + 1] = Y[14 + 1] + T1im; Y[46] = T2re; Y[46 + 1] = T2im; }; # 5496 "gslfft.c" { register double T2re, T2im; T2re = Y[16] - Y[48 + 1]; T2im = Y[16 + 1] + Y[48]; Y[16] = Y[16] + Y[48 + 1]; Y[16 + 1] = Y[16 + 1] - Y[48]; Y[48] = T2re; Y[48 + 1] = T2im; }; # 5505 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[50] * (double) -0.195090322016128; T1im = Y[50 + 1] * (double) -0.195090322016128; T2re = Y[50 + 1] * (double) -0.980785280403230; T2im = Y[50] * (double) -0.980785280403230; T1re -= T2re; T1im += T2im; T2re = Y[18] - T1re; T2im = Y[18 + 1] - T1im; Y[18] = Y[18] + T1re; Y[18 + 1] = Y[18 + 1] + T1im; Y[50] = T2re; Y[50 + 1] = T2im; }; # 5514 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[52] * (double) -0.382683432365090; T1im = Y[52 + 1] * (double) -0.382683432365090; T2re = Y[52 + 1] * (double) -0.923879532511287; T2im = Y[52] * (double) -0.923879532511287; T1re -= T2re; T1im += T2im; T2re = Y[20] - T1re; T2im = Y[20 + 1] - T1im; Y[20] = Y[20] + T1re; Y[20 + 1] = Y[20 + 1] + T1im; Y[52] = T2re; Y[52 + 1] = T2im; }; # 5523 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[54] * (double) -0.555570233019602; T1im = Y[54 + 1] * (double) -0.555570233019602; T2re = Y[54 + 1] * (double) -0.831469612302545; T2im = Y[54] * (double) -0.831469612302545; T1re -= T2re; T1im += T2im; T2re = Y[22] - T1re; T2im = Y[22 + 1] - T1im; Y[22] = Y[22] + T1re; Y[22 + 1] = Y[22 + 1] + T1im; Y[54] = T2re; Y[54 + 1] = T2im; }; # 5532 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[56] * (double) -0.707106781186547; T1im = Y[56 + 1] * (double) -0.707106781186547; T2re = T1im; T2im = T1re; T1re -= T2re; T1im += T2im; T2re = Y[24] - T1re; T2im = Y[24 + 1] - T1im; Y[24] = Y[24] + T1re; Y[24 + 1] = Y[24 + 1] + T1im; Y[56] = T2re; Y[56 + 1] = T2im; }; # 5541 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[58] * (double) -0.831469612302545; T1im = Y[58 + 1] * (double) -0.831469612302545; T2re = Y[58 + 1] * (double) -0.555570233019602; T2im = Y[58] * (double) -0.555570233019602; T1re -= T2re; T1im += T2im; T2re = Y[26] - T1re; T2im = Y[26 + 1] - T1im; Y[26] = Y[26] + T1re; Y[26 + 1] = Y[26 + 1] + T1im; Y[58] = T2re; Y[58 + 1] = T2im; }; # 5550 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[60] * (double) -0.923879532511287; T1im = Y[60 + 1] * (double) -0.923879532511287; T2re = Y[60 + 1] * (double) -0.382683432365090; T2im = Y[60] * (double) -0.382683432365090; T1re -= T2re; T1im += T2im; T2re = Y[28] - T1re; T2im = Y[28 + 1] - T1im; Y[28] = Y[28] + T1re; Y[28 + 1] = Y[28 + 1] + T1im; Y[60] = T2re; Y[60 + 1] = T2im; }; # 5559 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[62] * (double) -0.980785280403230; T1im = Y[62 + 1] * (double) -0.980785280403230; T2re = Y[62 + 1] * (double) -0.195090322016129; T2im = Y[62] * (double) -0.195090322016129; T1re -= T2re; T1im += T2im; T2re = Y[30] - T1re; T2im = Y[30 + 1] - T1im; Y[30] = Y[30] + T1re; Y[30 + 1] = Y[30 + 1] + T1im; Y[62] = T2re; Y[62 + 1] = T2im; }; # 5568 "gslfft.c" } static void gsl_power2_fft32synthesis (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; { register double T2re, T2im; T2re = X[0] - X[32]; T2im = X[0 + 1] - X[32 + 1]; Y[0] = X[0] + X[32]; Y[0 + 1] = X[0 + 1] + X[32 + 1]; Y[2] = T2re * 1.0 / (double) 32; Y[2 + 1] = T2im * 1.0 / (double) 32; Y[0] *= 1.0 / (double) 32; Y[0 + 1] *= 1.0 / (double) 32; }; { register double T2re, T2im; T2re = X[16] - X[48]; T2im = X[16 + 1] - X[48 + 1]; Y[4] = X[16] + X[48]; Y[4 + 1] = X[16 + 1] + X[48 + 1]; Y[6] = T2re * 1.0 / (double) 32; Y[6 + 1] = T2im * 1.0 / (double) 32; Y[4] *= 1.0 / (double) 32; Y[4 + 1] *= 1.0 / (double) 32; }; { register double T2re, T2im; T2re = X[8] - X[40]; T2im = X[8 + 1] - X[40 + 1]; Y[8] = X[8] + X[40]; Y[8 + 1] = X[8 + 1] + X[40 + 1]; Y[10] = T2re * 1.0 / (double) 32; Y[10 + 1] = T2im * 1.0 / (double) 32; Y[8] *= 1.0 / (double) 32; Y[8 + 1] *= 1.0 / (double) 32; }; { register double T2re, T2im; T2re = X[24] - X[56]; T2im = X[24 + 1] - X[56 + 1]; Y[12] = X[24] + X[56]; Y[12 + 1] = X[24 + 1] + X[56 + 1]; Y[14] = T2re * 1.0 / (double) 32; Y[14 + 1] = T2im * 1.0 / (double) 32; Y[12] *= 1.0 / (double) 32; Y[12 + 1] *= 1.0 / (double) 32; }; { register double T2re, T2im; T2re = X[4] - X[36]; T2im = X[4 + 1] - X[36 + 1]; Y[16] = X[4] + X[36]; Y[16 + 1] = X[4 + 1] + X[36 + 1]; Y[18] = T2re * 1.0 / (double) 32; Y[18 + 1] = T2im * 1.0 / (double) 32; Y[16] *= 1.0 / (double) 32; Y[16 + 1] *= 1.0 / (double) 32; }; { register double T2re, T2im; T2re = X[20] - X[52]; T2im = X[20 + 1] - X[52 + 1]; Y[20] = X[20] + X[52]; Y[20 + 1] = X[20 + 1] + X[52 + 1]; Y[22] = T2re * 1.0 / (double) 32; Y[22 + 1] = T2im * 1.0 / (double) 32; Y[20] *= 1.0 / (double) 32; Y[20 + 1] *= 1.0 / (double) 32; }; { register double T2re, T2im; T2re = X[12] - X[44]; T2im = X[12 + 1] - X[44 + 1]; Y[24] = X[12] + X[44]; Y[24 + 1] = X[12 + 1] + X[44 + 1]; Y[26] = T2re * 1.0 / (double) 32; Y[26 + 1] = T2im * 1.0 / (double) 32; Y[24] *= 1.0 / (double) 32; Y[24 + 1] *= 1.0 / (double) 32; }; { register double T2re, T2im; T2re = X[28] - X[60]; T2im = X[28 + 1] - X[60 + 1]; Y[28] = X[28] + X[60]; Y[28 + 1] = X[28 + 1] + X[60 + 1]; Y[30] = T2re * 1.0 / (double) 32; Y[30 + 1] = T2im * 1.0 / (double) 32; Y[28] *= 1.0 / (double) 32; Y[28 + 1] *= 1.0 / (double) 32; }; { register double T2re, T2im; T2re = X[2] - X[34]; T2im = X[2 + 1] - X[34 + 1]; Y[32] = X[2] + X[34]; Y[32 + 1] = X[2 + 1] + X[34 + 1]; Y[34] = T2re * 1.0 / (double) 32; Y[34 + 1] = T2im * 1.0 / (double) 32; Y[32] *= 1.0 / (double) 32; Y[32 + 1] *= 1.0 / (double) 32; }; { register double T2re, T2im; T2re = X[18] - X[50]; T2im = X[18 + 1] - X[50 + 1]; Y[36] = X[18] + X[50]; Y[36 + 1] = X[18 + 1] + X[50 + 1]; Y[38] = T2re * 1.0 / (double) 32; Y[38 + 1] = T2im * 1.0 / (double) 32; Y[36] *= 1.0 / (double) 32; Y[36 + 1] *= 1.0 / (double) 32; }; { register double T2re, T2im; T2re = X[10] - X[42]; T2im = X[10 + 1] - X[42 + 1]; Y[40] = X[10] + X[42]; Y[40 + 1] = X[10 + 1] + X[42 + 1]; Y[42] = T2re * 1.0 / (double) 32; Y[42 + 1] = T2im * 1.0 / (double) 32; Y[40] *= 1.0 / (double) 32; Y[40 + 1] *= 1.0 / (double) 32; }; { register double T2re, T2im; T2re = X[26] - X[58]; T2im = X[26 + 1] - X[58 + 1]; Y[44] = X[26] + X[58]; Y[44 + 1] = X[26 + 1] + X[58 + 1]; Y[46] = T2re * 1.0 / (double) 32; Y[46 + 1] = T2im * 1.0 / (double) 32; Y[44] *= 1.0 / (double) 32; Y[44 + 1] *= 1.0 / (double) 32; }; { register double T2re, T2im; T2re = X[6] - X[38]; T2im = X[6 + 1] - X[38 + 1]; Y[48] = X[6] + X[38]; Y[48 + 1] = X[6 + 1] + X[38 + 1]; Y[50] = T2re * 1.0 / (double) 32; Y[50 + 1] = T2im * 1.0 / (double) 32; Y[48] *= 1.0 / (double) 32; Y[48 + 1] *= 1.0 / (double) 32; }; { register double T2re, T2im; T2re = X[22] - X[54]; T2im = X[22 + 1] - X[54 + 1]; Y[52] = X[22] + X[54]; Y[52 + 1] = X[22 + 1] + X[54 + 1]; Y[54] = T2re * 1.0 / (double) 32; Y[54 + 1] = T2im * 1.0 / (double) 32; Y[52] *= 1.0 / (double) 32; Y[52 + 1] *= 1.0 / (double) 32; }; { register double T2re, T2im; T2re = X[14] - X[46]; T2im = X[14 + 1] - X[46 + 1]; Y[56] = X[14] + X[46]; Y[56 + 1] = X[14 + 1] + X[46 + 1]; Y[58] = T2re * 1.0 / (double) 32; Y[58 + 1] = T2im * 1.0 / (double) 32; Y[56] *= 1.0 / (double) 32; Y[56 + 1] *= 1.0 / (double) 32; }; { register double T2re, T2im; T2re = X[30] - X[62]; T2im = X[30 + 1] - X[62 + 1]; Y[60] = X[30] + X[62]; Y[60 + 1] = X[30 + 1] + X[62 + 1]; Y[62] = T2re * 1.0 / (double) 32; Y[62 + 1] = T2im * 1.0 / (double) 32; Y[60] *= 1.0 / (double) 32; Y[60 + 1] *= 1.0 / (double) 32; }; # 5673 "gslfft.c" gsl_power2_fft32synthesis_skip2 (X, Y); } static void gsl_power2_fft64synthesis_skip2 (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; for (block = 0; block < 128; block += 8) { { register double T2re, T2im; T2re = Y[block + 0] - Y[block + 4]; T2im = Y[block + 0 + 1] - Y[block + 4 + 1]; Y[block + 0] = Y[block + 0] + Y[block + 4]; Y[block + 0 + 1] = Y[block + 0 + 1] + Y[block + 4 + 1]; Y[block + 4] = T2re; Y[block + 4 + 1] = T2im; }; # 5703 "gslfft.c" { register double T2re, T2im; T2re = Y[block + 2] - Y[block + 6 + 1]; T2im = Y[block + 2 + 1] + Y[block + 6]; Y[block + 2] = Y[block + 2] + Y[block + 6 + 1]; Y[block + 2 + 1] = Y[block + 2 + 1] - Y[block + 6]; Y[block + 6] = T2re; Y[block + 6 + 1] = T2im; }; # 5712 "gslfft.c" } for (block = 0; block < 128; block += 16) { { register double T2re, T2im; T2re = Y[block + 0] - Y[block + 8]; T2im = Y[block + 0 + 1] - Y[block + 8 + 1]; Y[block + 0] = Y[block + 0] + Y[block + 8]; Y[block + 0 + 1] = Y[block + 0 + 1] + Y[block + 8 + 1]; Y[block + 8] = T2re; Y[block + 8 + 1] = T2im; }; # 5725 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 10] * (double) +0.707106781186548; T1im = Y[block + 10 + 1] * (double) +0.707106781186548; T2re = T1im; T2im = T1re; T1re += T2re; T1im -= T2im; T2re = Y[block + 2] - T1re; T2im = Y[block + 2 + 1] - T1im; Y[block + 2] = Y[block + 2] + T1re; Y[block + 2 + 1] = Y[block + 2 + 1] + T1im; Y[block + 10] = T2re; Y[block + 10 + 1] = T2im; }; # 5734 "gslfft.c" { register double T2re, T2im; T2re = Y[block + 4] - Y[block + 12 + 1]; T2im = Y[block + 4 + 1] + Y[block + 12]; Y[block + 4] = Y[block + 4] + Y[block + 12 + 1]; Y[block + 4 + 1] = Y[block + 4 + 1] - Y[block + 12]; Y[block + 12] = T2re; Y[block + 12 + 1] = T2im; }; # 5743 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 14] * (double) -0.707106781186547; T1im = Y[block + 14 + 1] * (double) -0.707106781186547; T2re = T1im; T2im = T1re; T1re -= T2re; T1im += T2im; T2re = Y[block + 6] - T1re; T2im = Y[block + 6 + 1] - T1im; Y[block + 6] = Y[block + 6] + T1re; Y[block + 6 + 1] = Y[block + 6 + 1] + T1im; Y[block + 14] = T2re; Y[block + 14 + 1] = T2im; }; # 5752 "gslfft.c" } for (block = 0; block < 128; block += 32) { { register double T2re, T2im; T2re = Y[block + 0] - Y[block + 16]; T2im = Y[block + 0 + 1] - Y[block + 16 + 1]; Y[block + 0] = Y[block + 0] + Y[block + 16]; Y[block + 0 + 1] = Y[block + 0 + 1] + Y[block + 16 + 1]; Y[block + 16] = T2re; Y[block + 16 + 1] = T2im; }; # 5765 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 18] * (double) +0.923879532511287; T1im = Y[block + 18 + 1] * (double) +0.923879532511287; T2re = Y[block + 18 + 1] * (double) -0.382683432365090; T2im = Y[block + 18] * (double) -0.382683432365090; T1re -= T2re; T1im += T2im; T2re = Y[block + 2] - T1re; T2im = Y[block + 2 + 1] - T1im; Y[block + 2] = Y[block + 2] + T1re; Y[block + 2 + 1] = Y[block + 2 + 1] + T1im; Y[block + 18] = T2re; Y[block + 18 + 1] = T2im; }; # 5774 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 20] * (double) +0.707106781186548; T1im = Y[block + 20 + 1] * (double) +0.707106781186548; T2re = T1im; T2im = T1re; T1re += T2re; T1im -= T2im; T2re = Y[block + 4] - T1re; T2im = Y[block + 4 + 1] - T1im; Y[block + 4] = Y[block + 4] + T1re; Y[block + 4 + 1] = Y[block + 4 + 1] + T1im; Y[block + 20] = T2re; Y[block + 20 + 1] = T2im; }; # 5783 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 22] * (double) +0.382683432365090; T1im = Y[block + 22 + 1] * (double) +0.382683432365090; T2re = Y[block + 22 + 1] * (double) -0.923879532511287; T2im = Y[block + 22] * (double) -0.923879532511287; T1re -= T2re; T1im += T2im; T2re = Y[block + 6] - T1re; T2im = Y[block + 6 + 1] - T1im; Y[block + 6] = Y[block + 6] + T1re; Y[block + 6 + 1] = Y[block + 6 + 1] + T1im; Y[block + 22] = T2re; Y[block + 22 + 1] = T2im; }; # 5792 "gslfft.c" { register double T2re, T2im; T2re = Y[block + 8] - Y[block + 24 + 1]; T2im = Y[block + 8 + 1] + Y[block + 24]; Y[block + 8] = Y[block + 8] + Y[block + 24 + 1]; Y[block + 8 + 1] = Y[block + 8 + 1] - Y[block + 24]; Y[block + 24] = T2re; Y[block + 24 + 1] = T2im; }; # 5801 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 26] * (double) -0.382683432365090; T1im = Y[block + 26 + 1] * (double) -0.382683432365090; T2re = Y[block + 26 + 1] * (double) -0.923879532511287; T2im = Y[block + 26] * (double) -0.923879532511287; T1re -= T2re; T1im += T2im; T2re = Y[block + 10] - T1re; T2im = Y[block + 10 + 1] - T1im; Y[block + 10] = Y[block + 10] + T1re; Y[block + 10 + 1] = Y[block + 10 + 1] + T1im; Y[block + 26] = T2re; Y[block + 26 + 1] = T2im; }; # 5810 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 28] * (double) -0.707106781186547; T1im = Y[block + 28 + 1] * (double) -0.707106781186547; T2re = T1im; T2im = T1re; T1re -= T2re; T1im += T2im; T2re = Y[block + 12] - T1re; T2im = Y[block + 12 + 1] - T1im; Y[block + 12] = Y[block + 12] + T1re; Y[block + 12 + 1] = Y[block + 12 + 1] + T1im; Y[block + 28] = T2re; Y[block + 28 + 1] = T2im; }; # 5819 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 30] * (double) -0.923879532511287; T1im = Y[block + 30 + 1] * (double) -0.923879532511287; T2re = Y[block + 30 + 1] * (double) -0.382683432365090; T2im = Y[block + 30] * (double) -0.382683432365090; T1re -= T2re; T1im += T2im; T2re = Y[block + 14] - T1re; T2im = Y[block + 14 + 1] - T1im; Y[block + 14] = Y[block + 14] + T1re; Y[block + 14 + 1] = Y[block + 14 + 1] + T1im; Y[block + 30] = T2re; Y[block + 30 + 1] = T2im; }; # 5828 "gslfft.c" } for (block = 0; block < 128; block += 64) { { register double T2re, T2im; T2re = Y[block + 0] - Y[block + 32]; T2im = Y[block + 0 + 1] - Y[block + 32 + 1]; Y[block + 0] = Y[block + 0] + Y[block + 32]; Y[block + 0 + 1] = Y[block + 0 + 1] + Y[block + 32 + 1]; Y[block + 32] = T2re; Y[block + 32 + 1] = T2im; }; # 5841 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 34] * (double) +0.980785280403230; T1im = Y[block + 34 + 1] * (double) +0.980785280403230; T2re = Y[block + 34 + 1] * (double) -0.195090322016128; T2im = Y[block + 34] * (double) -0.195090322016128; T1re -= T2re; T1im += T2im; T2re = Y[block + 2] - T1re; T2im = Y[block + 2 + 1] - T1im; Y[block + 2] = Y[block + 2] + T1re; Y[block + 2 + 1] = Y[block + 2 + 1] + T1im; Y[block + 34] = T2re; Y[block + 34 + 1] = T2im; }; # 5850 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 36] * (double) +0.923879532511287; T1im = Y[block + 36 + 1] * (double) +0.923879532511287; T2re = Y[block + 36 + 1] * (double) -0.382683432365090; T2im = Y[block + 36] * (double) -0.382683432365090; T1re -= T2re; T1im += T2im; T2re = Y[block + 4] - T1re; T2im = Y[block + 4 + 1] - T1im; Y[block + 4] = Y[block + 4] + T1re; Y[block + 4 + 1] = Y[block + 4 + 1] + T1im; Y[block + 36] = T2re; Y[block + 36 + 1] = T2im; }; # 5859 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 38] * (double) +0.831469612302545; T1im = Y[block + 38 + 1] * (double) +0.831469612302545; T2re = Y[block + 38 + 1] * (double) -0.555570233019602; T2im = Y[block + 38] * (double) -0.555570233019602; T1re -= T2re; T1im += T2im; T2re = Y[block + 6] - T1re; T2im = Y[block + 6 + 1] - T1im; Y[block + 6] = Y[block + 6] + T1re; Y[block + 6 + 1] = Y[block + 6 + 1] + T1im; Y[block + 38] = T2re; Y[block + 38 + 1] = T2im; }; # 5868 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 40] * (double) +0.707106781186548; T1im = Y[block + 40 + 1] * (double) +0.707106781186548; T2re = T1im; T2im = T1re; T1re += T2re; T1im -= T2im; T2re = Y[block + 8] - T1re; T2im = Y[block + 8 + 1] - T1im; Y[block + 8] = Y[block + 8] + T1re; Y[block + 8 + 1] = Y[block + 8 + 1] + T1im; Y[block + 40] = T2re; Y[block + 40 + 1] = T2im; }; # 5877 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 42] * (double) +0.555570233019602; T1im = Y[block + 42 + 1] * (double) +0.555570233019602; T2re = Y[block + 42 + 1] * (double) -0.831469612302545; T2im = Y[block + 42] * (double) -0.831469612302545; T1re -= T2re; T1im += T2im; T2re = Y[block + 10] - T1re; T2im = Y[block + 10 + 1] - T1im; Y[block + 10] = Y[block + 10] + T1re; Y[block + 10 + 1] = Y[block + 10 + 1] + T1im; Y[block + 42] = T2re; Y[block + 42 + 1] = T2im; }; # 5886 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 44] * (double) +0.382683432365090; T1im = Y[block + 44 + 1] * (double) +0.382683432365090; T2re = Y[block + 44 + 1] * (double) -0.923879532511287; T2im = Y[block + 44] * (double) -0.923879532511287; T1re -= T2re; T1im += T2im; T2re = Y[block + 12] - T1re; T2im = Y[block + 12 + 1] - T1im; Y[block + 12] = Y[block + 12] + T1re; Y[block + 12 + 1] = Y[block + 12 + 1] + T1im; Y[block + 44] = T2re; Y[block + 44 + 1] = T2im; }; # 5895 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 46] * (double) +0.195090322016128; T1im = Y[block + 46 + 1] * (double) +0.195090322016128; T2re = Y[block + 46 + 1] * (double) -0.980785280403230; T2im = Y[block + 46] * (double) -0.980785280403230; T1re -= T2re; T1im += T2im; T2re = Y[block + 14] - T1re; T2im = Y[block + 14 + 1] - T1im; Y[block + 14] = Y[block + 14] + T1re; Y[block + 14 + 1] = Y[block + 14 + 1] + T1im; Y[block + 46] = T2re; Y[block + 46 + 1] = T2im; }; # 5904 "gslfft.c" { register double T2re, T2im; T2re = Y[block + 16] - Y[block + 48 + 1]; T2im = Y[block + 16 + 1] + Y[block + 48]; Y[block + 16] = Y[block + 16] + Y[block + 48 + 1]; Y[block + 16 + 1] = Y[block + 16 + 1] - Y[block + 48]; Y[block + 48] = T2re; Y[block + 48 + 1] = T2im; }; # 5913 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 50] * (double) -0.195090322016128; T1im = Y[block + 50 + 1] * (double) -0.195090322016128; T2re = Y[block + 50 + 1] * (double) -0.980785280403230; T2im = Y[block + 50] * (double) -0.980785280403230; T1re -= T2re; T1im += T2im; T2re = Y[block + 18] - T1re; T2im = Y[block + 18 + 1] - T1im; Y[block + 18] = Y[block + 18] + T1re; Y[block + 18 + 1] = Y[block + 18 + 1] + T1im; Y[block + 50] = T2re; Y[block + 50 + 1] = T2im; }; # 5922 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 52] * (double) -0.382683432365090; T1im = Y[block + 52 + 1] * (double) -0.382683432365090; T2re = Y[block + 52 + 1] * (double) -0.923879532511287; T2im = Y[block + 52] * (double) -0.923879532511287; T1re -= T2re; T1im += T2im; T2re = Y[block + 20] - T1re; T2im = Y[block + 20 + 1] - T1im; Y[block + 20] = Y[block + 20] + T1re; Y[block + 20 + 1] = Y[block + 20 + 1] + T1im; Y[block + 52] = T2re; Y[block + 52 + 1] = T2im; }; # 5931 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 54] * (double) -0.555570233019602; T1im = Y[block + 54 + 1] * (double) -0.555570233019602; T2re = Y[block + 54 + 1] * (double) -0.831469612302545; T2im = Y[block + 54] * (double) -0.831469612302545; T1re -= T2re; T1im += T2im; T2re = Y[block + 22] - T1re; T2im = Y[block + 22 + 1] - T1im; Y[block + 22] = Y[block + 22] + T1re; Y[block + 22 + 1] = Y[block + 22 + 1] + T1im; Y[block + 54] = T2re; Y[block + 54 + 1] = T2im; }; # 5940 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 56] * (double) -0.707106781186547; T1im = Y[block + 56 + 1] * (double) -0.707106781186547; T2re = T1im; T2im = T1re; T1re -= T2re; T1im += T2im; T2re = Y[block + 24] - T1re; T2im = Y[block + 24 + 1] - T1im; Y[block + 24] = Y[block + 24] + T1re; Y[block + 24 + 1] = Y[block + 24 + 1] + T1im; Y[block + 56] = T2re; Y[block + 56 + 1] = T2im; }; # 5949 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 58] * (double) -0.831469612302545; T1im = Y[block + 58 + 1] * (double) -0.831469612302545; T2re = Y[block + 58 + 1] * (double) -0.555570233019602; T2im = Y[block + 58] * (double) -0.555570233019602; T1re -= T2re; T1im += T2im; T2re = Y[block + 26] - T1re; T2im = Y[block + 26 + 1] - T1im; Y[block + 26] = Y[block + 26] + T1re; Y[block + 26 + 1] = Y[block + 26 + 1] + T1im; Y[block + 58] = T2re; Y[block + 58 + 1] = T2im; }; # 5958 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 60] * (double) -0.923879532511287; T1im = Y[block + 60 + 1] * (double) -0.923879532511287; T2re = Y[block + 60 + 1] * (double) -0.382683432365090; T2im = Y[block + 60] * (double) -0.382683432365090; T1re -= T2re; T1im += T2im; T2re = Y[block + 28] - T1re; T2im = Y[block + 28 + 1] - T1im; Y[block + 28] = Y[block + 28] + T1re; Y[block + 28 + 1] = Y[block + 28 + 1] + T1im; Y[block + 60] = T2re; Y[block + 60 + 1] = T2im; }; # 5967 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 62] * (double) -0.980785280403230; T1im = Y[block + 62 + 1] * (double) -0.980785280403230; T2re = Y[block + 62 + 1] * (double) -0.195090322016129; T2im = Y[block + 62] * (double) -0.195090322016129; T1re -= T2re; T1im += T2im; T2re = Y[block + 30] - T1re; T2im = Y[block + 30 + 1] - T1im; Y[block + 30] = Y[block + 30] + T1re; Y[block + 30 + 1] = Y[block + 30 + 1] + T1im; Y[block + 62] = T2re; Y[block + 62 + 1] = T2im; }; # 5976 "gslfft.c" } { register double T2re, T2im; T2re = Y[0] - Y[64]; T2im = Y[0 + 1] - Y[64 + 1]; Y[0] = Y[0] + Y[64]; Y[0 + 1] = Y[0 + 1] + Y[64 + 1]; Y[64] = T2re; Y[64 + 1] = T2im; }; # 5988 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[66] * (double) +0.995184726672197; T1im = Y[66 + 1] * (double) +0.995184726672197; T2re = Y[66 + 1] * (double) -0.098017140329561; T2im = Y[66] * (double) -0.098017140329561; T1re -= T2re; T1im += T2im; T2re = Y[2] - T1re; T2im = Y[2 + 1] - T1im; Y[2] = Y[2] + T1re; Y[2 + 1] = Y[2 + 1] + T1im; Y[66] = T2re; Y[66 + 1] = T2im; }; # 5997 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[68] * (double) +0.980785280403230; T1im = Y[68 + 1] * (double) +0.980785280403230; T2re = Y[68 + 1] * (double) -0.195090322016128; T2im = Y[68] * (double) -0.195090322016128; T1re -= T2re; T1im += T2im; T2re = Y[4] - T1re; T2im = Y[4 + 1] - T1im; Y[4] = Y[4] + T1re; Y[4 + 1] = Y[4 + 1] + T1im; Y[68] = T2re; Y[68 + 1] = T2im; }; # 6006 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[70] * (double) +0.956940335732209; T1im = Y[70 + 1] * (double) +0.956940335732209; T2re = Y[70 + 1] * (double) -0.290284677254462; T2im = Y[70] * (double) -0.290284677254462; T1re -= T2re; T1im += T2im; T2re = Y[6] - T1re; T2im = Y[6 + 1] - T1im; Y[6] = Y[6] + T1re; Y[6 + 1] = Y[6 + 1] + T1im; Y[70] = T2re; Y[70 + 1] = T2im; }; # 6015 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[72] * (double) +0.923879532511287; T1im = Y[72 + 1] * (double) +0.923879532511287; T2re = Y[72 + 1] * (double) -0.382683432365090; T2im = Y[72] * (double) -0.382683432365090; T1re -= T2re; T1im += T2im; T2re = Y[8] - T1re; T2im = Y[8 + 1] - T1im; Y[8] = Y[8] + T1re; Y[8 + 1] = Y[8 + 1] + T1im; Y[72] = T2re; Y[72 + 1] = T2im; }; # 6024 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[74] * (double) +0.881921264348355; T1im = Y[74 + 1] * (double) +0.881921264348355; T2re = Y[74 + 1] * (double) -0.471396736825998; T2im = Y[74] * (double) -0.471396736825998; T1re -= T2re; T1im += T2im; T2re = Y[10] - T1re; T2im = Y[10 + 1] - T1im; Y[10] = Y[10] + T1re; Y[10 + 1] = Y[10 + 1] + T1im; Y[74] = T2re; Y[74 + 1] = T2im; }; # 6033 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[76] * (double) +0.831469612302545; T1im = Y[76 + 1] * (double) +0.831469612302545; T2re = Y[76 + 1] * (double) -0.555570233019602; T2im = Y[76] * (double) -0.555570233019602; T1re -= T2re; T1im += T2im; T2re = Y[12] - T1re; T2im = Y[12 + 1] - T1im; Y[12] = Y[12] + T1re; Y[12 + 1] = Y[12 + 1] + T1im; Y[76] = T2re; Y[76 + 1] = T2im; }; # 6042 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[78] * (double) +0.773010453362737; T1im = Y[78 + 1] * (double) +0.773010453362737; T2re = Y[78 + 1] * (double) -0.634393284163645; T2im = Y[78] * (double) -0.634393284163645; T1re -= T2re; T1im += T2im; T2re = Y[14] - T1re; T2im = Y[14 + 1] - T1im; Y[14] = Y[14] + T1re; Y[14 + 1] = Y[14 + 1] + T1im; Y[78] = T2re; Y[78 + 1] = T2im; }; # 6051 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[80] * (double) +0.707106781186548; T1im = Y[80 + 1] * (double) +0.707106781186548; T2re = T1im; T2im = T1re; T1re += T2re; T1im -= T2im; T2re = Y[16] - T1re; T2im = Y[16 + 1] - T1im; Y[16] = Y[16] + T1re; Y[16 + 1] = Y[16 + 1] + T1im; Y[80] = T2re; Y[80 + 1] = T2im; }; # 6060 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[82] * (double) +0.634393284163645; T1im = Y[82 + 1] * (double) +0.634393284163645; T2re = Y[82 + 1] * (double) -0.773010453362737; T2im = Y[82] * (double) -0.773010453362737; T1re -= T2re; T1im += T2im; T2re = Y[18] - T1re; T2im = Y[18 + 1] - T1im; Y[18] = Y[18] + T1re; Y[18 + 1] = Y[18 + 1] + T1im; Y[82] = T2re; Y[82 + 1] = T2im; }; # 6069 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[84] * (double) +0.555570233019602; T1im = Y[84 + 1] * (double) +0.555570233019602; T2re = Y[84 + 1] * (double) -0.831469612302545; T2im = Y[84] * (double) -0.831469612302545; T1re -= T2re; T1im += T2im; T2re = Y[20] - T1re; T2im = Y[20 + 1] - T1im; Y[20] = Y[20] + T1re; Y[20 + 1] = Y[20 + 1] + T1im; Y[84] = T2re; Y[84 + 1] = T2im; }; # 6078 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[86] * (double) +0.471396736825998; T1im = Y[86 + 1] * (double) +0.471396736825998; T2re = Y[86 + 1] * (double) -0.881921264348355; T2im = Y[86] * (double) -0.881921264348355; T1re -= T2re; T1im += T2im; T2re = Y[22] - T1re; T2im = Y[22 + 1] - T1im; Y[22] = Y[22] + T1re; Y[22 + 1] = Y[22 + 1] + T1im; Y[86] = T2re; Y[86 + 1] = T2im; }; # 6087 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[88] * (double) +0.382683432365090; T1im = Y[88 + 1] * (double) +0.382683432365090; T2re = Y[88 + 1] * (double) -0.923879532511287; T2im = Y[88] * (double) -0.923879532511287; T1re -= T2re; T1im += T2im; T2re = Y[24] - T1re; T2im = Y[24 + 1] - T1im; Y[24] = Y[24] + T1re; Y[24 + 1] = Y[24 + 1] + T1im; Y[88] = T2re; Y[88 + 1] = T2im; }; # 6096 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[90] * (double) +0.290284677254462; T1im = Y[90 + 1] * (double) +0.290284677254462; T2re = Y[90 + 1] * (double) -0.956940335732209; T2im = Y[90] * (double) -0.956940335732209; T1re -= T2re; T1im += T2im; T2re = Y[26] - T1re; T2im = Y[26 + 1] - T1im; Y[26] = Y[26] + T1re; Y[26 + 1] = Y[26 + 1] + T1im; Y[90] = T2re; Y[90 + 1] = T2im; }; # 6105 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[92] * (double) +0.195090322016128; T1im = Y[92 + 1] * (double) +0.195090322016128; T2re = Y[92 + 1] * (double) -0.980785280403230; T2im = Y[92] * (double) -0.980785280403230; T1re -= T2re; T1im += T2im; T2re = Y[28] - T1re; T2im = Y[28 + 1] - T1im; Y[28] = Y[28] + T1re; Y[28 + 1] = Y[28 + 1] + T1im; Y[92] = T2re; Y[92 + 1] = T2im; }; # 6114 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[94] * (double) +0.098017140329561; T1im = Y[94 + 1] * (double) +0.098017140329561; T2re = Y[94 + 1] * (double) -0.995184726672197; T2im = Y[94] * (double) -0.995184726672197; T1re -= T2re; T1im += T2im; T2re = Y[30] - T1re; T2im = Y[30 + 1] - T1im; Y[30] = Y[30] + T1re; Y[30 + 1] = Y[30 + 1] + T1im; Y[94] = T2re; Y[94 + 1] = T2im; }; # 6123 "gslfft.c" { register double T2re, T2im; T2re = Y[32] - Y[96 + 1]; T2im = Y[32 + 1] + Y[96]; Y[32] = Y[32] + Y[96 + 1]; Y[32 + 1] = Y[32 + 1] - Y[96]; Y[96] = T2re; Y[96 + 1] = T2im; }; # 6132 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[98] * (double) -0.098017140329561; T1im = Y[98 + 1] * (double) -0.098017140329561; T2re = Y[98 + 1] * (double) -0.995184726672197; T2im = Y[98] * (double) -0.995184726672197; T1re -= T2re; T1im += T2im; T2re = Y[34] - T1re; T2im = Y[34 + 1] - T1im; Y[34] = Y[34] + T1re; Y[34 + 1] = Y[34 + 1] + T1im; Y[98] = T2re; Y[98 + 1] = T2im; }; # 6141 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[100] * (double) -0.195090322016128; T1im = Y[100 + 1] * (double) -0.195090322016128; T2re = Y[100 + 1] * (double) -0.980785280403230; T2im = Y[100] * (double) -0.980785280403230; T1re -= T2re; T1im += T2im; T2re = Y[36] - T1re; T2im = Y[36 + 1] - T1im; Y[36] = Y[36] + T1re; Y[36 + 1] = Y[36 + 1] + T1im; Y[100] = T2re; Y[100 + 1] = T2im; }; # 6150 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[102] * (double) -0.290284677254462; T1im = Y[102 + 1] * (double) -0.290284677254462; T2re = Y[102 + 1] * (double) -0.956940335732209; T2im = Y[102] * (double) -0.956940335732209; T1re -= T2re; T1im += T2im; T2re = Y[38] - T1re; T2im = Y[38 + 1] - T1im; Y[38] = Y[38] + T1re; Y[38 + 1] = Y[38 + 1] + T1im; Y[102] = T2re; Y[102 + 1] = T2im; }; # 6159 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[104] * (double) -0.382683432365090; T1im = Y[104 + 1] * (double) -0.382683432365090; T2re = Y[104 + 1] * (double) -0.923879532511287; T2im = Y[104] * (double) -0.923879532511287; T1re -= T2re; T1im += T2im; T2re = Y[40] - T1re; T2im = Y[40 + 1] - T1im; Y[40] = Y[40] + T1re; Y[40 + 1] = Y[40 + 1] + T1im; Y[104] = T2re; Y[104 + 1] = T2im; }; # 6168 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[106] * (double) -0.471396736825998; T1im = Y[106 + 1] * (double) -0.471396736825998; T2re = Y[106 + 1] * (double) -0.881921264348355; T2im = Y[106] * (double) -0.881921264348355; T1re -= T2re; T1im += T2im; T2re = Y[42] - T1re; T2im = Y[42 + 1] - T1im; Y[42] = Y[42] + T1re; Y[42 + 1] = Y[42 + 1] + T1im; Y[106] = T2re; Y[106 + 1] = T2im; }; # 6177 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[108] * (double) -0.555570233019602; T1im = Y[108 + 1] * (double) -0.555570233019602; T2re = Y[108 + 1] * (double) -0.831469612302545; T2im = Y[108] * (double) -0.831469612302545; T1re -= T2re; T1im += T2im; T2re = Y[44] - T1re; T2im = Y[44 + 1] - T1im; Y[44] = Y[44] + T1re; Y[44 + 1] = Y[44 + 1] + T1im; Y[108] = T2re; Y[108 + 1] = T2im; }; # 6186 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[110] * (double) -0.634393284163645; T1im = Y[110 + 1] * (double) -0.634393284163645; T2re = Y[110 + 1] * (double) -0.773010453362737; T2im = Y[110] * (double) -0.773010453362737; T1re -= T2re; T1im += T2im; T2re = Y[46] - T1re; T2im = Y[46 + 1] - T1im; Y[46] = Y[46] + T1re; Y[46 + 1] = Y[46 + 1] + T1im; Y[110] = T2re; Y[110 + 1] = T2im; }; # 6195 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[112] * (double) -0.707106781186547; T1im = Y[112 + 1] * (double) -0.707106781186547; T2re = T1im; T2im = T1re; T1re -= T2re; T1im += T2im; T2re = Y[48] - T1re; T2im = Y[48 + 1] - T1im; Y[48] = Y[48] + T1re; Y[48 + 1] = Y[48 + 1] + T1im; Y[112] = T2re; Y[112 + 1] = T2im; }; # 6204 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[114] * (double) -0.773010453362737; T1im = Y[114 + 1] * (double) -0.773010453362737; T2re = Y[114 + 1] * (double) -0.634393284163645; T2im = Y[114] * (double) -0.634393284163645; T1re -= T2re; T1im += T2im; T2re = Y[50] - T1re; T2im = Y[50 + 1] - T1im; Y[50] = Y[50] + T1re; Y[50 + 1] = Y[50 + 1] + T1im; Y[114] = T2re; Y[114 + 1] = T2im; }; # 6213 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[116] * (double) -0.831469612302545; T1im = Y[116 + 1] * (double) -0.831469612302545; T2re = Y[116 + 1] * (double) -0.555570233019602; T2im = Y[116] * (double) -0.555570233019602; T1re -= T2re; T1im += T2im; T2re = Y[52] - T1re; T2im = Y[52 + 1] - T1im; Y[52] = Y[52] + T1re; Y[52 + 1] = Y[52 + 1] + T1im; Y[116] = T2re; Y[116 + 1] = T2im; }; # 6222 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[118] * (double) -0.881921264348355; T1im = Y[118 + 1] * (double) -0.881921264348355; T2re = Y[118 + 1] * (double) -0.471396736825998; T2im = Y[118] * (double) -0.471396736825998; T1re -= T2re; T1im += T2im; T2re = Y[54] - T1re; T2im = Y[54 + 1] - T1im; Y[54] = Y[54] + T1re; Y[54 + 1] = Y[54 + 1] + T1im; Y[118] = T2re; Y[118 + 1] = T2im; }; # 6231 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[120] * (double) -0.923879532511287; T1im = Y[120 + 1] * (double) -0.923879532511287; T2re = Y[120 + 1] * (double) -0.382683432365090; T2im = Y[120] * (double) -0.382683432365090; T1re -= T2re; T1im += T2im; T2re = Y[56] - T1re; T2im = Y[56 + 1] - T1im; Y[56] = Y[56] + T1re; Y[56 + 1] = Y[56 + 1] + T1im; Y[120] = T2re; Y[120 + 1] = T2im; }; # 6240 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[122] * (double) -0.956940335732209; T1im = Y[122 + 1] * (double) -0.956940335732209; T2re = Y[122 + 1] * (double) -0.290284677254462; T2im = Y[122] * (double) -0.290284677254462; T1re -= T2re; T1im += T2im; T2re = Y[58] - T1re; T2im = Y[58 + 1] - T1im; Y[58] = Y[58] + T1re; Y[58 + 1] = Y[58 + 1] + T1im; Y[122] = T2re; Y[122 + 1] = T2im; }; # 6249 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[124] * (double) -0.980785280403230; T1im = Y[124 + 1] * (double) -0.980785280403230; T2re = Y[124 + 1] * (double) -0.195090322016129; T2im = Y[124] * (double) -0.195090322016129; T1re -= T2re; T1im += T2im; T2re = Y[60] - T1re; T2im = Y[60 + 1] - T1im; Y[60] = Y[60] + T1re; Y[60 + 1] = Y[60 + 1] + T1im; Y[124] = T2re; Y[124 + 1] = T2im; }; # 6258 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[126] * (double) -0.995184726672197; T1im = Y[126 + 1] * (double) -0.995184726672197; T2re = Y[126 + 1] * (double) -0.098017140329561; T2im = Y[126] * (double) -0.098017140329561; T1re -= T2re; T1im += T2im; T2re = Y[62] - T1re; T2im = Y[62 + 1] - T1im; Y[62] = Y[62] + T1re; Y[62 + 1] = Y[62 + 1] + T1im; Y[126] = T2re; Y[126 + 1] = T2im; }; # 6267 "gslfft.c" } static void gsl_power2_fft64synthesis (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; { register double T2re, T2im; T2re = X[0] - X[64]; T2im = X[0 + 1] - X[64 + 1]; Y[0] = X[0] + X[64]; Y[0 + 1] = X[0 + 1] + X[64 + 1]; Y[2] = T2re * 1.0 / (double) 64; Y[2 + 1] = T2im * 1.0 / (double) 64; Y[0] *= 1.0 / (double) 64; Y[0 + 1] *= 1.0 / (double) 64; }; { register double T2re, T2im; T2re = X[32] - X[96]; T2im = X[32 + 1] - X[96 + 1]; Y[4] = X[32] + X[96]; Y[4 + 1] = X[32 + 1] + X[96 + 1]; Y[6] = T2re * 1.0 / (double) 64; Y[6 + 1] = T2im * 1.0 / (double) 64; Y[4] *= 1.0 / (double) 64; Y[4 + 1] *= 1.0 / (double) 64; }; { register double T2re, T2im; T2re = X[16] - X[80]; T2im = X[16 + 1] - X[80 + 1]; Y[8] = X[16] + X[80]; Y[8 + 1] = X[16 + 1] + X[80 + 1]; Y[10] = T2re * 1.0 / (double) 64; Y[10 + 1] = T2im * 1.0 / (double) 64; Y[8] *= 1.0 / (double) 64; Y[8 + 1] *= 1.0 / (double) 64; }; { register double T2re, T2im; T2re = X[48] - X[112]; T2im = X[48 + 1] - X[112 + 1]; Y[12] = X[48] + X[112]; Y[12 + 1] = X[48 + 1] + X[112 + 1]; Y[14] = T2re * 1.0 / (double) 64; Y[14 + 1] = T2im * 1.0 / (double) 64; Y[12] *= 1.0 / (double) 64; Y[12 + 1] *= 1.0 / (double) 64; }; { register double T2re, T2im; T2re = X[8] - X[72]; T2im = X[8 + 1] - X[72 + 1]; Y[16] = X[8] + X[72]; Y[16 + 1] = X[8 + 1] + X[72 + 1]; Y[18] = T2re * 1.0 / (double) 64; Y[18 + 1] = T2im * 1.0 / (double) 64; Y[16] *= 1.0 / (double) 64; Y[16 + 1] *= 1.0 / (double) 64; }; { register double T2re, T2im; T2re = X[40] - X[104]; T2im = X[40 + 1] - X[104 + 1]; Y[20] = X[40] + X[104]; Y[20 + 1] = X[40 + 1] + X[104 + 1]; Y[22] = T2re * 1.0 / (double) 64; Y[22 + 1] = T2im * 1.0 / (double) 64; Y[20] *= 1.0 / (double) 64; Y[20 + 1] *= 1.0 / (double) 64; }; { register double T2re, T2im; T2re = X[24] - X[88]; T2im = X[24 + 1] - X[88 + 1]; Y[24] = X[24] + X[88]; Y[24 + 1] = X[24 + 1] + X[88 + 1]; Y[26] = T2re * 1.0 / (double) 64; Y[26 + 1] = T2im * 1.0 / (double) 64; Y[24] *= 1.0 / (double) 64; Y[24 + 1] *= 1.0 / (double) 64; }; { register double T2re, T2im; T2re = X[56] - X[120]; T2im = X[56 + 1] - X[120 + 1]; Y[28] = X[56] + X[120]; Y[28 + 1] = X[56 + 1] + X[120 + 1]; Y[30] = T2re * 1.0 / (double) 64; Y[30 + 1] = T2im * 1.0 / (double) 64; Y[28] *= 1.0 / (double) 64; Y[28 + 1] *= 1.0 / (double) 64; }; { register double T2re, T2im; T2re = X[4] - X[68]; T2im = X[4 + 1] - X[68 + 1]; Y[32] = X[4] + X[68]; Y[32 + 1] = X[4 + 1] + X[68 + 1]; Y[34] = T2re * 1.0 / (double) 64; Y[34 + 1] = T2im * 1.0 / (double) 64; Y[32] *= 1.0 / (double) 64; Y[32 + 1] *= 1.0 / (double) 64; }; { register double T2re, T2im; T2re = X[36] - X[100]; T2im = X[36 + 1] - X[100 + 1]; Y[36] = X[36] + X[100]; Y[36 + 1] = X[36 + 1] + X[100 + 1]; Y[38] = T2re * 1.0 / (double) 64; Y[38 + 1] = T2im * 1.0 / (double) 64; Y[36] *= 1.0 / (double) 64; Y[36 + 1] *= 1.0 / (double) 64; }; { register double T2re, T2im; T2re = X[20] - X[84]; T2im = X[20 + 1] - X[84 + 1]; Y[40] = X[20] + X[84]; Y[40 + 1] = X[20 + 1] + X[84 + 1]; Y[42] = T2re * 1.0 / (double) 64; Y[42 + 1] = T2im * 1.0 / (double) 64; Y[40] *= 1.0 / (double) 64; Y[40 + 1] *= 1.0 / (double) 64; }; { register double T2re, T2im; T2re = X[52] - X[116]; T2im = X[52 + 1] - X[116 + 1]; Y[44] = X[52] + X[116]; Y[44 + 1] = X[52 + 1] + X[116 + 1]; Y[46] = T2re * 1.0 / (double) 64; Y[46 + 1] = T2im * 1.0 / (double) 64; Y[44] *= 1.0 / (double) 64; Y[44 + 1] *= 1.0 / (double) 64; }; { register double T2re, T2im; T2re = X[12] - X[76]; T2im = X[12 + 1] - X[76 + 1]; Y[48] = X[12] + X[76]; Y[48 + 1] = X[12 + 1] + X[76 + 1]; Y[50] = T2re * 1.0 / (double) 64; Y[50 + 1] = T2im * 1.0 / (double) 64; Y[48] *= 1.0 / (double) 64; Y[48 + 1] *= 1.0 / (double) 64; }; { register double T2re, T2im; T2re = X[44] - X[108]; T2im = X[44 + 1] - X[108 + 1]; Y[52] = X[44] + X[108]; Y[52 + 1] = X[44 + 1] + X[108 + 1]; Y[54] = T2re * 1.0 / (double) 64; Y[54 + 1] = T2im * 1.0 / (double) 64; Y[52] *= 1.0 / (double) 64; Y[52 + 1] *= 1.0 / (double) 64; }; { register double T2re, T2im; T2re = X[28] - X[92]; T2im = X[28 + 1] - X[92 + 1]; Y[56] = X[28] + X[92]; Y[56 + 1] = X[28 + 1] + X[92 + 1]; Y[58] = T2re * 1.0 / (double) 64; Y[58 + 1] = T2im * 1.0 / (double) 64; Y[56] *= 1.0 / (double) 64; Y[56 + 1] *= 1.0 / (double) 64; }; { register double T2re, T2im; T2re = X[60] - X[124]; T2im = X[60 + 1] - X[124 + 1]; Y[60] = X[60] + X[124]; Y[60 + 1] = X[60 + 1] + X[124 + 1]; Y[62] = T2re * 1.0 / (double) 64; Y[62 + 1] = T2im * 1.0 / (double) 64; Y[60] *= 1.0 / (double) 64; Y[60 + 1] *= 1.0 / (double) 64; }; { register double T2re, T2im; T2re = X[2] - X[66]; T2im = X[2 + 1] - X[66 + 1]; Y[64] = X[2] + X[66]; Y[64 + 1] = X[2 + 1] + X[66 + 1]; Y[66] = T2re * 1.0 / (double) 64; Y[66 + 1] = T2im * 1.0 / (double) 64; Y[64] *= 1.0 / (double) 64; Y[64 + 1] *= 1.0 / (double) 64; }; { register double T2re, T2im; T2re = X[34] - X[98]; T2im = X[34 + 1] - X[98 + 1]; Y[68] = X[34] + X[98]; Y[68 + 1] = X[34 + 1] + X[98 + 1]; Y[70] = T2re * 1.0 / (double) 64; Y[70 + 1] = T2im * 1.0 / (double) 64; Y[68] *= 1.0 / (double) 64; Y[68 + 1] *= 1.0 / (double) 64; }; { register double T2re, T2im; T2re = X[18] - X[82]; T2im = X[18 + 1] - X[82 + 1]; Y[72] = X[18] + X[82]; Y[72 + 1] = X[18 + 1] + X[82 + 1]; Y[74] = T2re * 1.0 / (double) 64; Y[74 + 1] = T2im * 1.0 / (double) 64; Y[72] *= 1.0 / (double) 64; Y[72 + 1] *= 1.0 / (double) 64; }; { register double T2re, T2im; T2re = X[50] - X[114]; T2im = X[50 + 1] - X[114 + 1]; Y[76] = X[50] + X[114]; Y[76 + 1] = X[50 + 1] + X[114 + 1]; Y[78] = T2re * 1.0 / (double) 64; Y[78 + 1] = T2im * 1.0 / (double) 64; Y[76] *= 1.0 / (double) 64; Y[76 + 1] *= 1.0 / (double) 64; }; { register double T2re, T2im; T2re = X[10] - X[74]; T2im = X[10 + 1] - X[74 + 1]; Y[80] = X[10] + X[74]; Y[80 + 1] = X[10 + 1] + X[74 + 1]; Y[82] = T2re * 1.0 / (double) 64; Y[82 + 1] = T2im * 1.0 / (double) 64; Y[80] *= 1.0 / (double) 64; Y[80 + 1] *= 1.0 / (double) 64; }; { register double T2re, T2im; T2re = X[42] - X[106]; T2im = X[42 + 1] - X[106 + 1]; Y[84] = X[42] + X[106]; Y[84 + 1] = X[42 + 1] + X[106 + 1]; Y[86] = T2re * 1.0 / (double) 64; Y[86 + 1] = T2im * 1.0 / (double) 64; Y[84] *= 1.0 / (double) 64; Y[84 + 1] *= 1.0 / (double) 64; }; { register double T2re, T2im; T2re = X[26] - X[90]; T2im = X[26 + 1] - X[90 + 1]; Y[88] = X[26] + X[90]; Y[88 + 1] = X[26 + 1] + X[90 + 1]; Y[90] = T2re * 1.0 / (double) 64; Y[90 + 1] = T2im * 1.0 / (double) 64; Y[88] *= 1.0 / (double) 64; Y[88 + 1] *= 1.0 / (double) 64; }; { register double T2re, T2im; T2re = X[58] - X[122]; T2im = X[58 + 1] - X[122 + 1]; Y[92] = X[58] + X[122]; Y[92 + 1] = X[58 + 1] + X[122 + 1]; Y[94] = T2re * 1.0 / (double) 64; Y[94 + 1] = T2im * 1.0 / (double) 64; Y[92] *= 1.0 / (double) 64; Y[92 + 1] *= 1.0 / (double) 64; }; { register double T2re, T2im; T2re = X[6] - X[70]; T2im = X[6 + 1] - X[70 + 1]; Y[96] = X[6] + X[70]; Y[96 + 1] = X[6 + 1] + X[70 + 1]; Y[98] = T2re * 1.0 / (double) 64; Y[98 + 1] = T2im * 1.0 / (double) 64; Y[96] *= 1.0 / (double) 64; Y[96 + 1] *= 1.0 / (double) 64; }; { register double T2re, T2im; T2re = X[38] - X[102]; T2im = X[38 + 1] - X[102 + 1]; Y[100] = X[38] + X[102]; Y[100 + 1] = X[38 + 1] + X[102 + 1]; Y[102] = T2re * 1.0 / (double) 64; Y[102 + 1] = T2im * 1.0 / (double) 64; Y[100] *= 1.0 / (double) 64; Y[100 + 1] *= 1.0 / (double) 64; }; { register double T2re, T2im; T2re = X[22] - X[86]; T2im = X[22 + 1] - X[86 + 1]; Y[104] = X[22] + X[86]; Y[104 + 1] = X[22 + 1] + X[86 + 1]; Y[106] = T2re * 1.0 / (double) 64; Y[106 + 1] = T2im * 1.0 / (double) 64; Y[104] *= 1.0 / (double) 64; Y[104 + 1] *= 1.0 / (double) 64; }; { register double T2re, T2im; T2re = X[54] - X[118]; T2im = X[54 + 1] - X[118 + 1]; Y[108] = X[54] + X[118]; Y[108 + 1] = X[54 + 1] + X[118 + 1]; Y[110] = T2re * 1.0 / (double) 64; Y[110 + 1] = T2im * 1.0 / (double) 64; Y[108] *= 1.0 / (double) 64; Y[108 + 1] *= 1.0 / (double) 64; }; { register double T2re, T2im; T2re = X[14] - X[78]; T2im = X[14 + 1] - X[78 + 1]; Y[112] = X[14] + X[78]; Y[112 + 1] = X[14 + 1] + X[78 + 1]; Y[114] = T2re * 1.0 / (double) 64; Y[114 + 1] = T2im * 1.0 / (double) 64; Y[112] *= 1.0 / (double) 64; Y[112 + 1] *= 1.0 / (double) 64; }; { register double T2re, T2im; T2re = X[46] - X[110]; T2im = X[46 + 1] - X[110 + 1]; Y[116] = X[46] + X[110]; Y[116 + 1] = X[46 + 1] + X[110 + 1]; Y[118] = T2re * 1.0 / (double) 64; Y[118 + 1] = T2im * 1.0 / (double) 64; Y[116] *= 1.0 / (double) 64; Y[116 + 1] *= 1.0 / (double) 64; }; { register double T2re, T2im; T2re = X[30] - X[94]; T2im = X[30 + 1] - X[94 + 1]; Y[120] = X[30] + X[94]; Y[120 + 1] = X[30 + 1] + X[94 + 1]; Y[122] = T2re * 1.0 / (double) 64; Y[122 + 1] = T2im * 1.0 / (double) 64; Y[120] *= 1.0 / (double) 64; Y[120 + 1] *= 1.0 / (double) 64; }; { register double T2re, T2im; T2re = X[62] - X[126]; T2im = X[62 + 1] - X[126 + 1]; Y[124] = X[62] + X[126]; Y[124 + 1] = X[62 + 1] + X[126 + 1]; Y[126] = T2re * 1.0 / (double) 64; Y[126 + 1] = T2im * 1.0 / (double) 64; Y[124] *= 1.0 / (double) 64; Y[124 + 1] *= 1.0 / (double) 64; }; # 6454 "gslfft.c" gsl_power2_fft64synthesis_skip2 (X, Y); } static void gsl_power2_fft128synthesis_skip2 (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; for (block = 0; block < 256; block += 8) { { register double T2re, T2im; T2re = Y[block + 0] - Y[block + 4]; T2im = Y[block + 0 + 1] - Y[block + 4 + 1]; Y[block + 0] = Y[block + 0] + Y[block + 4]; Y[block + 0 + 1] = Y[block + 0 + 1] + Y[block + 4 + 1]; Y[block + 4] = T2re; Y[block + 4 + 1] = T2im; }; # 6484 "gslfft.c" { register double T2re, T2im; T2re = Y[block + 2] - Y[block + 6 + 1]; T2im = Y[block + 2 + 1] + Y[block + 6]; Y[block + 2] = Y[block + 2] + Y[block + 6 + 1]; Y[block + 2 + 1] = Y[block + 2 + 1] - Y[block + 6]; Y[block + 6] = T2re; Y[block + 6 + 1] = T2im; }; # 6493 "gslfft.c" } for (block = 0; block < 256; block += 16) { { register double T2re, T2im; T2re = Y[block + 0] - Y[block + 8]; T2im = Y[block + 0 + 1] - Y[block + 8 + 1]; Y[block + 0] = Y[block + 0] + Y[block + 8]; Y[block + 0 + 1] = Y[block + 0 + 1] + Y[block + 8 + 1]; Y[block + 8] = T2re; Y[block + 8 + 1] = T2im; }; # 6506 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 10] * (double) +0.707106781186548; T1im = Y[block + 10 + 1] * (double) +0.707106781186548; T2re = T1im; T2im = T1re; T1re += T2re; T1im -= T2im; T2re = Y[block + 2] - T1re; T2im = Y[block + 2 + 1] - T1im; Y[block + 2] = Y[block + 2] + T1re; Y[block + 2 + 1] = Y[block + 2 + 1] + T1im; Y[block + 10] = T2re; Y[block + 10 + 1] = T2im; }; # 6515 "gslfft.c" { register double T2re, T2im; T2re = Y[block + 4] - Y[block + 12 + 1]; T2im = Y[block + 4 + 1] + Y[block + 12]; Y[block + 4] = Y[block + 4] + Y[block + 12 + 1]; Y[block + 4 + 1] = Y[block + 4 + 1] - Y[block + 12]; Y[block + 12] = T2re; Y[block + 12 + 1] = T2im; }; # 6524 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 14] * (double) -0.707106781186547; T1im = Y[block + 14 + 1] * (double) -0.707106781186547; T2re = T1im; T2im = T1re; T1re -= T2re; T1im += T2im; T2re = Y[block + 6] - T1re; T2im = Y[block + 6 + 1] - T1im; Y[block + 6] = Y[block + 6] + T1re; Y[block + 6 + 1] = Y[block + 6 + 1] + T1im; Y[block + 14] = T2re; Y[block + 14 + 1] = T2im; }; # 6533 "gslfft.c" } for (block = 0; block < 256; block += 32) { { register double T2re, T2im; T2re = Y[block + 0] - Y[block + 16]; T2im = Y[block + 0 + 1] - Y[block + 16 + 1]; Y[block + 0] = Y[block + 0] + Y[block + 16]; Y[block + 0 + 1] = Y[block + 0 + 1] + Y[block + 16 + 1]; Y[block + 16] = T2re; Y[block + 16 + 1] = T2im; }; # 6546 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 18] * (double) +0.923879532511287; T1im = Y[block + 18 + 1] * (double) +0.923879532511287; T2re = Y[block + 18 + 1] * (double) -0.382683432365090; T2im = Y[block + 18] * (double) -0.382683432365090; T1re -= T2re; T1im += T2im; T2re = Y[block + 2] - T1re; T2im = Y[block + 2 + 1] - T1im; Y[block + 2] = Y[block + 2] + T1re; Y[block + 2 + 1] = Y[block + 2 + 1] + T1im; Y[block + 18] = T2re; Y[block + 18 + 1] = T2im; }; # 6555 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 20] * (double) +0.707106781186548; T1im = Y[block + 20 + 1] * (double) +0.707106781186548; T2re = T1im; T2im = T1re; T1re += T2re; T1im -= T2im; T2re = Y[block + 4] - T1re; T2im = Y[block + 4 + 1] - T1im; Y[block + 4] = Y[block + 4] + T1re; Y[block + 4 + 1] = Y[block + 4 + 1] + T1im; Y[block + 20] = T2re; Y[block + 20 + 1] = T2im; }; # 6564 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 22] * (double) +0.382683432365090; T1im = Y[block + 22 + 1] * (double) +0.382683432365090; T2re = Y[block + 22 + 1] * (double) -0.923879532511287; T2im = Y[block + 22] * (double) -0.923879532511287; T1re -= T2re; T1im += T2im; T2re = Y[block + 6] - T1re; T2im = Y[block + 6 + 1] - T1im; Y[block + 6] = Y[block + 6] + T1re; Y[block + 6 + 1] = Y[block + 6 + 1] + T1im; Y[block + 22] = T2re; Y[block + 22 + 1] = T2im; }; # 6573 "gslfft.c" { register double T2re, T2im; T2re = Y[block + 8] - Y[block + 24 + 1]; T2im = Y[block + 8 + 1] + Y[block + 24]; Y[block + 8] = Y[block + 8] + Y[block + 24 + 1]; Y[block + 8 + 1] = Y[block + 8 + 1] - Y[block + 24]; Y[block + 24] = T2re; Y[block + 24 + 1] = T2im; }; # 6582 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 26] * (double) -0.382683432365090; T1im = Y[block + 26 + 1] * (double) -0.382683432365090; T2re = Y[block + 26 + 1] * (double) -0.923879532511287; T2im = Y[block + 26] * (double) -0.923879532511287; T1re -= T2re; T1im += T2im; T2re = Y[block + 10] - T1re; T2im = Y[block + 10 + 1] - T1im; Y[block + 10] = Y[block + 10] + T1re; Y[block + 10 + 1] = Y[block + 10 + 1] + T1im; Y[block + 26] = T2re; Y[block + 26 + 1] = T2im; }; # 6591 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 28] * (double) -0.707106781186547; T1im = Y[block + 28 + 1] * (double) -0.707106781186547; T2re = T1im; T2im = T1re; T1re -= T2re; T1im += T2im; T2re = Y[block + 12] - T1re; T2im = Y[block + 12 + 1] - T1im; Y[block + 12] = Y[block + 12] + T1re; Y[block + 12 + 1] = Y[block + 12 + 1] + T1im; Y[block + 28] = T2re; Y[block + 28 + 1] = T2im; }; # 6600 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 30] * (double) -0.923879532511287; T1im = Y[block + 30 + 1] * (double) -0.923879532511287; T2re = Y[block + 30 + 1] * (double) -0.382683432365090; T2im = Y[block + 30] * (double) -0.382683432365090; T1re -= T2re; T1im += T2im; T2re = Y[block + 14] - T1re; T2im = Y[block + 14 + 1] - T1im; Y[block + 14] = Y[block + 14] + T1re; Y[block + 14 + 1] = Y[block + 14 + 1] + T1im; Y[block + 30] = T2re; Y[block + 30 + 1] = T2im; }; # 6609 "gslfft.c" } for (block = 0; block < 256; block += 64) { { register double T2re, T2im; T2re = Y[block + 0] - Y[block + 32]; T2im = Y[block + 0 + 1] - Y[block + 32 + 1]; Y[block + 0] = Y[block + 0] + Y[block + 32]; Y[block + 0 + 1] = Y[block + 0 + 1] + Y[block + 32 + 1]; Y[block + 32] = T2re; Y[block + 32 + 1] = T2im; }; # 6622 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 34] * (double) +0.980785280403230; T1im = Y[block + 34 + 1] * (double) +0.980785280403230; T2re = Y[block + 34 + 1] * (double) -0.195090322016128; T2im = Y[block + 34] * (double) -0.195090322016128; T1re -= T2re; T1im += T2im; T2re = Y[block + 2] - T1re; T2im = Y[block + 2 + 1] - T1im; Y[block + 2] = Y[block + 2] + T1re; Y[block + 2 + 1] = Y[block + 2 + 1] + T1im; Y[block + 34] = T2re; Y[block + 34 + 1] = T2im; }; # 6631 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 36] * (double) +0.923879532511287; T1im = Y[block + 36 + 1] * (double) +0.923879532511287; T2re = Y[block + 36 + 1] * (double) -0.382683432365090; T2im = Y[block + 36] * (double) -0.382683432365090; T1re -= T2re; T1im += T2im; T2re = Y[block + 4] - T1re; T2im = Y[block + 4 + 1] - T1im; Y[block + 4] = Y[block + 4] + T1re; Y[block + 4 + 1] = Y[block + 4 + 1] + T1im; Y[block + 36] = T2re; Y[block + 36 + 1] = T2im; }; # 6640 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 38] * (double) +0.831469612302545; T1im = Y[block + 38 + 1] * (double) +0.831469612302545; T2re = Y[block + 38 + 1] * (double) -0.555570233019602; T2im = Y[block + 38] * (double) -0.555570233019602; T1re -= T2re; T1im += T2im; T2re = Y[block + 6] - T1re; T2im = Y[block + 6 + 1] - T1im; Y[block + 6] = Y[block + 6] + T1re; Y[block + 6 + 1] = Y[block + 6 + 1] + T1im; Y[block + 38] = T2re; Y[block + 38 + 1] = T2im; }; # 6649 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 40] * (double) +0.707106781186548; T1im = Y[block + 40 + 1] * (double) +0.707106781186548; T2re = T1im; T2im = T1re; T1re += T2re; T1im -= T2im; T2re = Y[block + 8] - T1re; T2im = Y[block + 8 + 1] - T1im; Y[block + 8] = Y[block + 8] + T1re; Y[block + 8 + 1] = Y[block + 8 + 1] + T1im; Y[block + 40] = T2re; Y[block + 40 + 1] = T2im; }; # 6658 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 42] * (double) +0.555570233019602; T1im = Y[block + 42 + 1] * (double) +0.555570233019602; T2re = Y[block + 42 + 1] * (double) -0.831469612302545; T2im = Y[block + 42] * (double) -0.831469612302545; T1re -= T2re; T1im += T2im; T2re = Y[block + 10] - T1re; T2im = Y[block + 10 + 1] - T1im; Y[block + 10] = Y[block + 10] + T1re; Y[block + 10 + 1] = Y[block + 10 + 1] + T1im; Y[block + 42] = T2re; Y[block + 42 + 1] = T2im; }; # 6667 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 44] * (double) +0.382683432365090; T1im = Y[block + 44 + 1] * (double) +0.382683432365090; T2re = Y[block + 44 + 1] * (double) -0.923879532511287; T2im = Y[block + 44] * (double) -0.923879532511287; T1re -= T2re; T1im += T2im; T2re = Y[block + 12] - T1re; T2im = Y[block + 12 + 1] - T1im; Y[block + 12] = Y[block + 12] + T1re; Y[block + 12 + 1] = Y[block + 12 + 1] + T1im; Y[block + 44] = T2re; Y[block + 44 + 1] = T2im; }; # 6676 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 46] * (double) +0.195090322016128; T1im = Y[block + 46 + 1] * (double) +0.195090322016128; T2re = Y[block + 46 + 1] * (double) -0.980785280403230; T2im = Y[block + 46] * (double) -0.980785280403230; T1re -= T2re; T1im += T2im; T2re = Y[block + 14] - T1re; T2im = Y[block + 14 + 1] - T1im; Y[block + 14] = Y[block + 14] + T1re; Y[block + 14 + 1] = Y[block + 14 + 1] + T1im; Y[block + 46] = T2re; Y[block + 46 + 1] = T2im; }; # 6685 "gslfft.c" { register double T2re, T2im; T2re = Y[block + 16] - Y[block + 48 + 1]; T2im = Y[block + 16 + 1] + Y[block + 48]; Y[block + 16] = Y[block + 16] + Y[block + 48 + 1]; Y[block + 16 + 1] = Y[block + 16 + 1] - Y[block + 48]; Y[block + 48] = T2re; Y[block + 48 + 1] = T2im; }; # 6694 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 50] * (double) -0.195090322016128; T1im = Y[block + 50 + 1] * (double) -0.195090322016128; T2re = Y[block + 50 + 1] * (double) -0.980785280403230; T2im = Y[block + 50] * (double) -0.980785280403230; T1re -= T2re; T1im += T2im; T2re = Y[block + 18] - T1re; T2im = Y[block + 18 + 1] - T1im; Y[block + 18] = Y[block + 18] + T1re; Y[block + 18 + 1] = Y[block + 18 + 1] + T1im; Y[block + 50] = T2re; Y[block + 50 + 1] = T2im; }; # 6703 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 52] * (double) -0.382683432365090; T1im = Y[block + 52 + 1] * (double) -0.382683432365090; T2re = Y[block + 52 + 1] * (double) -0.923879532511287; T2im = Y[block + 52] * (double) -0.923879532511287; T1re -= T2re; T1im += T2im; T2re = Y[block + 20] - T1re; T2im = Y[block + 20 + 1] - T1im; Y[block + 20] = Y[block + 20] + T1re; Y[block + 20 + 1] = Y[block + 20 + 1] + T1im; Y[block + 52] = T2re; Y[block + 52 + 1] = T2im; }; # 6712 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 54] * (double) -0.555570233019602; T1im = Y[block + 54 + 1] * (double) -0.555570233019602; T2re = Y[block + 54 + 1] * (double) -0.831469612302545; T2im = Y[block + 54] * (double) -0.831469612302545; T1re -= T2re; T1im += T2im; T2re = Y[block + 22] - T1re; T2im = Y[block + 22 + 1] - T1im; Y[block + 22] = Y[block + 22] + T1re; Y[block + 22 + 1] = Y[block + 22 + 1] + T1im; Y[block + 54] = T2re; Y[block + 54 + 1] = T2im; }; # 6721 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 56] * (double) -0.707106781186547; T1im = Y[block + 56 + 1] * (double) -0.707106781186547; T2re = T1im; T2im = T1re; T1re -= T2re; T1im += T2im; T2re = Y[block + 24] - T1re; T2im = Y[block + 24 + 1] - T1im; Y[block + 24] = Y[block + 24] + T1re; Y[block + 24 + 1] = Y[block + 24 + 1] + T1im; Y[block + 56] = T2re; Y[block + 56 + 1] = T2im; }; # 6730 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 58] * (double) -0.831469612302545; T1im = Y[block + 58 + 1] * (double) -0.831469612302545; T2re = Y[block + 58 + 1] * (double) -0.555570233019602; T2im = Y[block + 58] * (double) -0.555570233019602; T1re -= T2re; T1im += T2im; T2re = Y[block + 26] - T1re; T2im = Y[block + 26 + 1] - T1im; Y[block + 26] = Y[block + 26] + T1re; Y[block + 26 + 1] = Y[block + 26 + 1] + T1im; Y[block + 58] = T2re; Y[block + 58 + 1] = T2im; }; # 6739 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 60] * (double) -0.923879532511287; T1im = Y[block + 60 + 1] * (double) -0.923879532511287; T2re = Y[block + 60 + 1] * (double) -0.382683432365090; T2im = Y[block + 60] * (double) -0.382683432365090; T1re -= T2re; T1im += T2im; T2re = Y[block + 28] - T1re; T2im = Y[block + 28 + 1] - T1im; Y[block + 28] = Y[block + 28] + T1re; Y[block + 28 + 1] = Y[block + 28 + 1] + T1im; Y[block + 60] = T2re; Y[block + 60 + 1] = T2im; }; # 6748 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 62] * (double) -0.980785280403230; T1im = Y[block + 62 + 1] * (double) -0.980785280403230; T2re = Y[block + 62 + 1] * (double) -0.195090322016129; T2im = Y[block + 62] * (double) -0.195090322016129; T1re -= T2re; T1im += T2im; T2re = Y[block + 30] - T1re; T2im = Y[block + 30 + 1] - T1im; Y[block + 30] = Y[block + 30] + T1re; Y[block + 30 + 1] = Y[block + 30 + 1] + T1im; Y[block + 62] = T2re; Y[block + 62 + 1] = T2im; }; # 6757 "gslfft.c" } for (block = 0; block < 256; block += 128) { { register double T2re, T2im; T2re = Y[block + 0] - Y[block + 64]; T2im = Y[block + 0 + 1] - Y[block + 64 + 1]; Y[block + 0] = Y[block + 0] + Y[block + 64]; Y[block + 0 + 1] = Y[block + 0 + 1] + Y[block + 64 + 1]; Y[block + 64] = T2re; Y[block + 64 + 1] = T2im; }; # 6770 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 66] * (double) +0.995184726672197; T1im = Y[block + 66 + 1] * (double) +0.995184726672197; T2re = Y[block + 66 + 1] * (double) -0.098017140329561; T2im = Y[block + 66] * (double) -0.098017140329561; T1re -= T2re; T1im += T2im; T2re = Y[block + 2] - T1re; T2im = Y[block + 2 + 1] - T1im; Y[block + 2] = Y[block + 2] + T1re; Y[block + 2 + 1] = Y[block + 2 + 1] + T1im; Y[block + 66] = T2re; Y[block + 66 + 1] = T2im; }; # 6779 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 68] * (double) +0.980785280403230; T1im = Y[block + 68 + 1] * (double) +0.980785280403230; T2re = Y[block + 68 + 1] * (double) -0.195090322016128; T2im = Y[block + 68] * (double) -0.195090322016128; T1re -= T2re; T1im += T2im; T2re = Y[block + 4] - T1re; T2im = Y[block + 4 + 1] - T1im; Y[block + 4] = Y[block + 4] + T1re; Y[block + 4 + 1] = Y[block + 4 + 1] + T1im; Y[block + 68] = T2re; Y[block + 68 + 1] = T2im; }; # 6788 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 70] * (double) +0.956940335732209; T1im = Y[block + 70 + 1] * (double) +0.956940335732209; T2re = Y[block + 70 + 1] * (double) -0.290284677254462; T2im = Y[block + 70] * (double) -0.290284677254462; T1re -= T2re; T1im += T2im; T2re = Y[block + 6] - T1re; T2im = Y[block + 6 + 1] - T1im; Y[block + 6] = Y[block + 6] + T1re; Y[block + 6 + 1] = Y[block + 6 + 1] + T1im; Y[block + 70] = T2re; Y[block + 70 + 1] = T2im; }; # 6797 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 72] * (double) +0.923879532511287; T1im = Y[block + 72 + 1] * (double) +0.923879532511287; T2re = Y[block + 72 + 1] * (double) -0.382683432365090; T2im = Y[block + 72] * (double) -0.382683432365090; T1re -= T2re; T1im += T2im; T2re = Y[block + 8] - T1re; T2im = Y[block + 8 + 1] - T1im; Y[block + 8] = Y[block + 8] + T1re; Y[block + 8 + 1] = Y[block + 8 + 1] + T1im; Y[block + 72] = T2re; Y[block + 72 + 1] = T2im; }; # 6806 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 74] * (double) +0.881921264348355; T1im = Y[block + 74 + 1] * (double) +0.881921264348355; T2re = Y[block + 74 + 1] * (double) -0.471396736825998; T2im = Y[block + 74] * (double) -0.471396736825998; T1re -= T2re; T1im += T2im; T2re = Y[block + 10] - T1re; T2im = Y[block + 10 + 1] - T1im; Y[block + 10] = Y[block + 10] + T1re; Y[block + 10 + 1] = Y[block + 10 + 1] + T1im; Y[block + 74] = T2re; Y[block + 74 + 1] = T2im; }; # 6815 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 76] * (double) +0.831469612302545; T1im = Y[block + 76 + 1] * (double) +0.831469612302545; T2re = Y[block + 76 + 1] * (double) -0.555570233019602; T2im = Y[block + 76] * (double) -0.555570233019602; T1re -= T2re; T1im += T2im; T2re = Y[block + 12] - T1re; T2im = Y[block + 12 + 1] - T1im; Y[block + 12] = Y[block + 12] + T1re; Y[block + 12 + 1] = Y[block + 12 + 1] + T1im; Y[block + 76] = T2re; Y[block + 76 + 1] = T2im; }; # 6824 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 78] * (double) +0.773010453362737; T1im = Y[block + 78 + 1] * (double) +0.773010453362737; T2re = Y[block + 78 + 1] * (double) -0.634393284163645; T2im = Y[block + 78] * (double) -0.634393284163645; T1re -= T2re; T1im += T2im; T2re = Y[block + 14] - T1re; T2im = Y[block + 14 + 1] - T1im; Y[block + 14] = Y[block + 14] + T1re; Y[block + 14 + 1] = Y[block + 14 + 1] + T1im; Y[block + 78] = T2re; Y[block + 78 + 1] = T2im; }; # 6833 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 80] * (double) +0.707106781186548; T1im = Y[block + 80 + 1] * (double) +0.707106781186548; T2re = T1im; T2im = T1re; T1re += T2re; T1im -= T2im; T2re = Y[block + 16] - T1re; T2im = Y[block + 16 + 1] - T1im; Y[block + 16] = Y[block + 16] + T1re; Y[block + 16 + 1] = Y[block + 16 + 1] + T1im; Y[block + 80] = T2re; Y[block + 80 + 1] = T2im; }; # 6842 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 82] * (double) +0.634393284163645; T1im = Y[block + 82 + 1] * (double) +0.634393284163645; T2re = Y[block + 82 + 1] * (double) -0.773010453362737; T2im = Y[block + 82] * (double) -0.773010453362737; T1re -= T2re; T1im += T2im; T2re = Y[block + 18] - T1re; T2im = Y[block + 18 + 1] - T1im; Y[block + 18] = Y[block + 18] + T1re; Y[block + 18 + 1] = Y[block + 18 + 1] + T1im; Y[block + 82] = T2re; Y[block + 82 + 1] = T2im; }; # 6851 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 84] * (double) +0.555570233019602; T1im = Y[block + 84 + 1] * (double) +0.555570233019602; T2re = Y[block + 84 + 1] * (double) -0.831469612302545; T2im = Y[block + 84] * (double) -0.831469612302545; T1re -= T2re; T1im += T2im; T2re = Y[block + 20] - T1re; T2im = Y[block + 20 + 1] - T1im; Y[block + 20] = Y[block + 20] + T1re; Y[block + 20 + 1] = Y[block + 20 + 1] + T1im; Y[block + 84] = T2re; Y[block + 84 + 1] = T2im; }; # 6860 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 86] * (double) +0.471396736825998; T1im = Y[block + 86 + 1] * (double) +0.471396736825998; T2re = Y[block + 86 + 1] * (double) -0.881921264348355; T2im = Y[block + 86] * (double) -0.881921264348355; T1re -= T2re; T1im += T2im; T2re = Y[block + 22] - T1re; T2im = Y[block + 22 + 1] - T1im; Y[block + 22] = Y[block + 22] + T1re; Y[block + 22 + 1] = Y[block + 22 + 1] + T1im; Y[block + 86] = T2re; Y[block + 86 + 1] = T2im; }; # 6869 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 88] * (double) +0.382683432365090; T1im = Y[block + 88 + 1] * (double) +0.382683432365090; T2re = Y[block + 88 + 1] * (double) -0.923879532511287; T2im = Y[block + 88] * (double) -0.923879532511287; T1re -= T2re; T1im += T2im; T2re = Y[block + 24] - T1re; T2im = Y[block + 24 + 1] - T1im; Y[block + 24] = Y[block + 24] + T1re; Y[block + 24 + 1] = Y[block + 24 + 1] + T1im; Y[block + 88] = T2re; Y[block + 88 + 1] = T2im; }; # 6878 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 90] * (double) +0.290284677254462; T1im = Y[block + 90 + 1] * (double) +0.290284677254462; T2re = Y[block + 90 + 1] * (double) -0.956940335732209; T2im = Y[block + 90] * (double) -0.956940335732209; T1re -= T2re; T1im += T2im; T2re = Y[block + 26] - T1re; T2im = Y[block + 26 + 1] - T1im; Y[block + 26] = Y[block + 26] + T1re; Y[block + 26 + 1] = Y[block + 26 + 1] + T1im; Y[block + 90] = T2re; Y[block + 90 + 1] = T2im; }; # 6887 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 92] * (double) +0.195090322016128; T1im = Y[block + 92 + 1] * (double) +0.195090322016128; T2re = Y[block + 92 + 1] * (double) -0.980785280403230; T2im = Y[block + 92] * (double) -0.980785280403230; T1re -= T2re; T1im += T2im; T2re = Y[block + 28] - T1re; T2im = Y[block + 28 + 1] - T1im; Y[block + 28] = Y[block + 28] + T1re; Y[block + 28 + 1] = Y[block + 28 + 1] + T1im; Y[block + 92] = T2re; Y[block + 92 + 1] = T2im; }; # 6896 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 94] * (double) +0.098017140329561; T1im = Y[block + 94 + 1] * (double) +0.098017140329561; T2re = Y[block + 94 + 1] * (double) -0.995184726672197; T2im = Y[block + 94] * (double) -0.995184726672197; T1re -= T2re; T1im += T2im; T2re = Y[block + 30] - T1re; T2im = Y[block + 30 + 1] - T1im; Y[block + 30] = Y[block + 30] + T1re; Y[block + 30 + 1] = Y[block + 30 + 1] + T1im; Y[block + 94] = T2re; Y[block + 94 + 1] = T2im; }; # 6905 "gslfft.c" { register double T2re, T2im; T2re = Y[block + 32] - Y[block + 96 + 1]; T2im = Y[block + 32 + 1] + Y[block + 96]; Y[block + 32] = Y[block + 32] + Y[block + 96 + 1]; Y[block + 32 + 1] = Y[block + 32 + 1] - Y[block + 96]; Y[block + 96] = T2re; Y[block + 96 + 1] = T2im; }; # 6914 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 98] * (double) -0.098017140329561; T1im = Y[block + 98 + 1] * (double) -0.098017140329561; T2re = Y[block + 98 + 1] * (double) -0.995184726672197; T2im = Y[block + 98] * (double) -0.995184726672197; T1re -= T2re; T1im += T2im; T2re = Y[block + 34] - T1re; T2im = Y[block + 34 + 1] - T1im; Y[block + 34] = Y[block + 34] + T1re; Y[block + 34 + 1] = Y[block + 34 + 1] + T1im; Y[block + 98] = T2re; Y[block + 98 + 1] = T2im; }; # 6923 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 100] * (double) -0.195090322016128; T1im = Y[block + 100 + 1] * (double) -0.195090322016128; T2re = Y[block + 100 + 1] * (double) -0.980785280403230; T2im = Y[block + 100] * (double) -0.980785280403230; T1re -= T2re; T1im += T2im; T2re = Y[block + 36] - T1re; T2im = Y[block + 36 + 1] - T1im; Y[block + 36] = Y[block + 36] + T1re; Y[block + 36 + 1] = Y[block + 36 + 1] + T1im; Y[block + 100] = T2re; Y[block + 100 + 1] = T2im; }; # 6932 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 102] * (double) -0.290284677254462; T1im = Y[block + 102 + 1] * (double) -0.290284677254462; T2re = Y[block + 102 + 1] * (double) -0.956940335732209; T2im = Y[block + 102] * (double) -0.956940335732209; T1re -= T2re; T1im += T2im; T2re = Y[block + 38] - T1re; T2im = Y[block + 38 + 1] - T1im; Y[block + 38] = Y[block + 38] + T1re; Y[block + 38 + 1] = Y[block + 38 + 1] + T1im; Y[block + 102] = T2re; Y[block + 102 + 1] = T2im; }; # 6941 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 104] * (double) -0.382683432365090; T1im = Y[block + 104 + 1] * (double) -0.382683432365090; T2re = Y[block + 104 + 1] * (double) -0.923879532511287; T2im = Y[block + 104] * (double) -0.923879532511287; T1re -= T2re; T1im += T2im; T2re = Y[block + 40] - T1re; T2im = Y[block + 40 + 1] - T1im; Y[block + 40] = Y[block + 40] + T1re; Y[block + 40 + 1] = Y[block + 40 + 1] + T1im; Y[block + 104] = T2re; Y[block + 104 + 1] = T2im; }; # 6950 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 106] * (double) -0.471396736825998; T1im = Y[block + 106 + 1] * (double) -0.471396736825998; T2re = Y[block + 106 + 1] * (double) -0.881921264348355; T2im = Y[block + 106] * (double) -0.881921264348355; T1re -= T2re; T1im += T2im; T2re = Y[block + 42] - T1re; T2im = Y[block + 42 + 1] - T1im; Y[block + 42] = Y[block + 42] + T1re; Y[block + 42 + 1] = Y[block + 42 + 1] + T1im; Y[block + 106] = T2re; Y[block + 106 + 1] = T2im; }; # 6959 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 108] * (double) -0.555570233019602; T1im = Y[block + 108 + 1] * (double) -0.555570233019602; T2re = Y[block + 108 + 1] * (double) -0.831469612302545; T2im = Y[block + 108] * (double) -0.831469612302545; T1re -= T2re; T1im += T2im; T2re = Y[block + 44] - T1re; T2im = Y[block + 44 + 1] - T1im; Y[block + 44] = Y[block + 44] + T1re; Y[block + 44 + 1] = Y[block + 44 + 1] + T1im; Y[block + 108] = T2re; Y[block + 108 + 1] = T2im; }; # 6968 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 110] * (double) -0.634393284163645; T1im = Y[block + 110 + 1] * (double) -0.634393284163645; T2re = Y[block + 110 + 1] * (double) -0.773010453362737; T2im = Y[block + 110] * (double) -0.773010453362737; T1re -= T2re; T1im += T2im; T2re = Y[block + 46] - T1re; T2im = Y[block + 46 + 1] - T1im; Y[block + 46] = Y[block + 46] + T1re; Y[block + 46 + 1] = Y[block + 46 + 1] + T1im; Y[block + 110] = T2re; Y[block + 110 + 1] = T2im; }; # 6977 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 112] * (double) -0.707106781186547; T1im = Y[block + 112 + 1] * (double) -0.707106781186547; T2re = T1im; T2im = T1re; T1re -= T2re; T1im += T2im; T2re = Y[block + 48] - T1re; T2im = Y[block + 48 + 1] - T1im; Y[block + 48] = Y[block + 48] + T1re; Y[block + 48 + 1] = Y[block + 48 + 1] + T1im; Y[block + 112] = T2re; Y[block + 112 + 1] = T2im; }; # 6986 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 114] * (double) -0.773010453362737; T1im = Y[block + 114 + 1] * (double) -0.773010453362737; T2re = Y[block + 114 + 1] * (double) -0.634393284163645; T2im = Y[block + 114] * (double) -0.634393284163645; T1re -= T2re; T1im += T2im; T2re = Y[block + 50] - T1re; T2im = Y[block + 50 + 1] - T1im; Y[block + 50] = Y[block + 50] + T1re; Y[block + 50 + 1] = Y[block + 50 + 1] + T1im; Y[block + 114] = T2re; Y[block + 114 + 1] = T2im; }; # 6995 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 116] * (double) -0.831469612302545; T1im = Y[block + 116 + 1] * (double) -0.831469612302545; T2re = Y[block + 116 + 1] * (double) -0.555570233019602; T2im = Y[block + 116] * (double) -0.555570233019602; T1re -= T2re; T1im += T2im; T2re = Y[block + 52] - T1re; T2im = Y[block + 52 + 1] - T1im; Y[block + 52] = Y[block + 52] + T1re; Y[block + 52 + 1] = Y[block + 52 + 1] + T1im; Y[block + 116] = T2re; Y[block + 116 + 1] = T2im; }; # 7004 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 118] * (double) -0.881921264348355; T1im = Y[block + 118 + 1] * (double) -0.881921264348355; T2re = Y[block + 118 + 1] * (double) -0.471396736825998; T2im = Y[block + 118] * (double) -0.471396736825998; T1re -= T2re; T1im += T2im; T2re = Y[block + 54] - T1re; T2im = Y[block + 54 + 1] - T1im; Y[block + 54] = Y[block + 54] + T1re; Y[block + 54 + 1] = Y[block + 54 + 1] + T1im; Y[block + 118] = T2re; Y[block + 118 + 1] = T2im; }; # 7013 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 120] * (double) -0.923879532511287; T1im = Y[block + 120 + 1] * (double) -0.923879532511287; T2re = Y[block + 120 + 1] * (double) -0.382683432365090; T2im = Y[block + 120] * (double) -0.382683432365090; T1re -= T2re; T1im += T2im; T2re = Y[block + 56] - T1re; T2im = Y[block + 56 + 1] - T1im; Y[block + 56] = Y[block + 56] + T1re; Y[block + 56 + 1] = Y[block + 56 + 1] + T1im; Y[block + 120] = T2re; Y[block + 120 + 1] = T2im; }; # 7022 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 122] * (double) -0.956940335732209; T1im = Y[block + 122 + 1] * (double) -0.956940335732209; T2re = Y[block + 122 + 1] * (double) -0.290284677254462; T2im = Y[block + 122] * (double) -0.290284677254462; T1re -= T2re; T1im += T2im; T2re = Y[block + 58] - T1re; T2im = Y[block + 58 + 1] - T1im; Y[block + 58] = Y[block + 58] + T1re; Y[block + 58 + 1] = Y[block + 58 + 1] + T1im; Y[block + 122] = T2re; Y[block + 122 + 1] = T2im; }; # 7031 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 124] * (double) -0.980785280403230; T1im = Y[block + 124 + 1] * (double) -0.980785280403230; T2re = Y[block + 124 + 1] * (double) -0.195090322016129; T2im = Y[block + 124] * (double) -0.195090322016129; T1re -= T2re; T1im += T2im; T2re = Y[block + 60] - T1re; T2im = Y[block + 60 + 1] - T1im; Y[block + 60] = Y[block + 60] + T1re; Y[block + 60 + 1] = Y[block + 60 + 1] + T1im; Y[block + 124] = T2re; Y[block + 124 + 1] = T2im; }; # 7040 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[block + 126] * (double) -0.995184726672197; T1im = Y[block + 126 + 1] * (double) -0.995184726672197; T2re = Y[block + 126 + 1] * (double) -0.098017140329561; T2im = Y[block + 126] * (double) -0.098017140329561; T1re -= T2re; T1im += T2im; T2re = Y[block + 62] - T1re; T2im = Y[block + 62 + 1] - T1im; Y[block + 62] = Y[block + 62] + T1re; Y[block + 62 + 1] = Y[block + 62 + 1] + T1im; Y[block + 126] = T2re; Y[block + 126 + 1] = T2im; }; # 7049 "gslfft.c" } { register double T2re, T2im; T2re = Y[0] - Y[128]; T2im = Y[0 + 1] - Y[128 + 1]; Y[0] = Y[0] + Y[128]; Y[0 + 1] = Y[0 + 1] + Y[128 + 1]; Y[128] = T2re; Y[128 + 1] = T2im; }; # 7061 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[130] * (double) +0.998795456205172; T1im = Y[130 + 1] * (double) +0.998795456205172; T2re = Y[130 + 1] * (double) -0.049067674327418; T2im = Y[130] * (double) -0.049067674327418; T1re -= T2re; T1im += T2im; T2re = Y[2] - T1re; T2im = Y[2 + 1] - T1im; Y[2] = Y[2] + T1re; Y[2 + 1] = Y[2 + 1] + T1im; Y[130] = T2re; Y[130 + 1] = T2im; }; # 7070 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[132] * (double) +0.995184726672197; T1im = Y[132 + 1] * (double) +0.995184726672197; T2re = Y[132 + 1] * (double) -0.098017140329561; T2im = Y[132] * (double) -0.098017140329561; T1re -= T2re; T1im += T2im; T2re = Y[4] - T1re; T2im = Y[4 + 1] - T1im; Y[4] = Y[4] + T1re; Y[4 + 1] = Y[4 + 1] + T1im; Y[132] = T2re; Y[132 + 1] = T2im; }; # 7079 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[134] * (double) +0.989176509964781; T1im = Y[134 + 1] * (double) +0.989176509964781; T2re = Y[134 + 1] * (double) -0.146730474455362; T2im = Y[134] * (double) -0.146730474455362; T1re -= T2re; T1im += T2im; T2re = Y[6] - T1re; T2im = Y[6 + 1] - T1im; Y[6] = Y[6] + T1re; Y[6 + 1] = Y[6 + 1] + T1im; Y[134] = T2re; Y[134 + 1] = T2im; }; # 7088 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[136] * (double) +0.980785280403230; T1im = Y[136 + 1] * (double) +0.980785280403230; T2re = Y[136 + 1] * (double) -0.195090322016128; T2im = Y[136] * (double) -0.195090322016128; T1re -= T2re; T1im += T2im; T2re = Y[8] - T1re; T2im = Y[8 + 1] - T1im; Y[8] = Y[8] + T1re; Y[8 + 1] = Y[8 + 1] + T1im; Y[136] = T2re; Y[136 + 1] = T2im; }; # 7097 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[138] * (double) +0.970031253194544; T1im = Y[138 + 1] * (double) +0.970031253194544; T2re = Y[138 + 1] * (double) -0.242980179903264; T2im = Y[138] * (double) -0.242980179903264; T1re -= T2re; T1im += T2im; T2re = Y[10] - T1re; T2im = Y[10 + 1] - T1im; Y[10] = Y[10] + T1re; Y[10 + 1] = Y[10 + 1] + T1im; Y[138] = T2re; Y[138 + 1] = T2im; }; # 7106 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[140] * (double) +0.956940335732209; T1im = Y[140 + 1] * (double) +0.956940335732209; T2re = Y[140 + 1] * (double) -0.290284677254462; T2im = Y[140] * (double) -0.290284677254462; T1re -= T2re; T1im += T2im; T2re = Y[12] - T1re; T2im = Y[12 + 1] - T1im; Y[12] = Y[12] + T1re; Y[12 + 1] = Y[12 + 1] + T1im; Y[140] = T2re; Y[140 + 1] = T2im; }; # 7115 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[142] * (double) +0.941544065183021; T1im = Y[142 + 1] * (double) +0.941544065183021; T2re = Y[142 + 1] * (double) -0.336889853392220; T2im = Y[142] * (double) -0.336889853392220; T1re -= T2re; T1im += T2im; T2re = Y[14] - T1re; T2im = Y[14 + 1] - T1im; Y[14] = Y[14] + T1re; Y[14 + 1] = Y[14 + 1] + T1im; Y[142] = T2re; Y[142 + 1] = T2im; }; # 7124 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[144] * (double) +0.923879532511287; T1im = Y[144 + 1] * (double) +0.923879532511287; T2re = Y[144 + 1] * (double) -0.382683432365090; T2im = Y[144] * (double) -0.382683432365090; T1re -= T2re; T1im += T2im; T2re = Y[16] - T1re; T2im = Y[16 + 1] - T1im; Y[16] = Y[16] + T1re; Y[16 + 1] = Y[16 + 1] + T1im; Y[144] = T2re; Y[144 + 1] = T2im; }; # 7133 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[146] * (double) +0.903989293123443; T1im = Y[146 + 1] * (double) +0.903989293123443; T2re = Y[146 + 1] * (double) -0.427555093430282; T2im = Y[146] * (double) -0.427555093430282; T1re -= T2re; T1im += T2im; T2re = Y[18] - T1re; T2im = Y[18 + 1] - T1im; Y[18] = Y[18] + T1re; Y[18 + 1] = Y[18 + 1] + T1im; Y[146] = T2re; Y[146 + 1] = T2im; }; # 7142 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[148] * (double) +0.881921264348355; T1im = Y[148 + 1] * (double) +0.881921264348355; T2re = Y[148 + 1] * (double) -0.471396736825998; T2im = Y[148] * (double) -0.471396736825998; T1re -= T2re; T1im += T2im; T2re = Y[20] - T1re; T2im = Y[20 + 1] - T1im; Y[20] = Y[20] + T1re; Y[20 + 1] = Y[20 + 1] + T1im; Y[148] = T2re; Y[148 + 1] = T2im; }; # 7151 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[150] * (double) +0.857728610000272; T1im = Y[150 + 1] * (double) +0.857728610000272; T2re = Y[150 + 1] * (double) -0.514102744193222; T2im = Y[150] * (double) -0.514102744193222; T1re -= T2re; T1im += T2im; T2re = Y[22] - T1re; T2im = Y[22 + 1] - T1im; Y[22] = Y[22] + T1re; Y[22 + 1] = Y[22 + 1] + T1im; Y[150] = T2re; Y[150 + 1] = T2im; }; # 7160 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[152] * (double) +0.831469612302545; T1im = Y[152 + 1] * (double) +0.831469612302545; T2re = Y[152 + 1] * (double) -0.555570233019602; T2im = Y[152] * (double) -0.555570233019602; T1re -= T2re; T1im += T2im; T2re = Y[24] - T1re; T2im = Y[24 + 1] - T1im; Y[24] = Y[24] + T1re; Y[24 + 1] = Y[24 + 1] + T1im; Y[152] = T2re; Y[152 + 1] = T2im; }; # 7169 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[154] * (double) +0.803207531480645; T1im = Y[154 + 1] * (double) +0.803207531480645; T2re = Y[154 + 1] * (double) -0.595699304492433; T2im = Y[154] * (double) -0.595699304492433; T1re -= T2re; T1im += T2im; T2re = Y[26] - T1re; T2im = Y[26 + 1] - T1im; Y[26] = Y[26] + T1re; Y[26 + 1] = Y[26 + 1] + T1im; Y[154] = T2re; Y[154 + 1] = T2im; }; # 7178 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[156] * (double) +0.773010453362737; T1im = Y[156 + 1] * (double) +0.773010453362737; T2re = Y[156 + 1] * (double) -0.634393284163645; T2im = Y[156] * (double) -0.634393284163645; T1re -= T2re; T1im += T2im; T2re = Y[28] - T1re; T2im = Y[28 + 1] - T1im; Y[28] = Y[28] + T1re; Y[28 + 1] = Y[28 + 1] + T1im; Y[156] = T2re; Y[156 + 1] = T2im; }; # 7187 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[158] * (double) +0.740951125354959; T1im = Y[158 + 1] * (double) +0.740951125354959; T2re = Y[158 + 1] * (double) -0.671558954847018; T2im = Y[158] * (double) -0.671558954847018; T1re -= T2re; T1im += T2im; T2re = Y[30] - T1re; T2im = Y[30 + 1] - T1im; Y[30] = Y[30] + T1re; Y[30 + 1] = Y[30 + 1] + T1im; Y[158] = T2re; Y[158 + 1] = T2im; }; # 7196 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[160] * (double) +0.707106781186548; T1im = Y[160 + 1] * (double) +0.707106781186548; T2re = T1im; T2im = T1re; T1re += T2re; T1im -= T2im; T2re = Y[32] - T1re; T2im = Y[32 + 1] - T1im; Y[32] = Y[32] + T1re; Y[32 + 1] = Y[32 + 1] + T1im; Y[160] = T2re; Y[160 + 1] = T2im; }; # 7205 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[162] * (double) +0.671558954847018; T1im = Y[162 + 1] * (double) +0.671558954847018; T2re = Y[162 + 1] * (double) -0.740951125354959; T2im = Y[162] * (double) -0.740951125354959; T1re -= T2re; T1im += T2im; T2re = Y[34] - T1re; T2im = Y[34 + 1] - T1im; Y[34] = Y[34] + T1re; Y[34 + 1] = Y[34 + 1] + T1im; Y[162] = T2re; Y[162 + 1] = T2im; }; # 7214 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[164] * (double) +0.634393284163645; T1im = Y[164 + 1] * (double) +0.634393284163645; T2re = Y[164 + 1] * (double) -0.773010453362737; T2im = Y[164] * (double) -0.773010453362737; T1re -= T2re; T1im += T2im; T2re = Y[36] - T1re; T2im = Y[36 + 1] - T1im; Y[36] = Y[36] + T1re; Y[36 + 1] = Y[36 + 1] + T1im; Y[164] = T2re; Y[164 + 1] = T2im; }; # 7223 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[166] * (double) +0.595699304492433; T1im = Y[166 + 1] * (double) +0.595699304492433; T2re = Y[166 + 1] * (double) -0.803207531480645; T2im = Y[166] * (double) -0.803207531480645; T1re -= T2re; T1im += T2im; T2re = Y[38] - T1re; T2im = Y[38 + 1] - T1im; Y[38] = Y[38] + T1re; Y[38 + 1] = Y[38 + 1] + T1im; Y[166] = T2re; Y[166 + 1] = T2im; }; # 7232 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[168] * (double) +0.555570233019602; T1im = Y[168 + 1] * (double) +0.555570233019602; T2re = Y[168 + 1] * (double) -0.831469612302545; T2im = Y[168] * (double) -0.831469612302545; T1re -= T2re; T1im += T2im; T2re = Y[40] - T1re; T2im = Y[40 + 1] - T1im; Y[40] = Y[40] + T1re; Y[40 + 1] = Y[40 + 1] + T1im; Y[168] = T2re; Y[168 + 1] = T2im; }; # 7241 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[170] * (double) +0.514102744193222; T1im = Y[170 + 1] * (double) +0.514102744193222; T2re = Y[170 + 1] * (double) -0.857728610000272; T2im = Y[170] * (double) -0.857728610000272; T1re -= T2re; T1im += T2im; T2re = Y[42] - T1re; T2im = Y[42 + 1] - T1im; Y[42] = Y[42] + T1re; Y[42 + 1] = Y[42 + 1] + T1im; Y[170] = T2re; Y[170 + 1] = T2im; }; # 7250 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[172] * (double) +0.471396736825998; T1im = Y[172 + 1] * (double) +0.471396736825998; T2re = Y[172 + 1] * (double) -0.881921264348355; T2im = Y[172] * (double) -0.881921264348355; T1re -= T2re; T1im += T2im; T2re = Y[44] - T1re; T2im = Y[44 + 1] - T1im; Y[44] = Y[44] + T1re; Y[44 + 1] = Y[44 + 1] + T1im; Y[172] = T2re; Y[172 + 1] = T2im; }; # 7259 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[174] * (double) +0.427555093430282; T1im = Y[174 + 1] * (double) +0.427555093430282; T2re = Y[174 + 1] * (double) -0.903989293123443; T2im = Y[174] * (double) -0.903989293123443; T1re -= T2re; T1im += T2im; T2re = Y[46] - T1re; T2im = Y[46 + 1] - T1im; Y[46] = Y[46] + T1re; Y[46 + 1] = Y[46 + 1] + T1im; Y[174] = T2re; Y[174 + 1] = T2im; }; # 7268 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[176] * (double) +0.382683432365090; T1im = Y[176 + 1] * (double) +0.382683432365090; T2re = Y[176 + 1] * (double) -0.923879532511287; T2im = Y[176] * (double) -0.923879532511287; T1re -= T2re; T1im += T2im; T2re = Y[48] - T1re; T2im = Y[48 + 1] - T1im; Y[48] = Y[48] + T1re; Y[48 + 1] = Y[48 + 1] + T1im; Y[176] = T2re; Y[176 + 1] = T2im; }; # 7277 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[178] * (double) +0.336889853392220; T1im = Y[178 + 1] * (double) +0.336889853392220; T2re = Y[178 + 1] * (double) -0.941544065183021; T2im = Y[178] * (double) -0.941544065183021; T1re -= T2re; T1im += T2im; T2re = Y[50] - T1re; T2im = Y[50 + 1] - T1im; Y[50] = Y[50] + T1re; Y[50 + 1] = Y[50 + 1] + T1im; Y[178] = T2re; Y[178 + 1] = T2im; }; # 7286 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[180] * (double) +0.290284677254462; T1im = Y[180 + 1] * (double) +0.290284677254462; T2re = Y[180 + 1] * (double) -0.956940335732209; T2im = Y[180] * (double) -0.956940335732209; T1re -= T2re; T1im += T2im; T2re = Y[52] - T1re; T2im = Y[52 + 1] - T1im; Y[52] = Y[52] + T1re; Y[52 + 1] = Y[52 + 1] + T1im; Y[180] = T2re; Y[180 + 1] = T2im; }; # 7295 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[182] * (double) +0.242980179903264; T1im = Y[182 + 1] * (double) +0.242980179903264; T2re = Y[182 + 1] * (double) -0.970031253194544; T2im = Y[182] * (double) -0.970031253194544; T1re -= T2re; T1im += T2im; T2re = Y[54] - T1re; T2im = Y[54 + 1] - T1im; Y[54] = Y[54] + T1re; Y[54 + 1] = Y[54 + 1] + T1im; Y[182] = T2re; Y[182 + 1] = T2im; }; # 7304 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[184] * (double) +0.195090322016128; T1im = Y[184 + 1] * (double) +0.195090322016128; T2re = Y[184 + 1] * (double) -0.980785280403230; T2im = Y[184] * (double) -0.980785280403230; T1re -= T2re; T1im += T2im; T2re = Y[56] - T1re; T2im = Y[56 + 1] - T1im; Y[56] = Y[56] + T1re; Y[56 + 1] = Y[56 + 1] + T1im; Y[184] = T2re; Y[184 + 1] = T2im; }; # 7313 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[186] * (double) +0.146730474455362; T1im = Y[186 + 1] * (double) +0.146730474455362; T2re = Y[186 + 1] * (double) -0.989176509964781; T2im = Y[186] * (double) -0.989176509964781; T1re -= T2re; T1im += T2im; T2re = Y[58] - T1re; T2im = Y[58 + 1] - T1im; Y[58] = Y[58] + T1re; Y[58 + 1] = Y[58 + 1] + T1im; Y[186] = T2re; Y[186 + 1] = T2im; }; # 7322 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[188] * (double) +0.098017140329561; T1im = Y[188 + 1] * (double) +0.098017140329561; T2re = Y[188 + 1] * (double) -0.995184726672197; T2im = Y[188] * (double) -0.995184726672197; T1re -= T2re; T1im += T2im; T2re = Y[60] - T1re; T2im = Y[60 + 1] - T1im; Y[60] = Y[60] + T1re; Y[60 + 1] = Y[60 + 1] + T1im; Y[188] = T2re; Y[188 + 1] = T2im; }; # 7331 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[190] * (double) +0.049067674327418; T1im = Y[190 + 1] * (double) +0.049067674327418; T2re = Y[190 + 1] * (double) -0.998795456205172; T2im = Y[190] * (double) -0.998795456205172; T1re -= T2re; T1im += T2im; T2re = Y[62] - T1re; T2im = Y[62 + 1] - T1im; Y[62] = Y[62] + T1re; Y[62 + 1] = Y[62 + 1] + T1im; Y[190] = T2re; Y[190 + 1] = T2im; }; # 7340 "gslfft.c" { register double T2re, T2im; T2re = Y[64] - Y[192 + 1]; T2im = Y[64 + 1] + Y[192]; Y[64] = Y[64] + Y[192 + 1]; Y[64 + 1] = Y[64 + 1] - Y[192]; Y[192] = T2re; Y[192 + 1] = T2im; }; # 7349 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[194] * (double) -0.049067674327418; T1im = Y[194 + 1] * (double) -0.049067674327418; T2re = Y[194 + 1] * (double) -0.998795456205172; T2im = Y[194] * (double) -0.998795456205172; T1re -= T2re; T1im += T2im; T2re = Y[66] - T1re; T2im = Y[66 + 1] - T1im; Y[66] = Y[66] + T1re; Y[66 + 1] = Y[66 + 1] + T1im; Y[194] = T2re; Y[194 + 1] = T2im; }; # 7358 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[196] * (double) -0.098017140329561; T1im = Y[196 + 1] * (double) -0.098017140329561; T2re = Y[196 + 1] * (double) -0.995184726672197; T2im = Y[196] * (double) -0.995184726672197; T1re -= T2re; T1im += T2im; T2re = Y[68] - T1re; T2im = Y[68 + 1] - T1im; Y[68] = Y[68] + T1re; Y[68 + 1] = Y[68 + 1] + T1im; Y[196] = T2re; Y[196 + 1] = T2im; }; # 7367 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[198] * (double) -0.146730474455362; T1im = Y[198 + 1] * (double) -0.146730474455362; T2re = Y[198 + 1] * (double) -0.989176509964781; T2im = Y[198] * (double) -0.989176509964781; T1re -= T2re; T1im += T2im; T2re = Y[70] - T1re; T2im = Y[70 + 1] - T1im; Y[70] = Y[70] + T1re; Y[70 + 1] = Y[70 + 1] + T1im; Y[198] = T2re; Y[198 + 1] = T2im; }; # 7376 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[200] * (double) -0.195090322016128; T1im = Y[200 + 1] * (double) -0.195090322016128; T2re = Y[200 + 1] * (double) -0.980785280403230; T2im = Y[200] * (double) -0.980785280403230; T1re -= T2re; T1im += T2im; T2re = Y[72] - T1re; T2im = Y[72 + 1] - T1im; Y[72] = Y[72] + T1re; Y[72 + 1] = Y[72 + 1] + T1im; Y[200] = T2re; Y[200 + 1] = T2im; }; # 7385 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[202] * (double) -0.242980179903264; T1im = Y[202 + 1] * (double) -0.242980179903264; T2re = Y[202 + 1] * (double) -0.970031253194544; T2im = Y[202] * (double) -0.970031253194544; T1re -= T2re; T1im += T2im; T2re = Y[74] - T1re; T2im = Y[74 + 1] - T1im; Y[74] = Y[74] + T1re; Y[74 + 1] = Y[74 + 1] + T1im; Y[202] = T2re; Y[202 + 1] = T2im; }; # 7394 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[204] * (double) -0.290284677254462; T1im = Y[204 + 1] * (double) -0.290284677254462; T2re = Y[204 + 1] * (double) -0.956940335732209; T2im = Y[204] * (double) -0.956940335732209; T1re -= T2re; T1im += T2im; T2re = Y[76] - T1re; T2im = Y[76 + 1] - T1im; Y[76] = Y[76] + T1re; Y[76 + 1] = Y[76 + 1] + T1im; Y[204] = T2re; Y[204 + 1] = T2im; }; # 7403 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[206] * (double) -0.336889853392220; T1im = Y[206 + 1] * (double) -0.336889853392220; T2re = Y[206 + 1] * (double) -0.941544065183021; T2im = Y[206] * (double) -0.941544065183021; T1re -= T2re; T1im += T2im; T2re = Y[78] - T1re; T2im = Y[78 + 1] - T1im; Y[78] = Y[78] + T1re; Y[78 + 1] = Y[78 + 1] + T1im; Y[206] = T2re; Y[206 + 1] = T2im; }; # 7412 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[208] * (double) -0.382683432365090; T1im = Y[208 + 1] * (double) -0.382683432365090; T2re = Y[208 + 1] * (double) -0.923879532511287; T2im = Y[208] * (double) -0.923879532511287; T1re -= T2re; T1im += T2im; T2re = Y[80] - T1re; T2im = Y[80 + 1] - T1im; Y[80] = Y[80] + T1re; Y[80 + 1] = Y[80 + 1] + T1im; Y[208] = T2re; Y[208 + 1] = T2im; }; # 7421 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[210] * (double) -0.427555093430282; T1im = Y[210 + 1] * (double) -0.427555093430282; T2re = Y[210 + 1] * (double) -0.903989293123443; T2im = Y[210] * (double) -0.903989293123443; T1re -= T2re; T1im += T2im; T2re = Y[82] - T1re; T2im = Y[82 + 1] - T1im; Y[82] = Y[82] + T1re; Y[82 + 1] = Y[82 + 1] + T1im; Y[210] = T2re; Y[210 + 1] = T2im; }; # 7430 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[212] * (double) -0.471396736825998; T1im = Y[212 + 1] * (double) -0.471396736825998; T2re = Y[212 + 1] * (double) -0.881921264348355; T2im = Y[212] * (double) -0.881921264348355; T1re -= T2re; T1im += T2im; T2re = Y[84] - T1re; T2im = Y[84 + 1] - T1im; Y[84] = Y[84] + T1re; Y[84 + 1] = Y[84 + 1] + T1im; Y[212] = T2re; Y[212 + 1] = T2im; }; # 7439 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[214] * (double) -0.514102744193222; T1im = Y[214 + 1] * (double) -0.514102744193222; T2re = Y[214 + 1] * (double) -0.857728610000272; T2im = Y[214] * (double) -0.857728610000272; T1re -= T2re; T1im += T2im; T2re = Y[86] - T1re; T2im = Y[86 + 1] - T1im; Y[86] = Y[86] + T1re; Y[86 + 1] = Y[86 + 1] + T1im; Y[214] = T2re; Y[214 + 1] = T2im; }; # 7448 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[216] * (double) -0.555570233019602; T1im = Y[216 + 1] * (double) -0.555570233019602; T2re = Y[216 + 1] * (double) -0.831469612302545; T2im = Y[216] * (double) -0.831469612302545; T1re -= T2re; T1im += T2im; T2re = Y[88] - T1re; T2im = Y[88 + 1] - T1im; Y[88] = Y[88] + T1re; Y[88 + 1] = Y[88 + 1] + T1im; Y[216] = T2re; Y[216 + 1] = T2im; }; # 7457 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[218] * (double) -0.595699304492433; T1im = Y[218 + 1] * (double) -0.595699304492433; T2re = Y[218 + 1] * (double) -0.803207531480645; T2im = Y[218] * (double) -0.803207531480645; T1re -= T2re; T1im += T2im; T2re = Y[90] - T1re; T2im = Y[90 + 1] - T1im; Y[90] = Y[90] + T1re; Y[90 + 1] = Y[90 + 1] + T1im; Y[218] = T2re; Y[218 + 1] = T2im; }; # 7466 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[220] * (double) -0.634393284163645; T1im = Y[220 + 1] * (double) -0.634393284163645; T2re = Y[220 + 1] * (double) -0.773010453362737; T2im = Y[220] * (double) -0.773010453362737; T1re -= T2re; T1im += T2im; T2re = Y[92] - T1re; T2im = Y[92 + 1] - T1im; Y[92] = Y[92] + T1re; Y[92 + 1] = Y[92 + 1] + T1im; Y[220] = T2re; Y[220 + 1] = T2im; }; # 7475 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[222] * (double) -0.671558954847018; T1im = Y[222 + 1] * (double) -0.671558954847018; T2re = Y[222 + 1] * (double) -0.740951125354959; T2im = Y[222] * (double) -0.740951125354959; T1re -= T2re; T1im += T2im; T2re = Y[94] - T1re; T2im = Y[94 + 1] - T1im; Y[94] = Y[94] + T1re; Y[94 + 1] = Y[94 + 1] + T1im; Y[222] = T2re; Y[222 + 1] = T2im; }; # 7484 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[224] * (double) -0.707106781186547; T1im = Y[224 + 1] * (double) -0.707106781186547; T2re = T1im; T2im = T1re; T1re -= T2re; T1im += T2im; T2re = Y[96] - T1re; T2im = Y[96 + 1] - T1im; Y[96] = Y[96] + T1re; Y[96 + 1] = Y[96 + 1] + T1im; Y[224] = T2re; Y[224 + 1] = T2im; }; # 7493 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[226] * (double) -0.740951125354959; T1im = Y[226 + 1] * (double) -0.740951125354959; T2re = Y[226 + 1] * (double) -0.671558954847019; T2im = Y[226] * (double) -0.671558954847019; T1re -= T2re; T1im += T2im; T2re = Y[98] - T1re; T2im = Y[98 + 1] - T1im; Y[98] = Y[98] + T1re; Y[98 + 1] = Y[98 + 1] + T1im; Y[226] = T2re; Y[226 + 1] = T2im; }; # 7502 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[228] * (double) -0.773010453362737; T1im = Y[228 + 1] * (double) -0.773010453362737; T2re = Y[228 + 1] * (double) -0.634393284163645; T2im = Y[228] * (double) -0.634393284163645; T1re -= T2re; T1im += T2im; T2re = Y[100] - T1re; T2im = Y[100 + 1] - T1im; Y[100] = Y[100] + T1re; Y[100 + 1] = Y[100 + 1] + T1im; Y[228] = T2re; Y[228 + 1] = T2im; }; # 7511 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[230] * (double) -0.803207531480645; T1im = Y[230 + 1] * (double) -0.803207531480645; T2re = Y[230 + 1] * (double) -0.595699304492433; T2im = Y[230] * (double) -0.595699304492433; T1re -= T2re; T1im += T2im; T2re = Y[102] - T1re; T2im = Y[102 + 1] - T1im; Y[102] = Y[102] + T1re; Y[102 + 1] = Y[102 + 1] + T1im; Y[230] = T2re; Y[230 + 1] = T2im; }; # 7520 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[232] * (double) -0.831469612302545; T1im = Y[232 + 1] * (double) -0.831469612302545; T2re = Y[232 + 1] * (double) -0.555570233019602; T2im = Y[232] * (double) -0.555570233019602; T1re -= T2re; T1im += T2im; T2re = Y[104] - T1re; T2im = Y[104 + 1] - T1im; Y[104] = Y[104] + T1re; Y[104 + 1] = Y[104 + 1] + T1im; Y[232] = T2re; Y[232 + 1] = T2im; }; # 7529 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[234] * (double) -0.857728610000272; T1im = Y[234 + 1] * (double) -0.857728610000272; T2re = Y[234 + 1] * (double) -0.514102744193222; T2im = Y[234] * (double) -0.514102744193222; T1re -= T2re; T1im += T2im; T2re = Y[106] - T1re; T2im = Y[106 + 1] - T1im; Y[106] = Y[106] + T1re; Y[106 + 1] = Y[106 + 1] + T1im; Y[234] = T2re; Y[234 + 1] = T2im; }; # 7538 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[236] * (double) -0.881921264348355; T1im = Y[236 + 1] * (double) -0.881921264348355; T2re = Y[236 + 1] * (double) -0.471396736825998; T2im = Y[236] * (double) -0.471396736825998; T1re -= T2re; T1im += T2im; T2re = Y[108] - T1re; T2im = Y[108 + 1] - T1im; Y[108] = Y[108] + T1re; Y[108 + 1] = Y[108 + 1] + T1im; Y[236] = T2re; Y[236 + 1] = T2im; }; # 7547 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[238] * (double) -0.903989293123443; T1im = Y[238 + 1] * (double) -0.903989293123443; T2re = Y[238 + 1] * (double) -0.427555093430282; T2im = Y[238] * (double) -0.427555093430282; T1re -= T2re; T1im += T2im; T2re = Y[110] - T1re; T2im = Y[110 + 1] - T1im; Y[110] = Y[110] + T1re; Y[110 + 1] = Y[110 + 1] + T1im; Y[238] = T2re; Y[238 + 1] = T2im; }; # 7556 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[240] * (double) -0.923879532511287; T1im = Y[240 + 1] * (double) -0.923879532511287; T2re = Y[240 + 1] * (double) -0.382683432365090; T2im = Y[240] * (double) -0.382683432365090; T1re -= T2re; T1im += T2im; T2re = Y[112] - T1re; T2im = Y[112 + 1] - T1im; Y[112] = Y[112] + T1re; Y[112 + 1] = Y[112 + 1] + T1im; Y[240] = T2re; Y[240 + 1] = T2im; }; # 7565 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[242] * (double) -0.941544065183021; T1im = Y[242 + 1] * (double) -0.941544065183021; T2re = Y[242 + 1] * (double) -0.336889853392220; T2im = Y[242] * (double) -0.336889853392220; T1re -= T2re; T1im += T2im; T2re = Y[114] - T1re; T2im = Y[114 + 1] - T1im; Y[114] = Y[114] + T1re; Y[114 + 1] = Y[114 + 1] + T1im; Y[242] = T2re; Y[242 + 1] = T2im; }; # 7574 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[244] * (double) -0.956940335732209; T1im = Y[244 + 1] * (double) -0.956940335732209; T2re = Y[244 + 1] * (double) -0.290284677254462; T2im = Y[244] * (double) -0.290284677254462; T1re -= T2re; T1im += T2im; T2re = Y[116] - T1re; T2im = Y[116 + 1] - T1im; Y[116] = Y[116] + T1re; Y[116 + 1] = Y[116 + 1] + T1im; Y[244] = T2re; Y[244 + 1] = T2im; }; # 7583 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[246] * (double) -0.970031253194544; T1im = Y[246 + 1] * (double) -0.970031253194544; T2re = Y[246 + 1] * (double) -0.242980179903264; T2im = Y[246] * (double) -0.242980179903264; T1re -= T2re; T1im += T2im; T2re = Y[118] - T1re; T2im = Y[118 + 1] - T1im; Y[118] = Y[118] + T1re; Y[118 + 1] = Y[118 + 1] + T1im; Y[246] = T2re; Y[246 + 1] = T2im; }; # 7592 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[248] * (double) -0.980785280403230; T1im = Y[248 + 1] * (double) -0.980785280403230; T2re = Y[248 + 1] * (double) -0.195090322016129; T2im = Y[248] * (double) -0.195090322016129; T1re -= T2re; T1im += T2im; T2re = Y[120] - T1re; T2im = Y[120 + 1] - T1im; Y[120] = Y[120] + T1re; Y[120 + 1] = Y[120 + 1] + T1im; Y[248] = T2re; Y[248 + 1] = T2im; }; # 7601 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[250] * (double) -0.989176509964781; T1im = Y[250 + 1] * (double) -0.989176509964781; T2re = Y[250 + 1] * (double) -0.146730474455362; T2im = Y[250] * (double) -0.146730474455362; T1re -= T2re; T1im += T2im; T2re = Y[122] - T1re; T2im = Y[122 + 1] - T1im; Y[122] = Y[122] + T1re; Y[122 + 1] = Y[122 + 1] + T1im; Y[250] = T2re; Y[250 + 1] = T2im; }; # 7610 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[252] * (double) -0.995184726672197; T1im = Y[252 + 1] * (double) -0.995184726672197; T2re = Y[252 + 1] * (double) -0.098017140329561; T2im = Y[252] * (double) -0.098017140329561; T1re -= T2re; T1im += T2im; T2re = Y[124] - T1re; T2im = Y[124 + 1] - T1im; Y[124] = Y[124] + T1re; Y[124 + 1] = Y[124 + 1] + T1im; Y[252] = T2re; Y[252 + 1] = T2im; }; # 7619 "gslfft.c" { register double T1re, T1im, T2re, T2im; T1re = Y[254] * (double) -0.998795456205172; T1im = Y[254 + 1] * (double) -0.998795456205172; T2re = Y[254 + 1] * (double) -0.049067674327418; T2im = Y[254] * (double) -0.049067674327418; T1re -= T2re; T1im += T2im; T2re = Y[126] - T1re; T2im = Y[126 + 1] - T1im; Y[126] = Y[126] + T1re; Y[126 + 1] = Y[126 + 1] + T1im; Y[254] = T2re; Y[254 + 1] = T2im; }; # 7628 "gslfft.c" } static void gsl_power2_fft128synthesis (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; bitreverse_fft2synthesis (128, X, Y); # 7658 "gslfft.c" gsl_power2_fft128synthesis_skip2 (X, Y); } static void gsl_power2_fft256synthesis_skip2 (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; # 7688 "gslfft.c" gsl_power2_fft128synthesis_skip2 (X, Y); gsl_power2_fft128synthesis_skip2 (X + 256, Y + 256); { static const double Wconst256[] = { +0.999698818696204, -0.024541228522912, +0.998795456205172, -0.049067674327418, +0.997290456678690, -0.073564563599667, +0.995184726672197, -0.098017140329561, +0.992479534598710, -0.122410675199216, +0.989176509964781, -0.146730474455362, +0.985277642388941, -0.170961888760301, +0.980785280403230, -0.195090322016128, +0.975702130038529, -0.219101240156870, +0.970031253194544, -0.242980179903264, +0.963776065795440, -0.266712757474898, +0.956940335732209, -0.290284677254462, +0.949528180593037, -0.313681740398892, +0.941544065183021, -0.336889853392220, +0.932992798834739, -0.359895036534988, +0.923879532511287, -0.382683432365090, +0.914209755703531, -0.405241314004990, +0.903989293123443, -0.427555093430282, +0.893224301195515, -0.449611329654607, +0.881921264348355, -0.471396736825998, +0.870086991108711, -0.492898192229784, +0.857728610000272, -0.514102744193222, +0.844853565249707, -0.534997619887097, +0.831469612302545, -0.555570233019602, +0.817584813151584, -0.575808191417845, +0.803207531480645, -0.595699304492433, +0.788346427626606, -0.615231590580627, +0.773010453362737, -0.634393284163645, +0.757208846506485, -0.653172842953777, +0.740951125354959, -0.671558954847018, +0.724247082951467, -0.689540544737067, +0.707106781186548, -0.707106781186547, +0.689540544737067, -0.724247082951467, +0.671558954847018, -0.740951125354959, +0.653172842953777, -0.757208846506484, +0.634393284163645, -0.773010453362737, +0.615231590580627, -0.788346427626606, +0.595699304492433, -0.803207531480645, +0.575808191417845, -0.817584813151584, +0.555570233019602, -0.831469612302545, +0.534997619887097, -0.844853565249707, +0.514102744193222, -0.857728610000272, +0.492898192229784, -0.870086991108711, +0.471396736825998, -0.881921264348355, +0.449611329654607, -0.893224301195515, +0.427555093430282, -0.903989293123443, +0.405241314004990, -0.914209755703531, +0.382683432365090, -0.923879532511287, +0.359895036534988, -0.932992798834739, +0.336889853392220, -0.941544065183021, +0.313681740398892, -0.949528180593037, +0.290284677254462, -0.956940335732209, +0.266712757474898, -0.963776065795440, +0.242980179903264, -0.970031253194544, +0.219101240156870, -0.975702130038529, +0.195090322016128, -0.980785280403230, +0.170961888760301, -0.985277642388941, +0.146730474455362, -0.989176509964781, +0.122410675199216, -0.992479534598710, +0.098017140329561, -0.995184726672197, +0.073564563599667, -0.997290456678690, +0.049067674327418, -0.998795456205172, +0.024541228522912, -0.999698818696204, }; const double *W = Wconst256 - 2; double *Z = Y + 128; for (offset = 0; offset < 512; offset += 512) { { register double T2re, T2im; T2re = Y[offset] - Y[offset + 256]; T2im = Y[offset + 1] - Y[offset + 256 + 1]; Y[offset] = Y[offset] + Y[offset + 256]; Y[offset + 1] = Y[offset + 1] + Y[offset + 256 + 1]; Y[offset + 256] = T2re; Y[offset + 256 + 1] = T2im; }; { register double T2re, T2im; T2re = Z[offset] - Z[offset + 256 + 1]; T2im = Z[offset + 1] + Z[offset + 256]; Z[offset] = Z[offset] + Z[offset + 256 + 1]; Z[offset + 1] = Z[offset + 1] - Z[offset + 256]; Z[offset + 256] = T2re; Z[offset + 256 + 1] = T2im; }; } for (butterfly = 2; butterfly < 128; butterfly += 2) { Wre = W[butterfly]; Wim = W[butterfly + 1]; for (block = 0; block < 512; block += 512) { offset = butterfly + block; { register double T1re, T1im, T2re, T2im; T1re = Y[offset + 256] * Wre; T1im = Y[offset + 256 + 1] * Wre; T2re = Y[offset + 256 + 1] * Wim; T2im = Y[offset + 256] * Wim; T1re -= T2re; T1im += T2im; T2re = Y[offset] - T1re; T2im = Y[offset + 1] - T1im; Y[offset] = Y[offset] + T1re; Y[offset + 1] = Y[offset + 1] + T1im; Y[offset + 256] = T2re; Y[offset + 256 + 1] = T2im; }; { register double T1re, T1im, T2re, T2im; T1re = Z[offset + 256] * Wim; T1im = Z[offset + 256 + 1] * Wim; T2re = Z[offset + 256 + 1] * Wre; T2im = Z[offset + 256] * Wre; T1re += T2re; T1im -= T2im; T2re = Z[offset] - T1re; T2im = Z[offset + 1] - T1im; Z[offset] = Z[offset] + T1re; Z[offset + 1] = Z[offset + 1] + T1im; Z[offset + 256] = T2re; Z[offset + 256 + 1] = T2im; }; } } } } static void gsl_power2_fft256synthesis (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; bitreverse_fft2synthesis (256, X, Y); # 7821 "gslfft.c" gsl_power2_fft256synthesis_skip2 (X, Y); } static void gsl_power2_fft512synthesis_skip2 (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; # 7851 "gslfft.c" gsl_power2_fft128synthesis_skip2 (X, Y); gsl_power2_fft128synthesis_skip2 (X + 256, Y + 256); gsl_power2_fft128synthesis_skip2 (X + 512, Y + 512); gsl_power2_fft128synthesis_skip2 (X + 768, Y + 768); { static const double Wconst256[] = { +0.999698818696204, -0.024541228522912, +0.998795456205172, -0.049067674327418, +0.997290456678690, -0.073564563599667, +0.995184726672197, -0.098017140329561, +0.992479534598710, -0.122410675199216, +0.989176509964781, -0.146730474455362, +0.985277642388941, -0.170961888760301, +0.980785280403230, -0.195090322016128, +0.975702130038529, -0.219101240156870, +0.970031253194544, -0.242980179903264, +0.963776065795440, -0.266712757474898, +0.956940335732209, -0.290284677254462, +0.949528180593037, -0.313681740398892, +0.941544065183021, -0.336889853392220, +0.932992798834739, -0.359895036534988, +0.923879532511287, -0.382683432365090, +0.914209755703531, -0.405241314004990, +0.903989293123443, -0.427555093430282, +0.893224301195515, -0.449611329654607, +0.881921264348355, -0.471396736825998, +0.870086991108711, -0.492898192229784, +0.857728610000272, -0.514102744193222, +0.844853565249707, -0.534997619887097, +0.831469612302545, -0.555570233019602, +0.817584813151584, -0.575808191417845, +0.803207531480645, -0.595699304492433, +0.788346427626606, -0.615231590580627, +0.773010453362737, -0.634393284163645, +0.757208846506485, -0.653172842953777, +0.740951125354959, -0.671558954847018, +0.724247082951467, -0.689540544737067, +0.707106781186548, -0.707106781186547, +0.689540544737067, -0.724247082951467, +0.671558954847018, -0.740951125354959, +0.653172842953777, -0.757208846506484, +0.634393284163645, -0.773010453362737, +0.615231590580627, -0.788346427626606, +0.595699304492433, -0.803207531480645, +0.575808191417845, -0.817584813151584, +0.555570233019602, -0.831469612302545, +0.534997619887097, -0.844853565249707, +0.514102744193222, -0.857728610000272, +0.492898192229784, -0.870086991108711, +0.471396736825998, -0.881921264348355, +0.449611329654607, -0.893224301195515, +0.427555093430282, -0.903989293123443, +0.405241314004990, -0.914209755703531, +0.382683432365090, -0.923879532511287, +0.359895036534988, -0.932992798834739, +0.336889853392220, -0.941544065183021, +0.313681740398892, -0.949528180593037, +0.290284677254462, -0.956940335732209, +0.266712757474898, -0.963776065795440, +0.242980179903264, -0.970031253194544, +0.219101240156870, -0.975702130038529, +0.195090322016128, -0.980785280403230, +0.170961888760301, -0.985277642388941, +0.146730474455362, -0.989176509964781, +0.122410675199216, -0.992479534598710, +0.098017140329561, -0.995184726672197, +0.073564563599667, -0.997290456678690, +0.049067674327418, -0.998795456205172, +0.024541228522912, -0.999698818696204, }; const double *W = Wconst256 - 2; double *Z = Y + 128; for (offset = 0; offset < 1024; offset += 512) { { register double T2re, T2im; T2re = Y[offset] - Y[offset + 256]; T2im = Y[offset + 1] - Y[offset + 256 + 1]; Y[offset] = Y[offset] + Y[offset + 256]; Y[offset + 1] = Y[offset + 1] + Y[offset + 256 + 1]; Y[offset + 256] = T2re; Y[offset + 256 + 1] = T2im; }; { register double T2re, T2im; T2re = Z[offset] - Z[offset + 256 + 1]; T2im = Z[offset + 1] + Z[offset + 256]; Z[offset] = Z[offset] + Z[offset + 256 + 1]; Z[offset + 1] = Z[offset + 1] - Z[offset + 256]; Z[offset + 256] = T2re; Z[offset + 256 + 1] = T2im; }; } for (butterfly = 2; butterfly < 128; butterfly += 2) { Wre = W[butterfly]; Wim = W[butterfly + 1]; for (block = 0; block < 1024; block += 512) { offset = butterfly + block; { register double T1re, T1im, T2re, T2im; T1re = Y[offset + 256] * Wre; T1im = Y[offset + 256 + 1] * Wre; T2re = Y[offset + 256 + 1] * Wim; T2im = Y[offset + 256] * Wim; T1re -= T2re; T1im += T2im; T2re = Y[offset] - T1re; T2im = Y[offset + 1] - T1im; Y[offset] = Y[offset] + T1re; Y[offset + 1] = Y[offset + 1] + T1im; Y[offset + 256] = T2re; Y[offset + 256 + 1] = T2im; }; { register double T1re, T1im, T2re, T2im; T1re = Z[offset + 256] * Wim; T1im = Z[offset + 256 + 1] * Wim; T2re = Z[offset + 256 + 1] * Wre; T2im = Z[offset + 256] * Wre; T1re += T2re; T1im -= T2im; T2re = Z[offset] - T1re; T2im = Z[offset + 1] - T1im; Z[offset] = Z[offset] + T1re; Z[offset + 1] = Z[offset + 1] + T1im; Z[offset + 256] = T2re; Z[offset + 256 + 1] = T2im; }; } } } { static const double Wconst512[] = { +0.999924701839145, -0.012271538285720, +0.999698818696204, -0.024541228522912, +0.999322384588350, -0.036807222941359, +0.998795456205172, -0.049067674327418, +0.998118112900149, -0.061320736302209, +0.997290456678690, -0.073564563599667, +0.996312612182778, -0.085797312344440, +0.995184726672197, -0.098017140329561, +0.993906970002356, -0.110222207293883, +0.992479534598710, -0.122410675199216, +0.990902635427780, -0.134580708507126, +0.989176509964781, -0.146730474455362, +0.987301418157858, -0.158858143333861, +0.985277642388941, -0.170961888760301, +0.983105487431216, -0.183039887955141, +0.980785280403230, -0.195090322016128, +0.978317370719628, -0.207111376192219, +0.975702130038529, -0.219101240156870, +0.972939952205560, -0.231058108280671, +0.970031253194544, -0.242980179903264, +0.966976471044852, -0.254865659604515, +0.963776065795440, -0.266712757474898, +0.960430519415566, -0.278519689385053, +0.956940335732209, -0.290284677254462, +0.953306040354194, -0.302005949319228, +0.949528180593037, -0.313681740398892, +0.945607325380521, -0.325310292162263, +0.941544065183021, -0.336889853392220, +0.937339011912575, -0.348418680249435, +0.932992798834739, -0.359895036534988, +0.928506080473216, -0.371317193951838, +0.923879532511287, -0.382683432365090, +0.919113851690058, -0.393992040061048, +0.914209755703531, -0.405241314004990, +0.909167983090522, -0.416429560097637, +0.903989293123443, -0.427555093430282, +0.898674465693954, -0.438616238538528, +0.893224301195515, -0.449611329654607, +0.887639620402854, -0.460538710958240, +0.881921264348355, -0.471396736825998, +0.876070094195407, -0.482183772079123, +0.870086991108711, -0.492898192229784, +0.863972856121587, -0.503538383725718, +0.857728610000272, -0.514102744193222, +0.851355193105265, -0.524589682678469, +0.844853565249707, -0.534997619887097, +0.838224705554838, -0.545324988422046, +0.831469612302545, -0.555570233019602, +0.824589302785025, -0.565731810783613, +0.817584813151584, -0.575808191417845, +0.810457198252595, -0.585797857456439, +0.803207531480645, -0.595699304492433, +0.795836904608884, -0.605511041404326, +0.788346427626606, -0.615231590580627, +0.780737228572094, -0.624859488142386, +0.773010453362737, -0.634393284163645, +0.765167265622459, -0.643831542889791, +0.757208846506485, -0.653172842953777, +0.749136394523459, -0.662415777590172, +0.740951125354959, -0.671558954847018, +0.732654271672413, -0.680600997795453, +0.724247082951467, -0.689540544737067, +0.715730825283819, -0.698376249408973, +0.707106781186548, -0.707106781186547, +0.698376249408973, -0.715730825283819, +0.689540544737067, -0.724247082951467, +0.680600997795453, -0.732654271672413, +0.671558954847018, -0.740951125354959, +0.662415777590172, -0.749136394523459, +0.653172842953777, -0.757208846506484, +0.643831542889791, -0.765167265622459, +0.634393284163645, -0.773010453362737, +0.624859488142386, -0.780737228572094, +0.615231590580627, -0.788346427626606, +0.605511041404326, -0.795836904608883, +0.595699304492433, -0.803207531480645, +0.585797857456439, -0.810457198252595, +0.575808191417845, -0.817584813151584, +0.565731810783613, -0.824589302785025, +0.555570233019602, -0.831469612302545, +0.545324988422046, -0.838224705554838, +0.534997619887097, -0.844853565249707, +0.524589682678469, -0.851355193105265, +0.514102744193222, -0.857728610000272, +0.503538383725718, -0.863972856121587, +0.492898192229784, -0.870086991108711, +0.482183772079123, -0.876070094195407, +0.471396736825998, -0.881921264348355, +0.460538710958240, -0.887639620402854, +0.449611329654607, -0.893224301195515, +0.438616238538528, -0.898674465693954, +0.427555093430282, -0.903989293123443, +0.416429560097637, -0.909167983090522, +0.405241314004990, -0.914209755703531, +0.393992040061048, -0.919113851690058, +0.382683432365090, -0.923879532511287, +0.371317193951838, -0.928506080473216, +0.359895036534988, -0.932992798834739, +0.348418680249435, -0.937339011912575, +0.336889853392220, -0.941544065183021, +0.325310292162263, -0.945607325380521, +0.313681740398892, -0.949528180593037, +0.302005949319228, -0.953306040354194, +0.290284677254462, -0.956940335732209, +0.278519689385053, -0.960430519415566, +0.266712757474898, -0.963776065795440, +0.254865659604515, -0.966976471044852, +0.242980179903264, -0.970031253194544, +0.231058108280671, -0.972939952205560, +0.219101240156870, -0.975702130038529, +0.207111376192219, -0.978317370719628, +0.195090322016128, -0.980785280403230, +0.183039887955141, -0.983105487431216, +0.170961888760301, -0.985277642388941, +0.158858143333861, -0.987301418157858, +0.146730474455362, -0.989176509964781, +0.134580708507126, -0.990902635427780, +0.122410675199216, -0.992479534598710, +0.110222207293883, -0.993906970002356, +0.098017140329561, -0.995184726672197, +0.085797312344440, -0.996312612182778, +0.073564563599667, -0.997290456678690, +0.061320736302209, -0.998118112900149, +0.049067674327418, -0.998795456205172, +0.036807222941359, -0.999322384588350, +0.024541228522912, -0.999698818696204, +0.012271538285720, -0.999924701839145, }; const double *W = Wconst512 - 2; double *Z = Y + 256; for (offset = 0; offset < 1024; offset += 1024) { { register double T2re, T2im; T2re = Y[offset] - Y[offset + 512]; T2im = Y[offset + 1] - Y[offset + 512 + 1]; Y[offset] = Y[offset] + Y[offset + 512]; Y[offset + 1] = Y[offset + 1] + Y[offset + 512 + 1]; Y[offset + 512] = T2re; Y[offset + 512 + 1] = T2im; }; { register double T2re, T2im; T2re = Z[offset] - Z[offset + 512 + 1]; T2im = Z[offset + 1] + Z[offset + 512]; Z[offset] = Z[offset] + Z[offset + 512 + 1]; Z[offset + 1] = Z[offset + 1] - Z[offset + 512]; Z[offset + 512] = T2re; Z[offset + 512 + 1] = T2im; }; } for (butterfly = 2; butterfly < 256; butterfly += 2) { Wre = W[butterfly]; Wim = W[butterfly + 1]; for (block = 0; block < 1024; block += 1024) { offset = butterfly + block; { register double T1re, T1im, T2re, T2im; T1re = Y[offset + 512] * Wre; T1im = Y[offset + 512 + 1] * Wre; T2re = Y[offset + 512 + 1] * Wim; T2im = Y[offset + 512] * Wim; T1re -= T2re; T1im += T2im; T2re = Y[offset] - T1re; T2im = Y[offset + 1] - T1im; Y[offset] = Y[offset] + T1re; Y[offset + 1] = Y[offset + 1] + T1im; Y[offset + 512] = T2re; Y[offset + 512 + 1] = T2im; }; { register double T1re, T1im, T2re, T2im; T1re = Z[offset + 512] * Wim; T1im = Z[offset + 512 + 1] * Wim; T2re = Z[offset + 512 + 1] * Wre; T2im = Z[offset + 512] * Wre; T1re += T2re; T1im -= T2im; T2re = Z[offset] - T1re; T2im = Z[offset + 1] - T1im; Z[offset] = Z[offset] + T1re; Z[offset + 1] = Z[offset + 1] + T1im; Z[offset + 512] = T2re; Z[offset + 512 + 1] = T2im; }; } } } } static void gsl_power2_fft512synthesis (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; bitreverse_fft2synthesis (512, X, Y); # 8151 "gslfft.c" gsl_power2_fft512synthesis_skip2 (X, Y); } static void gsl_power2_fft1024synthesis_skip2 (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; # 8185 "gslfft.c" gsl_power2_fft512synthesis_skip2 (X, Y); gsl_power2_fft512synthesis_skip2 (X + 1024, Y + 1024); for (offset = 0; offset < 2048; offset += 2048) { { register double T2re, T2im; T2re = Y[offset] - Y[offset + 1024]; T2im = Y[offset + 1] - Y[offset + 1024 + 1]; Y[offset] = Y[offset] + Y[offset + 1024]; Y[offset + 1] = Y[offset + 1] + Y[offset + 1024 + 1]; Y[offset + 1024] = T2re; Y[offset + 1024 + 1] = T2im; }; } Wre = +0.999981175282601; Wim = -0.006135884649154; for (butterfly = 2; butterfly < 512; butterfly += 2) { for (block = 0; block < 2048; block += 2048) { offset = butterfly + block; { register double T1re, T1im, T2re, T2im; T1re = Y[offset + 1024] * Wre; T1im = Y[offset + 1024 + 1] * Wre; T2re = Y[offset + 1024 + 1] * Wim; T2im = Y[offset + 1024] * Wim; T1re -= T2re; T1im += T2im; T2re = Y[offset] - T1re; T2im = Y[offset + 1] - T1im; Y[offset] = Y[offset] + T1re; Y[offset + 1] = Y[offset + 1] + T1im; Y[offset + 1024] = T2re; Y[offset + 1024 + 1] = T2im; }; } { register double T1re, T1im, T2re, T2im; T1re = Wre * -0.000018824717399; T1im = Wim * -0.000018824717399; T2re = Wim * -0.006135884649154; T2im = Wre * -0.006135884649154; T1re -= T2re; T1im += T2im; Wre += T1re; Wim += T1im; }; } for (offset = 512; offset < 2048; offset += 2048) { { register double T2re, T2im; T2re = Y[offset] - Y[offset + 1024 + 1]; T2im = Y[offset + 1] + Y[offset + 1024]; Y[offset] = Y[offset] + Y[offset + 1024 + 1]; Y[offset + 1] = Y[offset + 1] - Y[offset + 1024]; Y[offset + 1024] = T2re; Y[offset + 1024 + 1] = T2im; }; } Wre = -0.006135884649154; Wim = -0.999981175282601; for (butterfly = 514; butterfly < 1024; butterfly += 2) { for (block = 0; block < 2048; block += 2048) { offset = butterfly + block; { register double T1re, T1im, T2re, T2im; T1re = Y[offset + 1024] * Wre; T1im = Y[offset + 1024 + 1] * Wre; T2re = Y[offset + 1024 + 1] * Wim; T2im = Y[offset + 1024] * Wim; T1re -= T2re; T1im += T2im; T2re = Y[offset] - T1re; T2im = Y[offset + 1] - T1im; Y[offset] = Y[offset] + T1re; Y[offset + 1] = Y[offset + 1] + T1im; Y[offset + 1024] = T2re; Y[offset + 1024 + 1] = T2im; }; } { register double T1re, T1im, T2re, T2im; T1re = Wre * -0.000018824717399; T1im = Wim * -0.000018824717399; T2re = Wim * -0.006135884649154; T2im = Wre * -0.006135884649154; T1re -= T2re; T1im += T2im; Wre += T1re; Wim += T1im; }; } } static void gsl_power2_fft1024synthesis (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; bitreverse_fft2synthesis (1024, X, Y); # 8263 "gslfft.c" gsl_power2_fft1024synthesis_skip2 (X, Y); } static void gsl_power2_fft2048synthesis_skip2 (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; # 8297 "gslfft.c" gsl_power2_fft512synthesis_skip2 (X, Y); gsl_power2_fft512synthesis_skip2 (X + 1024, Y + 1024); gsl_power2_fft512synthesis_skip2 (X + 2048, Y + 2048); gsl_power2_fft512synthesis_skip2 (X + 3072, Y + 3072); for (offset = 0; offset < 4096; offset += 2048) { { register double T2re, T2im; T2re = Y[offset] - Y[offset + 1024]; T2im = Y[offset + 1] - Y[offset + 1024 + 1]; Y[offset] = Y[offset] + Y[offset + 1024]; Y[offset + 1] = Y[offset + 1] + Y[offset + 1024 + 1]; Y[offset + 1024] = T2re; Y[offset + 1024 + 1] = T2im; }; } Wre = +0.999981175282601; Wim = -0.006135884649154; for (butterfly = 2; butterfly < 512; butterfly += 2) { for (block = 0; block < 4096; block += 2048) { offset = butterfly + block; { register double T1re, T1im, T2re, T2im; T1re = Y[offset + 1024] * Wre; T1im = Y[offset + 1024 + 1] * Wre; T2re = Y[offset + 1024 + 1] * Wim; T2im = Y[offset + 1024] * Wim; T1re -= T2re; T1im += T2im; T2re = Y[offset] - T1re; T2im = Y[offset + 1] - T1im; Y[offset] = Y[offset] + T1re; Y[offset + 1] = Y[offset + 1] + T1im; Y[offset + 1024] = T2re; Y[offset + 1024 + 1] = T2im; }; } { register double T1re, T1im, T2re, T2im; T1re = Wre * -0.000018824717399; T1im = Wim * -0.000018824717399; T2re = Wim * -0.006135884649154; T2im = Wre * -0.006135884649154; T1re -= T2re; T1im += T2im; Wre += T1re; Wim += T1im; }; } for (offset = 512; offset < 4096; offset += 2048) { { register double T2re, T2im; T2re = Y[offset] - Y[offset + 1024 + 1]; T2im = Y[offset + 1] + Y[offset + 1024]; Y[offset] = Y[offset] + Y[offset + 1024 + 1]; Y[offset + 1] = Y[offset + 1] - Y[offset + 1024]; Y[offset + 1024] = T2re; Y[offset + 1024 + 1] = T2im; }; } Wre = -0.006135884649154; Wim = -0.999981175282601; for (butterfly = 514; butterfly < 1024; butterfly += 2) { for (block = 0; block < 4096; block += 2048) { offset = butterfly + block; { register double T1re, T1im, T2re, T2im; T1re = Y[offset + 1024] * Wre; T1im = Y[offset + 1024 + 1] * Wre; T2re = Y[offset + 1024 + 1] * Wim; T2im = Y[offset + 1024] * Wim; T1re -= T2re; T1im += T2im; T2re = Y[offset] - T1re; T2im = Y[offset + 1] - T1im; Y[offset] = Y[offset] + T1re; Y[offset + 1] = Y[offset + 1] + T1im; Y[offset + 1024] = T2re; Y[offset + 1024 + 1] = T2im; }; } { register double T1re, T1im, T2re, T2im; T1re = Wre * -0.000018824717399; T1im = Wim * -0.000018824717399; T2re = Wim * -0.006135884649154; T2im = Wre * -0.006135884649154; T1re -= T2re; T1im += T2im; Wre += T1re; Wim += T1im; }; } for (offset = 0; offset < 4096; offset += 4096) { { register double T2re, T2im; T2re = Y[offset] - Y[offset + 2048]; T2im = Y[offset + 1] - Y[offset + 2048 + 1]; Y[offset] = Y[offset] + Y[offset + 2048]; Y[offset + 1] = Y[offset + 1] + Y[offset + 2048 + 1]; Y[offset + 2048] = T2re; Y[offset + 2048 + 1] = T2im; }; } Wre = +0.999995293809576; Wim = -0.003067956762966; for (butterfly = 2; butterfly < 1024; butterfly += 2) { for (block = 0; block < 4096; block += 4096) { offset = butterfly + block; { register double T1re, T1im, T2re, T2im; T1re = Y[offset + 2048] * Wre; T1im = Y[offset + 2048 + 1] * Wre; T2re = Y[offset + 2048 + 1] * Wim; T2im = Y[offset + 2048] * Wim; T1re -= T2re; T1im += T2im; T2re = Y[offset] - T1re; T2im = Y[offset + 1] - T1im; Y[offset] = Y[offset] + T1re; Y[offset + 1] = Y[offset + 1] + T1im; Y[offset + 2048] = T2re; Y[offset + 2048 + 1] = T2im; }; } { register double T1re, T1im, T2re, T2im; T1re = Wre * -0.000004706190424; T1im = Wim * -0.000004706190424; T2re = Wim * -0.003067956762966; T2im = Wre * -0.003067956762966; T1re -= T2re; T1im += T2im; Wre += T1re; Wim += T1im; }; } for (offset = 1024; offset < 4096; offset += 4096) { { register double T2re, T2im; T2re = Y[offset] - Y[offset + 2048 + 1]; T2im = Y[offset + 1] + Y[offset + 2048]; Y[offset] = Y[offset] + Y[offset + 2048 + 1]; Y[offset + 1] = Y[offset + 1] - Y[offset + 2048]; Y[offset + 2048] = T2re; Y[offset + 2048 + 1] = T2im; }; } Wre = -0.003067956762966; Wim = -0.999995293809576; for (butterfly = 1026; butterfly < 2048; butterfly += 2) { for (block = 0; block < 4096; block += 4096) { offset = butterfly + block; { register double T1re, T1im, T2re, T2im; T1re = Y[offset + 2048] * Wre; T1im = Y[offset + 2048 + 1] * Wre; T2re = Y[offset + 2048 + 1] * Wim; T2im = Y[offset + 2048] * Wim; T1re -= T2re; T1im += T2im; T2re = Y[offset] - T1re; T2im = Y[offset + 1] - T1im; Y[offset] = Y[offset] + T1re; Y[offset + 1] = Y[offset + 1] + T1im; Y[offset + 2048] = T2re; Y[offset + 2048 + 1] = T2im; }; } { register double T1re, T1im, T2re, T2im; T1re = Wre * -0.000004706190424; T1im = Wim * -0.000004706190424; T2re = Wim * -0.003067956762966; T2im = Wre * -0.003067956762966; T1re -= T2re; T1im += T2im; Wre += T1re; Wim += T1im; }; } } static void gsl_power2_fft2048synthesis (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; bitreverse_fft2synthesis (2048, X, Y); # 8419 "gslfft.c" gsl_power2_fft2048synthesis_skip2 (X, Y); } static void gsl_power2_fft4096synthesis_skip2 (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; # 8457 "gslfft.c" gsl_power2_fft2048synthesis_skip2 (X, Y); gsl_power2_fft2048synthesis_skip2 (X + 4096, Y + 4096); for (offset = 0; offset < 8192; offset += 8192) { { register double T2re, T2im; T2re = Y[offset] - Y[offset + 4096]; T2im = Y[offset + 1] - Y[offset + 4096 + 1]; Y[offset] = Y[offset] + Y[offset + 4096]; Y[offset + 1] = Y[offset + 1] + Y[offset + 4096 + 1]; Y[offset + 4096] = T2re; Y[offset + 4096 + 1] = T2im; }; } Wre = +0.999998823451702; Wim = -0.001533980186285; for (butterfly = 2; butterfly < 2048; butterfly += 2) { for (block = 0; block < 8192; block += 8192) { offset = butterfly + block; { register double T1re, T1im, T2re, T2im; T1re = Y[offset + 4096] * Wre; T1im = Y[offset + 4096 + 1] * Wre; T2re = Y[offset + 4096 + 1] * Wim; T2im = Y[offset + 4096] * Wim; T1re -= T2re; T1im += T2im; T2re = Y[offset] - T1re; T2im = Y[offset + 1] - T1im; Y[offset] = Y[offset] + T1re; Y[offset + 1] = Y[offset + 1] + T1im; Y[offset + 4096] = T2re; Y[offset + 4096 + 1] = T2im; }; } { register double T1re, T1im, T2re, T2im; T1re = Wre * -0.000001176548298; T1im = Wim * -0.000001176548298; T2re = Wim * -0.001533980186285; T2im = Wre * -0.001533980186285; T1re -= T2re; T1im += T2im; Wre += T1re; Wim += T1im; }; } for (offset = 2048; offset < 8192; offset += 8192) { { register double T2re, T2im; T2re = Y[offset] - Y[offset + 4096 + 1]; T2im = Y[offset + 1] + Y[offset + 4096]; Y[offset] = Y[offset] + Y[offset + 4096 + 1]; Y[offset + 1] = Y[offset + 1] - Y[offset + 4096]; Y[offset + 4096] = T2re; Y[offset + 4096 + 1] = T2im; }; } Wre = -0.001533980186285; Wim = -0.999998823451702; for (butterfly = 2050; butterfly < 4096; butterfly += 2) { for (block = 0; block < 8192; block += 8192) { offset = butterfly + block; { register double T1re, T1im, T2re, T2im; T1re = Y[offset + 4096] * Wre; T1im = Y[offset + 4096 + 1] * Wre; T2re = Y[offset + 4096 + 1] * Wim; T2im = Y[offset + 4096] * Wim; T1re -= T2re; T1im += T2im; T2re = Y[offset] - T1re; T2im = Y[offset + 1] - T1im; Y[offset] = Y[offset] + T1re; Y[offset + 1] = Y[offset + 1] + T1im; Y[offset + 4096] = T2re; Y[offset + 4096 + 1] = T2im; }; } { register double T1re, T1im, T2re, T2im; T1re = Wre * -0.000001176548298; T1im = Wim * -0.000001176548298; T2re = Wim * -0.001533980186285; T2im = Wre * -0.001533980186285; T1re -= T2re; T1im += T2im; Wre += T1re; Wim += T1im; }; } } static void gsl_power2_fft4096synthesis (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; bitreverse_fft2synthesis (4096, X, Y); # 8539 "gslfft.c" gsl_power2_fft4096synthesis_skip2 (X, Y); } static void gsl_power2_fft8192synthesis_skip2 (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; # 8579 "gslfft.c" gsl_power2_fft4096synthesis_skip2 (X, Y); gsl_power2_fft4096synthesis_skip2 (X + 8192, Y + 8192); for (offset = 0; offset < 16384; offset += 16384) { { register double T2re, T2im; T2re = Y[offset] - Y[offset + 8192]; T2im = Y[offset + 1] - Y[offset + 8192 + 1]; Y[offset] = Y[offset] + Y[offset + 8192]; Y[offset + 1] = Y[offset + 1] + Y[offset + 8192 + 1]; Y[offset + 8192] = T2re; Y[offset + 8192 + 1] = T2im; }; } Wre = +0.999999705862882; Wim = -0.000766990318743; for (butterfly = 2; butterfly < 4096; butterfly += 2) { for (block = 0; block < 16384; block += 16384) { offset = butterfly + block; { register double T1re, T1im, T2re, T2im; T1re = Y[offset + 8192] * Wre; T1im = Y[offset + 8192 + 1] * Wre; T2re = Y[offset + 8192 + 1] * Wim; T2im = Y[offset + 8192] * Wim; T1re -= T2re; T1im += T2im; T2re = Y[offset] - T1re; T2im = Y[offset + 1] - T1im; Y[offset] = Y[offset] + T1re; Y[offset + 1] = Y[offset + 1] + T1im; Y[offset + 8192] = T2re; Y[offset + 8192 + 1] = T2im; }; } { register double T1re, T1im, T2re, T2im; T1re = Wre * -0.000000294137118; T1im = Wim * -0.000000294137118; T2re = Wim * -0.000766990318743; T2im = Wre * -0.000766990318743; T1re -= T2re; T1im += T2im; Wre += T1re; Wim += T1im; }; } for (offset = 4096; offset < 16384; offset += 16384) { { register double T2re, T2im; T2re = Y[offset] - Y[offset + 8192 + 1]; T2im = Y[offset + 1] + Y[offset + 8192]; Y[offset] = Y[offset] + Y[offset + 8192 + 1]; Y[offset + 1] = Y[offset + 1] - Y[offset + 8192]; Y[offset + 8192] = T2re; Y[offset + 8192 + 1] = T2im; }; } Wre = -0.000766990318743; Wim = -0.999999705862882; for (butterfly = 4098; butterfly < 8192; butterfly += 2) { for (block = 0; block < 16384; block += 16384) { offset = butterfly + block; { register double T1re, T1im, T2re, T2im; T1re = Y[offset + 8192] * Wre; T1im = Y[offset + 8192 + 1] * Wre; T2re = Y[offset + 8192 + 1] * Wim; T2im = Y[offset + 8192] * Wim; T1re -= T2re; T1im += T2im; T2re = Y[offset] - T1re; T2im = Y[offset + 1] - T1im; Y[offset] = Y[offset] + T1re; Y[offset + 1] = Y[offset + 1] + T1im; Y[offset + 8192] = T2re; Y[offset + 8192 + 1] = T2im; }; } { register double T1re, T1im, T2re, T2im; T1re = Wre * -0.000000294137118; T1im = Wim * -0.000000294137118; T2re = Wim * -0.000766990318743; T2im = Wre * -0.000766990318743; T1re -= T2re; T1im += T2im; Wre += T1re; Wim += T1im; }; } } static void gsl_power2_fft8192synthesis (const double *X, double *Y) { register unsigned int butterfly, block, offset; register double Wre, Wim; butterfly = block = offset = 0, Wre = Wim = 0.0; bitreverse_fft2synthesis (8192, X, Y); # 8663 "gslfft.c" gsl_power2_fft8192synthesis_skip2 (X, Y); } # 8674 "gslfft.c" static void gsl_power2_fftc_big (const unsigned int n_values, const double *rivalues_in, double *rivalues, const int esign) { const unsigned int n_values2 = n_values << 1; double theta = esign < 0 ? -3.1415926535897932384626433832795029 : 3.1415926535897932384626433832795029; unsigned int i, block_size = 8192 << 1; double last_sin; if (esign > 0) { if (rivalues_in) bitreverse_fft2analysis (n_values, rivalues_in, rivalues); for (i = 0; i < n_values; i += 8192) gsl_power2_fft8192analysis_skip2 (rivalues + (i << 1), rivalues + (i << 1)); } else { if (rivalues_in) bitreverse_fft2synthesis (n_values, rivalues_in, rivalues); for (i = 0; i < n_values; i += 8192) gsl_power2_fft8192synthesis_skip2 (rivalues + (i << 1), rivalues + (i << 1)); } theta *= (double) 1.0 / 8192.; last_sin = sin (theta); do { double Dre, Dim, Wre, Wim; unsigned int k, i, half_block = block_size >> 1; unsigned int block_size2 = block_size << 1; theta *= 0.5; Dim = last_sin; last_sin = sin (theta); Dre = last_sin * last_sin * -2.; for (i = 0; i < n_values2; i += block_size2) { unsigned int v1 = i, v2 = i + block_size; { register double T2re, T2im; T2re = rivalues[v1] - rivalues[v2]; T2im = rivalues[v1 + 1] - rivalues[v2 + 1]; rivalues[v1] = rivalues[v1] + rivalues[v2]; rivalues[v1 + 1] = rivalues[v1 + 1] + rivalues[v2 + 1]; rivalues[v2] = T2re; rivalues[v2 + 1] = T2im; }; } Wre = Dre + 1.0; Wim = Dim; for (k = 2; k < half_block; k += 2) { for (i = k; i < n_values2; i += block_size2) { unsigned int v1 = i, v2 = i + block_size; { register double T1re, T1im, T2re, T2im; T1re = rivalues[v2] * Wre; T1im = rivalues[v2 + 1] * Wre; T2re = rivalues[v2 + 1] * Wim; T2im = rivalues[v2] * Wim; T1re -= T2re; T1im += T2im; T2re = rivalues[v1] - T1re; T2im = rivalues[v1 + 1] - T1im; rivalues[v1] = rivalues[v1] + T1re; rivalues[v1 + 1] = rivalues[v1 + 1] + T1im; rivalues[v2] = T2re; rivalues[v2 + 1] = T2im; }; } { register double T1re, T1im, T2re, T2im; T1re = Wre * Dre; T1im = Wim * Dre; T2re = Wim * Dim; T2im = Wre * Dim; T1re -= T2re; T1im += T2im; Wre += T1re; Wim += T1im; }; } if (k < block_size) { if (esign > 0) for (i = k; i < n_values2; i += block_size2) { unsigned int v1 = i, v2 = i + block_size; { register double T2re, T2im; T2re = rivalues[v1] + rivalues[v2 + 1]; T2im = rivalues[v1 + 1] - rivalues[v2]; rivalues[v1] = rivalues[v1] - rivalues[v2 + 1]; rivalues[v1 + 1] = rivalues[v1 + 1] + rivalues[v2]; rivalues[v2] = T2re; rivalues[v2 + 1] = T2im; }; } else for (i = k; i < n_values2; i += block_size2) { unsigned int v1 = i, v2 = i + block_size; { register double T2re, T2im; T2re = rivalues[v1] - rivalues[v2 + 1]; T2im = rivalues[v1 + 1] + rivalues[v2]; rivalues[v1] = rivalues[v1] + rivalues[v2 + 1]; rivalues[v1 + 1] = rivalues[v1 + 1] - rivalues[v2]; rivalues[v2] = T2re; rivalues[v2 + 1] = T2im; }; } if (esign > 0) { Wre = -Dim; Wim = Dre + 1.0; } else { Wre = Dim; Wim = -Dre - 1.0; } k += 2; } for (; k < block_size; k += 2) { for (i = k; i < n_values2; i += block_size2) { unsigned int v1 = i, v2 = i + block_size; { register double T1re, T1im, T2re, T2im; T1re = rivalues[v2] * Wre; T1im = rivalues[v2 + 1] * Wre; T2re = rivalues[v2 + 1] * Wim; T2im = rivalues[v2] * Wim; T1re -= T2re; T1im += T2im; T2re = rivalues[v1] - T1re; T2im = rivalues[v1 + 1] - T1im; rivalues[v1] = rivalues[v1] + T1re; rivalues[v1 + 1] = rivalues[v1 + 1] + T1im; rivalues[v2] = T2re; rivalues[v2 + 1] = T2im; }; } { register double T1re, T1im, T2re, T2im; T1re = Wre * Dre; T1im = Wim * Dre; T2re = Wim * Dim; T2im = Wre * Dim; T1re -= T2re; T1im += T2im; Wre += T1re; Wim += T1im; }; } block_size = block_size2; } while (block_size <= n_values); } void gsl_power2_fftac (const unsigned int n_values, const double *rivalues_in, double *rivalues_out) { do { if (!((n_values & (n_values - 1)) == 0 && n_values >= 1)) g_message ("gslfft.c" ":" "8810" ":" __PRETTY_FUNCTION__ "()" ": assertion failed `%s'", "(n_values & (n_values - 1)) == 0 && n_values >= 1"); } while (0); switch (n_values) { case 1: rivalues_out[0] = rivalues_in[0], rivalues_out[1] = rivalues_in[1]; break; case 2: gsl_power2_fft2analysis (rivalues_in, rivalues_out); break; case 4: gsl_power2_fft4analysis (rivalues_in, rivalues_out); break; case 8: gsl_power2_fft8analysis (rivalues_in, rivalues_out); break; case 16: gsl_power2_fft16analysis (rivalues_in, rivalues_out); break; case 32: gsl_power2_fft32analysis (rivalues_in, rivalues_out); break; case 64: gsl_power2_fft64analysis (rivalues_in, rivalues_out); break; case 128: gsl_power2_fft128analysis (rivalues_in, rivalues_out); break; case 256: gsl_power2_fft256analysis (rivalues_in, rivalues_out); break; case 512: gsl_power2_fft512analysis (rivalues_in, rivalues_out); break; case 1024: gsl_power2_fft1024analysis (rivalues_in, rivalues_out); break; case 2048: gsl_power2_fft2048analysis (rivalues_in, rivalues_out); break; case 4096: gsl_power2_fft4096analysis (rivalues_in, rivalues_out); break; case 8192: gsl_power2_fft8192analysis (rivalues_in, rivalues_out); break; default: gsl_power2_fftc_big (n_values, rivalues_in, rivalues_out, +1); } } void gsl_power2_fftsc (const unsigned int n_values, const double *rivalues_in, double *rivalues_out) { do { if (!((n_values & (n_values - 1)) == 0 && n_values >= 1)) g_message ("gslfft.c" ":" "8836" ":" __PRETTY_FUNCTION__ "()" ": assertion failed `%s'", "(n_values & (n_values - 1)) == 0 && n_values >= 1"); } while (0); switch (n_values) { case 1: rivalues_out[0] = rivalues_in[0], rivalues_out[1] = rivalues_in[1]; break; case 2: gsl_power2_fft2synthesis (rivalues_in, rivalues_out); break; case 4: gsl_power2_fft4synthesis (rivalues_in, rivalues_out); break; case 8: gsl_power2_fft8synthesis (rivalues_in, rivalues_out); break; case 16: gsl_power2_fft16synthesis (rivalues_in, rivalues_out); break; case 32: gsl_power2_fft32synthesis (rivalues_in, rivalues_out); break; case 64: gsl_power2_fft64synthesis (rivalues_in, rivalues_out); break; case 128: gsl_power2_fft128synthesis (rivalues_in, rivalues_out); break; case 256: gsl_power2_fft256synthesis (rivalues_in, rivalues_out); break; case 512: gsl_power2_fft512synthesis (rivalues_in, rivalues_out); break; case 1024: gsl_power2_fft1024synthesis (rivalues_in, rivalues_out); break; case 2048: gsl_power2_fft2048synthesis (rivalues_in, rivalues_out); break; case 4096: gsl_power2_fft4096synthesis (rivalues_in, rivalues_out); break; case 8192: gsl_power2_fft8192synthesis (rivalues_in, rivalues_out); break; default: gsl_power2_fftc_big (n_values, rivalues_in, rivalues_out, -1); } } void gsl_power2_fftar (const unsigned int n_values, const double *r_values_in, double *rivalues_out) { unsigned int n_cvalues = n_values >> 1; double Dre, Dim, Wre, Wim, theta; unsigned int i; do { if (!((n_values & (n_values - 1)) == 0 && n_values >= 2)) g_message ("gslfft.c" ":" "8867" ":" __PRETTY_FUNCTION__ "()" ": assertion failed `%s'", "(n_values & (n_values - 1)) == 0 && n_values >= 2"); } while (0); gsl_power2_fftac (n_cvalues, r_values_in, rivalues_out); theta = 3.1415926535897932384626433832795029; theta /= (double) n_cvalues; Dre = sin (0.5 * theta); Dim = sin (theta); Dre = Dre * Dre; Wre = 0.5 - Dre; Dre *= -2.; Wim = Dim * 0.5; for (i = 2; i < n_values >> 1; i += 2) { double F1re, F1im, F2re, F2im, H1re, H1im, H2re, H2im; unsigned int r = n_values - i; double FEre = rivalues_out[i] + rivalues_out[r]; double FEim = rivalues_out[i + 1] - rivalues_out[r + 1]; double FOre = rivalues_out[r] - rivalues_out[i]; double FOim = rivalues_out[r + 1] + rivalues_out[i + 1]; FEre *= 0.5; FEim *= 0.5; F2re = FOre * Wim; F2im = FOim * Wim; F1re = FOre * Wre; F1im = FOim * Wre; H1im = F2im + F1re; H1re = F1im - F2re; H2re = F2re - F1im; H2im = H1im - FEim; H1re += FEre; H2re += FEre; H1im += FEim; rivalues_out[i] = H1re; rivalues_out[i + 1] = H1im; rivalues_out[r] = H2re; rivalues_out[r + 1] = H2im; { register double T1re, T1im, T2re, T2im; T1re = Wre * Dre; T1im = Wim * Dre; T2re = Wim * Dim; T2im = Wre * Dim; T1re -= T2re; T1im += T2im; Wre += T1re; Wim += T1im; }; } Dre = rivalues_out[0]; rivalues_out[0] = Dre + rivalues_out[1]; rivalues_out[1] = Dre - rivalues_out[1]; } void gsl_power2_fftsr (const unsigned int n_values, const double *rivalues_in, double *r_values_out) { unsigned int n_cvalues = n_values >> 1; double Dre, Dim, Wre, Wim, theta, scale; unsigned int i, ri; do { if (!((n_values & (n_values - 1)) == 0 && n_values >= 2)) g_message ("gslfft.c" ":" "8921" ":" __PRETTY_FUNCTION__ "()" ": assertion failed `%s'", "(n_values & (n_values - 1)) == 0 && n_values >= 2"); } while (0); theta = -3.1415926535897932384626433832795029; theta /= (double) n_cvalues; Dre = sin (0.5 * theta); Dim = sin (theta); Dre = Dre * Dre; Wre = 0.5 - Dre; Dre *= -2.; Wim = Dim * 0.5; for (i = 2, ri = 0; i < n_values >> 1; i += 2) { double F1re, F1im, F2re, F2im, H1re, H1im, H2re, H2im; unsigned int g = n_values - i, j = n_values >> 2, rg = n_values - (ri << 1) - 2; double FEre = rivalues_in[i] + rivalues_in[g]; double FEim = rivalues_in[i + 1] - rivalues_in[g + 1]; double FOre = rivalues_in[g] - rivalues_in[i]; double FOim = rivalues_in[g + 1] + rivalues_in[i + 1]; while (ri >= j) { ri -= j; j >>= 1; } ri |= j; FOre = -FOre; FOim = -FOim; FEre *= 0.5; FEim *= 0.5; F2re = FOre * Wim; F2im = FOim * Wim; F1re = FOre * Wre; F1im = FOim * Wre; H1im = F2im + F1re; H1re = F1im - F2re; H2re = F2re - F1im; H2im = H1im - FEim; H1re += FEre; H2re += FEre; H1im += FEim; j = ri << 1; r_values_out[j] = H1re; r_values_out[j + 1] = H1im; r_values_out[rg] = H2re; r_values_out[rg + 1] = H2im; { register double T1re, T1im, T2re, T2im; T1re = Wre * Dre; T1im = Wim * Dre; T2re = Wim * Dim; T2im = Wre * Dim; T1re -= T2re; T1im += T2im; Wre += T1re; Wim += T1im; }; } Dre = rivalues_in[0]; r_values_out[0] = Dre + rivalues_in[1]; r_values_out[1] = Dre - rivalues_in[1]; r_values_out[0] *= 0.5; r_values_out[1] *= 0.5; if (n_values < 4) return; r_values_out[2] = rivalues_in[i]; r_values_out[2 + 1] = rivalues_in[i + 1]; scale = n_cvalues; scale = 1.0 / scale; for (i = 0; i < n_values; i += 4) { register double T2re, T2im; T2re = r_values_out[i] - r_values_out[i + 2]; T2im = r_values_out[i + 1] - r_values_out[i + 3]; r_values_out[i] = r_values_out[i] + r_values_out[i + 2]; r_values_out[i + 1] = r_values_out[i + 1] + r_values_out[i + 3]; r_values_out[i + 2] = T2re * scale; r_values_out[i + 3] = T2im * scale; r_values_out[i] *= scale; r_values_out[i + 1] *= scale; }; switch (n_cvalues) { case 2: break; case 4: gsl_power2_fft4synthesis_skip2 (((void *)0), r_values_out); break; case 8: gsl_power2_fft8synthesis_skip2 (((void *)0), r_values_out); break; case 16: gsl_power2_fft16synthesis_skip2 (((void *)0), r_values_out); break; case 32: gsl_power2_fft32synthesis_skip2 (((void *)0), r_values_out); break; case 64: gsl_power2_fft64synthesis_skip2 (((void *)0), r_values_out); break; case 128: gsl_power2_fft128synthesis_skip2 (((void *)0), r_values_out); break; case 256: gsl_power2_fft256synthesis_skip2 (((void *)0), r_values_out); break; case 512: gsl_power2_fft512synthesis_skip2 (((void *)0), r_values_out); break; case 1024: gsl_power2_fft1024synthesis_skip2 (((void *)0), r_values_out); break; case 2048: gsl_power2_fft2048synthesis_skip2 (((void *)0), r_values_out); break; case 4096: gsl_power2_fft4096synthesis_skip2 (((void *)0), r_values_out); break; case 8192: gsl_power2_fft8192synthesis_skip2 (((void *)0), r_values_out); break; default: gsl_power2_fftc_big (n_cvalues, ((void *)0), r_values_out, -1); } } void gsl_power2_fftar_simple (const unsigned int n_values, const float *real_values, float *complex_values) { double *rv, *cv; guint i; do { if (!((n_values & (n_values - 1)) == 0 && n_values >= 2)) g_message ("gslfft.c" ":" "9015" ":" __PRETTY_FUNCTION__ "()" ": assertion failed `%s'", "(n_values & (n_values - 1)) == 0 && n_values >= 2"); } while (0); rv = ((double *) gsl_g_malloc (((gsize) sizeof (double)) * ((gsize) (n_values * 2)))); cv = rv + n_values; i = n_values; while (i--) rv[i] = real_values[i]; gsl_power2_fftar (n_values, rv, cv); i = n_values; while (i--) complex_values[i] = cv[i]; complex_values[n_values] = complex_values[1]; complex_values[1] = 0.0; complex_values[n_values + 1] = 0.0; gsl_g_free (rv); } void gsl_power2_fftsr_simple (const unsigned int n_values, const float *complex_values, float *real_values) { double *cv, *rv; guint i; do { if (!((n_values & (n_values - 1)) == 0 && n_values >= 2)) g_message ("gslfft.c" ":" "9039" ":" __PRETTY_FUNCTION__ "()" ": assertion failed `%s'", "(n_values & (n_values - 1)) == 0 && n_values >= 2"); } while (0); cv = ((double *) gsl_g_malloc (((gsize) sizeof (double)) * ((gsize) (n_values * 2)))); rv = cv + n_values; i = n_values; while (i--) cv[i] = complex_values[i]; cv[1] = complex_values[n_values]; gsl_power2_fftsr (n_values, cv, rv); i = n_values; while (i--) real_values[i] = rv[i]; gsl_g_free (cv); } --Boundary-00=_HFoy+N6CAAjpCAA--