public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: optimization/10876: [3.3/3.4 regression] [Sparc] ICE in calculate_giv_inc at unroll.c:1588 on FP code
@ 2003-05-20 19:26 Aaron Williams
  0 siblings, 0 replies; 4+ messages in thread
From: Aaron Williams @ 2003-05-20 19:26 UTC (permalink / raw)
  To: ebotcazou; +Cc: gcc-prs

The following reply was made to PR optimization/10876; it has been noted by GNATS.

From: "Aaron Williams" <aaron_williams@net.com>
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 <URL:http://gcc.gnu.org/bugs.html> 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 "<built-in>"
 # 1 "<command line>"
 # 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--
 


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: optimization/10876: [3.3/3.4 regression] [Sparc] ICE in calculate_giv_inc at unroll.c:1588 on FP code
@ 2003-05-21  8:46 Eric Botcazou
  0 siblings, 0 replies; 4+ messages in thread
From: Eric Botcazou @ 2003-05-21  8:46 UTC (permalink / raw)
  To: ebotcazou; +Cc: gcc-prs

The following reply was made to PR optimization/10876; it has been noted by GNATS.

From: Eric Botcazou <ebotcazou@libertysurf.fr>
To: "Aaron Williams" <aaron_williams@net.com>
Cc: Andrew Pinski <pinskia@physics.uc.edu>,
 gcc-bugs@gcc.gnu.org,
 gcc-gnats@gcc.gnu.org
Subject: Re: optimization/10876: [3.3/3.4 regression] [Sparc] ICE in calculate_giv_inc at unroll.c:1588 on FP code
Date: Wed, 21 May 2003 10:35:29 +0200

 > 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 <URL:http://gcc.gnu.org/bugs.html> for instructions.
 
 That's actually the same bug as the one which triggers the segfault at -O2.
 
 -- 
 Eric Botcazou


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: optimization/10876: [3.3/3.4 regression] [Sparc] ICE in calculate_giv_inc at unroll.c:1588 on FP code
@ 2003-05-21  2:26 Aaron Williams
  0 siblings, 0 replies; 4+ messages in thread
From: Aaron Williams @ 2003-05-21  2:26 UTC (permalink / raw)
  To: ebotcazou; +Cc: gcc-prs

The following reply was made to PR optimization/10876; it has been noted by GNATS.

From: "Aaron Williams" <aaron_williams@net.com>
To: Andrew Pinski <pinskia@physics.uc.edu>
Cc: gcc-prs@gcc.gnu.org, ebotcazou@gcc.gnu.org, aaronw@attbi.com,
   gcc-bugs@gcc.gnu.org, gcc-gnats@gcc.gnu.org
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 19:20:59 -0700

 After removing -fssa and a number of other options I still see the 
 following, which is different in that abort is hit rather than segfault:
 
 gcc -c -O3 gslfft_pp.c  -foptimize-register-move -frename-registers 
 -fschedule-insns2 -fschedule-insns -frerun-loop-opt 
 -frerun-cse-after-loop -floop-optimize -fpeephole -freduce-all-givs 
 -fprefetch-loop-arrays -funroll-loops
 
 <__FUNCTION__ warnings snipped>
 
 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 <URL:http://gcc.gnu.org/bugs.html> for instructions.
 


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: optimization/10876: [3.3/3.4 regression] [Sparc] ICE in calculate_giv_inc at unroll.c:1588 on FP code
@ 2003-05-20 19:56 Andrew Pinski
  0 siblings, 0 replies; 4+ messages in thread
From: Andrew Pinski @ 2003-05-20 19:56 UTC (permalink / raw)
  To: ebotcazou; +Cc: gcc-prs

The following reply was made to PR optimization/10876; it has been noted by GNATS.

From: Andrew Pinski <pinskia@physics.uc.edu>
To: "Aaron Williams" <aaron_williams@net.com>
Cc: Andrew Pinski <pinskia@physics.uc.edu>, gcc-prs@gcc.gnu.org,
   ebotcazou@gcc.gnu.org, aaronw@attbi.com, gcc-bugs@gcc.gnu.org,
   gcc-gnats@gcc.gnu.org
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 15:32:23 -0400

 Do not use this option as it is experimental and is known to cause 
 wrong code.
 I do not think it is related to this problem, though.
 
 Thanks,
 Andrew Pinski
 
 On Tuesday, May 20, 2003, at 15:25 US/Eastern, Aaron Williams wrote:
 
 > -fssa
 


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2003-05-21  8:46 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-05-20 19:26 optimization/10876: [3.3/3.4 regression] [Sparc] ICE in calculate_giv_inc at unroll.c:1588 on FP code Aaron Williams
2003-05-20 19:56 Andrew Pinski
2003-05-21  2:26 Aaron Williams
2003-05-21  8:46 Eric Botcazou

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).