Re: optimization/10876: [3.3/3.4 regression] [Sparc] ICE in calculate_giv_inc at unroll.c:1588 on FP code

"Aaron Williams" <[email protected]>
Newsgroups gmane.comp.gcc.prs
Message-ID <[email protected]>
The following reply was made to PR optimization/10876; it has been noted by GNATS.

From: "Aaron Williams" <[email protected]>
To: [email protected], [email protected], [email protected],
   [email protected], [email protected]
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--
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.