This is the mail archive of the gcc-prs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: c/10365: Seems like bug in code generator on Sun Sparc (Sol;aris 8) platform


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

From: Yuri Urazov <urazov at yahoo dot com>
To: bangerth at dealii dot org, gcc-bugs at gcc dot gnu dot org, gcc-prs at gcc dot gnu dot org,
  nobody at gcc dot gnu dot org, gcc-gnats at gcc dot gnu dot org
Cc:  
Subject: Re: c/10365: Seems like bug in code generator on Sun Sparc (Sol;aris 8) platform
Date: Wed, 9 Apr 2003 15:34:47 -0700 (PDT)

 --0-950081385-1049927687=:98732
 Content-Type: text/plain; charset=us-ascii
 Content-Id: 
 Content-Disposition: inline
 
 I am resending those .i files individually
 ---------------------------
 
 I have attached two .i files in original filing,
 actually they are in ifiles.tar.gz
 
 I am sending the files again. If this is not what you
 expected I apologize that I am that stupid and ask you
 to send me a list of what you want.
 
 Regards,
 
 Yuri
 
 --- bangerth at dealii dot org wrote:
 > Synopsis: Seems like bug in code generator on Sun
 > Sparc (Sol;aris 8) platform
 > 
 > State-Changed-From-To: open->feedback
 > State-Changed-By: bangerth
 > State-Changed-When: Wed Apr  9 21:01:00 2003
 > State-Changed-Why:
 >     We need some preprocessed sources to reproduce
 > the problem.
 >     Please review
 >       http://gcc.gnu.org/bugs.html
 >     to see what exactly we need.
 >     
 >     Regards
 >       Wolfgang
 > 
 >
 http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=10365
 
 
 __________________________________________________
 Do you Yahoo!?
 Yahoo! Tax Center - File online, calculators, forms, and more
 http://tax.yahoo.com
 --0-950081385-1049927687=:98732
 Content-Type: text/plain; name="test_static.i"
 Content-Description: test_static.i
 Content-Disposition: inline; filename="test_static.i"
 
 # 1 "test_static.c"
 # 1 "<built-in>"
 # 1 "<command line>"
 # 1 "test_static.c"
 
 
 
 
 
 # 1 "test.c" 1
 # 20 "test.c"
 # 1 "../config.h" 1
 # 21 "test.c" 2
 
 
 
 
 
 # 1 "/usr/include/stdlib.h" 1 3 4
 # 16 "/usr/include/stdlib.h" 3 4
 #pragma ident "@(#)stdlib.h	1.47	99/11/03 SMI" 
 
 # 1 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/iso/stdlib_iso.h" 1 3 4
 # 37 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/iso/stdlib_iso.h" 3 4
 #pragma ident "@(#)stdlib_iso.h	1.2	99/12/21 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.18	99/07/26 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.20	99/05/04 SMI"
 # 16 "/usr/include/sys/feature_tests.h" 2 3 4
 # 40 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/iso/stdlib_iso.h" 2 3 4
 
 
 
 
 
 
 extern unsigned char __ctype[];
 # 57 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/iso/stdlib_iso.h" 3 4
 typedef struct {
         int quot;
         int rem;
 } div_t;
 
 typedef struct {
         long quot;
         long rem;
 } ldiv_t;
 
 
 
 
 
 
 typedef unsigned int size_t;
 # 96 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/iso/stdlib_iso.h" 3 4
 typedef long wchar_t;
 
 
 
 
 
 
 extern void abort(void);
 extern int abs(int);
 extern int atexit(void (*)(void));
 extern double atof(const char *);
 extern int atoi(const char *);
 extern long int atol(const char *);
 extern void *bsearch(const void *, const void *, size_t, size_t,
         int (*)(const void *, const void *));
 extern void *calloc(size_t, size_t);
 extern div_t div(int, int);
 extern void exit(int);
 extern void free(void *);
 extern char *getenv(const char *);
 extern long int labs(long);
 extern ldiv_t ldiv(long, long);
 extern void *malloc(size_t);
 extern int mblen(const char *, size_t);
 extern size_t mbstowcs(wchar_t *, const char *, size_t);
 extern int mbtowc(wchar_t *, const char *, size_t);
 extern void qsort(void *, size_t, size_t,
         int (*)(const void *, const void *));
 extern int rand(void);
 extern void *realloc(void *, size_t);
 extern void srand(unsigned int);
 extern double strtod(const char *, char **);
 extern long int strtol(const char *, char **, int);
 extern unsigned long int strtoul(const char *, char **, int);
 extern int system(const char *);
 extern int wctomb(char *, wchar_t);
 extern size_t wcstombs(char *, const wchar_t *, size_t);
 # 19 "/usr/include/stdlib.h" 2 3 4
 # 68 "/usr/include/stdlib.h" 3 4
 typedef struct {
         long long quot;
         long long rem;
 } lldiv_t;
 
 
 
 
 
 
 
 typedef long uid_t;
 # 112 "/usr/include/stdlib.h" 3 4
 extern void _exithandle(void);
 
 
 
 
 extern double drand48(void);
 extern double erand48(unsigned short *);
 extern long jrand48(unsigned short *);
 extern void lcong48(unsigned short *);
 extern long lrand48(void);
 extern long mrand48(void);
 extern long nrand48(unsigned short *);
 extern unsigned short *seed48(unsigned short *);
 extern void srand48(long);
 extern int putenv(char *);
 extern void setkey(const char *);
 # 140 "/usr/include/stdlib.h" 3 4
 typedef int ssize_t;
 
 
 
 extern void swab(const char *, char *, ssize_t);
 
 
 
 
 
 extern int mkstemp(char *);
 
 
 
 
 extern int mkstemp64(char *);
 
 
 
 
 
 extern long a64l(const char *);
 extern char *ecvt(double, int, int *, int *);
 extern char *fcvt(double, int, int *, int *);
 extern char *gcvt(double, int, char *);
 extern int getsubopt(char **, char *const *, char **);
 extern int grantpt(int);
 extern char *initstate(unsigned, char *, size_t);
 extern char *l64a(long);
 extern char *mktemp(char *);
 extern char *ptsname(int);
 extern long random(void);
 extern char *realpath(const char *, char *);
 extern char *setstate(const char *);
 extern void srandom(unsigned);
 extern int ttyslot(void);
 extern int unlockpt(int);
 extern void *valloc(size_t);
 
 
 
 
 extern int dup2(int, int);
 extern char *qecvt(long double, int, int *, int *);
 extern char *qfcvt(long double, int, int *, int *);
 extern char *qgcvt(long double, int, char *);
 extern char *getcwd(char *, size_t);
 extern const char *getexecname(void);
 extern char *getlogin(void);
 extern int getopt(int, char *const *, const char *);
 extern char *optarg;
 extern int optind, opterr, optopt;
 extern char *getpass(const char *);
 extern char *getpassphrase(const char *);
 extern int getpw(uid_t, char *);
 extern int isatty(int);
 extern void *memalign(size_t, size_t);
 extern char *ttyname(int);
 
 
 extern long long atoll(const char *);
 extern long long llabs(long long);
 extern lldiv_t lldiv(long long, long long);
 extern char *lltostr(long long, char *);
 extern long long strtoll(const char *, char **, int);
 extern unsigned long long strtoull(const char *, char **, int);
 extern char *ulltostr(unsigned long long, char *);
 # 27 "test.c" 2
 # 1 "/usr/include/fcntl.h" 1 3 4
 # 16 "/usr/include/fcntl.h" 3 4
 #pragma ident "@(#)fcntl.h	1.14	97/12/05 SMI" 
 
 
 
 
 
 
 # 1 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/sys/types.h" 1 3 4
 # 25 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/sys/types.h" 3 4
 #pragma ident "@(#)types.h	1.68	02/06/10 SMI"
 
 
 
 
 
 
 
 # 1 "/usr/include/sys/machtypes.h" 1 3 4
 # 16 "/usr/include/sys/machtypes.h" 3 4
 #pragma ident "@(#)machtypes.h	1.13	99/05/04 SMI"
 # 33 "/usr/include/sys/machtypes.h" 3 4
 typedef struct _label_t { long val[2]; } label_t;
 
 
 
 typedef unsigned char lock_t;
 # 34 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/sys/types.h" 2 3 4
 # 45 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/sys/types.h" 3 4
 # 1 "/usr/include/sys/int_types.h" 1 3 4
 # 9 "/usr/include/sys/int_types.h" 3 4
 #pragma ident "@(#)int_types.h	1.6	97/08/20 SMI"
 # 62 "/usr/include/sys/int_types.h" 3 4
 typedef char int8_t;
 
 
 
 
 
 typedef short int16_t;
 typedef int int32_t;
 
 
 
 
 typedef long long int64_t;
 
 
 
 typedef unsigned char uint8_t;
 typedef unsigned short uint16_t;
 typedef unsigned int uint32_t;
 
 
 
 
 typedef unsigned long long uint64_t;
 # 94 "/usr/include/sys/int_types.h" 3 4
 typedef int64_t intmax_t;
 typedef uint64_t uintmax_t;
 # 110 "/usr/include/sys/int_types.h" 3 4
 typedef int intptr_t;
 typedef unsigned int uintptr_t;
 
 
 
 
 
 
 
 typedef char int_least8_t;
 
 
 
 
 
 typedef short int_least16_t;
 typedef int int_least32_t;
 
 
 
 
 typedef long long int_least64_t;
 
 
 
 typedef unsigned char uint_least8_t;
 typedef unsigned short uint_least16_t;
 typedef unsigned int uint_least32_t;
 
 
 
 
 typedef unsigned long long uint_least64_t;
 # 46 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/sys/types.h" 2 3 4
 # 62 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/sys/types.h" 3 4
 typedef long long longlong_t;
 typedef unsigned long long u_longlong_t;
 # 85 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/sys/types.h" 3 4
 typedef long t_scalar_t;
 typedef unsigned long t_uscalar_t;
 
 
 
 
 
 typedef unsigned char uchar_t;
 typedef unsigned short ushort_t;
 typedef unsigned int uint_t;
 typedef unsigned long ulong_t;
 
 typedef char *caddr_t;
 typedef long daddr_t;
 typedef short cnt_t;
 
 
 typedef ulong_t paddr_t;
 # 118 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/sys/types.h" 3 4
 typedef int ptrdiff_t;
 # 127 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/sys/types.h" 3 4
 typedef ulong_t pfn_t;
 typedef ulong_t pgcnt_t;
 typedef long spgcnt_t;
 
 typedef uchar_t use_t;
 typedef short sysid_t;
 typedef short index_t;
 typedef void *timeout_id_t;
 typedef void *bufcall_id_t;
 # 149 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/sys/types.h" 3 4
 typedef long off_t;
 # 158 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/sys/types.h" 3 4
 typedef longlong_t off64_t;
 
 
 
 
 
 
 typedef ulong_t ino_t;
 typedef long blkcnt_t;
 typedef ulong_t fsblkcnt_t;
 typedef ulong_t fsfilcnt_t;
 # 183 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/sys/types.h" 3 4
 typedef u_longlong_t ino64_t;
 typedef longlong_t blkcnt64_t;
 typedef u_longlong_t fsblkcnt64_t;
 typedef u_longlong_t fsfilcnt64_t;
 
 
 
 
 
 
 typedef long blksize_t;
 
 
 
 
 
 typedef enum { B_FALSE, B_TRUE } boolean_t;
 # 210 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/sys/types.h" 3 4
 typedef int64_t pad64_t;
 typedef uint64_t upad64_t;
 # 223 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/sys/types.h" 3 4
 typedef longlong_t offset_t;
 typedef u_longlong_t u_offset_t;
 typedef u_longlong_t len_t;
 typedef longlong_t diskaddr_t;
 # 244 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/sys/types.h" 3 4
 typedef union {
         offset_t _f;
         struct {
                 int32_t _u;
                 int32_t _l;
         } _p;
 } lloff_t;
 # 264 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/sys/types.h" 3 4
 typedef union {
         diskaddr_t _f;
         struct {
                 int32_t _u;
                 int32_t _l;
         } _p;
 } lldaddr_t;
 
 
 typedef uint_t k_fltset_t;
 # 287 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/sys/types.h" 3 4
 typedef long id_t;
 
 
 
 
 
 
 typedef uint_t useconds_t;
 
 
 
 typedef long suseconds_t;
 # 308 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/sys/types.h" 3 4
 typedef ulong_t major_t;
 typedef ulong_t minor_t;
 
 
 
 
 
 typedef short pri_t;
 # 328 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/sys/types.h" 3 4
 typedef ushort_t o_mode_t;
 typedef short o_dev_t;
 typedef ushort_t o_uid_t;
 typedef o_uid_t o_gid_t;
 typedef short o_nlink_t;
 typedef short o_pid_t;
 typedef ushort_t o_ino_t;
 
 
 
 
 
 typedef int key_t;
 
 
 
 typedef ulong_t mode_t;
 # 356 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/sys/types.h" 3 4
 typedef uid_t gid_t;
 
 typedef id_t taskid_t;
 typedef id_t projid_t;
 
 
 
 
 
 
 typedef uint_t pthread_t;
 typedef uint_t pthread_key_t;
 
 typedef struct _pthread_mutex {
         struct {
                 uint16_t __pthread_mutex_flag1;
                 uint8_t __pthread_mutex_flag2;
                 uint8_t __pthread_mutex_ceiling;
                 uint16_t __pthread_mutex_type;
                 uint16_t __pthread_mutex_magic;
         } __pthread_mutex_flags;
         union {
                 struct {
                         uint8_t __pthread_mutex_pad[8];
                 } __pthread_mutex_lock64;
                 struct {
                         uint32_t __pthread_ownerpid;
                         uint32_t __pthread_lockword;
                 } __pthread_mutex_lock32;
                 upad64_t __pthread_mutex_owner64;
         } __pthread_mutex_lock;
         upad64_t __pthread_mutex_data;
 } pthread_mutex_t;
 
 typedef struct _pthread_cond {
         struct {
                 uint8_t __pthread_cond_flag[4];
                 uint16_t __pthread_cond_type;
                 uint16_t __pthread_cond_magic;
         } __pthread_cond_flags;
         upad64_t __pthread_cond_data;
 } pthread_cond_t;
 
 
 
 
 typedef struct _pthread_rwlock {
         int32_t __pthread_rwlock_readers;
         uint16_t __pthread_rwlock_type;
         uint16_t __pthread_rwlock_magic;
         upad64_t __pthread_rwlock_pad1[3];
         upad64_t __pthread_rwlock_pad2[2];
         upad64_t __pthread_rwlock_pad3[2];
 } pthread_rwlock_t;
 
 
 
 
 typedef struct _pthread_attr {
         void *__pthread_attrp;
 } pthread_attr_t;
 
 
 
 
 typedef struct _pthread_mutexattr {
         void *__pthread_mutexattrp;
 } pthread_mutexattr_t;
 
 
 
 
 typedef struct _pthread_condattr {
         void *__pthread_condattrp;
 } pthread_condattr_t;
 
 
 
 
 typedef struct _once {
         upad64_t __pthread_once_pad[4];
 } pthread_once_t;
 
 
 
 
 
 typedef struct _pthread_rwlockattr {
         void *__pthread_rwlockattrp;
 } pthread_rwlockattr_t;
 
 typedef ulong_t dev_t;
 
 
 
 
 
 typedef ulong_t nlink_t;
 typedef long pid_t;
 # 485 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/sys/types.h" 3 4
 typedef long time_t;
 
 
 
 
 typedef long clock_t;
 
 
 
 
 typedef int clockid_t;
 
 
 
 
 typedef int timer_t;
 
 
 
 
 
 
 typedef unsigned char unchar;
 typedef unsigned short ushort;
 typedef unsigned int uint;
 typedef unsigned long ulong;
 # 561 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/sys/types.h" 3 4
 typedef unsigned char u_char;
 typedef unsigned short u_short;
 typedef unsigned int u_int;
 typedef unsigned long u_long;
 typedef struct _quad { int val[2]; } quad_t;
 typedef quad_t quad;
 
 
 
 
 
 
 # 1 "/usr/include/sys/select.h" 1 3 4
 # 12 "/usr/include/sys/select.h" 3 4
 #pragma ident "@(#)select.h	1.16	98/04/27 SMI" 
 
 
 
 
 # 1 "/usr/include/sys/time.h" 1 3 4
 # 22 "/usr/include/sys/time.h" 3 4
 #pragma ident "@(#)time.h	2.66	01/01/17 SMI" 
 # 49 "/usr/include/sys/time.h" 3 4
 struct timeval {
         time_t tv_sec;
         suseconds_t tv_usec;
 };
 # 82 "/usr/include/sys/time.h" 3 4
 struct timezone {
         int tz_minuteswest;
         int tz_dsttime;
 };
 # 100 "/usr/include/sys/time.h" 3 4
 # 1 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/sys/types.h" 1 3 4
 # 101 "/usr/include/sys/time.h" 2 3 4
 # 155 "/usr/include/sys/time.h" 3 4
 struct itimerval {
         struct timeval it_interval;
         struct timeval it_value;
 };
 # 203 "/usr/include/sys/time.h" 3 4
 typedef longlong_t hrtime_t;
 # 320 "/usr/include/sys/time.h" 3 4
 int adjtime(struct timeval *, struct timeval *);
 # 331 "/usr/include/sys/time.h" 3 4
 int getitimer(int, struct itimerval *);
 int utimes(const char *, const struct timeval *);
 
 
 
 int setitimer(int, struct itimerval *, struct itimerval *);
 # 369 "/usr/include/sys/time.h" 3 4
 int settimeofday(struct timeval *, void *);
 
 hrtime_t gethrtime(void);
 hrtime_t gethrvtime(void);
 # 389 "/usr/include/sys/time.h" 3 4
 int gettimeofday(struct timeval *, void *);
 # 410 "/usr/include/sys/time.h" 3 4
 # 1 "/usr/include/time.h" 1 3 4
 # 16 "/usr/include/time.h" 3 4
 #pragma ident "@(#)time.h	1.39	99/08/10 SMI" 
 
 
 
 # 1 "/usr/include/iso/time_iso.h" 1 3 4
 # 28 "/usr/include/iso/time_iso.h" 3 4
 #pragma ident "@(#)time_iso.h	1.1	99/08/09 SMI" 
 # 69 "/usr/include/iso/time_iso.h" 3 4
 struct tm {
         int tm_sec;
         int tm_min;
         int tm_hour;
         int tm_mday;
         int tm_mon;
         int tm_year;
         int tm_wday;
         int tm_yday;
         int tm_isdst;
 };
 
 
 
 
 extern char *asctime(const struct tm *);
 extern clock_t clock(void);
 extern char *ctime(const time_t *);
 extern double difftime(time_t, time_t);
 extern struct tm *gmtime(const time_t *);
 extern struct tm *localtime(const time_t *);
 extern time_t mktime(struct tm *);
 extern time_t time(time_t *);
 extern size_t strftime(char *, size_t, const char *, const struct tm *);
 # 21 "/usr/include/time.h" 2 3 4
 # 67 "/usr/include/time.h" 3 4
 extern char *strptime(const char *, const char *, struct tm *);
 # 83 "/usr/include/time.h" 3 4
 # 1 "/usr/include/sys/time_impl.h" 1 3 4
 # 15 "/usr/include/sys/time_impl.h" 3 4
 #pragma ident "@(#)time_impl.h	1.5	99/10/05 SMI"
 # 36 "/usr/include/sys/time_impl.h" 3 4
 typedef struct timespec {
         time_t tv_sec;
         long tv_nsec;
 } timespec_t;
 # 60 "/usr/include/sys/time_impl.h" 3 4
 typedef struct timespec timestruc_t;
 # 79 "/usr/include/sys/time_impl.h" 3 4
 typedef struct itimerspec {
         struct timespec it_interval;
         struct timespec it_value;
 } itimerspec_t;
 # 84 "/usr/include/time.h" 2 3 4
 # 98 "/usr/include/time.h" 3 4
 union sigval {
         int sival_int;
         void *sival_ptr;
 };
 
 
 
 
 struct sigevent {
         int sigev_notify;
         int sigev_signo;
         union sigval sigev_value;
         void (*sigev_notify_function)(union sigval);
         pthread_attr_t *sigev_notify_attributes;
         int __sigev_pad2;
 };
 
 
 extern int clock_getres(clockid_t, struct timespec *);
 extern int clock_gettime(clockid_t, struct timespec *);
 extern int clock_settime(clockid_t, const struct timespec *);
 extern int timer_create(clockid_t, struct sigevent *, timer_t *);
 extern int timer_delete(timer_t);
 extern int timer_getoverrun(timer_t);
 extern int timer_gettime(timer_t, struct itimerspec *);
 extern int timer_settime(timer_t, int, const struct itimerspec *,
                 struct itimerspec *);
 extern int nanosleep(const struct timespec *, struct timespec *);
 
 
 
 
 extern void tzset(void);
 
 extern char *tzname[2];
 
 
 extern long _sysconf(int);
 
 
 
 
 
 
 extern long timezone;
 extern int daylight;
 
 
 
 
 
 extern int cftime(char *, char *, const time_t *);
 extern int ascftime(char *, const char *, const struct tm *);
 extern long altzone;
 
 
 
 
 extern struct tm *getdate(const char *);
 
 
 
 
 
 
 extern int getdate_err;
 # 411 "/usr/include/sys/time.h" 2 3 4
 # 423 "/usr/include/sys/time.h" 3 4
 # 1 "/usr/include/sys/select.h" 1 3 4
 # 424 "/usr/include/sys/time.h" 2 3 4
 # 18 "/usr/include/sys/select.h" 2 3 4
 # 45 "/usr/include/sys/select.h" 3 4
 typedef long fd_mask;
 
 typedef long fds_mask;
 # 73 "/usr/include/sys/select.h" 3 4
 typedef struct fd_set {
 
 
 
         long fds_bits[(((1024)+(((sizeof (fds_mask) * 8))-1))/((sizeof (fds_mask) * 8)))];
 } fd_set;
 # 97 "/usr/include/sys/select.h" 3 4
 extern int select(int, fd_set *, fd_set *, fd_set *, struct timeval *);
 # 574 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/sys/types.h" 2 3 4
 # 24 "/usr/include/fcntl.h" 2 3 4
 # 1 "/usr/include/sys/fcntl.h" 1 3 4
 # 16 "/usr/include/sys/fcntl.h" 3 4
 #pragma ident "@(#)fcntl.h	1.45	98/07/17 SMI" 
 # 164 "/usr/include/sys/fcntl.h" 3 4
 typedef struct flock {
         short l_type;
         short l_whence;
         off_t l_start;
         off_t l_len;
         int l_sysid;
         pid_t l_pid;
         long l_pad[4];
 } flock_t;
 # 194 "/usr/include/sys/fcntl.h" 3 4
 typedef struct flock64 {
         short l_type;
         short l_whence;
         off64_t l_start;
         off64_t l_len;
         int l_sysid;
         pid_t l_pid;
         long l_pad[4];
 } flock64_t;
 # 272 "/usr/include/sys/fcntl.h" 3 4
 typedef struct fshare {
         short f_access;
         short f_deny;
         int f_id;
 } fshare_t;
 # 25 "/usr/include/fcntl.h" 2 3 4
 # 72 "/usr/include/fcntl.h" 3 4
 extern int fcntl(int, int, ...);
 extern int open(const char *, int, ...);
 extern int creat(const char *, mode_t);
 
 
 extern int directio(int, int);
 
 
 
 
 
 extern int open64(const char *, int, ...);
 extern int creat64(const char *, mode_t);
 # 28 "test.c" 2
 # 1 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/stdio.h" 1 3 4
 # 14 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/stdio.h" 3 4
 # 1 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/stdarg.h" 1 3 4
 # 43 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/stdarg.h" 3 4
 typedef __builtin_va_list __gnuc_va_list;
 # 15 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/stdio.h" 2 3 4
 # 34 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/stdio.h" 3 4
 #pragma ident "@(#)stdio.h	1.78	99/12/08 SMI" 
 
 # 1 "/usr/include/iso/stdio_iso.h" 1 3 4
 # 32 "/usr/include/iso/stdio_iso.h" 3 4
 #pragma ident "@(#)stdio_iso.h	1.2	99/10/25 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.12	99/05/04 SMI"
 # 26 "/usr/include/sys/va_list.h" 3 4
 typedef void *__va_list;
 # 37 "/usr/include/iso/stdio_iso.h" 2 3 4
 # 1 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/stdio_tag.h" 1 3 4
 # 18 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/stdio_tag.h" 3 4
 #pragma ident "@(#)stdio_tag.h	1.3	98/04/20 SMI"
 # 30 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/stdio_tag.h" 3 4
 typedef struct __FILE __FILE;
 # 38 "/usr/include/iso/stdio_iso.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/10 SMI"
 # 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;
 };
 # 39 "/usr/include/iso/stdio_iso.h" 2 3 4
 # 59 "/usr/include/iso/stdio_iso.h" 3 4
 typedef long long __longlong_t;
 # 75 "/usr/include/iso/stdio_iso.h" 3 4
 typedef __FILE FILE;
 # 88 "/usr/include/iso/stdio_iso.h" 3 4
 typedef long fpos_t;
 # 147 "/usr/include/iso/stdio_iso.h" 3 4
 extern __FILE __iob[20];
 # 164 "/usr/include/iso/stdio_iso.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 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 sprintf(char *, const char *, ...);
 
 extern int sscanf(const char *, const char *, ...);
 extern int vfprintf(FILE *, const char *, __va_list);
 extern int vprintf(const char *, __va_list);
 extern int vsprintf(char *, const char *, __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 putc(int, FILE *);
 
 
 
 extern int getchar(void);
 extern int putchar(int);
 
 extern char *gets(char *);
 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 *);
 # 37 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/stdio.h" 2 3 4
 # 123 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/stdio.h" 3 4
 typedef __longlong_t fpos64_t;
 # 151 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/stdio.h" 3 4
 extern unsigned char _sibuf[], _sobuf[];
 # 193 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/stdio.h" 3 4
 extern unsigned char *_bufendtab[];
 extern FILE *_lastbuf;
 # 229 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/stdio.h" 3 4
 extern void setbuffer(FILE *, char *, size_t);
 extern int setlinebuf(FILE *);
 
 
 
 
 
 extern int snprintf(char *, size_t, const char *, ...);
 
 
 
 
 extern int vsnprintf(char *, size_t, const char *, __gnuc_va_list);
 # 250 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/stdio.h" 3 4
 extern FILE *fdopen(int, const char *);
 extern char *ctermid(char *);
 extern int fileno(FILE *);
 # 276 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/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 *);
 # 305 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/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 *);
 # 29 "test.c" 2
 # 1 "../gsl/gsl_math.h" 1
 # 22 "../gsl/gsl_math.h"
 # 1 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/math.h" 1 3 4
 # 23 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/math.h" 3 4
 #pragma ident "@(#)math.h	2.10	99/07/29 SMI"
 
 # 1 "/usr/include/iso/math_iso.h" 1 3 4
 
 
 
 
 
 
 
 #pragma ident "@(#)math_iso.h	1.1	99/07/30 SMI"
 # 20 "/usr/include/iso/math_iso.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;
 # 37 "/usr/include/iso/math_iso.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);
 # 26 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/math.h" 2 3 4
 # 89 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/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;
 };
 # 145 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/math.h" 3 4
 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);
 # 172 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/math.h" 3 4
 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);
 # 192 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/math.h" 3 4
 extern double expm1 (double);
 extern int ilogb (double);
 extern double log1p (double);
 extern double rint (double);
 # 208 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/math.h" 3 4
 extern int matherr (struct exception *);
 
 
 
 
 extern double significand (double);
 
 
 
 
 extern double copysign (double, double);
 extern double scalbn (double, int);
 # 243 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/math.h" 3 4
 extern float modff (float, float *);
 
 
 
 
 
 
 # 1 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/floatingpoint.h" 1 3 4
 # 20 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/floatingpoint.h" 3 4
 #pragma ident "@(#)floatingpoint.h	2.5	99/06/22 SMI"
 
 
 
 
 # 1 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/sys/ieeefp.h" 1 3 4
 # 17 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/sys/ieeefp.h" 3 4
 #pragma ident "@(#)ieeefp.h	2.8 99/10/29"
 # 27 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/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 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/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
 };
 # 26 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/floatingpoint.h" 2 3 4
 # 62 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/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;
 # 94 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/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 **);
 # 251 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/math.h" 2 3 4
 # 23 "../gsl/gsl_math.h" 2
 # 1 "../gsl/gsl_sys.h" 1
 # 33 "../gsl/gsl_sys.h"
 
 
 double gsl_log1p (const double x);
 double gsl_expm1 (const double x);
 double gsl_hypot (const double x, const double y);
 double gsl_acosh (const double x);
 double gsl_asinh (const double x);
 double gsl_atanh (const double x);
 
 int gsl_isnan (const double x);
 int gsl_isinf (const double x);
 int gsl_finite (const double x);
 
 double gsl_nan (void);
 double gsl_posinf (void);
 double gsl_neginf (void);
 double gsl_fdiv (const double x, const double y);
 
 double gsl_coerce_double (const double x);
 float gsl_coerce_float (const float x);
 long double gsl_coerce_long_double (const long double x);
 
 double gsl_ldexp(const double x, const int e);
 double gsl_frexp(const double x, int * e);
 
 int gsl_fcmp (const double x1, const double x2, const double epsilon);
 
 
 # 24 "../gsl/gsl_math.h" 2
 # 1 "../gsl/gsl_machine.h" 1
 
 
 
 
 # 1 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/limits.h" 1 3 4
 # 11 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/limits.h" 3 4
 # 1 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/syslimits.h" 1 3 4
 # 25 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/syslimits.h" 3 4
 #pragma ident "@(#)limits.h	1.51	99/10/08 SMI" 
 
 
 
 # 1 "/usr/include/iso/limits_iso.h" 1 3 4
 # 28 "/usr/include/iso/limits_iso.h" 3 4
 #pragma ident "@(#)limits_iso.h	1.1	99/08/09 SMI" 
 # 30 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/syslimits.h" 2 3 4
 # 41 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/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.6	99/08/06 SMI"
 # 42 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/syslimits.h" 2 3 4
 # 12 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/limits.h" 2 3 4
 # 6 "../gsl/gsl_machine.h" 2
 # 1 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/float.h" 1 3 4
 # 7 "../gsl/gsl_machine.h" 2
 # 25 "../gsl/gsl_math.h" 2
 # 1 "../gsl/gsl_precision.h" 1
 # 24 "../gsl/gsl_precision.h"
 # 1 "../gsl/gsl_types.h" 1
 # 25 "../gsl/gsl_precision.h" 2
 # 36 "../gsl/gsl_precision.h"
 
 
 
 
 
 
 typedef unsigned int gsl_prec_t;
 # 56 "../gsl/gsl_precision.h"
 extern const double gsl_prec_eps[];
 extern const double gsl_prec_sqrt_eps[];
 extern const double gsl_prec_root3_eps[];
 extern const double gsl_prec_root4_eps[];
 extern const double gsl_prec_root5_eps[];
 extern const double gsl_prec_root6_eps[];
 
 
 
 # 26 "../gsl/gsl_math.h" 2
 # 1 "../gsl/gsl_nan.h" 1
 # 27 "../gsl/gsl_math.h" 2
 # 1 "../gsl/gsl_pow_int.h" 1
 # 33 "../gsl/gsl_pow_int.h"
 
 
 
 extern inline double gsl_pow_2(const double x);
 extern inline double gsl_pow_3(const double x);
 extern inline double gsl_pow_4(const double x);
 extern inline double gsl_pow_5(const double x);
 extern inline double gsl_pow_6(const double x);
 extern inline double gsl_pow_7(const double x);
 extern inline double gsl_pow_8(const double x);
 extern inline double gsl_pow_9(const double x);
 
 extern inline double gsl_pow_2(const double x) { return x*x; }
 extern inline double gsl_pow_3(const double x) { return x*x*x; }
 extern inline double gsl_pow_4(const double x) { double x2 = x*x; return x2*x2; }
 extern inline double gsl_pow_5(const double x) { double x2 = x*x; return x2*x2*x; }
 extern inline double gsl_pow_6(const double x) { double x2 = x*x; return x2*x2*x2; }
 extern inline double gsl_pow_7(const double x) { double x3 = x*x*x; return x3*x3*x; }
 extern inline double gsl_pow_8(const double x) { double x2 = x*x; double x4 = x2*x2; return x4*x4; }
 extern inline double gsl_pow_9(const double x) { double x3 = x*x*x; return x3*x3*x3; }
 # 64 "../gsl/gsl_pow_int.h"
 double gsl_pow_int(double x, int n);
 
 
 # 28 "../gsl/gsl_math.h" 2
 # 108 "../gsl/gsl_math.h"
 
 # 126 "../gsl/gsl_math.h"
 double gsl_max (double a, double b);
 double gsl_min (double a, double b);
 
 
 
 
 extern inline int GSL_MAX_INT (int a, int b);
 extern inline int GSL_MIN_INT (int a, int b);
 extern inline double GSL_MAX_DBL (double a, double b);
 extern inline double GSL_MIN_DBL (double a, double b);
 extern inline long double GSL_MAX_LDBL (long double a, long double b);
 extern inline long double GSL_MIN_LDBL (long double a, long double b);
 
 extern inline int
 GSL_MAX_INT (int a, int b)
 {
   return ((a) > (b) ? (a) : (b));
 }
 
 extern inline int
 GSL_MIN_INT (int a, int b)
 {
   return ((a) < (b) ? (a) : (b));
 }
 
 extern inline double
 GSL_MAX_DBL (double a, double b)
 {
   return ((a) > (b) ? (a) : (b));
 }
 
 extern inline double
 GSL_MIN_DBL (double a, double b)
 {
   return ((a) < (b) ? (a) : (b));
 }
 
 extern inline long double
 GSL_MAX_LDBL (long double a, long double b)
 {
   return ((a) > (b) ? (a) : (b));
 }
 
 extern inline long double
 GSL_MIN_LDBL (long double a, long double b)
 {
   return ((a) < (b) ? (a) : (b));
 }
 # 185 "../gsl/gsl_math.h"
 struct gsl_function_struct
 {
   double (* function) (double x, void * params);
   void * params;
 };
 
 typedef struct gsl_function_struct gsl_function ;
 
 
 
 
 
 struct gsl_function_fdf_struct
 {
   double (* f) (double x, void * params);
   double (* df) (double x, void * params);
   void (* fdf) (double x, void * params, double * f, double * df);
   void * params;
 };
 
 typedef struct gsl_function_fdf_struct gsl_function_fdf ;
 # 214 "../gsl/gsl_math.h"
 struct gsl_function_vec_struct
 {
   int (* function) (double x, double y[], void * params);
   void * params;
 };
 
 typedef struct gsl_function_vec_struct gsl_function_vec ;
 
 
 
 
 # 30 "test.c" 2
 # 1 "../gsl/gsl_vector.h" 1
 
 
 
 # 1 "../gsl/gsl_vector_complex_long_double.h" 1
 # 25 "../gsl/gsl_vector_complex_long_double.h"
 # 1 "../gsl/gsl_errno.h" 1
 # 24 "../gsl/gsl_errno.h"
 # 1 "/usr/include/errno.h" 1 3 4
 # 17 "/usr/include/errno.h" 3 4
 #pragma ident "@(#)errno.h	1.16	99/07/26 SMI" 
 
 
 
 
 
 # 1 "/usr/include/sys/errno.h" 1 3 4
 # 11 "/usr/include/sys/errno.h" 3 4
 #pragma ident "@(#)errno.h	1.20	00/02/14 SMI" 
 # 24 "/usr/include/errno.h" 2 3 4
 # 41 "/usr/include/errno.h" 3 4
 extern int errno;
 # 25 "../gsl/gsl_errno.h" 2
 # 37 "../gsl/gsl_errno.h"
 
 
 enum {
   GSL_SUCCESS = 0,
   GSL_FAILURE = -1,
   GSL_CONTINUE = -2,
   GSL_EDOM = 1,
   GSL_ERANGE = 2,
   GSL_EFAULT = 3,
   GSL_EINVAL = 4,
   GSL_EFAILED = 5,
   GSL_EFACTOR = 6,
   GSL_ESANITY = 7,
   GSL_ENOMEM = 8,
   GSL_EBADFUNC = 9,
   GSL_ERUNAWAY = 10,
   GSL_EMAXITER = 11,
   GSL_EZERODIV = 12,
   GSL_EBADTOL = 13,
   GSL_ETOL = 14,
   GSL_EUNDRFLW = 15,
   GSL_EOVRFLW = 16,
   GSL_ELOSS = 17,
   GSL_EROUND = 18,
   GSL_EBADLEN = 19,
   GSL_ENOTSQR = 20,
   GSL_ESING = 21,
   GSL_EDIVERGE = 22,
   GSL_EUNSUP = 23,
   GSL_EUNIMPL = 24,
   GSL_ECACHE = 25,
   GSL_ETABLE = 26,
   GSL_ENOPROG = 27,
   GSL_ENOPROGJ = 28,
   GSL_ETOLF = 29,
   GSL_ETOLX = 30,
   GSL_ETOLG = 31,
   GSL_EOF = 32
 } ;
 
 void gsl_error (const char * reason, const char * file, int line,
                 int gsl_errno);
 
 void gsl_warning (const char * reason, const char * file, int line,
                   int gsl_errno) ;
 
 void gsl_stream_printf (const char *label, const char *file,
                         int line, const char *reason);
 
 const char * gsl_strerror (const int gsl_errno);
 
 typedef void gsl_error_handler_t (const char * reason, const char * file,
                                   int line, int gsl_errno);
 
 typedef void gsl_stream_handler_t (const char * label, const char * file,
                                    int line, const char * reason);
 
 gsl_error_handler_t *
 gsl_set_error_handler (gsl_error_handler_t * new_handler);
 
 gsl_error_handler_t *
 gsl_set_error_handler_off (void);
 
 gsl_stream_handler_t *
 gsl_set_stream_handler (gsl_stream_handler_t * new_handler);
 
 FILE * gsl_set_stream (FILE * new_stream);
 # 157 "../gsl/gsl_errno.h"
 extern int gsl_warnings_off ;
 # 181 "../gsl/gsl_errno.h"
 
 # 26 "../gsl/gsl_vector_complex_long_double.h" 2
 # 1 "../gsl/gsl_complex.h" 1
 # 33 "../gsl/gsl_complex.h"
 
 
 
 
 typedef double * gsl_complex_packed ;
 typedef float * gsl_complex_packed_float ;
 typedef long double * gsl_complex_packed_long_double ;
 
 typedef const double * gsl_const_complex_packed ;
 typedef const float * gsl_const_complex_packed_float ;
 typedef const long double * gsl_const_complex_packed_long_double ;
 
 
 
 typedef double * gsl_complex_packed_array ;
 typedef float * gsl_complex_packed_array_float ;
 typedef long double * gsl_complex_packed_array_long_double ;
 
 typedef const double * gsl_const_complex_packed_array ;
 typedef const float * gsl_const_complex_packed_array_float ;
 typedef const long double * gsl_const_complex_packed_array_long_double ;
 
 
 
 
 
 
 
 typedef double * gsl_complex_packed_ptr ;
 typedef float * gsl_complex_packed_float_ptr ;
 typedef long double * gsl_complex_packed_long_double_ptr ;
 
 typedef const double * gsl_const_complex_packed_ptr ;
 typedef const float * gsl_const_complex_packed_float_ptr ;
 typedef const long double * gsl_const_complex_packed_long_double_ptr ;
 
 
 typedef struct
   {
     long double dat[2];
   }
 gsl_complex_long_double;
 
 typedef struct
   {
     double dat[2];
   }
 gsl_complex;
 
 typedef struct
   {
     float dat[2];
   }
 gsl_complex_float;
 # 101 "../gsl/gsl_complex.h"
 
 # 27 "../gsl/gsl_vector_complex_long_double.h" 2
 # 1 "../gsl/gsl_vector_long_double.h" 1
 # 26 "../gsl/gsl_vector_long_double.h"
 # 1 "../gsl/gsl_block_long_double.h" 1
 # 36 "../gsl/gsl_block_long_double.h"
 
 
 struct gsl_block_long_double_struct
 {
   size_t size;
   long double *data;
 };
 
 typedef struct gsl_block_long_double_struct gsl_block_long_double;
 
 gsl_block_long_double *gsl_block_long_double_alloc (const size_t n);
 gsl_block_long_double *gsl_block_long_double_calloc (const size_t n);
 void gsl_block_long_double_free (gsl_block_long_double * b);
 
 int gsl_block_long_double_fread (FILE * stream, gsl_block_long_double * b);
 int gsl_block_long_double_fwrite (FILE * stream, const gsl_block_long_double * b);
 int gsl_block_long_double_fscanf (FILE * stream, gsl_block_long_double * b);
 int gsl_block_long_double_fprintf (FILE * stream, const gsl_block_long_double * b, const char *format);
 
 int gsl_block_long_double_raw_fread (FILE * stream, long double * b, const size_t n, const size_t stride);
 int gsl_block_long_double_raw_fwrite (FILE * stream, const long double * b, const size_t n, const size_t stride);
 int gsl_block_long_double_raw_fscanf (FILE * stream, long double * b, const size_t n, const size_t stride);
 int gsl_block_long_double_raw_fprintf (FILE * stream, const long double * b, const size_t n, const size_t stride, const char *format);
 
 size_t gsl_block_long_double_size (const gsl_block_long_double * b);
 long double * gsl_block_long_double_data (const gsl_block_long_double * b);
 
 
 # 27 "../gsl/gsl_vector_long_double.h" 2
 # 38 "../gsl/gsl_vector_long_double.h"
 
 
 typedef struct
 {
   size_t size;
   size_t stride;
   long double *data;
   gsl_block_long_double *block;
   int owner;
 }
 gsl_vector_long_double;
 
 typedef struct
 {
   gsl_vector_long_double vector;
 } _gsl_vector_long_double_view;
 
 typedef _gsl_vector_long_double_view gsl_vector_long_double_view;
 
 typedef struct
 {
   gsl_vector_long_double vector;
 } _gsl_vector_long_double_const_view;
 
 typedef const _gsl_vector_long_double_const_view gsl_vector_long_double_const_view;
 
 
 
 
 gsl_vector_long_double *gsl_vector_long_double_alloc (const size_t n);
 gsl_vector_long_double *gsl_vector_long_double_calloc (const size_t n);
 
 gsl_vector_long_double *gsl_vector_long_double_alloc_from_block (gsl_block_long_double * b,
                                                      const size_t offset,
                                                      const size_t n,
                                                      const size_t stride);
 
 gsl_vector_long_double *gsl_vector_long_double_alloc_from_vector (gsl_vector_long_double * v,
                                                       const size_t offset,
                                                       const size_t n,
                                                       const size_t stride);
 
 void gsl_vector_long_double_free (gsl_vector_long_double * v);
 
 
 
 _gsl_vector_long_double_view
 gsl_vector_long_double_view_array (long double *v, size_t n);
 
 _gsl_vector_long_double_view
 gsl_vector_long_double_view_array_with_stride (long double *base,
                                          size_t stride,
                                          size_t n);
 
 _gsl_vector_long_double_const_view
 gsl_vector_long_double_const_view_array (const long double *v, size_t n);
 
 _gsl_vector_long_double_const_view
 gsl_vector_long_double_const_view_array_with_stride (const long double *base,
                                                size_t stride,
                                                size_t n);
 
 _gsl_vector_long_double_view
 gsl_vector_long_double_subvector (gsl_vector_long_double *v,
                             size_t i,
                             size_t n);
 
 _gsl_vector_long_double_view
 gsl_vector_long_double_subvector_with_stride (gsl_vector_long_double *v,
                                         size_t i,
                                         size_t stride,
                                         size_t n);
 
 _gsl_vector_long_double_const_view
 gsl_vector_long_double_const_subvector (const gsl_vector_long_double *v,
                                   size_t i,
                                   size_t n);
 
 _gsl_vector_long_double_const_view
 gsl_vector_long_double_const_subvector_with_stride (const gsl_vector_long_double *v,
                                               size_t i,
                                               size_t stride,
                                               size_t n);
 
 
 
 long double gsl_vector_long_double_get (const gsl_vector_long_double * v, const size_t i);
 void gsl_vector_long_double_set (gsl_vector_long_double * v, const size_t i, long double x);
 
 long double *gsl_vector_long_double_ptr (gsl_vector_long_double * v, const size_t i);
 const long double *gsl_vector_long_double_const_ptr (const gsl_vector_long_double * v, const size_t i);
 
 void gsl_vector_long_double_set_zero (gsl_vector_long_double * v);
 void gsl_vector_long_double_set_all (gsl_vector_long_double * v, long double x);
 int gsl_vector_long_double_set_basis (gsl_vector_long_double * v, size_t i);
 
 int gsl_vector_long_double_fread (FILE * stream, gsl_vector_long_double * v);
 int gsl_vector_long_double_fwrite (FILE * stream, const gsl_vector_long_double * v);
 int gsl_vector_long_double_fscanf (FILE * stream, gsl_vector_long_double * v);
 int gsl_vector_long_double_fprintf (FILE * stream, const gsl_vector_long_double * v,
                               const char *format);
 
 int gsl_vector_long_double_memcpy (gsl_vector_long_double * dest, const gsl_vector_long_double * src);
 
 int gsl_vector_long_double_reverse (gsl_vector_long_double * v);
 
 int gsl_vector_long_double_swap (gsl_vector_long_double * v, gsl_vector_long_double * w);
 int gsl_vector_long_double_swap_elements (gsl_vector_long_double * v, const size_t i, const size_t j);
 
 long double gsl_vector_long_double_max (const gsl_vector_long_double * v);
 long double gsl_vector_long_double_min (const gsl_vector_long_double * v);
 void gsl_vector_long_double_minmax (const gsl_vector_long_double * v, long double * min_out, long double * max_out);
 
 size_t gsl_vector_long_double_max_index (const gsl_vector_long_double * v);
 size_t gsl_vector_long_double_min_index (const gsl_vector_long_double * v);
 void gsl_vector_long_double_minmax_index (const gsl_vector_long_double * v, size_t * imin, size_t * imax);
 
 int gsl_vector_long_double_add (gsl_vector_long_double * a, const gsl_vector_long_double * b);
 int gsl_vector_long_double_sub (gsl_vector_long_double * a, const gsl_vector_long_double * b);
 int gsl_vector_long_double_mul (gsl_vector_long_double * a, const gsl_vector_long_double * b);
 int gsl_vector_long_double_div (gsl_vector_long_double * a, const gsl_vector_long_double * b);
 int gsl_vector_long_double_scale (gsl_vector_long_double * a, const double x);
 int gsl_vector_long_double_add_constant (gsl_vector_long_double * a, const double x);
 
 int gsl_vector_long_double_isnull (const gsl_vector_long_double * v);
 
 extern int gsl_check_range;
 
 
 
 extern inline
 long double
 gsl_vector_long_double_get (const gsl_vector_long_double * v, const size_t i)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_long_double.h", 175, GSL_EINVAL) ; return 0 ; } while (0);
     }
 
   return v->data[i * v->stride];
 }
 
 extern inline
 void
 gsl_vector_long_double_set (gsl_vector_long_double * v, const size_t i, long double x)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_long_double.h", 188, GSL_EINVAL) ; return ; } while (0);
     }
 
   v->data[i * v->stride] = x;
 }
 
 extern inline
 long double *
 gsl_vector_long_double_ptr (gsl_vector_long_double * v, const size_t i)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_long_double.h", 201, GSL_EINVAL) ; return 0 ; } while (0);
     }
 
   return (long double *) (v->data + i * v->stride);
 }
 
 extern inline
 const long double *
 gsl_vector_long_double_const_ptr (const gsl_vector_long_double * v, const size_t i)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_long_double.h", 214, GSL_EINVAL) ; return 0 ; } while (0);
     }
 
   return (const long double *) (v->data + i * v->stride);
 }
 
 
 
 
 
 # 28 "../gsl/gsl_vector_complex_long_double.h" 2
 # 1 "../gsl/gsl_vector_complex.h" 1
 # 29 "../gsl/gsl_vector_complex_long_double.h" 2
 # 1 "../gsl/gsl_block_complex_long_double.h" 1
 # 36 "../gsl/gsl_block_complex_long_double.h"
 
 
 struct gsl_block_complex_long_double_struct
 {
   size_t size;
   long double *data;
 };
 
 typedef struct gsl_block_complex_long_double_struct gsl_block_complex_long_double;
 
 gsl_block_complex_long_double *gsl_block_complex_long_double_alloc (const size_t n);
 gsl_block_complex_long_double *gsl_block_complex_long_double_calloc (const size_t n);
 void gsl_block_complex_long_double_free (gsl_block_complex_long_double * b);
 
 int gsl_block_complex_long_double_fread (FILE * stream, gsl_block_complex_long_double * b);
 int gsl_block_complex_long_double_fwrite (FILE * stream, const gsl_block_complex_long_double * b);
 int gsl_block_complex_long_double_fscanf (FILE * stream, gsl_block_complex_long_double * b);
 int gsl_block_complex_long_double_fprintf (FILE * stream, const gsl_block_complex_long_double * b, const char *format);
 
 int gsl_block_complex_long_double_raw_fread (FILE * stream, long double * b, const size_t n, const size_t stride);
 int gsl_block_complex_long_double_raw_fwrite (FILE * stream, const long double * b, const size_t n, const size_t stride);
 int gsl_block_complex_long_double_raw_fscanf (FILE * stream, long double * b, const size_t n, const size_t stride);
 int gsl_block_complex_long_double_raw_fprintf (FILE * stream, const long double * b, const size_t n, const size_t stride, const char *format);
 
 size_t gsl_block_complex_long_double_size (const gsl_block_complex_long_double * b);
 long double * gsl_block_complex_long_double_data (const gsl_block_complex_long_double * b);
 
 
 # 30 "../gsl/gsl_vector_complex_long_double.h" 2
 # 41 "../gsl/gsl_vector_complex_long_double.h"
 
 
 typedef struct
 {
   size_t size;
   size_t stride;
   long double *data;
   gsl_block_complex_long_double *block;
   int owner;
 } gsl_vector_complex_long_double;
 
 typedef struct
 {
   gsl_vector_complex_long_double vector;
 } _gsl_vector_complex_long_double_view;
 
 typedef _gsl_vector_complex_long_double_view gsl_vector_complex_long_double_view;
 
 typedef struct
 {
   gsl_vector_complex_long_double vector;
 } _gsl_vector_complex_long_double_const_view;
 
 typedef const _gsl_vector_complex_long_double_const_view gsl_vector_complex_long_double_const_view;
 
 
 
 gsl_vector_complex_long_double *gsl_vector_complex_long_double_alloc (const size_t n);
 gsl_vector_complex_long_double *gsl_vector_complex_long_double_calloc (const size_t n);
 
 gsl_vector_complex_long_double *
 gsl_vector_complex_long_double_alloc_from_block (gsl_block_complex_long_double * b,
                                            const size_t offset,
                                            const size_t n,
                                            const size_t stride);
 
 gsl_vector_complex_long_double *
 gsl_vector_complex_long_double_alloc_from_vector (gsl_vector_complex_long_double * v,
                                              const size_t offset,
                                              const size_t n,
                                              const size_t stride);
 
 void gsl_vector_complex_long_double_free (gsl_vector_complex_long_double * v);
 
 
 
 _gsl_vector_complex_long_double_view
 gsl_vector_complex_long_double_view_array (long double *base,
                                      size_t n);
 
 _gsl_vector_complex_long_double_view
 gsl_vector_complex_long_double_view_array_with_stride (long double *base,
                                                  size_t stride,
                                                  size_t n);
 
 _gsl_vector_complex_long_double_const_view
 gsl_vector_complex_long_double_const_view_array (const long double *base,
                                            size_t n);
 
 _gsl_vector_complex_long_double_const_view
 gsl_vector_complex_long_double_const_view_array_with_stride (const long double *base,
                                                        size_t stride,
                                                        size_t n);
 
 _gsl_vector_complex_long_double_view
 gsl_vector_complex_long_double_subvector (gsl_vector_complex_long_double *base,
                                          size_t i,
                                          size_t n);
 
 
 _gsl_vector_complex_long_double_view
 gsl_vector_complex_long_double_subvector_with_stride (gsl_vector_complex_long_double *v,
                                                 size_t i,
                                                 size_t stride,
                                                 size_t n);
 
 _gsl_vector_complex_long_double_const_view
 gsl_vector_complex_long_double_const_subvector (const gsl_vector_complex_long_double *base,
                                                size_t i,
                                                size_t n);
 
 
 _gsl_vector_complex_long_double_const_view
 gsl_vector_complex_long_double_const_subvector_with_stride (const gsl_vector_complex_long_double *v,
                                                       size_t i,
                                                       size_t stride,
                                                       size_t n);
 
 _gsl_vector_long_double_view
 gsl_vector_complex_long_double_real (gsl_vector_complex_long_double *v);
 
 _gsl_vector_long_double_view
 gsl_vector_complex_long_double_imag (gsl_vector_complex_long_double *v);
 
 _gsl_vector_long_double_const_view
 gsl_vector_complex_long_double_const_real (const gsl_vector_complex_long_double *v);
 
 _gsl_vector_long_double_const_view
 gsl_vector_complex_long_double_const_imag (const gsl_vector_complex_long_double *v);
 
 
 
 
 gsl_complex_long_double
 gsl_vector_complex_long_double_get (const gsl_vector_complex_long_double * v, const size_t i);
 
 void gsl_vector_complex_long_double_set (gsl_vector_complex_long_double * v, const size_t i,
                                    gsl_complex_long_double z);
 
 gsl_complex_long_double
 *gsl_vector_complex_long_double_ptr (gsl_vector_complex_long_double * v, const size_t i);
 
 const gsl_complex_long_double
 *gsl_vector_complex_long_double_const_ptr (const gsl_vector_complex_long_double * v, const size_t i);
 
 void gsl_vector_complex_long_double_set_zero (gsl_vector_complex_long_double * v);
 void gsl_vector_complex_long_double_set_all (gsl_vector_complex_long_double * v,
                                        gsl_complex_long_double z);
 int gsl_vector_complex_long_double_set_basis (gsl_vector_complex_long_double * v, size_t i);
 
 int gsl_vector_complex_long_double_fread (FILE * stream,
                                     gsl_vector_complex_long_double * v);
 int gsl_vector_complex_long_double_fwrite (FILE * stream,
                                      const gsl_vector_complex_long_double * v);
 int gsl_vector_complex_long_double_fscanf (FILE * stream,
                                      gsl_vector_complex_long_double * v);
 int gsl_vector_complex_long_double_fprintf (FILE * stream,
                                       const gsl_vector_complex_long_double * v,
                                       const char *format);
 
 int gsl_vector_complex_long_double_memcpy (gsl_vector_complex_long_double * dest, const gsl_vector_complex_long_double * src);
 
 int gsl_vector_complex_long_double_reverse (gsl_vector_complex_long_double * v);
 
 int gsl_vector_complex_long_double_swap (gsl_vector_complex_long_double * v, gsl_vector_complex_long_double * w);
 int gsl_vector_complex_long_double_swap_elements (gsl_vector_complex_long_double * v, const size_t i, const size_t j);
 
 int gsl_vector_complex_long_double_isnull (const gsl_vector_complex_long_double * v);
 
 extern int gsl_check_range;
 
 
 
 extern inline
 gsl_complex_long_double
 gsl_vector_complex_long_double_get (const gsl_vector_complex_long_double * v,
                               const size_t i)
 {
 
   if (i >= v->size)
     {
       const gsl_complex_long_double zero = {{0, 0}};
       do { gsl_error ("index out of range", "../gsl/gsl_vector_complex_long_double.h", 193, GSL_EINVAL) ; return zero ; } while (0);
     }
 
   return *((gsl_complex_long_double*)&((v)->data[2*(i)*(v)->stride]));
 }
 
 extern inline
 void
 gsl_vector_complex_long_double_set (gsl_vector_complex_long_double * v,
                               const size_t i, gsl_complex_long_double z)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_complex_long_double.h", 207, GSL_EINVAL) ; return ; } while (0);
     }
 
   *((gsl_complex_long_double*)&((v)->data[2*(i)*(v)->stride])) = z;
 }
 
 extern inline
 gsl_complex_long_double *
 gsl_vector_complex_long_double_ptr (gsl_vector_complex_long_double * v,
                               const size_t i)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_complex_long_double.h", 221, GSL_EINVAL) ; return 0 ; } while (0);
     }
 
   return ((gsl_complex_long_double*)&((v)->data[2*(i)*(v)->stride]));
 }
 
 extern inline
 const gsl_complex_long_double *
 gsl_vector_complex_long_double_const_ptr (const gsl_vector_complex_long_double * v,
                                     const size_t i)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_complex_long_double.h", 235, GSL_EINVAL) ; return 0 ; } while (0);
     }
 
   return ((gsl_complex_long_double*)&((v)->data[2*(i)*(v)->stride]));
 }
 
 
 
 
 
 # 5 "../gsl/gsl_vector.h" 2
 # 1 "../gsl/gsl_vector_complex_double.h" 1
 # 27 "../gsl/gsl_vector_complex_double.h"
 # 1 "../gsl/gsl_vector_double.h" 1
 # 26 "../gsl/gsl_vector_double.h"
 # 1 "../gsl/gsl_block_double.h" 1
 # 36 "../gsl/gsl_block_double.h"
 
 
 struct gsl_block_struct
 {
   size_t size;
   double *data;
 };
 
 typedef struct gsl_block_struct gsl_block;
 
 gsl_block *gsl_block_alloc (const size_t n);
 gsl_block *gsl_block_calloc (const size_t n);
 void gsl_block_free (gsl_block * b);
 
 int gsl_block_fread (FILE * stream, gsl_block * b);
 int gsl_block_fwrite (FILE * stream, const gsl_block * b);
 int gsl_block_fscanf (FILE * stream, gsl_block * b);
 int gsl_block_fprintf (FILE * stream, const gsl_block * b, const char *format);
 
 int gsl_block_raw_fread (FILE * stream, double * b, const size_t n, const size_t stride);
 int gsl_block_raw_fwrite (FILE * stream, const double * b, const size_t n, const size_t stride);
 int gsl_block_raw_fscanf (FILE * stream, double * b, const size_t n, const size_t stride);
 int gsl_block_raw_fprintf (FILE * stream, const double * b, const size_t n, const size_t stride, const char *format);
 
 size_t gsl_block_size (const gsl_block * b);
 double * gsl_block_data (const gsl_block * b);
 
 
 # 27 "../gsl/gsl_vector_double.h" 2
 # 38 "../gsl/gsl_vector_double.h"
 
 
 typedef struct
 {
   size_t size;
   size_t stride;
   double *data;
   gsl_block *block;
   int owner;
 }
 gsl_vector;
 
 typedef struct
 {
   gsl_vector vector;
 } _gsl_vector_view;
 
 typedef _gsl_vector_view gsl_vector_view;
 
 typedef struct
 {
   gsl_vector vector;
 } _gsl_vector_const_view;
 
 typedef const _gsl_vector_const_view gsl_vector_const_view;
 
 
 
 
 gsl_vector *gsl_vector_alloc (const size_t n);
 gsl_vector *gsl_vector_calloc (const size_t n);
 
 gsl_vector *gsl_vector_alloc_from_block (gsl_block * b,
                                                      const size_t offset,
                                                      const size_t n,
                                                      const size_t stride);
 
 gsl_vector *gsl_vector_alloc_from_vector (gsl_vector * v,
                                                       const size_t offset,
                                                       const size_t n,
                                                       const size_t stride);
 
 void gsl_vector_free (gsl_vector * v);
 
 
 
 _gsl_vector_view
 gsl_vector_view_array (double *v, size_t n);
 
 _gsl_vector_view
 gsl_vector_view_array_with_stride (double *base,
                                          size_t stride,
                                          size_t n);
 
 _gsl_vector_const_view
 gsl_vector_const_view_array (const double *v, size_t n);
 
 _gsl_vector_const_view
 gsl_vector_const_view_array_with_stride (const double *base,
                                                size_t stride,
                                                size_t n);
 
 _gsl_vector_view
 gsl_vector_subvector (gsl_vector *v,
                             size_t i,
                             size_t n);
 
 _gsl_vector_view
 gsl_vector_subvector_with_stride (gsl_vector *v,
                                         size_t i,
                                         size_t stride,
                                         size_t n);
 
 _gsl_vector_const_view
 gsl_vector_const_subvector (const gsl_vector *v,
                                   size_t i,
                                   size_t n);
 
 _gsl_vector_const_view
 gsl_vector_const_subvector_with_stride (const gsl_vector *v,
                                               size_t i,
                                               size_t stride,
                                               size_t n);
 
 
 
 double gsl_vector_get (const gsl_vector * v, const size_t i);
 void gsl_vector_set (gsl_vector * v, const size_t i, double x);
 
 double *gsl_vector_ptr (gsl_vector * v, const size_t i);
 const double *gsl_vector_const_ptr (const gsl_vector * v, const size_t i);
 
 void gsl_vector_set_zero (gsl_vector * v);
 void gsl_vector_set_all (gsl_vector * v, double x);
 int gsl_vector_set_basis (gsl_vector * v, size_t i);
 
 int gsl_vector_fread (FILE * stream, gsl_vector * v);
 int gsl_vector_fwrite (FILE * stream, const gsl_vector * v);
 int gsl_vector_fscanf (FILE * stream, gsl_vector * v);
 int gsl_vector_fprintf (FILE * stream, const gsl_vector * v,
                               const char *format);
 
 int gsl_vector_memcpy (gsl_vector * dest, const gsl_vector * src);
 
 int gsl_vector_reverse (gsl_vector * v);
 
 int gsl_vector_swap (gsl_vector * v, gsl_vector * w);
 int gsl_vector_swap_elements (gsl_vector * v, const size_t i, const size_t j);
 
 double gsl_vector_max (const gsl_vector * v);
 double gsl_vector_min (const gsl_vector * v);
 void gsl_vector_minmax (const gsl_vector * v, double * min_out, double * max_out);
 
 size_t gsl_vector_max_index (const gsl_vector * v);
 size_t gsl_vector_min_index (const gsl_vector * v);
 void gsl_vector_minmax_index (const gsl_vector * v, size_t * imin, size_t * imax);
 
 int gsl_vector_add (gsl_vector * a, const gsl_vector * b);
 int gsl_vector_sub (gsl_vector * a, const gsl_vector * b);
 int gsl_vector_mul (gsl_vector * a, const gsl_vector * b);
 int gsl_vector_div (gsl_vector * a, const gsl_vector * b);
 int gsl_vector_scale (gsl_vector * a, const double x);
 int gsl_vector_add_constant (gsl_vector * a, const double x);
 
 int gsl_vector_isnull (const gsl_vector * v);
 
 extern int gsl_check_range;
 
 
 
 extern inline
 double
 gsl_vector_get (const gsl_vector * v, const size_t i)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_double.h", 175, GSL_EINVAL) ; return 0 ; } while (0);
     }
 
   return v->data[i * v->stride];
 }
 
 extern inline
 void
 gsl_vector_set (gsl_vector * v, const size_t i, double x)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_double.h", 188, GSL_EINVAL) ; return ; } while (0);
     }
 
   v->data[i * v->stride] = x;
 }
 
 extern inline
 double *
 gsl_vector_ptr (gsl_vector * v, const size_t i)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_double.h", 201, GSL_EINVAL) ; return 0 ; } while (0);
     }
 
   return (double *) (v->data + i * v->stride);
 }
 
 extern inline
 const double *
 gsl_vector_const_ptr (const gsl_vector * v, const size_t i)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_double.h", 214, GSL_EINVAL) ; return 0 ; } while (0);
     }
 
   return (const double *) (v->data + i * v->stride);
 }
 
 
 
 
 
 # 28 "../gsl/gsl_vector_complex_double.h" 2
 
 # 1 "../gsl/gsl_block_complex_double.h" 1
 # 36 "../gsl/gsl_block_complex_double.h"
 
 
 struct gsl_block_complex_struct
 {
   size_t size;
   double *data;
 };
 
 typedef struct gsl_block_complex_struct gsl_block_complex;
 
 gsl_block_complex *gsl_block_complex_alloc (const size_t n);
 gsl_block_complex *gsl_block_complex_calloc (const size_t n);
 void gsl_block_complex_free (gsl_block_complex * b);
 
 int gsl_block_complex_fread (FILE * stream, gsl_block_complex * b);
 int gsl_block_complex_fwrite (FILE * stream, const gsl_block_complex * b);
 int gsl_block_complex_fscanf (FILE * stream, gsl_block_complex * b);
 int gsl_block_complex_fprintf (FILE * stream, const gsl_block_complex * b, const char *format);
 
 int gsl_block_complex_raw_fread (FILE * stream, double * b, const size_t n, const size_t stride);
 int gsl_block_complex_raw_fwrite (FILE * stream, const double * b, const size_t n, const size_t stride);
 int gsl_block_complex_raw_fscanf (FILE * stream, double * b, const size_t n, const size_t stride);
 int gsl_block_complex_raw_fprintf (FILE * stream, const double * b, const size_t n, const size_t stride, const char *format);
 
 size_t gsl_block_complex_size (const gsl_block_complex * b);
 double * gsl_block_complex_data (const gsl_block_complex * b);
 
 
 # 30 "../gsl/gsl_vector_complex_double.h" 2
 # 41 "../gsl/gsl_vector_complex_double.h"
 
 
 typedef struct
 {
   size_t size;
   size_t stride;
   double *data;
   gsl_block_complex *block;
   int owner;
 } gsl_vector_complex;
 
 typedef struct
 {
   gsl_vector_complex vector;
 } _gsl_vector_complex_view;
 
 typedef _gsl_vector_complex_view gsl_vector_complex_view;
 
 typedef struct
 {
   gsl_vector_complex vector;
 } _gsl_vector_complex_const_view;
 
 typedef const _gsl_vector_complex_const_view gsl_vector_complex_const_view;
 
 
 
 gsl_vector_complex *gsl_vector_complex_alloc (const size_t n);
 gsl_vector_complex *gsl_vector_complex_calloc (const size_t n);
 
 gsl_vector_complex *
 gsl_vector_complex_alloc_from_block (gsl_block_complex * b,
                                            const size_t offset,
                                            const size_t n,
                                            const size_t stride);
 
 gsl_vector_complex *
 gsl_vector_complex_alloc_from_vector (gsl_vector_complex * v,
                                              const size_t offset,
                                              const size_t n,
                                              const size_t stride);
 
 void gsl_vector_complex_free (gsl_vector_complex * v);
 
 
 
 _gsl_vector_complex_view
 gsl_vector_complex_view_array (double *base,
                                      size_t n);
 
 _gsl_vector_complex_view
 gsl_vector_complex_view_array_with_stride (double *base,
                                                  size_t stride,
                                                  size_t n);
 
 _gsl_vector_complex_const_view
 gsl_vector_complex_const_view_array (const double *base,
                                            size_t n);
 
 _gsl_vector_complex_const_view
 gsl_vector_complex_const_view_array_with_stride (const double *base,
                                                        size_t stride,
                                                        size_t n);
 
 _gsl_vector_complex_view
 gsl_vector_complex_subvector (gsl_vector_complex *base,
                                          size_t i,
                                          size_t n);
 
 
 _gsl_vector_complex_view
 gsl_vector_complex_subvector_with_stride (gsl_vector_complex *v,
                                                 size_t i,
                                                 size_t stride,
                                                 size_t n);
 
 _gsl_vector_complex_const_view
 gsl_vector_complex_const_subvector (const gsl_vector_complex *base,
                                                size_t i,
                                                size_t n);
 
 
 _gsl_vector_complex_const_view
 gsl_vector_complex_const_subvector_with_stride (const gsl_vector_complex *v,
                                                       size_t i,
                                                       size_t stride,
                                                       size_t n);
 
 _gsl_vector_view
 gsl_vector_complex_real (gsl_vector_complex *v);
 
 _gsl_vector_view
 gsl_vector_complex_imag (gsl_vector_complex *v);
 
 _gsl_vector_const_view
 gsl_vector_complex_const_real (const gsl_vector_complex *v);
 
 _gsl_vector_const_view
 gsl_vector_complex_const_imag (const gsl_vector_complex *v);
 
 
 
 
 gsl_complex
 gsl_vector_complex_get (const gsl_vector_complex * v, const size_t i);
 
 void gsl_vector_complex_set (gsl_vector_complex * v, const size_t i,
                                    gsl_complex z);
 
 gsl_complex
 *gsl_vector_complex_ptr (gsl_vector_complex * v, const size_t i);
 
 const gsl_complex
 *gsl_vector_complex_const_ptr (const gsl_vector_complex * v, const size_t i);
 
 void gsl_vector_complex_set_zero (gsl_vector_complex * v);
 void gsl_vector_complex_set_all (gsl_vector_complex * v,
                                        gsl_complex z);
 int gsl_vector_complex_set_basis (gsl_vector_complex * v, size_t i);
 
 int gsl_vector_complex_fread (FILE * stream,
                                     gsl_vector_complex * v);
 int gsl_vector_complex_fwrite (FILE * stream,
                                      const gsl_vector_complex * v);
 int gsl_vector_complex_fscanf (FILE * stream,
                                      gsl_vector_complex * v);
 int gsl_vector_complex_fprintf (FILE * stream,
                                       const gsl_vector_complex * v,
                                       const char *format);
 
 int gsl_vector_complex_memcpy (gsl_vector_complex * dest, const gsl_vector_complex * src);
 
 int gsl_vector_complex_reverse (gsl_vector_complex * v);
 
 int gsl_vector_complex_swap (gsl_vector_complex * v, gsl_vector_complex * w);
 int gsl_vector_complex_swap_elements (gsl_vector_complex * v, const size_t i, const size_t j);
 
 int gsl_vector_complex_isnull (const gsl_vector_complex * v);
 
 extern int gsl_check_range;
 
 
 
 extern inline
 gsl_complex
 gsl_vector_complex_get (const gsl_vector_complex * v,
                               const size_t i)
 {
 
   if (i >= v->size)
     {
       const gsl_complex zero = {{0, 0}};
       do { gsl_error ("index out of range", "../gsl/gsl_vector_complex_double.h", 193, GSL_EINVAL) ; return zero ; } while (0);
     }
 
   return *((gsl_complex*)&((v)->data[2*(i)*(v)->stride]));
 }
 
 extern inline
 void
 gsl_vector_complex_set (gsl_vector_complex * v,
                               const size_t i, gsl_complex z)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_complex_double.h", 207, GSL_EINVAL) ; return ; } while (0);
     }
 
   *((gsl_complex*)&((v)->data[2*(i)*(v)->stride])) = z;
 }
 
 extern inline
 gsl_complex *
 gsl_vector_complex_ptr (gsl_vector_complex * v,
                               const size_t i)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_complex_double.h", 221, GSL_EINVAL) ; return 0 ; } while (0);
     }
 
   return ((gsl_complex*)&((v)->data[2*(i)*(v)->stride]));
 }
 
 extern inline
 const gsl_complex *
 gsl_vector_complex_const_ptr (const gsl_vector_complex * v,
                                     const size_t i)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_complex_double.h", 235, GSL_EINVAL) ; return 0 ; } while (0);
     }
 
   return ((gsl_complex*)&((v)->data[2*(i)*(v)->stride]));
 }
 
 
 
 
 
 # 6 "../gsl/gsl_vector.h" 2
 # 1 "../gsl/gsl_vector_complex_float.h" 1
 # 27 "../gsl/gsl_vector_complex_float.h"
 # 1 "../gsl/gsl_vector_float.h" 1
 # 26 "../gsl/gsl_vector_float.h"
 # 1 "../gsl/gsl_block_float.h" 1
 # 36 "../gsl/gsl_block_float.h"
 
 
 struct gsl_block_float_struct
 {
   size_t size;
   float *data;
 };
 
 typedef struct gsl_block_float_struct gsl_block_float;
 
 gsl_block_float *gsl_block_float_alloc (const size_t n);
 gsl_block_float *gsl_block_float_calloc (const size_t n);
 void gsl_block_float_free (gsl_block_float * b);
 
 int gsl_block_float_fread (FILE * stream, gsl_block_float * b);
 int gsl_block_float_fwrite (FILE * stream, const gsl_block_float * b);
 int gsl_block_float_fscanf (FILE * stream, gsl_block_float * b);
 int gsl_block_float_fprintf (FILE * stream, const gsl_block_float * b, const char *format);
 
 int gsl_block_float_raw_fread (FILE * stream, float * b, const size_t n, const size_t stride);
 int gsl_block_float_raw_fwrite (FILE * stream, const float * b, const size_t n, const size_t stride);
 int gsl_block_float_raw_fscanf (FILE * stream, float * b, const size_t n, const size_t stride);
 int gsl_block_float_raw_fprintf (FILE * stream, const float * b, const size_t n, const size_t stride, const char *format);
 
 size_t gsl_block_float_size (const gsl_block_float * b);
 float * gsl_block_float_data (const gsl_block_float * b);
 
 
 # 27 "../gsl/gsl_vector_float.h" 2
 # 38 "../gsl/gsl_vector_float.h"
 
 
 typedef struct
 {
   size_t size;
   size_t stride;
   float *data;
   gsl_block_float *block;
   int owner;
 }
 gsl_vector_float;
 
 typedef struct
 {
   gsl_vector_float vector;
 } _gsl_vector_float_view;
 
 typedef _gsl_vector_float_view gsl_vector_float_view;
 
 typedef struct
 {
   gsl_vector_float vector;
 } _gsl_vector_float_const_view;
 
 typedef const _gsl_vector_float_const_view gsl_vector_float_const_view;
 
 
 
 
 gsl_vector_float *gsl_vector_float_alloc (const size_t n);
 gsl_vector_float *gsl_vector_float_calloc (const size_t n);
 
 gsl_vector_float *gsl_vector_float_alloc_from_block (gsl_block_float * b,
                                                      const size_t offset,
                                                      const size_t n,
                                                      const size_t stride);
 
 gsl_vector_float *gsl_vector_float_alloc_from_vector (gsl_vector_float * v,
                                                       const size_t offset,
                                                       const size_t n,
                                                       const size_t stride);
 
 void gsl_vector_float_free (gsl_vector_float * v);
 
 
 
 _gsl_vector_float_view
 gsl_vector_float_view_array (float *v, size_t n);
 
 _gsl_vector_float_view
 gsl_vector_float_view_array_with_stride (float *base,
                                          size_t stride,
                                          size_t n);
 
 _gsl_vector_float_const_view
 gsl_vector_float_const_view_array (const float *v, size_t n);
 
 _gsl_vector_float_const_view
 gsl_vector_float_const_view_array_with_stride (const float *base,
                                                size_t stride,
                                                size_t n);
 
 _gsl_vector_float_view
 gsl_vector_float_subvector (gsl_vector_float *v,
                             size_t i,
                             size_t n);
 
 _gsl_vector_float_view
 gsl_vector_float_subvector_with_stride (gsl_vector_float *v,
                                         size_t i,
                                         size_t stride,
                                         size_t n);
 
 _gsl_vector_float_const_view
 gsl_vector_float_const_subvector (const gsl_vector_float *v,
                                   size_t i,
                                   size_t n);
 
 _gsl_vector_float_const_view
 gsl_vector_float_const_subvector_with_stride (const gsl_vector_float *v,
                                               size_t i,
                                               size_t stride,
                                               size_t n);
 
 
 
 float gsl_vector_float_get (const gsl_vector_float * v, const size_t i);
 void gsl_vector_float_set (gsl_vector_float * v, const size_t i, float x);
 
 float *gsl_vector_float_ptr (gsl_vector_float * v, const size_t i);
 const float *gsl_vector_float_const_ptr (const gsl_vector_float * v, const size_t i);
 
 void gsl_vector_float_set_zero (gsl_vector_float * v);
 void gsl_vector_float_set_all (gsl_vector_float * v, float x);
 int gsl_vector_float_set_basis (gsl_vector_float * v, size_t i);
 
 int gsl_vector_float_fread (FILE * stream, gsl_vector_float * v);
 int gsl_vector_float_fwrite (FILE * stream, const gsl_vector_float * v);
 int gsl_vector_float_fscanf (FILE * stream, gsl_vector_float * v);
 int gsl_vector_float_fprintf (FILE * stream, const gsl_vector_float * v,
                               const char *format);
 
 int gsl_vector_float_memcpy (gsl_vector_float * dest, const gsl_vector_float * src);
 
 int gsl_vector_float_reverse (gsl_vector_float * v);
 
 int gsl_vector_float_swap (gsl_vector_float * v, gsl_vector_float * w);
 int gsl_vector_float_swap_elements (gsl_vector_float * v, const size_t i, const size_t j);
 
 float gsl_vector_float_max (const gsl_vector_float * v);
 float gsl_vector_float_min (const gsl_vector_float * v);
 void gsl_vector_float_minmax (const gsl_vector_float * v, float * min_out, float * max_out);
 
 size_t gsl_vector_float_max_index (const gsl_vector_float * v);
 size_t gsl_vector_float_min_index (const gsl_vector_float * v);
 void gsl_vector_float_minmax_index (const gsl_vector_float * v, size_t * imin, size_t * imax);
 
 int gsl_vector_float_add (gsl_vector_float * a, const gsl_vector_float * b);
 int gsl_vector_float_sub (gsl_vector_float * a, const gsl_vector_float * b);
 int gsl_vector_float_mul (gsl_vector_float * a, const gsl_vector_float * b);
 int gsl_vector_float_div (gsl_vector_float * a, const gsl_vector_float * b);
 int gsl_vector_float_scale (gsl_vector_float * a, const double x);
 int gsl_vector_float_add_constant (gsl_vector_float * a, const double x);
 
 int gsl_vector_float_isnull (const gsl_vector_float * v);
 
 extern int gsl_check_range;
 
 
 
 extern inline
 float
 gsl_vector_float_get (const gsl_vector_float * v, const size_t i)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_float.h", 175, GSL_EINVAL) ; return 0 ; } while (0);
     }
 
   return v->data[i * v->stride];
 }
 
 extern inline
 void
 gsl_vector_float_set (gsl_vector_float * v, const size_t i, float x)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_float.h", 188, GSL_EINVAL) ; return ; } while (0);
     }
 
   v->data[i * v->stride] = x;
 }
 
 extern inline
 float *
 gsl_vector_float_ptr (gsl_vector_float * v, const size_t i)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_float.h", 201, GSL_EINVAL) ; return 0 ; } while (0);
     }
 
   return (float *) (v->data + i * v->stride);
 }
 
 extern inline
 const float *
 gsl_vector_float_const_ptr (const gsl_vector_float * v, const size_t i)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_float.h", 214, GSL_EINVAL) ; return 0 ; } while (0);
     }
 
   return (const float *) (v->data + i * v->stride);
 }
 
 
 
 
 
 # 28 "../gsl/gsl_vector_complex_float.h" 2
 
 # 1 "../gsl/gsl_block_complex_float.h" 1
 # 36 "../gsl/gsl_block_complex_float.h"
 
 
 struct gsl_block_complex_float_struct
 {
   size_t size;
   float *data;
 };
 
 typedef struct gsl_block_complex_float_struct gsl_block_complex_float;
 
 gsl_block_complex_float *gsl_block_complex_float_alloc (const size_t n);
 gsl_block_complex_float *gsl_block_complex_float_calloc (const size_t n);
 void gsl_block_complex_float_free (gsl_block_complex_float * b);
 
 int gsl_block_complex_float_fread (FILE * stream, gsl_block_complex_float * b);
 int gsl_block_complex_float_fwrite (FILE * stream, const gsl_block_complex_float * b);
 int gsl_block_complex_float_fscanf (FILE * stream, gsl_block_complex_float * b);
 int gsl_block_complex_float_fprintf (FILE * stream, const gsl_block_complex_float * b, const char *format);
 
 int gsl_block_complex_float_raw_fread (FILE * stream, float * b, const size_t n, const size_t stride);
 int gsl_block_complex_float_raw_fwrite (FILE * stream, const float * b, const size_t n, const size_t stride);
 int gsl_block_complex_float_raw_fscanf (FILE * stream, float * b, const size_t n, const size_t stride);
 int gsl_block_complex_float_raw_fprintf (FILE * stream, const float * b, const size_t n, const size_t stride, const char *format);
 
 size_t gsl_block_complex_float_size (const gsl_block_complex_float * b);
 float * gsl_block_complex_float_data (const gsl_block_complex_float * b);
 
 
 # 30 "../gsl/gsl_vector_complex_float.h" 2
 # 41 "../gsl/gsl_vector_complex_float.h"
 
 
 typedef struct
 {
   size_t size;
   size_t stride;
   float *data;
   gsl_block_complex_float *block;
   int owner;
 } gsl_vector_complex_float;
 
 typedef struct
 {
   gsl_vector_complex_float vector;
 } _gsl_vector_complex_float_view;
 
 typedef _gsl_vector_complex_float_view gsl_vector_complex_float_view;
 
 typedef struct
 {
   gsl_vector_complex_float vector;
 } _gsl_vector_complex_float_const_view;
 
 typedef const _gsl_vector_complex_float_const_view gsl_vector_complex_float_const_view;
 
 
 
 gsl_vector_complex_float *gsl_vector_complex_float_alloc (const size_t n);
 gsl_vector_complex_float *gsl_vector_complex_float_calloc (const size_t n);
 
 gsl_vector_complex_float *
 gsl_vector_complex_float_alloc_from_block (gsl_block_complex_float * b,
                                            const size_t offset,
                                            const size_t n,
                                            const size_t stride);
 
 gsl_vector_complex_float *
 gsl_vector_complex_float_alloc_from_vector (gsl_vector_complex_float * v,
                                              const size_t offset,
                                              const size_t n,
                                              const size_t stride);
 
 void gsl_vector_complex_float_free (gsl_vector_complex_float * v);
 
 
 
 _gsl_vector_complex_float_view
 gsl_vector_complex_float_view_array (float *base,
                                      size_t n);
 
 _gsl_vector_complex_float_view
 gsl_vector_complex_float_view_array_with_stride (float *base,
                                                  size_t stride,
                                                  size_t n);
 
 _gsl_vector_complex_float_const_view
 gsl_vector_complex_float_const_view_array (const float *base,
                                            size_t n);
 
 _gsl_vector_complex_float_const_view
 gsl_vector_complex_float_const_view_array_with_stride (const float *base,
                                                        size_t stride,
                                                        size_t n);
 
 _gsl_vector_complex_float_view
 gsl_vector_complex_float_subvector (gsl_vector_complex_float *base,
                                          size_t i,
                                          size_t n);
 
 
 _gsl_vector_complex_float_view
 gsl_vector_complex_float_subvector_with_stride (gsl_vector_complex_float *v,
                                                 size_t i,
                                                 size_t stride,
                                                 size_t n);
 
 _gsl_vector_complex_float_const_view
 gsl_vector_complex_float_const_subvector (const gsl_vector_complex_float *base,
                                                size_t i,
                                                size_t n);
 
 
 _gsl_vector_complex_float_const_view
 gsl_vector_complex_float_const_subvector_with_stride (const gsl_vector_complex_float *v,
                                                       size_t i,
                                                       size_t stride,
                                                       size_t n);
 
 _gsl_vector_float_view
 gsl_vector_complex_float_real (gsl_vector_complex_float *v);
 
 _gsl_vector_float_view
 gsl_vector_complex_float_imag (gsl_vector_complex_float *v);
 
 _gsl_vector_float_const_view
 gsl_vector_complex_float_const_real (const gsl_vector_complex_float *v);
 
 _gsl_vector_float_const_view
 gsl_vector_complex_float_const_imag (const gsl_vector_complex_float *v);
 
 
 
 
 gsl_complex_float
 gsl_vector_complex_float_get (const gsl_vector_complex_float * v, const size_t i);
 
 void gsl_vector_complex_float_set (gsl_vector_complex_float * v, const size_t i,
                                    gsl_complex_float z);
 
 gsl_complex_float
 *gsl_vector_complex_float_ptr (gsl_vector_complex_float * v, const size_t i);
 
 const gsl_complex_float
 *gsl_vector_complex_float_const_ptr (const gsl_vector_complex_float * v, const size_t i);
 
 void gsl_vector_complex_float_set_zero (gsl_vector_complex_float * v);
 void gsl_vector_complex_float_set_all (gsl_vector_complex_float * v,
                                        gsl_complex_float z);
 int gsl_vector_complex_float_set_basis (gsl_vector_complex_float * v, size_t i);
 
 int gsl_vector_complex_float_fread (FILE * stream,
                                     gsl_vector_complex_float * v);
 int gsl_vector_complex_float_fwrite (FILE * stream,
                                      const gsl_vector_complex_float * v);
 int gsl_vector_complex_float_fscanf (FILE * stream,
                                      gsl_vector_complex_float * v);
 int gsl_vector_complex_float_fprintf (FILE * stream,
                                       const gsl_vector_complex_float * v,
                                       const char *format);
 
 int gsl_vector_complex_float_memcpy (gsl_vector_complex_float * dest, const gsl_vector_complex_float * src);
 
 int gsl_vector_complex_float_reverse (gsl_vector_complex_float * v);
 
 int gsl_vector_complex_float_swap (gsl_vector_complex_float * v, gsl_vector_complex_float * w);
 int gsl_vector_complex_float_swap_elements (gsl_vector_complex_float * v, const size_t i, const size_t j);
 
 int gsl_vector_complex_float_isnull (const gsl_vector_complex_float * v);
 
 extern int gsl_check_range;
 
 
 
 extern inline
 gsl_complex_float
 gsl_vector_complex_float_get (const gsl_vector_complex_float * v,
                               const size_t i)
 {
 
   if (i >= v->size)
     {
       const gsl_complex_float zero = {{0, 0}};
       do { gsl_error ("index out of range", "../gsl/gsl_vector_complex_float.h", 193, GSL_EINVAL) ; return zero ; } while (0);
     }
 
   return *((gsl_complex_float*)&((v)->data[2*(i)*(v)->stride]));
 }
 
 extern inline
 void
 gsl_vector_complex_float_set (gsl_vector_complex_float * v,
                               const size_t i, gsl_complex_float z)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_complex_float.h", 207, GSL_EINVAL) ; return ; } while (0);
     }
 
   *((gsl_complex_float*)&((v)->data[2*(i)*(v)->stride])) = z;
 }
 
 extern inline
 gsl_complex_float *
 gsl_vector_complex_float_ptr (gsl_vector_complex_float * v,
                               const size_t i)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_complex_float.h", 221, GSL_EINVAL) ; return 0 ; } while (0);
     }
 
   return ((gsl_complex_float*)&((v)->data[2*(i)*(v)->stride]));
 }
 
 extern inline
 const gsl_complex_float *
 gsl_vector_complex_float_const_ptr (const gsl_vector_complex_float * v,
                                     const size_t i)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_complex_float.h", 235, GSL_EINVAL) ; return 0 ; } while (0);
     }
 
   return ((gsl_complex_float*)&((v)->data[2*(i)*(v)->stride]));
 }
 
 
 
 
 
 # 7 "../gsl/gsl_vector.h" 2
 
 
 
 
 
 # 1 "../gsl/gsl_vector_ulong.h" 1
 # 26 "../gsl/gsl_vector_ulong.h"
 # 1 "../gsl/gsl_block_ulong.h" 1
 # 36 "../gsl/gsl_block_ulong.h"
 
 
 struct gsl_block_ulong_struct
 {
   size_t size;
   unsigned long *data;
 };
 
 typedef struct gsl_block_ulong_struct gsl_block_ulong;
 
 gsl_block_ulong *gsl_block_ulong_alloc (const size_t n);
 gsl_block_ulong *gsl_block_ulong_calloc (const size_t n);
 void gsl_block_ulong_free (gsl_block_ulong * b);
 
 int gsl_block_ulong_fread (FILE * stream, gsl_block_ulong * b);
 int gsl_block_ulong_fwrite (FILE * stream, const gsl_block_ulong * b);
 int gsl_block_ulong_fscanf (FILE * stream, gsl_block_ulong * b);
 int gsl_block_ulong_fprintf (FILE * stream, const gsl_block_ulong * b, const char *format);
 
 int gsl_block_ulong_raw_fread (FILE * stream, unsigned long * b, const size_t n, const size_t stride);
 int gsl_block_ulong_raw_fwrite (FILE * stream, const unsigned long * b, const size_t n, const size_t stride);
 int gsl_block_ulong_raw_fscanf (FILE * stream, unsigned long * b, const size_t n, const size_t stride);
 int gsl_block_ulong_raw_fprintf (FILE * stream, const unsigned long * b, const size_t n, const size_t stride, const char *format);
 
 size_t gsl_block_ulong_size (const gsl_block_ulong * b);
 unsigned long * gsl_block_ulong_data (const gsl_block_ulong * b);
 
 
 # 27 "../gsl/gsl_vector_ulong.h" 2
 # 38 "../gsl/gsl_vector_ulong.h"
 
 
 typedef struct
 {
   size_t size;
   size_t stride;
   unsigned long *data;
   gsl_block_ulong *block;
   int owner;
 }
 gsl_vector_ulong;
 
 typedef struct
 {
   gsl_vector_ulong vector;
 } _gsl_vector_ulong_view;
 
 typedef _gsl_vector_ulong_view gsl_vector_ulong_view;
 
 typedef struct
 {
   gsl_vector_ulong vector;
 } _gsl_vector_ulong_const_view;
 
 typedef const _gsl_vector_ulong_const_view gsl_vector_ulong_const_view;
 
 
 
 
 gsl_vector_ulong *gsl_vector_ulong_alloc (const size_t n);
 gsl_vector_ulong *gsl_vector_ulong_calloc (const size_t n);
 
 gsl_vector_ulong *gsl_vector_ulong_alloc_from_block (gsl_block_ulong * b,
                                                      const size_t offset,
                                                      const size_t n,
                                                      const size_t stride);
 
 gsl_vector_ulong *gsl_vector_ulong_alloc_from_vector (gsl_vector_ulong * v,
                                                       const size_t offset,
                                                       const size_t n,
                                                       const size_t stride);
 
 void gsl_vector_ulong_free (gsl_vector_ulong * v);
 
 
 
 _gsl_vector_ulong_view
 gsl_vector_ulong_view_array (unsigned long *v, size_t n);
 
 _gsl_vector_ulong_view
 gsl_vector_ulong_view_array_with_stride (unsigned long *base,
                                          size_t stride,
                                          size_t n);
 
 _gsl_vector_ulong_const_view
 gsl_vector_ulong_const_view_array (const unsigned long *v, size_t n);
 
 _gsl_vector_ulong_const_view
 gsl_vector_ulong_const_view_array_with_stride (const unsigned long *base,
                                                size_t stride,
                                                size_t n);
 
 _gsl_vector_ulong_view
 gsl_vector_ulong_subvector (gsl_vector_ulong *v,
                             size_t i,
                             size_t n);
 
 _gsl_vector_ulong_view
 gsl_vector_ulong_subvector_with_stride (gsl_vector_ulong *v,
                                         size_t i,
                                         size_t stride,
                                         size_t n);
 
 _gsl_vector_ulong_const_view
 gsl_vector_ulong_const_subvector (const gsl_vector_ulong *v,
                                   size_t i,
                                   size_t n);
 
 _gsl_vector_ulong_const_view
 gsl_vector_ulong_const_subvector_with_stride (const gsl_vector_ulong *v,
                                               size_t i,
                                               size_t stride,
                                               size_t n);
 
 
 
 unsigned long gsl_vector_ulong_get (const gsl_vector_ulong * v, const size_t i);
 void gsl_vector_ulong_set (gsl_vector_ulong * v, const size_t i, unsigned long x);
 
 unsigned long *gsl_vector_ulong_ptr (gsl_vector_ulong * v, const size_t i);
 const unsigned long *gsl_vector_ulong_const_ptr (const gsl_vector_ulong * v, const size_t i);
 
 void gsl_vector_ulong_set_zero (gsl_vector_ulong * v);
 void gsl_vector_ulong_set_all (gsl_vector_ulong * v, unsigned long x);
 int gsl_vector_ulong_set_basis (gsl_vector_ulong * v, size_t i);
 
 int gsl_vector_ulong_fread (FILE * stream, gsl_vector_ulong * v);
 int gsl_vector_ulong_fwrite (FILE * stream, const gsl_vector_ulong * v);
 int gsl_vector_ulong_fscanf (FILE * stream, gsl_vector_ulong * v);
 int gsl_vector_ulong_fprintf (FILE * stream, const gsl_vector_ulong * v,
                               const char *format);
 
 int gsl_vector_ulong_memcpy (gsl_vector_ulong * dest, const gsl_vector_ulong * src);
 
 int gsl_vector_ulong_reverse (gsl_vector_ulong * v);
 
 int gsl_vector_ulong_swap (gsl_vector_ulong * v, gsl_vector_ulong * w);
 int gsl_vector_ulong_swap_elements (gsl_vector_ulong * v, const size_t i, const size_t j);
 
 unsigned long gsl_vector_ulong_max (const gsl_vector_ulong * v);
 unsigned long gsl_vector_ulong_min (const gsl_vector_ulong * v);
 void gsl_vector_ulong_minmax (const gsl_vector_ulong * v, unsigned long * min_out, unsigned long * max_out);
 
 size_t gsl_vector_ulong_max_index (const gsl_vector_ulong * v);
 size_t gsl_vector_ulong_min_index (const gsl_vector_ulong * v);
 void gsl_vector_ulong_minmax_index (const gsl_vector_ulong * v, size_t * imin, size_t * imax);
 
 int gsl_vector_ulong_add (gsl_vector_ulong * a, const gsl_vector_ulong * b);
 int gsl_vector_ulong_sub (gsl_vector_ulong * a, const gsl_vector_ulong * b);
 int gsl_vector_ulong_mul (gsl_vector_ulong * a, const gsl_vector_ulong * b);
 int gsl_vector_ulong_div (gsl_vector_ulong * a, const gsl_vector_ulong * b);
 int gsl_vector_ulong_scale (gsl_vector_ulong * a, const double x);
 int gsl_vector_ulong_add_constant (gsl_vector_ulong * a, const double x);
 
 int gsl_vector_ulong_isnull (const gsl_vector_ulong * v);
 
 extern int gsl_check_range;
 
 
 
 extern inline
 unsigned long
 gsl_vector_ulong_get (const gsl_vector_ulong * v, const size_t i)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_ulong.h", 175, GSL_EINVAL) ; return 0 ; } while (0);
     }
 
   return v->data[i * v->stride];
 }
 
 extern inline
 void
 gsl_vector_ulong_set (gsl_vector_ulong * v, const size_t i, unsigned long x)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_ulong.h", 188, GSL_EINVAL) ; return ; } while (0);
     }
 
   v->data[i * v->stride] = x;
 }
 
 extern inline
 unsigned long *
 gsl_vector_ulong_ptr (gsl_vector_ulong * v, const size_t i)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_ulong.h", 201, GSL_EINVAL) ; return 0 ; } while (0);
     }
 
   return (unsigned long *) (v->data + i * v->stride);
 }
 
 extern inline
 const unsigned long *
 gsl_vector_ulong_const_ptr (const gsl_vector_ulong * v, const size_t i)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_ulong.h", 214, GSL_EINVAL) ; return 0 ; } while (0);
     }
 
   return (const unsigned long *) (v->data + i * v->stride);
 }
 
 
 
 
 
 # 13 "../gsl/gsl_vector.h" 2
 # 1 "../gsl/gsl_vector_long.h" 1
 # 26 "../gsl/gsl_vector_long.h"
 # 1 "../gsl/gsl_block_long.h" 1
 # 36 "../gsl/gsl_block_long.h"
 
 
 struct gsl_block_long_struct
 {
   size_t size;
   long *data;
 };
 
 typedef struct gsl_block_long_struct gsl_block_long;
 
 gsl_block_long *gsl_block_long_alloc (const size_t n);
 gsl_block_long *gsl_block_long_calloc (const size_t n);
 void gsl_block_long_free (gsl_block_long * b);
 
 int gsl_block_long_fread (FILE * stream, gsl_block_long * b);
 int gsl_block_long_fwrite (FILE * stream, const gsl_block_long * b);
 int gsl_block_long_fscanf (FILE * stream, gsl_block_long * b);
 int gsl_block_long_fprintf (FILE * stream, const gsl_block_long * b, const char *format);
 
 int gsl_block_long_raw_fread (FILE * stream, long * b, const size_t n, const size_t stride);
 int gsl_block_long_raw_fwrite (FILE * stream, const long * b, const size_t n, const size_t stride);
 int gsl_block_long_raw_fscanf (FILE * stream, long * b, const size_t n, const size_t stride);
 int gsl_block_long_raw_fprintf (FILE * stream, const long * b, const size_t n, const size_t stride, const char *format);
 
 size_t gsl_block_long_size (const gsl_block_long * b);
 long * gsl_block_long_data (const gsl_block_long * b);
 
 
 # 27 "../gsl/gsl_vector_long.h" 2
 # 38 "../gsl/gsl_vector_long.h"
 
 
 typedef struct
 {
   size_t size;
   size_t stride;
   long *data;
   gsl_block_long *block;
   int owner;
 }
 gsl_vector_long;
 
 typedef struct
 {
   gsl_vector_long vector;
 } _gsl_vector_long_view;
 
 typedef _gsl_vector_long_view gsl_vector_long_view;
 
 typedef struct
 {
   gsl_vector_long vector;
 } _gsl_vector_long_const_view;
 
 typedef const _gsl_vector_long_const_view gsl_vector_long_const_view;
 
 
 
 
 gsl_vector_long *gsl_vector_long_alloc (const size_t n);
 gsl_vector_long *gsl_vector_long_calloc (const size_t n);
 
 gsl_vector_long *gsl_vector_long_alloc_from_block (gsl_block_long * b,
                                                      const size_t offset,
                                                      const size_t n,
                                                      const size_t stride);
 
 gsl_vector_long *gsl_vector_long_alloc_from_vector (gsl_vector_long * v,
                                                       const size_t offset,
                                                       const size_t n,
                                                       const size_t stride);
 
 void gsl_vector_long_free (gsl_vector_long * v);
 
 
 
 _gsl_vector_long_view
 gsl_vector_long_view_array (long *v, size_t n);
 
 _gsl_vector_long_view
 gsl_vector_long_view_array_with_stride (long *base,
                                          size_t stride,
                                          size_t n);
 
 _gsl_vector_long_const_view
 gsl_vector_long_const_view_array (const long *v, size_t n);
 
 _gsl_vector_long_const_view
 gsl_vector_long_const_view_array_with_stride (const long *base,
                                                size_t stride,
                                                size_t n);
 
 _gsl_vector_long_view
 gsl_vector_long_subvector (gsl_vector_long *v,
                             size_t i,
                             size_t n);
 
 _gsl_vector_long_view
 gsl_vector_long_subvector_with_stride (gsl_vector_long *v,
                                         size_t i,
                                         size_t stride,
                                         size_t n);
 
 _gsl_vector_long_const_view
 gsl_vector_long_const_subvector (const gsl_vector_long *v,
                                   size_t i,
                                   size_t n);
 
 _gsl_vector_long_const_view
 gsl_vector_long_const_subvector_with_stride (const gsl_vector_long *v,
                                               size_t i,
                                               size_t stride,
                                               size_t n);
 
 
 
 long gsl_vector_long_get (const gsl_vector_long * v, const size_t i);
 void gsl_vector_long_set (gsl_vector_long * v, const size_t i, long x);
 
 long *gsl_vector_long_ptr (gsl_vector_long * v, const size_t i);
 const long *gsl_vector_long_const_ptr (const gsl_vector_long * v, const size_t i);
 
 void gsl_vector_long_set_zero (gsl_vector_long * v);
 void gsl_vector_long_set_all (gsl_vector_long * v, long x);
 int gsl_vector_long_set_basis (gsl_vector_long * v, size_t i);
 
 int gsl_vector_long_fread (FILE * stream, gsl_vector_long * v);
 int gsl_vector_long_fwrite (FILE * stream, const gsl_vector_long * v);
 int gsl_vector_long_fscanf (FILE * stream, gsl_vector_long * v);
 int gsl_vector_long_fprintf (FILE * stream, const gsl_vector_long * v,
                               const char *format);
 
 int gsl_vector_long_memcpy (gsl_vector_long * dest, const gsl_vector_long * src);
 
 int gsl_vector_long_reverse (gsl_vector_long * v);
 
 int gsl_vector_long_swap (gsl_vector_long * v, gsl_vector_long * w);
 int gsl_vector_long_swap_elements (gsl_vector_long * v, const size_t i, const size_t j);
 
 long gsl_vector_long_max (const gsl_vector_long * v);
 long gsl_vector_long_min (const gsl_vector_long * v);
 void gsl_vector_long_minmax (const gsl_vector_long * v, long * min_out, long * max_out);
 
 size_t gsl_vector_long_max_index (const gsl_vector_long * v);
 size_t gsl_vector_long_min_index (const gsl_vector_long * v);
 void gsl_vector_long_minmax_index (const gsl_vector_long * v, size_t * imin, size_t * imax);
 
 int gsl_vector_long_add (gsl_vector_long * a, const gsl_vector_long * b);
 int gsl_vector_long_sub (gsl_vector_long * a, const gsl_vector_long * b);
 int gsl_vector_long_mul (gsl_vector_long * a, const gsl_vector_long * b);
 int gsl_vector_long_div (gsl_vector_long * a, const gsl_vector_long * b);
 int gsl_vector_long_scale (gsl_vector_long * a, const double x);
 int gsl_vector_long_add_constant (gsl_vector_long * a, const double x);
 
 int gsl_vector_long_isnull (const gsl_vector_long * v);
 
 extern int gsl_check_range;
 
 
 
 extern inline
 long
 gsl_vector_long_get (const gsl_vector_long * v, const size_t i)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_long.h", 175, GSL_EINVAL) ; return 0 ; } while (0);
     }
 
   return v->data[i * v->stride];
 }
 
 extern inline
 void
 gsl_vector_long_set (gsl_vector_long * v, const size_t i, long x)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_long.h", 188, GSL_EINVAL) ; return ; } while (0);
     }
 
   v->data[i * v->stride] = x;
 }
 
 extern inline
 long *
 gsl_vector_long_ptr (gsl_vector_long * v, const size_t i)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_long.h", 201, GSL_EINVAL) ; return 0 ; } while (0);
     }
 
   return (long *) (v->data + i * v->stride);
 }
 
 extern inline
 const long *
 gsl_vector_long_const_ptr (const gsl_vector_long * v, const size_t i)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_long.h", 214, GSL_EINVAL) ; return 0 ; } while (0);
     }
 
   return (const long *) (v->data + i * v->stride);
 }
 
 
 
 
 
 # 14 "../gsl/gsl_vector.h" 2
 
 # 1 "../gsl/gsl_vector_uint.h" 1
 # 26 "../gsl/gsl_vector_uint.h"
 # 1 "../gsl/gsl_block_uint.h" 1
 # 36 "../gsl/gsl_block_uint.h"
 
 
 struct gsl_block_uint_struct
 {
   size_t size;
   unsigned int *data;
 };
 
 typedef struct gsl_block_uint_struct gsl_block_uint;
 
 gsl_block_uint *gsl_block_uint_alloc (const size_t n);
 gsl_block_uint *gsl_block_uint_calloc (const size_t n);
 void gsl_block_uint_free (gsl_block_uint * b);
 
 int gsl_block_uint_fread (FILE * stream, gsl_block_uint * b);
 int gsl_block_uint_fwrite (FILE * stream, const gsl_block_uint * b);
 int gsl_block_uint_fscanf (FILE * stream, gsl_block_uint * b);
 int gsl_block_uint_fprintf (FILE * stream, const gsl_block_uint * b, const char *format);
 
 int gsl_block_uint_raw_fread (FILE * stream, unsigned int * b, const size_t n, const size_t stride);
 int gsl_block_uint_raw_fwrite (FILE * stream, const unsigned int * b, const size_t n, const size_t stride);
 int gsl_block_uint_raw_fscanf (FILE * stream, unsigned int * b, const size_t n, const size_t stride);
 int gsl_block_uint_raw_fprintf (FILE * stream, const unsigned int * b, const size_t n, const size_t stride, const char *format);
 
 size_t gsl_block_uint_size (const gsl_block_uint * b);
 unsigned int * gsl_block_uint_data (const gsl_block_uint * b);
 
 
 # 27 "../gsl/gsl_vector_uint.h" 2
 # 38 "../gsl/gsl_vector_uint.h"
 
 
 typedef struct
 {
   size_t size;
   size_t stride;
   unsigned int *data;
   gsl_block_uint *block;
   int owner;
 }
 gsl_vector_uint;
 
 typedef struct
 {
   gsl_vector_uint vector;
 } _gsl_vector_uint_view;
 
 typedef _gsl_vector_uint_view gsl_vector_uint_view;
 
 typedef struct
 {
   gsl_vector_uint vector;
 } _gsl_vector_uint_const_view;
 
 typedef const _gsl_vector_uint_const_view gsl_vector_uint_const_view;
 
 
 
 
 gsl_vector_uint *gsl_vector_uint_alloc (const size_t n);
 gsl_vector_uint *gsl_vector_uint_calloc (const size_t n);
 
 gsl_vector_uint *gsl_vector_uint_alloc_from_block (gsl_block_uint * b,
                                                      const size_t offset,
                                                      const size_t n,
                                                      const size_t stride);
 
 gsl_vector_uint *gsl_vector_uint_alloc_from_vector (gsl_vector_uint * v,
                                                       const size_t offset,
                                                       const size_t n,
                                                       const size_t stride);
 
 void gsl_vector_uint_free (gsl_vector_uint * v);
 
 
 
 _gsl_vector_uint_view
 gsl_vector_uint_view_array (unsigned int *v, size_t n);
 
 _gsl_vector_uint_view
 gsl_vector_uint_view_array_with_stride (unsigned int *base,
                                          size_t stride,
                                          size_t n);
 
 _gsl_vector_uint_const_view
 gsl_vector_uint_const_view_array (const unsigned int *v, size_t n);
 
 _gsl_vector_uint_const_view
 gsl_vector_uint_const_view_array_with_stride (const unsigned int *base,
                                                size_t stride,
                                                size_t n);
 
 _gsl_vector_uint_view
 gsl_vector_uint_subvector (gsl_vector_uint *v,
                             size_t i,
                             size_t n);
 
 _gsl_vector_uint_view
 gsl_vector_uint_subvector_with_stride (gsl_vector_uint *v,
                                         size_t i,
                                         size_t stride,
                                         size_t n);
 
 _gsl_vector_uint_const_view
 gsl_vector_uint_const_subvector (const gsl_vector_uint *v,
                                   size_t i,
                                   size_t n);
 
 _gsl_vector_uint_const_view
 gsl_vector_uint_const_subvector_with_stride (const gsl_vector_uint *v,
                                               size_t i,
                                               size_t stride,
                                               size_t n);
 
 
 
 unsigned int gsl_vector_uint_get (const gsl_vector_uint * v, const size_t i);
 void gsl_vector_uint_set (gsl_vector_uint * v, const size_t i, unsigned int x);
 
 unsigned int *gsl_vector_uint_ptr (gsl_vector_uint * v, const size_t i);
 const unsigned int *gsl_vector_uint_const_ptr (const gsl_vector_uint * v, const size_t i);
 
 void gsl_vector_uint_set_zero (gsl_vector_uint * v);
 void gsl_vector_uint_set_all (gsl_vector_uint * v, unsigned int x);
 int gsl_vector_uint_set_basis (gsl_vector_uint * v, size_t i);
 
 int gsl_vector_uint_fread (FILE * stream, gsl_vector_uint * v);
 int gsl_vector_uint_fwrite (FILE * stream, const gsl_vector_uint * v);
 int gsl_vector_uint_fscanf (FILE * stream, gsl_vector_uint * v);
 int gsl_vector_uint_fprintf (FILE * stream, const gsl_vector_uint * v,
                               const char *format);
 
 int gsl_vector_uint_memcpy (gsl_vector_uint * dest, const gsl_vector_uint * src);
 
 int gsl_vector_uint_reverse (gsl_vector_uint * v);
 
 int gsl_vector_uint_swap (gsl_vector_uint * v, gsl_vector_uint * w);
 int gsl_vector_uint_swap_elements (gsl_vector_uint * v, const size_t i, const size_t j);
 
 unsigned int gsl_vector_uint_max (const gsl_vector_uint * v);
 unsigned int gsl_vector_uint_min (const gsl_vector_uint * v);
 void gsl_vector_uint_minmax (const gsl_vector_uint * v, unsigned int * min_out, unsigned int * max_out);
 
 size_t gsl_vector_uint_max_index (const gsl_vector_uint * v);
 size_t gsl_vector_uint_min_index (const gsl_vector_uint * v);
 void gsl_vector_uint_minmax_index (const gsl_vector_uint * v, size_t * imin, size_t * imax);
 
 int gsl_vector_uint_add (gsl_vector_uint * a, const gsl_vector_uint * b);
 int gsl_vector_uint_sub (gsl_vector_uint * a, const gsl_vector_uint * b);
 int gsl_vector_uint_mul (gsl_vector_uint * a, const gsl_vector_uint * b);
 int gsl_vector_uint_div (gsl_vector_uint * a, const gsl_vector_uint * b);
 int gsl_vector_uint_scale (gsl_vector_uint * a, const double x);
 int gsl_vector_uint_add_constant (gsl_vector_uint * a, const double x);
 
 int gsl_vector_uint_isnull (const gsl_vector_uint * v);
 
 extern int gsl_check_range;
 
 
 
 extern inline
 unsigned int
 gsl_vector_uint_get (const gsl_vector_uint * v, const size_t i)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_uint.h", 175, GSL_EINVAL) ; return 0 ; } while (0);
     }
 
   return v->data[i * v->stride];
 }
 
 extern inline
 void
 gsl_vector_uint_set (gsl_vector_uint * v, const size_t i, unsigned int x)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_uint.h", 188, GSL_EINVAL) ; return ; } while (0);
     }
 
   v->data[i * v->stride] = x;
 }
 
 extern inline
 unsigned int *
 gsl_vector_uint_ptr (gsl_vector_uint * v, const size_t i)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_uint.h", 201, GSL_EINVAL) ; return 0 ; } while (0);
     }
 
   return (unsigned int *) (v->data + i * v->stride);
 }
 
 extern inline
 const unsigned int *
 gsl_vector_uint_const_ptr (const gsl_vector_uint * v, const size_t i)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_uint.h", 214, GSL_EINVAL) ; return 0 ; } while (0);
     }
 
   return (const unsigned int *) (v->data + i * v->stride);
 }
 
 
 
 
 
 # 16 "../gsl/gsl_vector.h" 2
 # 1 "../gsl/gsl_vector_int.h" 1
 # 26 "../gsl/gsl_vector_int.h"
 # 1 "../gsl/gsl_block_int.h" 1
 # 36 "../gsl/gsl_block_int.h"
 
 
 struct gsl_block_int_struct
 {
   size_t size;
   int *data;
 };
 
 typedef struct gsl_block_int_struct gsl_block_int;
 
 gsl_block_int *gsl_block_int_alloc (const size_t n);
 gsl_block_int *gsl_block_int_calloc (const size_t n);
 void gsl_block_int_free (gsl_block_int * b);
 
 int gsl_block_int_fread (FILE * stream, gsl_block_int * b);
 int gsl_block_int_fwrite (FILE * stream, const gsl_block_int * b);
 int gsl_block_int_fscanf (FILE * stream, gsl_block_int * b);
 int gsl_block_int_fprintf (FILE * stream, const gsl_block_int * b, const char *format);
 
 int gsl_block_int_raw_fread (FILE * stream, int * b, const size_t n, const size_t stride);
 int gsl_block_int_raw_fwrite (FILE * stream, const int * b, const size_t n, const size_t stride);
 int gsl_block_int_raw_fscanf (FILE * stream, int * b, const size_t n, const size_t stride);
 int gsl_block_int_raw_fprintf (FILE * stream, const int * b, const size_t n, const size_t stride, const char *format);
 
 size_t gsl_block_int_size (const gsl_block_int * b);
 int * gsl_block_int_data (const gsl_block_int * b);
 
 
 # 27 "../gsl/gsl_vector_int.h" 2
 # 38 "../gsl/gsl_vector_int.h"
 
 
 typedef struct
 {
   size_t size;
   size_t stride;
   int *data;
   gsl_block_int *block;
   int owner;
 }
 gsl_vector_int;
 
 typedef struct
 {
   gsl_vector_int vector;
 } _gsl_vector_int_view;
 
 typedef _gsl_vector_int_view gsl_vector_int_view;
 
 typedef struct
 {
   gsl_vector_int vector;
 } _gsl_vector_int_const_view;
 
 typedef const _gsl_vector_int_const_view gsl_vector_int_const_view;
 
 
 
 
 gsl_vector_int *gsl_vector_int_alloc (const size_t n);
 gsl_vector_int *gsl_vector_int_calloc (const size_t n);
 
 gsl_vector_int *gsl_vector_int_alloc_from_block (gsl_block_int * b,
                                                      const size_t offset,
                                                      const size_t n,
                                                      const size_t stride);
 
 gsl_vector_int *gsl_vector_int_alloc_from_vector (gsl_vector_int * v,
                                                       const size_t offset,
                                                       const size_t n,
                                                       const size_t stride);
 
 void gsl_vector_int_free (gsl_vector_int * v);
 
 
 
 _gsl_vector_int_view
 gsl_vector_int_view_array (int *v, size_t n);
 
 _gsl_vector_int_view
 gsl_vector_int_view_array_with_stride (int *base,
                                          size_t stride,
                                          size_t n);
 
 _gsl_vector_int_const_view
 gsl_vector_int_const_view_array (const int *v, size_t n);
 
 _gsl_vector_int_const_view
 gsl_vector_int_const_view_array_with_stride (const int *base,
                                                size_t stride,
                                                size_t n);
 
 _gsl_vector_int_view
 gsl_vector_int_subvector (gsl_vector_int *v,
                             size_t i,
                             size_t n);
 
 _gsl_vector_int_view
 gsl_vector_int_subvector_with_stride (gsl_vector_int *v,
                                         size_t i,
                                         size_t stride,
                                         size_t n);
 
 _gsl_vector_int_const_view
 gsl_vector_int_const_subvector (const gsl_vector_int *v,
                                   size_t i,
                                   size_t n);
 
 _gsl_vector_int_const_view
 gsl_vector_int_const_subvector_with_stride (const gsl_vector_int *v,
                                               size_t i,
                                               size_t stride,
                                               size_t n);
 
 
 
 int gsl_vector_int_get (const gsl_vector_int * v, const size_t i);
 void gsl_vector_int_set (gsl_vector_int * v, const size_t i, int x);
 
 int *gsl_vector_int_ptr (gsl_vector_int * v, const size_t i);
 const int *gsl_vector_int_const_ptr (const gsl_vector_int * v, const size_t i);
 
 void gsl_vector_int_set_zero (gsl_vector_int * v);
 void gsl_vector_int_set_all (gsl_vector_int * v, int x);
 int gsl_vector_int_set_basis (gsl_vector_int * v, size_t i);
 
 int gsl_vector_int_fread (FILE * stream, gsl_vector_int * v);
 int gsl_vector_int_fwrite (FILE * stream, const gsl_vector_int * v);
 int gsl_vector_int_fscanf (FILE * stream, gsl_vector_int * v);
 int gsl_vector_int_fprintf (FILE * stream, const gsl_vector_int * v,
                               const char *format);
 
 int gsl_vector_int_memcpy (gsl_vector_int * dest, const gsl_vector_int * src);
 
 int gsl_vector_int_reverse (gsl_vector_int * v);
 
 int gsl_vector_int_swap (gsl_vector_int * v, gsl_vector_int * w);
 int gsl_vector_int_swap_elements (gsl_vector_int * v, const size_t i, const size_t j);
 
 int gsl_vector_int_max (const gsl_vector_int * v);
 int gsl_vector_int_min (const gsl_vector_int * v);
 void gsl_vector_int_minmax (const gsl_vector_int * v, int * min_out, int * max_out);
 
 size_t gsl_vector_int_max_index (const gsl_vector_int * v);
 size_t gsl_vector_int_min_index (const gsl_vector_int * v);
 void gsl_vector_int_minmax_index (const gsl_vector_int * v, size_t * imin, size_t * imax);
 
 int gsl_vector_int_add (gsl_vector_int * a, const gsl_vector_int * b);
 int gsl_vector_int_sub (gsl_vector_int * a, const gsl_vector_int * b);
 int gsl_vector_int_mul (gsl_vector_int * a, const gsl_vector_int * b);
 int gsl_vector_int_div (gsl_vector_int * a, const gsl_vector_int * b);
 int gsl_vector_int_scale (gsl_vector_int * a, const double x);
 int gsl_vector_int_add_constant (gsl_vector_int * a, const double x);
 
 int gsl_vector_int_isnull (const gsl_vector_int * v);
 
 extern int gsl_check_range;
 
 
 
 extern inline
 int
 gsl_vector_int_get (const gsl_vector_int * v, const size_t i)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_int.h", 175, GSL_EINVAL) ; return 0 ; } while (0);
     }
 
   return v->data[i * v->stride];
 }
 
 extern inline
 void
 gsl_vector_int_set (gsl_vector_int * v, const size_t i, int x)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_int.h", 188, GSL_EINVAL) ; return ; } while (0);
     }
 
   v->data[i * v->stride] = x;
 }
 
 extern inline
 int *
 gsl_vector_int_ptr (gsl_vector_int * v, const size_t i)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_int.h", 201, GSL_EINVAL) ; return 0 ; } while (0);
     }
 
   return (int *) (v->data + i * v->stride);
 }
 
 extern inline
 const int *
 gsl_vector_int_const_ptr (const gsl_vector_int * v, const size_t i)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_int.h", 214, GSL_EINVAL) ; return 0 ; } while (0);
     }
 
   return (const int *) (v->data + i * v->stride);
 }
 
 
 
 
 
 # 17 "../gsl/gsl_vector.h" 2
 
 # 1 "../gsl/gsl_vector_ushort.h" 1
 # 26 "../gsl/gsl_vector_ushort.h"
 # 1 "../gsl/gsl_block_ushort.h" 1
 # 36 "../gsl/gsl_block_ushort.h"
 
 
 struct gsl_block_ushort_struct
 {
   size_t size;
   unsigned short *data;
 };
 
 typedef struct gsl_block_ushort_struct gsl_block_ushort;
 
 gsl_block_ushort *gsl_block_ushort_alloc (const size_t n);
 gsl_block_ushort *gsl_block_ushort_calloc (const size_t n);
 void gsl_block_ushort_free (gsl_block_ushort * b);
 
 int gsl_block_ushort_fread (FILE * stream, gsl_block_ushort * b);
 int gsl_block_ushort_fwrite (FILE * stream, const gsl_block_ushort * b);
 int gsl_block_ushort_fscanf (FILE * stream, gsl_block_ushort * b);
 int gsl_block_ushort_fprintf (FILE * stream, const gsl_block_ushort * b, const char *format);
 
 int gsl_block_ushort_raw_fread (FILE * stream, unsigned short * b, const size_t n, const size_t stride);
 int gsl_block_ushort_raw_fwrite (FILE * stream, const unsigned short * b, const size_t n, const size_t stride);
 int gsl_block_ushort_raw_fscanf (FILE * stream, unsigned short * b, const size_t n, const size_t stride);
 int gsl_block_ushort_raw_fprintf (FILE * stream, const unsigned short * b, const size_t n, const size_t stride, const char *format);
 
 size_t gsl_block_ushort_size (const gsl_block_ushort * b);
 unsigned short * gsl_block_ushort_data (const gsl_block_ushort * b);
 
 
 # 27 "../gsl/gsl_vector_ushort.h" 2
 # 38 "../gsl/gsl_vector_ushort.h"
 
 
 typedef struct
 {
   size_t size;
   size_t stride;
   unsigned short *data;
   gsl_block_ushort *block;
   int owner;
 }
 gsl_vector_ushort;
 
 typedef struct
 {
   gsl_vector_ushort vector;
 } _gsl_vector_ushort_view;
 
 typedef _gsl_vector_ushort_view gsl_vector_ushort_view;
 
 typedef struct
 {
   gsl_vector_ushort vector;
 } _gsl_vector_ushort_const_view;
 
 typedef const _gsl_vector_ushort_const_view gsl_vector_ushort_const_view;
 
 
 
 
 gsl_vector_ushort *gsl_vector_ushort_alloc (const size_t n);
 gsl_vector_ushort *gsl_vector_ushort_calloc (const size_t n);
 
 gsl_vector_ushort *gsl_vector_ushort_alloc_from_block (gsl_block_ushort * b,
                                                      const size_t offset,
                                                      const size_t n,
                                                      const size_t stride);
 
 gsl_vector_ushort *gsl_vector_ushort_alloc_from_vector (gsl_vector_ushort * v,
                                                       const size_t offset,
                                                       const size_t n,
                                                       const size_t stride);
 
 void gsl_vector_ushort_free (gsl_vector_ushort * v);
 
 
 
 _gsl_vector_ushort_view
 gsl_vector_ushort_view_array (unsigned short *v, size_t n);
 
 _gsl_vector_ushort_view
 gsl_vector_ushort_view_array_with_stride (unsigned short *base,
                                          size_t stride,
                                          size_t n);
 
 _gsl_vector_ushort_const_view
 gsl_vector_ushort_const_view_array (const unsigned short *v, size_t n);
 
 _gsl_vector_ushort_const_view
 gsl_vector_ushort_const_view_array_with_stride (const unsigned short *base,
                                                size_t stride,
                                                size_t n);
 
 _gsl_vector_ushort_view
 gsl_vector_ushort_subvector (gsl_vector_ushort *v,
                             size_t i,
                             size_t n);
 
 _gsl_vector_ushort_view
 gsl_vector_ushort_subvector_with_stride (gsl_vector_ushort *v,
                                         size_t i,
                                         size_t stride,
                                         size_t n);
 
 _gsl_vector_ushort_const_view
 gsl_vector_ushort_const_subvector (const gsl_vector_ushort *v,
                                   size_t i,
                                   size_t n);
 
 _gsl_vector_ushort_const_view
 gsl_vector_ushort_const_subvector_with_stride (const gsl_vector_ushort *v,
                                               size_t i,
                                               size_t stride,
                                               size_t n);
 
 
 
 unsigned short gsl_vector_ushort_get (const gsl_vector_ushort * v, const size_t i);
 void gsl_vector_ushort_set (gsl_vector_ushort * v, const size_t i, unsigned short x);
 
 unsigned short *gsl_vector_ushort_ptr (gsl_vector_ushort * v, const size_t i);
 const unsigned short *gsl_vector_ushort_const_ptr (const gsl_vector_ushort * v, const size_t i);
 
 void gsl_vector_ushort_set_zero (gsl_vector_ushort * v);
 void gsl_vector_ushort_set_all (gsl_vector_ushort * v, unsigned short x);
 int gsl_vector_ushort_set_basis (gsl_vector_ushort * v, size_t i);
 
 int gsl_vector_ushort_fread (FILE * stream, gsl_vector_ushort * v);
 int gsl_vector_ushort_fwrite (FILE * stream, const gsl_vector_ushort * v);
 int gsl_vector_ushort_fscanf (FILE * stream, gsl_vector_ushort * v);
 int gsl_vector_ushort_fprintf (FILE * stream, const gsl_vector_ushort * v,
                               const char *format);
 
 int gsl_vector_ushort_memcpy (gsl_vector_ushort * dest, const gsl_vector_ushort * src);
 
 int gsl_vector_ushort_reverse (gsl_vector_ushort * v);
 
 int gsl_vector_ushort_swap (gsl_vector_ushort * v, gsl_vector_ushort * w);
 int gsl_vector_ushort_swap_elements (gsl_vector_ushort * v, const size_t i, const size_t j);
 
 unsigned short gsl_vector_ushort_max (const gsl_vector_ushort * v);
 unsigned short gsl_vector_ushort_min (const gsl_vector_ushort * v);
 void gsl_vector_ushort_minmax (const gsl_vector_ushort * v, unsigned short * min_out, unsigned short * max_out);
 
 size_t gsl_vector_ushort_max_index (const gsl_vector_ushort * v);
 size_t gsl_vector_ushort_min_index (const gsl_vector_ushort * v);
 void gsl_vector_ushort_minmax_index (const gsl_vector_ushort * v, size_t * imin, size_t * imax);
 
 int gsl_vector_ushort_add (gsl_vector_ushort * a, const gsl_vector_ushort * b);
 int gsl_vector_ushort_sub (gsl_vector_ushort * a, const gsl_vector_ushort * b);
 int gsl_vector_ushort_mul (gsl_vector_ushort * a, const gsl_vector_ushort * b);
 int gsl_vector_ushort_div (gsl_vector_ushort * a, const gsl_vector_ushort * b);
 int gsl_vector_ushort_scale (gsl_vector_ushort * a, const double x);
 int gsl_vector_ushort_add_constant (gsl_vector_ushort * a, const double x);
 
 int gsl_vector_ushort_isnull (const gsl_vector_ushort * v);
 
 extern int gsl_check_range;
 
 
 
 extern inline
 unsigned short
 gsl_vector_ushort_get (const gsl_vector_ushort * v, const size_t i)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_ushort.h", 175, GSL_EINVAL) ; return 0 ; } while (0);
     }
 
   return v->data[i * v->stride];
 }
 
 extern inline
 void
 gsl_vector_ushort_set (gsl_vector_ushort * v, const size_t i, unsigned short x)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_ushort.h", 188, GSL_EINVAL) ; return ; } while (0);
     }
 
   v->data[i * v->stride] = x;
 }
 
 extern inline
 unsigned short *
 gsl_vector_ushort_ptr (gsl_vector_ushort * v, const size_t i)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_ushort.h", 201, GSL_EINVAL) ; return 0 ; } while (0);
     }
 
   return (unsigned short *) (v->data + i * v->stride);
 }
 
 extern inline
 const unsigned short *
 gsl_vector_ushort_const_ptr (const gsl_vector_ushort * v, const size_t i)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_ushort.h", 214, GSL_EINVAL) ; return 0 ; } while (0);
     }
 
   return (const unsigned short *) (v->data + i * v->stride);
 }
 
 
 
 
 
 # 19 "../gsl/gsl_vector.h" 2
 # 1 "../gsl/gsl_vector_short.h" 1
 # 26 "../gsl/gsl_vector_short.h"
 # 1 "../gsl/gsl_block_short.h" 1
 # 36 "../gsl/gsl_block_short.h"
 
 
 struct gsl_block_short_struct
 {
   size_t size;
   short *data;
 };
 
 typedef struct gsl_block_short_struct gsl_block_short;
 
 gsl_block_short *gsl_block_short_alloc (const size_t n);
 gsl_block_short *gsl_block_short_calloc (const size_t n);
 void gsl_block_short_free (gsl_block_short * b);
 
 int gsl_block_short_fread (FILE * stream, gsl_block_short * b);
 int gsl_block_short_fwrite (FILE * stream, const gsl_block_short * b);
 int gsl_block_short_fscanf (FILE * stream, gsl_block_short * b);
 int gsl_block_short_fprintf (FILE * stream, const gsl_block_short * b, const char *format);
 
 int gsl_block_short_raw_fread (FILE * stream, short * b, const size_t n, const size_t stride);
 int gsl_block_short_raw_fwrite (FILE * stream, const short * b, const size_t n, const size_t stride);
 int gsl_block_short_raw_fscanf (FILE * stream, short * b, const size_t n, const size_t stride);
 int gsl_block_short_raw_fprintf (FILE * stream, const short * b, const size_t n, const size_t stride, const char *format);
 
 size_t gsl_block_short_size (const gsl_block_short * b);
 short * gsl_block_short_data (const gsl_block_short * b);
 
 
 # 27 "../gsl/gsl_vector_short.h" 2
 # 38 "../gsl/gsl_vector_short.h"
 
 
 typedef struct
 {
   size_t size;
   size_t stride;
   short *data;
   gsl_block_short *block;
   int owner;
 }
 gsl_vector_short;
 
 typedef struct
 {
   gsl_vector_short vector;
 } _gsl_vector_short_view;
 
 typedef _gsl_vector_short_view gsl_vector_short_view;
 
 typedef struct
 {
   gsl_vector_short vector;
 } _gsl_vector_short_const_view;
 
 typedef const _gsl_vector_short_const_view gsl_vector_short_const_view;
 
 
 
 
 gsl_vector_short *gsl_vector_short_alloc (const size_t n);
 gsl_vector_short *gsl_vector_short_calloc (const size_t n);
 
 gsl_vector_short *gsl_vector_short_alloc_from_block (gsl_block_short * b,
                                                      const size_t offset,
                                                      const size_t n,
                                                      const size_t stride);
 
 gsl_vector_short *gsl_vector_short_alloc_from_vector (gsl_vector_short * v,
                                                       const size_t offset,
                                                       const size_t n,
                                                       const size_t stride);
 
 void gsl_vector_short_free (gsl_vector_short * v);
 
 
 
 _gsl_vector_short_view
 gsl_vector_short_view_array (short *v, size_t n);
 
 _gsl_vector_short_view
 gsl_vector_short_view_array_with_stride (short *base,
                                          size_t stride,
                                          size_t n);
 
 _gsl_vector_short_const_view
 gsl_vector_short_const_view_array (const short *v, size_t n);
 
 _gsl_vector_short_const_view
 gsl_vector_short_const_view_array_with_stride (const short *base,
                                                size_t stride,
                                                size_t n);
 
 _gsl_vector_short_view
 gsl_vector_short_subvector (gsl_vector_short *v,
                             size_t i,
                             size_t n);
 
 _gsl_vector_short_view
 gsl_vector_short_subvector_with_stride (gsl_vector_short *v,
                                         size_t i,
                                         size_t stride,
                                         size_t n);
 
 _gsl_vector_short_const_view
 gsl_vector_short_const_subvector (const gsl_vector_short *v,
                                   size_t i,
                                   size_t n);
 
 _gsl_vector_short_const_view
 gsl_vector_short_const_subvector_with_stride (const gsl_vector_short *v,
                                               size_t i,
                                               size_t stride,
                                               size_t n);
 
 
 
 short gsl_vector_short_get (const gsl_vector_short * v, const size_t i);
 void gsl_vector_short_set (gsl_vector_short * v, const size_t i, short x);
 
 short *gsl_vector_short_ptr (gsl_vector_short * v, const size_t i);
 const short *gsl_vector_short_const_ptr (const gsl_vector_short * v, const size_t i);
 
 void gsl_vector_short_set_zero (gsl_vector_short * v);
 void gsl_vector_short_set_all (gsl_vector_short * v, short x);
 int gsl_vector_short_set_basis (gsl_vector_short * v, size_t i);
 
 int gsl_vector_short_fread (FILE * stream, gsl_vector_short * v);
 int gsl_vector_short_fwrite (FILE * stream, const gsl_vector_short * v);
 int gsl_vector_short_fscanf (FILE * stream, gsl_vector_short * v);
 int gsl_vector_short_fprintf (FILE * stream, const gsl_vector_short * v,
                               const char *format);
 
 int gsl_vector_short_memcpy (gsl_vector_short * dest, const gsl_vector_short * src);
 
 int gsl_vector_short_reverse (gsl_vector_short * v);
 
 int gsl_vector_short_swap (gsl_vector_short * v, gsl_vector_short * w);
 int gsl_vector_short_swap_elements (gsl_vector_short * v, const size_t i, const size_t j);
 
 short gsl_vector_short_max (const gsl_vector_short * v);
 short gsl_vector_short_min (const gsl_vector_short * v);
 void gsl_vector_short_minmax (const gsl_vector_short * v, short * min_out, short * max_out);
 
 size_t gsl_vector_short_max_index (const gsl_vector_short * v);
 size_t gsl_vector_short_min_index (const gsl_vector_short * v);
 void gsl_vector_short_minmax_index (const gsl_vector_short * v, size_t * imin, size_t * imax);
 
 int gsl_vector_short_add (gsl_vector_short * a, const gsl_vector_short * b);
 int gsl_vector_short_sub (gsl_vector_short * a, const gsl_vector_short * b);
 int gsl_vector_short_mul (gsl_vector_short * a, const gsl_vector_short * b);
 int gsl_vector_short_div (gsl_vector_short * a, const gsl_vector_short * b);
 int gsl_vector_short_scale (gsl_vector_short * a, const double x);
 int gsl_vector_short_add_constant (gsl_vector_short * a, const double x);
 
 int gsl_vector_short_isnull (const gsl_vector_short * v);
 
 extern int gsl_check_range;
 
 
 
 extern inline
 short
 gsl_vector_short_get (const gsl_vector_short * v, const size_t i)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_short.h", 175, GSL_EINVAL) ; return 0 ; } while (0);
     }
 
   return v->data[i * v->stride];
 }
 
 extern inline
 void
 gsl_vector_short_set (gsl_vector_short * v, const size_t i, short x)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_short.h", 188, GSL_EINVAL) ; return ; } while (0);
     }
 
   v->data[i * v->stride] = x;
 }
 
 extern inline
 short *
 gsl_vector_short_ptr (gsl_vector_short * v, const size_t i)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_short.h", 201, GSL_EINVAL) ; return 0 ; } while (0);
     }
 
   return (short *) (v->data + i * v->stride);
 }
 
 extern inline
 const short *
 gsl_vector_short_const_ptr (const gsl_vector_short * v, const size_t i)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_short.h", 214, GSL_EINVAL) ; return 0 ; } while (0);
     }
 
   return (const short *) (v->data + i * v->stride);
 }
 
 
 
 
 
 # 20 "../gsl/gsl_vector.h" 2
 
 # 1 "../gsl/gsl_vector_uchar.h" 1
 # 26 "../gsl/gsl_vector_uchar.h"
 # 1 "../gsl/gsl_block_uchar.h" 1
 # 36 "../gsl/gsl_block_uchar.h"
 
 
 struct gsl_block_uchar_struct
 {
   size_t size;
   unsigned char *data;
 };
 
 typedef struct gsl_block_uchar_struct gsl_block_uchar;
 
 gsl_block_uchar *gsl_block_uchar_alloc (const size_t n);
 gsl_block_uchar *gsl_block_uchar_calloc (const size_t n);
 void gsl_block_uchar_free (gsl_block_uchar * b);
 
 int gsl_block_uchar_fread (FILE * stream, gsl_block_uchar * b);
 int gsl_block_uchar_fwrite (FILE * stream, const gsl_block_uchar * b);
 int gsl_block_uchar_fscanf (FILE * stream, gsl_block_uchar * b);
 int gsl_block_uchar_fprintf (FILE * stream, const gsl_block_uchar * b, const char *format);
 
 int gsl_block_uchar_raw_fread (FILE * stream, unsigned char * b, const size_t n, const size_t stride);
 int gsl_block_uchar_raw_fwrite (FILE * stream, const unsigned char * b, const size_t n, const size_t stride);
 int gsl_block_uchar_raw_fscanf (FILE * stream, unsigned char * b, const size_t n, const size_t stride);
 int gsl_block_uchar_raw_fprintf (FILE * stream, const unsigned char * b, const size_t n, const size_t stride, const char *format);
 
 size_t gsl_block_uchar_size (const gsl_block_uchar * b);
 unsigned char * gsl_block_uchar_data (const gsl_block_uchar * b);
 
 
 # 27 "../gsl/gsl_vector_uchar.h" 2
 # 38 "../gsl/gsl_vector_uchar.h"
 
 
 typedef struct
 {
   size_t size;
   size_t stride;
   unsigned char *data;
   gsl_block_uchar *block;
   int owner;
 }
 gsl_vector_uchar;
 
 typedef struct
 {
   gsl_vector_uchar vector;
 } _gsl_vector_uchar_view;
 
 typedef _gsl_vector_uchar_view gsl_vector_uchar_view;
 
 typedef struct
 {
   gsl_vector_uchar vector;
 } _gsl_vector_uchar_const_view;
 
 typedef const _gsl_vector_uchar_const_view gsl_vector_uchar_const_view;
 
 
 
 
 gsl_vector_uchar *gsl_vector_uchar_alloc (const size_t n);
 gsl_vector_uchar *gsl_vector_uchar_calloc (const size_t n);
 
 gsl_vector_uchar *gsl_vector_uchar_alloc_from_block (gsl_block_uchar * b,
                                                      const size_t offset,
                                                      const size_t n,
                                                      const size_t stride);
 
 gsl_vector_uchar *gsl_vector_uchar_alloc_from_vector (gsl_vector_uchar * v,
                                                       const size_t offset,
                                                       const size_t n,
                                                       const size_t stride);
 
 void gsl_vector_uchar_free (gsl_vector_uchar * v);
 
 
 
 _gsl_vector_uchar_view
 gsl_vector_uchar_view_array (unsigned char *v, size_t n);
 
 _gsl_vector_uchar_view
 gsl_vector_uchar_view_array_with_stride (unsigned char *base,
                                          size_t stride,
                                          size_t n);
 
 _gsl_vector_uchar_const_view
 gsl_vector_uchar_const_view_array (const unsigned char *v, size_t n);
 
 _gsl_vector_uchar_const_view
 gsl_vector_uchar_const_view_array_with_stride (const unsigned char *base,
                                                size_t stride,
                                                size_t n);
 
 _gsl_vector_uchar_view
 gsl_vector_uchar_subvector (gsl_vector_uchar *v,
                             size_t i,
                             size_t n);
 
 _gsl_vector_uchar_view
 gsl_vector_uchar_subvector_with_stride (gsl_vector_uchar *v,
                                         size_t i,
                                         size_t stride,
                                         size_t n);
 
 _gsl_vector_uchar_const_view
 gsl_vector_uchar_const_subvector (const gsl_vector_uchar *v,
                                   size_t i,
                                   size_t n);
 
 _gsl_vector_uchar_const_view
 gsl_vector_uchar_const_subvector_with_stride (const gsl_vector_uchar *v,
                                               size_t i,
                                               size_t stride,
                                               size_t n);
 
 
 
 unsigned char gsl_vector_uchar_get (const gsl_vector_uchar * v, const size_t i);
 void gsl_vector_uchar_set (gsl_vector_uchar * v, const size_t i, unsigned char x);
 
 unsigned char *gsl_vector_uchar_ptr (gsl_vector_uchar * v, const size_t i);
 const unsigned char *gsl_vector_uchar_const_ptr (const gsl_vector_uchar * v, const size_t i);
 
 void gsl_vector_uchar_set_zero (gsl_vector_uchar * v);
 void gsl_vector_uchar_set_all (gsl_vector_uchar * v, unsigned char x);
 int gsl_vector_uchar_set_basis (gsl_vector_uchar * v, size_t i);
 
 int gsl_vector_uchar_fread (FILE * stream, gsl_vector_uchar * v);
 int gsl_vector_uchar_fwrite (FILE * stream, const gsl_vector_uchar * v);
 int gsl_vector_uchar_fscanf (FILE * stream, gsl_vector_uchar * v);
 int gsl_vector_uchar_fprintf (FILE * stream, const gsl_vector_uchar * v,
                               const char *format);
 
 int gsl_vector_uchar_memcpy (gsl_vector_uchar * dest, const gsl_vector_uchar * src);
 
 int gsl_vector_uchar_reverse (gsl_vector_uchar * v);
 
 int gsl_vector_uchar_swap (gsl_vector_uchar * v, gsl_vector_uchar * w);
 int gsl_vector_uchar_swap_elements (gsl_vector_uchar * v, const size_t i, const size_t j);
 
 unsigned char gsl_vector_uchar_max (const gsl_vector_uchar * v);
 unsigned char gsl_vector_uchar_min (const gsl_vector_uchar * v);
 void gsl_vector_uchar_minmax (const gsl_vector_uchar * v, unsigned char * min_out, unsigned char * max_out);
 
 size_t gsl_vector_uchar_max_index (const gsl_vector_uchar * v);
 size_t gsl_vector_uchar_min_index (const gsl_vector_uchar * v);
 void gsl_vector_uchar_minmax_index (const gsl_vector_uchar * v, size_t * imin, size_t * imax);
 
 int gsl_vector_uchar_add (gsl_vector_uchar * a, const gsl_vector_uchar * b);
 int gsl_vector_uchar_sub (gsl_vector_uchar * a, const gsl_vector_uchar * b);
 int gsl_vector_uchar_mul (gsl_vector_uchar * a, const gsl_vector_uchar * b);
 int gsl_vector_uchar_div (gsl_vector_uchar * a, const gsl_vector_uchar * b);
 int gsl_vector_uchar_scale (gsl_vector_uchar * a, const double x);
 int gsl_vector_uchar_add_constant (gsl_vector_uchar * a, const double x);
 
 int gsl_vector_uchar_isnull (const gsl_vector_uchar * v);
 
 extern int gsl_check_range;
 
 
 
 extern inline
 unsigned char
 gsl_vector_uchar_get (const gsl_vector_uchar * v, const size_t i)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_uchar.h", 175, GSL_EINVAL) ; return 0 ; } while (0);
     }
 
   return v->data[i * v->stride];
 }
 
 extern inline
 void
 gsl_vector_uchar_set (gsl_vector_uchar * v, const size_t i, unsigned char x)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_uchar.h", 188, GSL_EINVAL) ; return ; } while (0);
     }
 
   v->data[i * v->stride] = x;
 }
 
 extern inline
 unsigned char *
 gsl_vector_uchar_ptr (gsl_vector_uchar * v, const size_t i)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_uchar.h", 201, GSL_EINVAL) ; return 0 ; } while (0);
     }
 
   return (unsigned char *) (v->data + i * v->stride);
 }
 
 extern inline
 const unsigned char *
 gsl_vector_uchar_const_ptr (const gsl_vector_uchar * v, const size_t i)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_uchar.h", 214, GSL_EINVAL) ; return 0 ; } while (0);
     }
 
   return (const unsigned char *) (v->data + i * v->stride);
 }
 
 
 
 
 
 # 22 "../gsl/gsl_vector.h" 2
 # 1 "../gsl/gsl_vector_char.h" 1
 # 26 "../gsl/gsl_vector_char.h"
 # 1 "../gsl/gsl_block_char.h" 1
 # 36 "../gsl/gsl_block_char.h"
 
 
 struct gsl_block_char_struct
 {
   size_t size;
   char *data;
 };
 
 typedef struct gsl_block_char_struct gsl_block_char;
 
 gsl_block_char *gsl_block_char_alloc (const size_t n);
 gsl_block_char *gsl_block_char_calloc (const size_t n);
 void gsl_block_char_free (gsl_block_char * b);
 
 int gsl_block_char_fread (FILE * stream, gsl_block_char * b);
 int gsl_block_char_fwrite (FILE * stream, const gsl_block_char * b);
 int gsl_block_char_fscanf (FILE * stream, gsl_block_char * b);
 int gsl_block_char_fprintf (FILE * stream, const gsl_block_char * b, const char *format);
 
 int gsl_block_char_raw_fread (FILE * stream, char * b, const size_t n, const size_t stride);
 int gsl_block_char_raw_fwrite (FILE * stream, const char * b, const size_t n, const size_t stride);
 int gsl_block_char_raw_fscanf (FILE * stream, char * b, const size_t n, const size_t stride);
 int gsl_block_char_raw_fprintf (FILE * stream, const char * b, const size_t n, const size_t stride, const char *format);
 
 size_t gsl_block_char_size (const gsl_block_char * b);
 char * gsl_block_char_data (const gsl_block_char * b);
 
 
 # 27 "../gsl/gsl_vector_char.h" 2
 # 38 "../gsl/gsl_vector_char.h"
 
 
 typedef struct
 {
   size_t size;
   size_t stride;
   char *data;
   gsl_block_char *block;
   int owner;
 }
 gsl_vector_char;
 
 typedef struct
 {
   gsl_vector_char vector;
 } _gsl_vector_char_view;
 
 typedef _gsl_vector_char_view gsl_vector_char_view;
 
 typedef struct
 {
   gsl_vector_char vector;
 } _gsl_vector_char_const_view;
 
 typedef const _gsl_vector_char_const_view gsl_vector_char_const_view;
 
 
 
 
 gsl_vector_char *gsl_vector_char_alloc (const size_t n);
 gsl_vector_char *gsl_vector_char_calloc (const size_t n);
 
 gsl_vector_char *gsl_vector_char_alloc_from_block (gsl_block_char * b,
                                                      const size_t offset,
                                                      const size_t n,
                                                      const size_t stride);
 
 gsl_vector_char *gsl_vector_char_alloc_from_vector (gsl_vector_char * v,
                                                       const size_t offset,
                                                       const size_t n,
                                                       const size_t stride);
 
 void gsl_vector_char_free (gsl_vector_char * v);
 
 
 
 _gsl_vector_char_view
 gsl_vector_char_view_array (char *v, size_t n);
 
 _gsl_vector_char_view
 gsl_vector_char_view_array_with_stride (char *base,
                                          size_t stride,
                                          size_t n);
 
 _gsl_vector_char_const_view
 gsl_vector_char_const_view_array (const char *v, size_t n);
 
 _gsl_vector_char_const_view
 gsl_vector_char_const_view_array_with_stride (const char *base,
                                                size_t stride,
                                                size_t n);
 
 _gsl_vector_char_view
 gsl_vector_char_subvector (gsl_vector_char *v,
                             size_t i,
                             size_t n);
 
 _gsl_vector_char_view
 gsl_vector_char_subvector_with_stride (gsl_vector_char *v,
                                         size_t i,
                                         size_t stride,
                                         size_t n);
 
 _gsl_vector_char_const_view
 gsl_vector_char_const_subvector (const gsl_vector_char *v,
                                   size_t i,
                                   size_t n);
 
 _gsl_vector_char_const_view
 gsl_vector_char_const_subvector_with_stride (const gsl_vector_char *v,
                                               size_t i,
                                               size_t stride,
                                               size_t n);
 
 
 
 char gsl_vector_char_get (const gsl_vector_char * v, const size_t i);
 void gsl_vector_char_set (gsl_vector_char * v, const size_t i, char x);
 
 char *gsl_vector_char_ptr (gsl_vector_char * v, const size_t i);
 const char *gsl_vector_char_const_ptr (const gsl_vector_char * v, const size_t i);
 
 void gsl_vector_char_set_zero (gsl_vector_char * v);
 void gsl_vector_char_set_all (gsl_vector_char * v, char x);
 int gsl_vector_char_set_basis (gsl_vector_char * v, size_t i);
 
 int gsl_vector_char_fread (FILE * stream, gsl_vector_char * v);
 int gsl_vector_char_fwrite (FILE * stream, const gsl_vector_char * v);
 int gsl_vector_char_fscanf (FILE * stream, gsl_vector_char * v);
 int gsl_vector_char_fprintf (FILE * stream, const gsl_vector_char * v,
                               const char *format);
 
 int gsl_vector_char_memcpy (gsl_vector_char * dest, const gsl_vector_char * src);
 
 int gsl_vector_char_reverse (gsl_vector_char * v);
 
 int gsl_vector_char_swap (gsl_vector_char * v, gsl_vector_char * w);
 int gsl_vector_char_swap_elements (gsl_vector_char * v, const size_t i, const size_t j);
 
 char gsl_vector_char_max (const gsl_vector_char * v);
 char gsl_vector_char_min (const gsl_vector_char * v);
 void gsl_vector_char_minmax (const gsl_vector_char * v, char * min_out, char * max_out);
 
 size_t gsl_vector_char_max_index (const gsl_vector_char * v);
 size_t gsl_vector_char_min_index (const gsl_vector_char * v);
 void gsl_vector_char_minmax_index (const gsl_vector_char * v, size_t * imin, size_t * imax);
 
 int gsl_vector_char_add (gsl_vector_char * a, const gsl_vector_char * b);
 int gsl_vector_char_sub (gsl_vector_char * a, const gsl_vector_char * b);
 int gsl_vector_char_mul (gsl_vector_char * a, const gsl_vector_char * b);
 int gsl_vector_char_div (gsl_vector_char * a, const gsl_vector_char * b);
 int gsl_vector_char_scale (gsl_vector_char * a, const double x);
 int gsl_vector_char_add_constant (gsl_vector_char * a, const double x);
 
 int gsl_vector_char_isnull (const gsl_vector_char * v);
 
 extern int gsl_check_range;
 
 
 
 extern inline
 char
 gsl_vector_char_get (const gsl_vector_char * v, const size_t i)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_char.h", 175, GSL_EINVAL) ; return 0 ; } while (0);
     }
 
   return v->data[i * v->stride];
 }
 
 extern inline
 void
 gsl_vector_char_set (gsl_vector_char * v, const size_t i, char x)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_char.h", 188, GSL_EINVAL) ; return ; } while (0);
     }
 
   v->data[i * v->stride] = x;
 }
 
 extern inline
 char *
 gsl_vector_char_ptr (gsl_vector_char * v, const size_t i)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_char.h", 201, GSL_EINVAL) ; return 0 ; } while (0);
     }
 
   return (char *) (v->data + i * v->stride);
 }
 
 extern inline
 const char *
 gsl_vector_char_const_ptr (const gsl_vector_char * v, const size_t i)
 {
 
   if (i >= v->size)
     {
       do { gsl_error ("index out of range", "../gsl/gsl_vector_char.h", 214, GSL_EINVAL) ; return 0 ; } while (0);
     }
 
   return (const char *) (v->data + i * v->stride);
 }
 
 
 
 
 
 # 23 "../gsl/gsl_vector.h" 2
 # 31 "test.c" 2
 # 1 "../gsl/gsl_test.h" 1
 # 33 "../gsl/gsl_test.h"
 
 
 void
   gsl_test (int status, const char *test_description, ...);
 
 void
 gsl_test_rel (double result, double expected, double relative_error,
               const char *test_description, ...) ;
 
 void
 gsl_test_abs (double result, double expected, double absolute_error,
               const char *test_description, ...) ;
 
 void
 gsl_test_factor (double result, double expected, double factor,
                  const char *test_description, ...) ;
 
 void
 gsl_test_int (int result, int expected, const char *test_description, ...) ;
 
 void
 gsl_test_str (const char * result, const char * expected,
               const char *test_description, ...) ;
 
 void
   gsl_test_verbose (int verbose) ;
 
 int
   gsl_test_summary (void) ;
 
 
 
 # 32 "test.c" 2
 # 1 "../gsl/gsl_ieee_utils.h" 1
 # 34 "../gsl/gsl_ieee_utils.h"
 
 
 enum {
   GSL_IEEE_TYPE_NAN = 1,
   GSL_IEEE_TYPE_INF = 2,
   GSL_IEEE_TYPE_NORMAL = 3,
   GSL_IEEE_TYPE_DENORMAL = 4,
   GSL_IEEE_TYPE_ZERO = 5
 } ;
 
 typedef struct {
   int sign ;
   char mantissa[24] ;
   int exponent ;
   int type ;
 } gsl_ieee_float_rep ;
 
 typedef struct {
   int sign ;
   char mantissa[53] ;
   int exponent ;
   int type ;
 } gsl_ieee_double_rep ;
 
 
 void gsl_ieee_printf_float (const float * x) ;
 void gsl_ieee_printf_double (const double * x) ;
 
 void gsl_ieee_fprintf_float (FILE * stream, const float * x) ;
 void gsl_ieee_fprintf_double (FILE * stream, const double * x) ;
 
 void gsl_ieee_float_to_rep (const float * x, gsl_ieee_float_rep * r) ;
 void gsl_ieee_double_to_rep (const double * x, gsl_ieee_double_rep * r) ;
 
 enum {
   GSL_IEEE_SINGLE_PRECISION = 1,
   GSL_IEEE_DOUBLE_PRECISION = 2,
   GSL_IEEE_EXTENDED_PRECISION = 3
 } ;
 
 enum {
   GSL_IEEE_ROUND_TO_NEAREST = 1,
   GSL_IEEE_ROUND_DOWN = 2,
   GSL_IEEE_ROUND_UP = 3,
   GSL_IEEE_ROUND_TO_ZERO = 4
 } ;
 
 enum {
   GSL_IEEE_MASK_INVALID = 1,
   GSL_IEEE_MASK_DENORMALIZED = 2,
   GSL_IEEE_MASK_DIVISION_BY_ZERO = 4,
   GSL_IEEE_MASK_OVERFLOW = 8,
   GSL_IEEE_MASK_UNDERFLOW = 16,
   GSL_IEEE_MASK_ALL = 31,
   GSL_IEEE_TRAP_INEXACT = 32
 } ;
 
 void gsl_ieee_env_setup (void) ;
 int gsl_ieee_read_mode_string (const char * description, int * precision,
                                int * rounding, int * exception_mask) ;
 int gsl_ieee_set_mode (int precision, int rounding, int exception_mask) ;
 
 
 # 33 "test.c" 2
 
 int status = 0;
 # 43 "test.c"
 # 1 "../templates_on.h" 1
 # 44 "test.c" 2
 # 1 "test_complex_source.c" 1
 # 20 "test_complex_source.c"
 void test_complex_long_double_func (void);
 void test_complex_long_double_binary (void);
 void test_complex_long_double_trap (void);
 
 void
 test_complex_long_double_func (void)
 {
   size_t i;
 
   gsl_vector_complex_long_double * v = gsl_vector_complex_long_double_calloc (1027);
 
   gsl_test (v->data == 0, "gsl_vector_complex_long_double" "_alloc returns valid pointer");
   gsl_test (v->size != 1027, "gsl_vector_complex_long_double" "_alloc returns valid size");
   gsl_test (v->stride != 1, "gsl_vector_complex_long_double" "_alloc returns unit stride");
 
   for (i = 0; i < 1027; i++)
     {
       gsl_complex_long_double x = {{0.0L,0.0L}};
       ((x).dat[0]) = (long double)i;
       ((x).dat[1]) = (long double)(i + 1234);
       gsl_vector_complex_long_double_set (v, i, x);
     };
 
   status = 0;
 
   for (i = 0; i < 1027; i++)
     {
       if (v->data[2 * i] != (long double) i || v->data[2 * i + 1] != (long double) (i + 1234))
         status = 1;
     };
 
   gsl_test (status, "gsl_vector_complex_long_double" "_set writes into array");
 
   status = 0;
 
   for (i = 0; i < 1027; i++)
     {
       gsl_complex_long_double x, y;
       ((x).dat[0]) = (long double)i;
       ((x).dat[1]) = (long double)(i + 1234);
       y = gsl_vector_complex_long_double_get (v, i);
       if (!(((x).dat[0] == (y).dat[0]) && ((x).dat[1] == (y).dat[1])))
         status = 1;
     };
   gsl_test (status, "gsl_vector_complex_long_double" "_get reads from array");
 
 
 
   v->stride = 2 ;
 
   status = 0;
 
   for (i = 0; i < 1027 / 2; i++)
     {
       gsl_complex_long_double x, y;
       ((x).dat[0]) = (long double)(2 * i);
       ((x).dat[1]) = (long double)(2 * i + 1234);
       y = gsl_vector_complex_long_double_get (v, i);
       if (!(((x).dat[0] == (y).dat[0]) && ((x).dat[1] == (y).dat[1])))
         status = 1;
     };
   gsl_test (status, "gsl_vector_complex_long_double" "_get reads from array with stride");
 
   for (i = 0; i < 1027 / 2; i++)
     {
       gsl_complex_long_double x;
       ((x).dat[0]) = (long double)i ;
       ((x).dat[1]) = (long double)(i + 1234);
       gsl_vector_complex_long_double_set (v, i, x);
     };
 
   status = 0;
 
   for (i = 0; i < 1027 / 2; i++)
     {
       if (v->data[2 * 2 * i] != (long double) i || v->data[2 * 2 * i + 1] != (long double) (i + 1234))
         status = 1;
     };
 
   gsl_test (status, "gsl_vector_complex_long_double" "_set writes into array with stride");
 
 
 
   v->stride = 1 ;
 
   for (i = 0; i < 1027; i++)
     {
       gsl_complex_long_double x = {{0.0L,0.0L}};
       ((x).dat[0]) = (long double)i;
       ((x).dat[1]) = (long double)(i + 1234);
       gsl_vector_complex_long_double_set (v, i, x);
     };
 
 
   {
     gsl_complex_long_double x, y, r, s ;
     ((x).dat[0]) = 2 ;
     ((x).dat[1]) = 2 + 1234;
     ((y).dat[0]) = 5 ;
     ((y).dat[1]) = 5 + 1234;
 
     gsl_vector_complex_long_double_swap_elements (v, 2, 5) ;
 
     r = gsl_vector_complex_long_double_get(v,2);
     s = gsl_vector_complex_long_double_get(v,5);
 
     status = ! (((r).dat[0] == (y).dat[0]) && ((r).dat[1] == (y).dat[1])) ;
     status |= ! (((s).dat[0] == (x).dat[0]) && ((s).dat[1] == (x).dat[1])) ;
 
     gsl_vector_complex_long_double_swap_elements (v, 2, 5) ;
 
     r = gsl_vector_complex_long_double_get(v,2);
     s = gsl_vector_complex_long_double_get(v,5);
 
     status |= ! (((r).dat[0] == (x).dat[0]) && ((r).dat[1] == (x).dat[1])) ;
     status |= ! (((s).dat[0] == (y).dat[0]) && ((s).dat[1] == (y).dat[1])) ;
   }
 
   gsl_test (status, "gsl_vector_complex_long_double" "_swap_elements" " (static)" " exchanges elements") ;
 
   status = 0;
 
   gsl_vector_complex_long_double_reverse (v) ;
 
   for (i = 0; i < 1027; i++)
     {
       gsl_complex_long_double x,r ;
       ((x).dat[0]) = (long double)(1027 - i - 1) ;
       ((x).dat[1]) = (long double)(1027 - i - 1 + 1234);
 
       r = gsl_vector_complex_long_double_get (v, i);
 
       status |= !(((r).dat[0] == (x).dat[0]) && ((r).dat[1] == (x).dat[1]));
     }
 
   gsl_test (status, "gsl_vector_complex_long_double" "_reverse" " (static)" " reverses elements") ;
 
   gsl_vector_complex_long_double_free (v);
 }
 
 void
 test_complex_long_double_binary (void)
 {
   gsl_vector_complex_long_double * v = gsl_vector_complex_long_double_calloc (1027);
   gsl_vector_complex_long_double * w = gsl_vector_complex_long_double_calloc (1027);
 
   size_t i;
 
   {
     FILE *f = fopen ("test.dat", "wb");
 
     for (i = 0; i < 1027; i++)
       {
         gsl_complex_long_double x = {{0.0L,0.0L}};
         ((x).dat[0]) = (long double)(1027 - i);
         ((x).dat[1]) = (long double)(1027 - i + 1);
         gsl_vector_complex_long_double_set (v, i, x);
       };
 
     gsl_vector_complex_long_double_fwrite (f, v);
 
     fclose (f);
   }
 
   {
     FILE *f = fopen ("test.dat", "rb");
 
     gsl_vector_complex_long_double_fread (f, w);
 
     status = 0;
     for (i = 0; i < 1027; i++)
       {
         if (w->data[2 * i] != (long double) (1027 - i) || w->data[2 * i + 1] != (long double) (1027 - i + 1))
           status = 1;
       };
     fclose (f);
   }
 
   gsl_vector_complex_long_double_free (v);
   gsl_vector_complex_long_double_free (w);
 
   gsl_test (status, "gsl_vector_complex_long_double" "_write and read work");
 
 }
 
 
 void
 test_complex_long_double_trap (void)
 {
   gsl_vector_complex_long_double * vc = gsl_vector_complex_long_double_alloc (1027);
 
   gsl_complex_long_double z = {{(long double)1.2, (long double)3.4}};
   gsl_complex_long_double z1 = {{(long double)4.5, (long double)6.7}};
 
   size_t j = 0;
 
   status = 0;
   gsl_vector_complex_long_double_set (vc, j - 1, z);
   gsl_test (!status,
             "gsl_vector_complex_long_double" "_set traps index below lower bound");
 
   status = 0;
   gsl_vector_complex_long_double_set (vc, 1027 + 1, z);
   gsl_test (!status,
             "gsl_vector_complex_long_double" "_set traps index above upper bound");
 
   status = 0;
   gsl_vector_complex_long_double_set (vc, 1027, z);
   gsl_test (!status, "gsl_vector_complex_long_double" "_set traps index at upper bound");
 
   status = 0;
   z1 = gsl_vector_complex_long_double_get (vc, j - 1);
   gsl_test (!status,
             "gsl_vector_complex_long_double" "_get traps index below lower bound");
 
   gsl_test (((z1).dat[0]) != 0,
             "gsl_vector_complex_long_double" "_get returns zero real below lower bound");
   gsl_test (((z1).dat[1]) != 0,
             "gsl_vector_complex_long_double" "_get returns zero imag below lower bound");
 
   status = 0;
   z1 = gsl_vector_complex_long_double_get (vc, 1027 + 1);
   gsl_test (!status,
             "gsl_vector_complex_long_double" "_get traps index above upper bound");
   gsl_test (((z1).dat[0]) != 0,
             "gsl_vector_complex_long_double" "_get returns zero real above upper bound");
   gsl_test (((z1).dat[1]) != 0,
             "gsl_vector_complex_long_double" "_get returns zero imag above upper bound");
 
   status = 0;
   z1 = gsl_vector_complex_long_double_get (vc, 1027);
   gsl_test (!status, "gsl_vector_complex_long_double" "_get traps index at upper bound");
   gsl_test (((z1).dat[0]) != 0,
             "gsl_vector_complex_long_double" "_get returns zero real at upper bound");
   gsl_test (((z1).dat[1]) != 0,
             "gsl_vector_complex_long_double" "_get returns zero imag at upper bound");
 
   gsl_vector_complex_long_double_free (vc);
 }
 # 45 "test.c" 2
 
 # 1 "test_complex_io.c" 1
 # 20 "test_complex_io.c"
 void test_complex_long_double_text (void);
 
 
 void
 test_complex_long_double_text (void)
 {
   gsl_vector_complex_long_double * v = gsl_vector_complex_long_double_alloc (1027);
   gsl_vector_complex_long_double * w = gsl_vector_complex_long_double_alloc (1027);
 
   size_t i;
 
   {
     FILE *f = fopen ("test.txt", "w");
 
     for (i = 0; i < 1027; i++)
       {
         gsl_complex_long_double x;
         ((x).dat[0]) = (long double)i;
         ((x).dat[1]) = (long double)(i + 1);
         gsl_vector_complex_long_double_set (v, i, x);
       };
 
     gsl_vector_complex_long_double_fprintf (f, v, "%Lg");
 
     fclose (f);
   }
 
   {
     FILE *f = fopen ("test.txt", "r");
 
     gsl_vector_complex_long_double_fscanf (f, w);
 
     status = 0;
     for (i = 0; i < 1027; i++)
       {
         if (w->data[2 * i] != (long double) i || w->data[2 * i + 1] != (long double) (i + 1))
           status = 1;
       };
     fclose (f);
   }
 
   gsl_vector_complex_long_double_free (v);
   gsl_vector_complex_long_double_free (w);
 
   gsl_test (status, "gsl_vector_complex_long_double" "_fprintf and fscanf");
 }
 # 47 "test.c" 2
 
 # 1 "../templates_off.h" 1
 # 49 "test.c" 2
 
 
 
 
 # 1 "../templates_on.h" 1
 # 54 "test.c" 2
 # 1 "test_complex_source.c" 1
 # 20 "test_complex_source.c"
 void test_complex_func (void);
 void test_complex_binary (void);
 void test_complex_trap (void);
 
 void
 test_complex_func (void)
 {
   size_t i;
 
   gsl_vector_complex * v = gsl_vector_complex_calloc (1027);
 
   gsl_test (v->data == 0, "gsl_vector_complex" "_alloc returns valid pointer");
   gsl_test (v->size != 1027, "gsl_vector_complex" "_alloc returns valid size");
   gsl_test (v->stride != 1, "gsl_vector_complex" "_alloc returns unit stride");
 
   for (i = 0; i < 1027; i++)
     {
       gsl_complex x = {{0.0,0.0}};
       ((x).dat[0]) = (double)i;
       ((x).dat[1]) = (double)(i + 1234);
       gsl_vector_complex_set (v, i, x);
     };
 
   status = 0;
 
   for (i = 0; i < 1027; i++)
     {
       if (v->data[2 * i] != (double) i || v->data[2 * i + 1] != (double) (i + 1234))
         status = 1;
     };
 
   gsl_test (status, "gsl_vector_complex" "_set writes into array");
 
   status = 0;
 
   for (i = 0; i < 1027; i++)
     {
       gsl_complex x, y;
       ((x).dat[0]) = (double)i;
       ((x).dat[1]) = (double)(i + 1234);
       y = gsl_vector_complex_get (v, i);
       if (!(((x).dat[0] == (y).dat[0]) && ((x).dat[1] == (y).dat[1])))
         status = 1;
     };
   gsl_test (status, "gsl_vector_complex" "_get reads from array");
 
 
 
   v->stride = 2 ;
 
   status = 0;
 
   for (i = 0; i < 1027 / 2; i++)
     {
       gsl_complex x, y;
       ((x).dat[0]) = (double)(2 * i);
       ((x).dat[1]) = (double)(2 * i + 1234);
       y = gsl_vector_complex_get (v, i);
       if (!(((x).dat[0] == (y).dat[0]) && ((x).dat[1] == (y).dat[1])))
         status = 1;
     };
   gsl_test (status, "gsl_vector_complex" "_get reads from array with stride");
 
   for (i = 0; i < 1027 / 2; i++)
     {
       gsl_complex x;
       ((x).dat[0]) = (double)i ;
       ((x).dat[1]) = (double)(i + 1234);
       gsl_vector_complex_set (v, i, x);
     };
 
   status = 0;
 
   for (i = 0; i < 1027 / 2; i++)
     {
       if (v->data[2 * 2 * i] != (double) i || v->data[2 * 2 * i + 1] != (double) (i + 1234))
         status = 1;
     };
 
   gsl_test (status, "gsl_vector_complex" "_set writes into array with stride");
 
 
 
   v->stride = 1 ;
 
   for (i = 0; i < 1027; i++)
     {
       gsl_complex x = {{0.0,0.0}};
       ((x).dat[0]) = (double)i;
       ((x).dat[1]) = (double)(i + 1234);
       gsl_vector_complex_set (v, i, x);
     };
 
 
   {
     gsl_complex x, y, r, s ;
     ((x).dat[0]) = 2 ;
     ((x).dat[1]) = 2 + 1234;
     ((y).dat[0]) = 5 ;
     ((y).dat[1]) = 5 + 1234;
 
     gsl_vector_complex_swap_elements (v, 2, 5) ;
 
     r = gsl_vector_complex_get(v,2);
     s = gsl_vector_complex_get(v,5);
 
     status = ! (((r).dat[0] == (y).dat[0]) && ((r).dat[1] == (y).dat[1])) ;
     status |= ! (((s).dat[0] == (x).dat[0]) && ((s).dat[1] == (x).dat[1])) ;
 
     gsl_vector_complex_swap_elements (v, 2, 5) ;
 
     r = gsl_vector_complex_get(v,2);
     s = gsl_vector_complex_get(v,5);
 
     status |= ! (((r).dat[0] == (x).dat[0]) && ((r).dat[1] == (x).dat[1])) ;
     status |= ! (((s).dat[0] == (y).dat[0]) && ((s).dat[1] == (y).dat[1])) ;
   }
 
   gsl_test (status, "gsl_vector_complex" "_swap_elements" " (static)" " exchanges elements") ;
 
   status = 0;
 
   gsl_vector_complex_reverse (v) ;
 
   for (i = 0; i < 1027; i++)
     {
       gsl_complex x,r ;
       ((x).dat[0]) = (double)(1027 - i - 1) ;
       ((x).dat[1]) = (double)(1027 - i - 1 + 1234);
 
       r = gsl_vector_complex_get (v, i);
 
       status |= !(((r).dat[0] == (x).dat[0]) && ((r).dat[1] == (x).dat[1]));
     }
 
   gsl_test (status, "gsl_vector_complex" "_reverse" " (static)" " reverses elements") ;
 
   gsl_vector_complex_free (v);
 }
 
 void
 test_complex_binary (void)
 {
   gsl_vector_complex * v = gsl_vector_complex_calloc (1027);
   gsl_vector_complex * w = gsl_vector_complex_calloc (1027);
 
   size_t i;
 
   {
     FILE *f = fopen ("test.dat", "wb");
 
     for (i = 0; i < 1027; i++)
       {
         gsl_complex x = {{0.0,0.0}};
         ((x).dat[0]) = (double)(1027 - i);
         ((x).dat[1]) = (double)(1027 - i + 1);
         gsl_vector_complex_set (v, i, x);
       };
 
     gsl_vector_complex_fwrite (f, v);
 
     fclose (f);
   }
 
   {
     FILE *f = fopen ("test.dat", "rb");
 
     gsl_vector_complex_fread (f, w);
 
     status = 0;
     for (i = 0; i < 1027; i++)
       {
         if (w->data[2 * i] != (double) (1027 - i) || w->data[2 * i + 1] != (double) (1027 - i + 1))
           status = 1;
       };
     fclose (f);
   }
 
   gsl_vector_complex_free (v);
   gsl_vector_complex_free (w);
 
   gsl_test (status, "gsl_vector_complex" "_write and read work");
 
 }
 
 
 void
 test_complex_trap (void)
 {
   gsl_vector_complex * vc = gsl_vector_complex_alloc (1027);
 
   gsl_complex z = {{(double)1.2, (double)3.4}};
   gsl_complex z1 = {{(double)4.5, (double)6.7}};
 
   size_t j = 0;
 
   status = 0;
   gsl_vector_complex_set (vc, j - 1, z);
   gsl_test (!status,
             "gsl_vector_complex" "_set traps index below lower bound");
 
   status = 0;
   gsl_vector_complex_set (vc, 1027 + 1, z);
   gsl_test (!status,
             "gsl_vector_complex" "_set traps index above upper bound");
 
   status = 0;
   gsl_vector_complex_set (vc, 1027, z);
   gsl_test (!status, "gsl_vector_complex" "_set traps index at upper bound");
 
   status = 0;
   z1 = gsl_vector_complex_get (vc, j - 1);
   gsl_test (!status,
             "gsl_vector_complex" "_get traps index below lower bound");
 
   gsl_test (((z1).dat[0]) != 0,
             "gsl_vector_complex" "_get returns zero real below lower bound");
   gsl_test (((z1).dat[1]) != 0,
             "gsl_vector_complex" "_get returns zero imag below lower bound");
 
   status = 0;
   z1 = gsl_vector_complex_get (vc, 1027 + 1);
   gsl_test (!status,
             "gsl_vector_complex" "_get traps index above upper bound");
   gsl_test (((z1).dat[0]) != 0,
             "gsl_vector_complex" "_get returns zero real above upper bound");
   gsl_test (((z1).dat[1]) != 0,
             "gsl_vector_complex" "_get returns zero imag above upper bound");
 
   status = 0;
   z1 = gsl_vector_complex_get (vc, 1027);
   gsl_test (!status, "gsl_vector_complex" "_get traps index at upper bound");
   gsl_test (((z1).dat[0]) != 0,
             "gsl_vector_complex" "_get returns zero real at upper bound");
   gsl_test (((z1).dat[1]) != 0,
             "gsl_vector_complex" "_get returns zero imag at upper bound");
 
   gsl_vector_complex_free (vc);
 }
 # 55 "test.c" 2
 # 1 "test_complex_io.c" 1
 # 20 "test_complex_io.c"
 void test_complex_text (void);
 
 
 void
 test_complex_text (void)
 {
   gsl_vector_complex * v = gsl_vector_complex_alloc (1027);
   gsl_vector_complex * w = gsl_vector_complex_alloc (1027);
 
   size_t i;
 
   {
     FILE *f = fopen ("test.txt", "w");
 
     for (i = 0; i < 1027; i++)
       {
         gsl_complex x;
         ((x).dat[0]) = (double)i;
         ((x).dat[1]) = (double)(i + 1);
         gsl_vector_complex_set (v, i, x);
       };
 
     gsl_vector_complex_fprintf (f, v, "%g");
 
     fclose (f);
   }
 
   {
     FILE *f = fopen ("test.txt", "r");
 
     gsl_vector_complex_fscanf (f, w);
 
     status = 0;
     for (i = 0; i < 1027; i++)
       {
         if (w->data[2 * i] != (double) i || w->data[2 * i + 1] != (double) (i + 1))
           status = 1;
       };
     fclose (f);
   }
 
   gsl_vector_complex_free (v);
   gsl_vector_complex_free (w);
 
   gsl_test (status, "gsl_vector_complex" "_fprintf and fscanf");
 }
 # 56 "test.c" 2
 # 1 "../templates_off.h" 1
 # 57 "test.c" 2
 
 
 
 # 1 "../templates_on.h" 1
 # 61 "test.c" 2
 # 1 "test_complex_source.c" 1
 # 20 "test_complex_source.c"
 void test_complex_float_func (void);
 void test_complex_float_binary (void);
 void test_complex_float_trap (void);
 
 void
 test_complex_float_func (void)
 {
   size_t i;
 
   gsl_vector_complex_float * v = gsl_vector_complex_float_calloc (1027);
 
   gsl_test (v->data == 0, "gsl_vector_complex_float" "_alloc returns valid pointer");
   gsl_test (v->size != 1027, "gsl_vector_complex_float" "_alloc returns valid size");
   gsl_test (v->stride != 1, "gsl_vector_complex_float" "_alloc returns unit stride");
 
   for (i = 0; i < 1027; i++)
     {
       gsl_complex_float x = {{0.0F,0.0F}};
       ((x).dat[0]) = (float)i;
       ((x).dat[1]) = (float)(i + 1234);
       gsl_vector_complex_float_set (v, i, x);
     };
 
   status = 0;
 
   for (i = 0; i < 1027; i++)
     {
       if (v->data[2 * i] != (float) i || v->data[2 * i + 1] != (float) (i + 1234))
         status = 1;
     };
 
   gsl_test (status, "gsl_vector_complex_float" "_set writes into array");
 
   status = 0;
 
   for (i = 0; i < 1027; i++)
     {
       gsl_complex_float x, y;
       ((x).dat[0]) = (float)i;
       ((x).dat[1]) = (float)(i + 1234);
       y = gsl_vector_complex_float_get (v, i);
       if (!(((x).dat[0] == (y).dat[0]) && ((x).dat[1] == (y).dat[1])))
         status = 1;
     };
   gsl_test (status, "gsl_vector_complex_float" "_get reads from array");
 
 
 
   v->stride = 2 ;
 
   status = 0;
 
   for (i = 0; i < 1027 / 2; i++)
     {
       gsl_complex_float x, y;
       ((x).dat[0]) = (float)(2 * i);
       ((x).dat[1]) = (float)(2 * i + 1234);
       y = gsl_vector_complex_float_get (v, i);
       if (!(((x).dat[0] == (y).dat[0]) && ((x).dat[1] == (y).dat[1])))
         status = 1;
     };
   gsl_test (status, "gsl_vector_complex_float" "_get reads from array with stride");
 
   for (i = 0; i < 1027 / 2; i++)
     {
       gsl_complex_float x;
       ((x).dat[0]) = (float)i ;
       ((x).dat[1]) = (float)(i + 1234);
       gsl_vector_complex_float_set (v, i, x);
     };
 
   status = 0;
 
   for (i = 0; i < 1027 / 2; i++)
     {
       if (v->data[2 * 2 * i] != (float) i || v->data[2 * 2 * i + 1] != (float) (i + 1234))
         status = 1;
     };
 
   gsl_test (status, "gsl_vector_complex_float" "_set writes into array with stride");
 
 
 
   v->stride = 1 ;
 
   for (i = 0; i < 1027; i++)
     {
       gsl_complex_float x = {{0.0F,0.0F}};
       ((x).dat[0]) = (float)i;
       ((x).dat[1]) = (float)(i + 1234);
       gsl_vector_complex_float_set (v, i, x);
     };
 
 
   {
     gsl_complex_float x, y, r, s ;
     ((x).dat[0]) = 2 ;
     ((x).dat[1]) = 2 + 1234;
     ((y).dat[0]) = 5 ;
     ((y).dat[1]) = 5 + 1234;
 
     gsl_vector_complex_float_swap_elements (v, 2, 5) ;
 
     r = gsl_vector_complex_float_get(v,2);
     s = gsl_vector_complex_float_get(v,5);
 
     status = ! (((r).dat[0] == (y).dat[0]) && ((r).dat[1] == (y).dat[1])) ;
     status |= ! (((s).dat[0] == (x).dat[0]) && ((s).dat[1] == (x).dat[1])) ;
 
     gsl_vector_complex_float_swap_elements (v, 2, 5) ;
 
     r = gsl_vector_complex_float_get(v,2);
     s = gsl_vector_complex_float_get(v,5);
 
     status |= ! (((r).dat[0] == (x).dat[0]) && ((r).dat[1] == (x).dat[1])) ;
     status |= ! (((s).dat[0] == (y).dat[0]) && ((s).dat[1] == (y).dat[1])) ;
   }
 
   gsl_test (status, "gsl_vector_complex_float" "_swap_elements" " (static)" " exchanges elements") ;
 
   status = 0;
 
   gsl_vector_complex_float_reverse (v) ;
 
   for (i = 0; i < 1027; i++)
     {
       gsl_complex_float x,r ;
       ((x).dat[0]) = (float)(1027 - i - 1) ;
       ((x).dat[1]) = (float)(1027 - i - 1 + 1234);
 
       r = gsl_vector_complex_float_get (v, i);
 
       status |= !(((r).dat[0] == (x).dat[0]) && ((r).dat[1] == (x).dat[1]));
     }
 
   gsl_test (status, "gsl_vector_complex_float" "_reverse" " (static)" " reverses elements") ;
 
   gsl_vector_complex_float_free (v);
 }
 
 void
 test_complex_float_binary (void)
 {
   gsl_vector_complex_float * v = gsl_vector_complex_float_calloc (1027);
   gsl_vector_complex_float * w = gsl_vector_complex_float_calloc (1027);
 
   size_t i;
 
   {
     FILE *f = fopen ("test.dat", "wb");
 
     for (i = 0; i < 1027; i++)
       {
         gsl_complex_float x = {{0.0F,0.0F}};
         ((x).dat[0]) = (float)(1027 - i);
         ((x).dat[1]) = (float)(1027 - i + 1);
         gsl_vector_complex_float_set (v, i, x);
       };
 
     gsl_vector_complex_float_fwrite (f, v);
 
     fclose (f);
   }
 
   {
     FILE *f = fopen ("test.dat", "rb");
 
     gsl_vector_complex_float_fread (f, w);
 
     status = 0;
     for (i = 0; i < 1027; i++)
       {
         if (w->data[2 * i] != (float) (1027 - i) || w->data[2 * i + 1] != (float) (1027 - i + 1))
           status = 1;
       };
     fclose (f);
   }
 
   gsl_vector_complex_float_free (v);
   gsl_vector_complex_float_free (w);
 
   gsl_test (status, "gsl_vector_complex_float" "_write and read work");
 
 }
 
 
 void
 test_complex_float_trap (void)
 {
   gsl_vector_complex_float * vc = gsl_vector_complex_float_alloc (1027);
 
   gsl_complex_float z = {{(float)1.2, (float)3.4}};
   gsl_complex_float z1 = {{(float)4.5, (float)6.7}};
 
   size_t j = 0;
 
   status = 0;
   gsl_vector_complex_float_set (vc, j - 1, z);
   gsl_test (!status,
             "gsl_vector_complex_float" "_set traps index below lower bound");
 
   status = 0;
   gsl_vector_complex_float_set (vc, 1027 + 1, z);
   gsl_test (!status,
             "gsl_vector_complex_float" "_set traps index above upper bound");
 
   status = 0;
   gsl_vector_complex_float_set (vc, 1027, z);
   gsl_test (!status, "gsl_vector_complex_float" "_set traps index at upper bound");
 
   status = 0;
   z1 = gsl_vector_complex_float_get (vc, j - 1);
   gsl_test (!status,
             "gsl_vector_complex_float" "_get traps index below lower bound");
 
   gsl_test (((z1).dat[0]) != 0,
             "gsl_vector_complex_float" "_get returns zero real below lower bound");
   gsl_test (((z1).dat[1]) != 0,
             "gsl_vector_complex_float" "_get returns zero imag below lower bound");
 
   status = 0;
   z1 = gsl_vector_complex_float_get (vc, 1027 + 1);
   gsl_test (!status,
             "gsl_vector_complex_float" "_get traps index above upper bound");
   gsl_test (((z1).dat[0]) != 0,
             "gsl_vector_complex_float" "_get returns zero real above upper bound");
   gsl_test (((z1).dat[1]) != 0,
             "gsl_vector_complex_float" "_get returns zero imag above upper bound");
 
   status = 0;
   z1 = gsl_vector_complex_float_get (vc, 1027);
   gsl_test (!status, "gsl_vector_complex_float" "_get traps index at upper bound");
   gsl_test (((z1).dat[0]) != 0,
             "gsl_vector_complex_float" "_get returns zero real at upper bound");
   gsl_test (((z1).dat[1]) != 0,
             "gsl_vector_complex_float" "_get returns zero imag at upper bound");
 
   gsl_vector_complex_float_free (vc);
 }
 # 62 "test.c" 2
 # 1 "test_complex_io.c" 1
 # 20 "test_complex_io.c"
 void test_complex_float_text (void);
 
 
 void
 test_complex_float_text (void)
 {
   gsl_vector_complex_float * v = gsl_vector_complex_float_alloc (1027);
   gsl_vector_complex_float * w = gsl_vector_complex_float_alloc (1027);
 
   size_t i;
 
   {
     FILE *f = fopen ("test.txt", "w");
 
     for (i = 0; i < 1027; i++)
       {
         gsl_complex_float x;
         ((x).dat[0]) = (float)i;
         ((x).dat[1]) = (float)(i + 1);
         gsl_vector_complex_float_set (v, i, x);
       };
 
     gsl_vector_complex_float_fprintf (f, v, "%g");
 
     fclose (f);
   }
 
   {
     FILE *f = fopen ("test.txt", "r");
 
     gsl_vector_complex_float_fscanf (f, w);
 
     status = 0;
     for (i = 0; i < 1027; i++)
       {
         if (w->data[2 * i] != (float) i || w->data[2 * i + 1] != (float) (i + 1))
           status = 1;
       };
     fclose (f);
   }
 
   gsl_vector_complex_float_free (v);
   gsl_vector_complex_float_free (w);
 
   gsl_test (status, "gsl_vector_complex_float" "_fprintf and fscanf");
 }
 # 63 "test.c" 2
 # 1 "../templates_off.h" 1
 # 64 "test.c" 2
 
 
 
 # 1 "../templates_on.h" 1
 # 68 "test.c" 2
 # 1 "test_source.c" 1
 # 20 "test_source.c"
 void test_long_double_func (void);
 void test_long_double_binary (void);
 void test_long_double_trap (void);
 
 void
 test_long_double_func (void)
 {
   gsl_vector_long_double * v;
   size_t i;
 
   v = gsl_vector_long_double_calloc (1027);
 
   gsl_test (v->data == 0, "gsl_vector_long_double" "_alloc returns valid pointer");
   gsl_test (v->size != 1027, "gsl_vector_long_double" "_alloc returns valid size");
   gsl_test (v->stride != 1, "gsl_vector_long_double" "_alloc returns unit stride");
 
   for (i = 0; i < 1027; i++)
     {
       gsl_vector_long_double_set (v, i, (long double) i);
     }
 
 
   status = 0;
 
   for (i = 0; i < 1027; i++)
     {
       if (v->data[i] != (long double) i)
         status = 1;
     };
 
   gsl_test (status,
             "gsl_vector_long_double" "_set" " (static)" " writes into array");
 
 
   status = 0;
   for (i = 0; i < 1027; i++)
     {
       if (gsl_vector_long_double_get (v, i) != (long double) i)
         status = 1;
     };
   gsl_test (status,
             "gsl_vector_long_double" "_get" " (static)" " reads from array");
 
 
 
 
   v->stride = 2;
 
   status = 0;
   for (i = 0; i < 1027 / 2; i++)
     {
       if (gsl_vector_long_double_get (v, i) != (long double) (2 * i))
         status = 1;
     };
   gsl_test (status, "gsl_vector_long_double" "_get" " (static)" " reads with stride");
 
   for (i = 0; i < 1027 / 2; i++)
     {
       gsl_vector_long_double_set (v, i, (long double) (i + 1000));
     };
 
   status = 0;
 
   for (i = 0; i < 1027 / 2; i++)
     {
       if (v->data[2 * i] != (long double) (i + 1000))
         status = 1;
     };
 
   gsl_test (status, "gsl_vector_long_double" "_set" " (static)" " writes with stride");
 
 
 
   v->stride = 1 ;
 
   for (i = 0; i < 1027; i++)
     {
       gsl_vector_long_double_set (v, i, (long double) i);
     }
 
   gsl_vector_long_double_swap_elements (v, 2, 5) ;
 
   status = (gsl_vector_long_double_get(v,2) != 5) ;
   status |= (gsl_vector_long_double_get(v,5) != 2) ;
 
   gsl_vector_long_double_swap_elements (v, 2, 5) ;
 
   status |= (gsl_vector_long_double_get(v,2) != 2) ;
   status |= (gsl_vector_long_double_get(v,5) != 5) ;
 
   gsl_test (status, "gsl_vector_long_double" "_swap_elements" " (static)" " exchanges elements") ;
 
   status = 0;
 
   gsl_vector_long_double_reverse (v) ;
 
   for (i = 0; i < 1027; i++)
     {
       status |= (gsl_vector_long_double_get (v, i) != (long double) (1027 - i - 1));
     }
 
   gsl_test (status, "gsl_vector_long_double" "_reverse" " (static)" " reverses elements") ;
 
   {
     long double exp_max = gsl_vector_long_double_get(v, 0);
     long double exp_min = gsl_vector_long_double_get(v, 0);
     size_t exp_imax = 0, exp_imin = 0;
 
     for (i = 0; i < 1027; i++)
       {
         long double k = gsl_vector_long_double_get (v, i) ;
         if (k < exp_min) {
           exp_min = gsl_vector_long_double_get (v, i);
           exp_imin = i;
         }
       }
 
     for (i = 0; i < 1027; i++)
       {
         long double k = gsl_vector_long_double_get (v, i) ;
         if (k > exp_max) {
           exp_max = gsl_vector_long_double_get (v, i) ;
           exp_imax = i;
         }
       }
 
     {
       long double max = gsl_vector_long_double_max (v) ;
 
       gsl_test (max != exp_max, "gsl_vector_long_double" "_max returns correct maximum value");
     }
 
     {
       long double min = gsl_vector_long_double_min (v) ;
 
       gsl_test (min != exp_min, "gsl_vector_long_double" "_min returns correct minimum value");
     }
 
     {
       long double min, max;
       gsl_vector_long_double_minmax (v, &min, &max);
 
       gsl_test (max != exp_max, "gsl_vector_long_double" "_minmax returns correct maximum value");
       gsl_test (min != exp_min, "gsl_vector_long_double" "_minmax returns correct minimum value");
     }
 
 
     {
       size_t imax = gsl_vector_long_double_max_index (v) ;
 
       gsl_test (imax != exp_imax, "gsl_vector_long_double" "_max_index returns correct maximum i");
     }
 
     {
       size_t imin = gsl_vector_long_double_min_index (v) ;
 
       gsl_test (imin != exp_imin, "gsl_vector_long_double" "_min_index returns correct minimum i");
     }
 
     {
       size_t imin, imax;
 
       gsl_vector_long_double_minmax_index (v, &imin, &imax);
 
       gsl_test (imax != exp_imax, "gsl_vector_long_double" "_minmax_index returns correct maximum i");
       gsl_test (imin != exp_imin, "gsl_vector_long_double" "_minmax_index returns correct minimum i");
     }
   }
 
 
   {
     gsl_vector_long_double * a = gsl_vector_long_double_calloc (1027);
     gsl_vector_long_double * b = gsl_vector_long_double_calloc (1027);
 
     for (i = 0; i < 1027; i++)
       {
         gsl_vector_long_double_set (a, i, (long double)(3 + i));
         gsl_vector_long_double_set (b, i, (long double)(3 + 2 * i));
       }
 
     gsl_vector_long_double_memcpy (v, a);
     gsl_vector_long_double_add (v, b);
 
     {
       int status = 0;
 
       for (i = 0; i < 1027; i++)
         {
           long double r = gsl_vector_long_double_get (v,i);
           long double x = gsl_vector_long_double_get (a,i);
           long double y = gsl_vector_long_double_get (b,i);
           long double z = x + y;
           if (r != z)
             status = 1;
         }
       gsl_test (status, "gsl_vector_long_double" "_add vector addition");
     }
 
 
     gsl_vector_long_double_memcpy (v, a);
     gsl_vector_long_double_sub (v, b);
 
     {
       int status = 0;
 
       for (i = 0; i < 1027; i++)
         {
           long double r = gsl_vector_long_double_get (v,i);
           long double x = gsl_vector_long_double_get (a,i);
           long double y = gsl_vector_long_double_get (b,i);
           long double z = x - y;
           if (r != z)
             status = 1;
         }
       gsl_test (status, "gsl_vector_long_double" "_sub vector subtraction");
     }
 
     gsl_vector_long_double_memcpy (v, a);
     gsl_vector_long_double_mul (v, b);
 
     {
       int status = 0;
 
       for (i = 0; i < 1027; i++)
         {
           long double r = gsl_vector_long_double_get (v,i);
           long double x = gsl_vector_long_double_get (a,i);
           long double y = gsl_vector_long_double_get (b,i);
           long double z = x * y;
           if (r != z)
             status = 1;
         }
       gsl_test (status, "gsl_vector_long_double" "_mul multiplication");
     }
 
     gsl_vector_long_double_memcpy (v, a);
     gsl_vector_long_double_div (v, b);
 
     {
       int status = 0;
 
       for (i = 0; i < 1027; i++)
         {
           long double r = gsl_vector_long_double_get (v,i);
           long double x = gsl_vector_long_double_get (a,i);
           long double y = gsl_vector_long_double_get (b,i);
           long double z = x / y;
           if (fabs(r - z) > 2 * 1.1920928955078125e-07 * fabs(z))
             status = 1;
         }
       gsl_test (status, "gsl_vector_long_double" "_div division");
     }
 
 
     gsl_vector_long_double_free (a);
     gsl_vector_long_double_free (b);
   }
 
 
 
 
   gsl_vector_long_double_free (v);
 }
 
 
 void
 test_long_double_binary (void)
 {
   gsl_vector_long_double * v = gsl_vector_long_double_calloc (1027);
   gsl_vector_long_double * w = gsl_vector_long_double_calloc (1027);
 
   size_t i;
 
   {
     FILE *f = fopen ("test.dat", "wb");
 
     for (i = 0; i < 1027; i++)
       {
         gsl_vector_long_double_set (v, i, (long double) (1027 - i));
       };
 
     gsl_vector_long_double_fwrite (f, v);
 
     fclose (f);
   }
 
   {
     FILE *f = fopen ("test.dat", "rb");
 
     gsl_vector_long_double_fread (f, w);
 
     status = 0;
     for (i = 0; i < 1027; i++)
       {
         if (w->data[i] != (long double) (1027 - i))
           status = 1;
       };
 
     gsl_test (status, "gsl_vector_long_double" "_write and read");
 
     fclose (f);
   }
 
   gsl_vector_long_double_free (v);
   gsl_vector_long_double_free (w);
 }
 
 void
 test_long_double_trap (void)
 {
   gsl_vector_long_double * v = gsl_vector_long_double_alloc (1027);
 
   size_t j = 0;
   double x;
 
   status = 0;
   gsl_vector_long_double_set (v, j - 1, (long double)0);
   gsl_test (!status, "gsl_vector_long_double" "_set traps index below lower bound");
 
   status = 0;
   gsl_vector_long_double_set (v, 1027 + 1, (long double)0);
   gsl_test (!status, "gsl_vector_long_double" "_set traps index above upper bound");
 
   status = 0;
   gsl_vector_long_double_set (v, 1027, (long double)0);
   gsl_test (!status, "gsl_vector_long_double" "_set traps index at upper bound");
 
   status = 0;
   x = gsl_vector_long_double_get (v, j - 1);
   gsl_test (!status, "gsl_vector_long_double" "_get traps index below lower bound");
   gsl_test (x != 0,
          "gsl_vector_long_double" "_get returns zero for index below lower bound");
 
   status = 0;
   x = gsl_vector_long_double_get (v, 1027 + 1);
   gsl_test (!status, "gsl_vector_long_double" "_get traps index above upper bound");
   gsl_test (x != 0,
          "gsl_vector_long_double" "_get returns zero for index above upper bound");
 
   status = 0;
   x = gsl_vector_long_double_get (v, 1027);
   gsl_test (!status, "gsl_vector_long_double" "_get traps index at upper bound");
   gsl_test (x != 0,
             "gsl_vector_long_double" "_get returns zero for index at upper bound");
 
   gsl_vector_long_double_free (v);
 }
 # 69 "test.c" 2
 
 # 1 "test_io.c" 1
 # 20 "test_io.c"
 void test_long_double_text (void);
 
 void
 test_long_double_text (void)
 {
   gsl_vector_long_double * v = gsl_vector_long_double_alloc (1027);
   gsl_vector_long_double * w = gsl_vector_long_double_alloc (1027);
 
   size_t i;
 
   {
     FILE *f = fopen ("test.txt", "w");
 
     for (i = 0; i < 1027; i++)
       {
         gsl_vector_long_double_set (v, i, (long double) i);
       };
 
     gsl_vector_long_double_fprintf (f, v, "%Lg");
 
     fclose (f);
   }
 
   {
     FILE *f = fopen ("test.txt", "r");
 
     gsl_vector_long_double_fscanf (f, w);
 
     status = 0;
     for (i = 0; i < 1027; i++)
       {
         if (w->data[i] != (long double) i)
           status = 1;
       };
 
     gsl_test (status, "gsl_vector_long_double" "_fprintf and fscanf");
 
     fclose (f);
   }
 
   gsl_vector_long_double_free (v);
   gsl_vector_long_double_free (w);
 }
 # 71 "test.c" 2
 
 # 1 "../templates_off.h" 1
 # 73 "test.c" 2
 
 
 
 # 1 "../templates_on.h" 1
 # 77 "test.c" 2
 # 1 "test_source.c" 1
 # 20 "test_source.c"
 void test_func (void);
 void test_binary (void);
 void test_trap (void);
 
 void
 test_func (void)
 {
   gsl_vector * v;
   size_t i;
 
   v = gsl_vector_calloc (1027);
 
   gsl_test (v->data == 0, "gsl_vector" "_alloc returns valid pointer");
   gsl_test (v->size != 1027, "gsl_vector" "_alloc returns valid size");
   gsl_test (v->stride != 1, "gsl_vector" "_alloc returns unit stride");
 
   for (i = 0; i < 1027; i++)
     {
       gsl_vector_set (v, i, (double) i);
     }
 
 
   status = 0;
 
   for (i = 0; i < 1027; i++)
     {
       if (v->data[i] != (double) i)
         status = 1;
     };
 
   gsl_test (status,
             "gsl_vector" "_set" " (static)" " writes into array");
 
 
   status = 0;
   for (i = 0; i < 1027; i++)
     {
       if (gsl_vector_get (v, i) != (double) i)
         status = 1;
     };
   gsl_test (status,
             "gsl_vector" "_get" " (static)" " reads from array");
 
 
 
 
   v->stride = 2;
 
   status = 0;
   for (i = 0; i < 1027 / 2; i++)
     {
       if (gsl_vector_get (v, i) != (double) (2 * i))
         status = 1;
     };
   gsl_test (status, "gsl_vector" "_get" " (static)" " reads with stride");
 
   for (i = 0; i < 1027 / 2; i++)
     {
       gsl_vector_set (v, i, (double) (i + 1000));
     };
 
   status = 0;
 
   for (i = 0; i < 1027 / 2; i++)
     {
       if (v->data[2 * i] != (double) (i + 1000))
         status = 1;
     };
 
   gsl_test (status, "gsl_vector" "_set" " (static)" " writes with stride");
 
 
 
   v->stride = 1 ;
 
   for (i = 0; i < 1027; i++)
     {
       gsl_vector_set (v, i, (double) i);
     }
 
   gsl_vector_swap_elements (v, 2, 5) ;
 
   status = (gsl_vector_get(v,2) != 5) ;
   status |= (gsl_vector_get(v,5) != 2) ;
 
   gsl_vector_swap_elements (v, 2, 5) ;
 
   status |= (gsl_vector_get(v,2) != 2) ;
   status |= (gsl_vector_get(v,5) != 5) ;
 
   gsl_test (status, "gsl_vector" "_swap_elements" " (static)" " exchanges elements") ;
 
   status = 0;
 
   gsl_vector_reverse (v) ;
 
   for (i = 0; i < 1027; i++)
     {
       status |= (gsl_vector_get (v, i) != (double) (1027 - i - 1));
     }
 
   gsl_test (status, "gsl_vector" "_reverse" " (static)" " reverses elements") ;
 
   {
     double exp_max = gsl_vector_get(v, 0);
     double exp_min = gsl_vector_get(v, 0);
     size_t exp_imax = 0, exp_imin = 0;
 
     for (i = 0; i < 1027; i++)
       {
         double k = gsl_vector_get (v, i) ;
         if (k < exp_min) {
           exp_min = gsl_vector_get (v, i);
           exp_imin = i;
         }
       }
 
     for (i = 0; i < 1027; i++)
       {
         double k = gsl_vector_get (v, i) ;
         if (k > exp_max) {
           exp_max = gsl_vector_get (v, i) ;
           exp_imax = i;
         }
       }
 
     {
       double max = gsl_vector_max (v) ;
 
       gsl_test (max != exp_max, "gsl_vector" "_max returns correct maximum value");
     }
 
     {
       double min = gsl_vector_min (v) ;
 
       gsl_test (min != exp_min, "gsl_vector" "_min returns correct minimum value");
     }
 
     {
       double min, max;
       gsl_vector_minmax (v, &min, &max);
 
       gsl_test (max != exp_max, "gsl_vector" "_minmax returns correct maximum value");
       gsl_test (min != exp_min, "gsl_vector" "_minmax returns correct minimum value");
     }
 
 
     {
       size_t imax = gsl_vector_max_index (v) ;
 
       gsl_test (imax != exp_imax, "gsl_vector" "_max_index returns correct maximum i");
     }
 
     {
       size_t imin = gsl_vector_min_index (v) ;
 
       gsl_test (imin != exp_imin, "gsl_vector" "_min_index returns correct minimum i");
     }
 
     {
       size_t imin, imax;
 
       gsl_vector_minmax_index (v, &imin, &imax);
 
       gsl_test (imax != exp_imax, "gsl_vector" "_minmax_index returns correct maximum i");
       gsl_test (imin != exp_imin, "gsl_vector" "_minmax_index returns correct minimum i");
     }
   }
 
 
   {
     gsl_vector * a = gsl_vector_calloc (1027);
     gsl_vector * b = gsl_vector_calloc (1027);
 
     for (i = 0; i < 1027; i++)
       {
         gsl_vector_set (a, i, (double)(3 + i));
         gsl_vector_set (b, i, (double)(3 + 2 * i));
       }
 
     gsl_vector_memcpy (v, a);
     gsl_vector_add (v, b);
 
     {
       int status = 0;
 
       for (i = 0; i < 1027; i++)
         {
           double r = gsl_vector_get (v,i);
           double x = gsl_vector_get (a,i);
           double y = gsl_vector_get (b,i);
           double z = x + y;
           if (r != z)
             status = 1;
         }
       gsl_test (status, "gsl_vector" "_add vector addition");
     }
 
 
     gsl_vector_memcpy (v, a);
     gsl_vector_sub (v, b);
 
     {
       int status = 0;
 
       for (i = 0; i < 1027; i++)
         {
           double r = gsl_vector_get (v,i);
           double x = gsl_vector_get (a,i);
           double y = gsl_vector_get (b,i);
           double z = x - y;
           if (r != z)
             status = 1;
         }
       gsl_test (status, "gsl_vector" "_sub vector subtraction");
     }
 
     gsl_vector_memcpy (v, a);
     gsl_vector_mul (v, b);
 
     {
       int status = 0;
 
       for (i = 0; i < 1027; i++)
         {
           double r = gsl_vector_get (v,i);
           double x = gsl_vector_get (a,i);
           double y = gsl_vector_get (b,i);
           double z = x * y;
           if (r != z)
             status = 1;
         }
       gsl_test (status, "gsl_vector" "_mul multiplication");
     }
 
     gsl_vector_memcpy (v, a);
     gsl_vector_div (v, b);
 
     {
       int status = 0;
 
       for (i = 0; i < 1027; i++)
         {
           double r = gsl_vector_get (v,i);
           double x = gsl_vector_get (a,i);
           double y = gsl_vector_get (b,i);
           double z = x / y;
           if (fabs(r - z) > 2 * 1.1920928955078125e-07 * fabs(z))
             status = 1;
         }
       gsl_test (status, "gsl_vector" "_div division");
     }
 
 
     gsl_vector_free (a);
     gsl_vector_free (b);
   }
 
 
 
 
   gsl_vector_free (v);
 }
 
 
 void
 test_binary (void)
 {
   gsl_vector * v = gsl_vector_calloc (1027);
   gsl_vector * w = gsl_vector_calloc (1027);
 
   size_t i;
 
   {
     FILE *f = fopen ("test.dat", "wb");
 
     for (i = 0; i < 1027; i++)
       {
         gsl_vector_set (v, i, (double) (1027 - i));
       };
 
     gsl_vector_fwrite (f, v);
 
     fclose (f);
   }
 
   {
     FILE *f = fopen ("test.dat", "rb");
 
     gsl_vector_fread (f, w);
 
     status = 0;
     for (i = 0; i < 1027; i++)
       {
         if (w->data[i] != (double) (1027 - i))
           status = 1;
       };
 
     gsl_test (status, "gsl_vector" "_write and read");
 
     fclose (f);
   }
 
   gsl_vector_free (v);
   gsl_vector_free (w);
 }
 
 void
 test_trap (void)
 {
   gsl_vector * v = gsl_vector_alloc (1027);
 
   size_t j = 0;
   double x;
 
   status = 0;
   gsl_vector_set (v, j - 1, (double)0);
   gsl_test (!status, "gsl_vector" "_set traps index below lower bound");
 
   status = 0;
   gsl_vector_set (v, 1027 + 1, (double)0);
   gsl_test (!status, "gsl_vector" "_set traps index above upper bound");
 
   status = 0;
   gsl_vector_set (v, 1027, (double)0);
   gsl_test (!status, "gsl_vector" "_set traps index at upper bound");
 
   status = 0;
   x = gsl_vector_get (v, j - 1);
   gsl_test (!status, "gsl_vector" "_get traps index below lower bound");
   gsl_test (x != 0,
          "gsl_vector" "_get returns zero for index below lower bound");
 
   status = 0;
   x = gsl_vector_get (v, 1027 + 1);
   gsl_test (!status, "gsl_vector" "_get traps index above upper bound");
   gsl_test (x != 0,
          "gsl_vector" "_get returns zero for index above upper bound");
 
   status = 0;
   x = gsl_vector_get (v, 1027);
   gsl_test (!status, "gsl_vector" "_get traps index at upper bound");
   gsl_test (x != 0,
             "gsl_vector" "_get returns zero for index at upper bound");
 
   gsl_vector_free (v);
 }
 # 78 "test.c" 2
 # 1 "test_io.c" 1
 # 20 "test_io.c"
 void test_text (void);
 
 void
 test_text (void)
 {
   gsl_vector * v = gsl_vector_alloc (1027);
   gsl_vector * w = gsl_vector_alloc (1027);
 
   size_t i;
 
   {
     FILE *f = fopen ("test.txt", "w");
 
     for (i = 0; i < 1027; i++)
       {
         gsl_vector_set (v, i, (double) i);
       };
 
     gsl_vector_fprintf (f, v, "%g");
 
     fclose (f);
   }
 
   {
     FILE *f = fopen ("test.txt", "r");
 
     gsl_vector_fscanf (f, w);
 
     status = 0;
     for (i = 0; i < 1027; i++)
       {
         if (w->data[i] != (double) i)
           status = 1;
       };
 
     gsl_test (status, "gsl_vector" "_fprintf and fscanf");
 
     fclose (f);
   }
 
   gsl_vector_free (v);
   gsl_vector_free (w);
 }
 # 79 "test.c" 2
 # 1 "../templates_off.h" 1
 # 80 "test.c" 2
 
 
 
 # 1 "../templates_on.h" 1
 # 84 "test.c" 2
 # 1 "test_source.c" 1
 # 20 "test_source.c"
 void test_float_func (void);
 void test_float_binary (void);
 void test_float_trap (void);
 
 void
 test_float_func (void)
 {
   gsl_vector_float * v;
   size_t i;
 
   v = gsl_vector_float_calloc (1027);
 
   gsl_test (v->data == 0, "gsl_vector_float" "_alloc returns valid pointer");
   gsl_test (v->size != 1027, "gsl_vector_float" "_alloc returns valid size");
   gsl_test (v->stride != 1, "gsl_vector_float" "_alloc returns unit stride");
 
   for (i = 0; i < 1027; i++)
     {
       gsl_vector_float_set (v, i, (float) i);
     }
 
 
   status = 0;
 
   for (i = 0; i < 1027; i++)
     {
       if (v->data[i] != (float) i)
         status = 1;
     };
 
   gsl_test (status,
             "gsl_vector_float" "_set" " (static)" " writes into array");
 
 
   status = 0;
   for (i = 0; i < 1027; i++)
     {
       if (gsl_vector_float_get (v, i) != (float) i)
         status = 1;
     };
   gsl_test (status,
             "gsl_vector_float" "_get" " (static)" " reads from array");
 
 
 
 
   v->stride = 2;
 
   status = 0;
   for (i = 0; i < 1027 / 2; i++)
     {
       if (gsl_vector_float_get (v, i) != (float) (2 * i))
         status = 1;
     };
   gsl_test (status, "gsl_vector_float" "_get" " (static)" " reads with stride");
 
   for (i = 0; i < 1027 / 2; i++)
     {
       gsl_vector_float_set (v, i, (float) (i + 1000));
     };
 
   status = 0;
 
   for (i = 0; i < 1027 / 2; i++)
     {
       if (v->data[2 * i] != (float) (i + 1000))
         status = 1;
     };
 
   gsl_test (status, "gsl_vector_float" "_set" " (static)" " writes with stride");
 
 
 
   v->stride = 1 ;
 
   for (i = 0; i < 1027; i++)
     {
       gsl_vector_float_set (v, i, (float) i);
     }
 
   gsl_vector_float_swap_elements (v, 2, 5) ;
 
   status = (gsl_vector_float_get(v,2) != 5) ;
   status |= (gsl_vector_float_get(v,5) != 2) ;
 
   gsl_vector_float_swap_elements (v, 2, 5) ;
 
   status |= (gsl_vector_float_get(v,2) != 2) ;
   status |= (gsl_vector_float_get(v,5) != 5) ;
 
   gsl_test (status, "gsl_vector_float" "_swap_elements" " (static)" " exchanges elements") ;
 
   status = 0;
 
   gsl_vector_float_reverse (v) ;
 
   for (i = 0; i < 1027; i++)
     {
       status |= (gsl_vector_float_get (v, i) != (float) (1027 - i - 1));
     }
 
   gsl_test (status, "gsl_vector_float" "_reverse" " (static)" " reverses elements") ;
 
   {
     float exp_max = gsl_vector_float_get(v, 0);
     float exp_min = gsl_vector_float_get(v, 0);
     size_t exp_imax = 0, exp_imin = 0;
 
     for (i = 0; i < 1027; i++)
       {
         float k = gsl_vector_float_get (v, i) ;
         if (k < exp_min) {
           exp_min = gsl_vector_float_get (v, i);
           exp_imin = i;
         }
       }
 
     for (i = 0; i < 1027; i++)
       {
         float k = gsl_vector_float_get (v, i) ;
         if (k > exp_max) {
           exp_max = gsl_vector_float_get (v, i) ;
           exp_imax = i;
         }
       }
 
     {
       float max = gsl_vector_float_max (v) ;
 
       gsl_test (max != exp_max, "gsl_vector_float" "_max returns correct maximum value");
     }
 
     {
       float min = gsl_vector_float_min (v) ;
 
       gsl_test (min != exp_min, "gsl_vector_float" "_min returns correct minimum value");
     }
 
     {
       float min, max;
       gsl_vector_float_minmax (v, &min, &max);
 
       gsl_test (max != exp_max, "gsl_vector_float" "_minmax returns correct maximum value");
       gsl_test (min != exp_min, "gsl_vector_float" "_minmax returns correct minimum value");
     }
 
 
     {
       size_t imax = gsl_vector_float_max_index (v) ;
 
       gsl_test (imax != exp_imax, "gsl_vector_float" "_max_index returns correct maximum i");
     }
 
     {
       size_t imin = gsl_vector_float_min_index (v) ;
 
       gsl_test (imin != exp_imin, "gsl_vector_float" "_min_index returns correct minimum i");
     }
 
     {
       size_t imin, imax;
 
       gsl_vector_float_minmax_index (v, &imin, &imax);
 
       gsl_test (imax != exp_imax, "gsl_vector_float" "_minmax_index returns correct maximum i");
       gsl_test (imin != exp_imin, "gsl_vector_float" "_minmax_index returns correct minimum i");
     }
   }
 
 
   {
     gsl_vector_float * a = gsl_vector_float_calloc (1027);
     gsl_vector_float * b = gsl_vector_float_calloc (1027);
 
     for (i = 0; i < 1027; i++)
       {
         gsl_vector_float_set (a, i, (float)(3 + i));
         gsl_vector_float_set (b, i, (float)(3 + 2 * i));
       }
 
     gsl_vector_float_memcpy (v, a);
     gsl_vector_float_add (v, b);
 
     {
       int status = 0;
 
       for (i = 0; i < 1027; i++)
         {
           float r = gsl_vector_float_get (v,i);
           float x = gsl_vector_float_get (a,i);
           float y = gsl_vector_float_get (b,i);
           float z = x + y;
           if (r != z)
             status = 1;
         }
       gsl_test (status, "gsl_vector_float" "_add vector addition");
     }
 
 
     gsl_vector_float_memcpy (v, a);
     gsl_vector_float_sub (v, b);
 
     {
       int status = 0;
 
       for (i = 0; i < 1027; i++)
         {
           float r = gsl_vector_float_get (v,i);
           float x = gsl_vector_float_get (a,i);
           float y = gsl_vector_float_get (b,i);
           float z = x - y;
           if (r != z)
             status = 1;
         }
       gsl_test (status, "gsl_vector_float" "_sub vector subtraction");
     }
 
     gsl_vector_float_memcpy (v, a);
     gsl_vector_float_mul (v, b);
 
     {
       int status = 0;
 
       for (i = 0; i < 1027; i++)
         {
           float r = gsl_vector_float_get (v,i);
           float x = gsl_vector_float_get (a,i);
           float y = gsl_vector_float_get (b,i);
           float z = x * y;
           if (r != z)
             status = 1;
         }
       gsl_test (status, "gsl_vector_float" "_mul multiplication");
     }
 
     gsl_vector_float_memcpy (v, a);
     gsl_vector_float_div (v, b);
 
     {
       int status = 0;
 
       for (i = 0; i < 1027; i++)
         {
           float r = gsl_vector_float_get (v,i);
           float x = gsl_vector_float_get (a,i);
           float y = gsl_vector_float_get (b,i);
           float z = x / y;
           if (fabs(r - z) > 2 * 1.1920928955078125e-07 * fabs(z))
             status = 1;
         }
       gsl_test (status, "gsl_vector_float" "_div division");
     }
 
 
     gsl_vector_float_free (a);
     gsl_vector_float_free (b);
   }
 
 
 
 
   gsl_vector_float_free (v);
 }
 
 
 void
 test_float_binary (void)
 {
   gsl_vector_float * v = gsl_vector_float_calloc (1027);
   gsl_vector_float * w = gsl_vector_float_calloc (1027);
 
   size_t i;
 
   {
     FILE *f = fopen ("test.dat", "wb");
 
     for (i = 0; i < 1027; i++)
       {
         gsl_vector_float_set (v, i, (float) (1027 - i));
       };
 
     gsl_vector_float_fwrite (f, v);
 
     fclose (f);
   }
 
   {
     FILE *f = fopen ("test.dat", "rb");
 
     gsl_vector_float_fread (f, w);
 
     status = 0;
     for (i = 0; i < 1027; i++)
       {
         if (w->data[i] != (float) (1027 - i))
           status = 1;
       };
 
     gsl_test (status, "gsl_vector_float" "_write and read");
 
     fclose (f);
   }
 
   gsl_vector_float_free (v);
   gsl_vector_float_free (w);
 }
 
 void
 test_float_trap (void)
 {
   gsl_vector_float * v = gsl_vector_float_alloc (1027);
 
   size_t j = 0;
   double x;
 
   status = 0;
   gsl_vector_float_set (v, j - 1, (float)0);
   gsl_test (!status, "gsl_vector_float" "_set traps index below lower bound");
 
   status = 0;
   gsl_vector_float_set (v, 1027 + 1, (float)0);
   gsl_test (!status, "gsl_vector_float" "_set traps index above upper bound");
 
   status = 0;
   gsl_vector_float_set (v, 1027, (float)0);
   gsl_test (!status, "gsl_vector_float" "_set traps index at upper bound");
 
   status = 0;
   x = gsl_vector_float_get (v, j - 1);
   gsl_test (!status, "gsl_vector_float" "_get traps index below lower bound");
   gsl_test (x != 0,
          "gsl_vector_float" "_get returns zero for index below lower bound");
 
   status = 0;
   x = gsl_vector_float_get (v, 1027 + 1);
   gsl_test (!status, "gsl_vector_float" "_get traps index above upper bound");
   gsl_test (x != 0,
          "gsl_vector_float" "_get returns zero for index above upper bound");
 
   status = 0;
   x = gsl_vector_float_get (v, 1027);
   gsl_test (!status, "gsl_vector_float" "_get traps index at upper bound");
   gsl_test (x != 0,
             "gsl_vector_float" "_get returns zero for index at upper bound");
 
   gsl_vector_float_free (v);
 }
 # 85 "test.c" 2
 # 1 "test_io.c" 1
 # 20 "test_io.c"
 void test_float_text (void);
 
 void
 test_float_text (void)
 {
   gsl_vector_float * v = gsl_vector_float_alloc (1027);
   gsl_vector_float * w = gsl_vector_float_alloc (1027);
 
   size_t i;
 
   {
     FILE *f = fopen ("test.txt", "w");
 
     for (i = 0; i < 1027; i++)
       {
         gsl_vector_float_set (v, i, (float) i);
       };
 
     gsl_vector_float_fprintf (f, v, "%g");
 
     fclose (f);
   }
 
   {
     FILE *f = fopen ("test.txt", "r");
 
     gsl_vector_float_fscanf (f, w);
 
     status = 0;
     for (i = 0; i < 1027; i++)
       {
         if (w->data[i] != (float) i)
           status = 1;
       };
 
     gsl_test (status, "gsl_vector_float" "_fprintf and fscanf");
 
     fclose (f);
   }
 
   gsl_vector_float_free (v);
   gsl_vector_float_free (w);
 }
 # 86 "test.c" 2
 # 1 "../templates_off.h" 1
 # 87 "test.c" 2
 
 
 
 # 1 "../templates_on.h" 1
 # 91 "test.c" 2
 # 1 "test_source.c" 1
 # 20 "test_source.c"
 void test_ulong_func (void);
 void test_ulong_binary (void);
 void test_ulong_trap (void);
 
 void
 test_ulong_func (void)
 {
   gsl_vector_ulong * v;
   size_t i;
 
   v = gsl_vector_ulong_calloc (1027);
 
   gsl_test (v->data == 0, "gsl_vector_ulong" "_alloc returns valid pointer");
   gsl_test (v->size != 1027, "gsl_vector_ulong" "_alloc returns valid size");
   gsl_test (v->stride != 1, "gsl_vector_ulong" "_alloc returns unit stride");
 
   for (i = 0; i < 1027; i++)
     {
       gsl_vector_ulong_set (v, i, (unsigned long) i);
     }
 
 
   status = 0;
 
   for (i = 0; i < 1027; i++)
     {
       if (v->data[i] != (unsigned long) i)
         status = 1;
     };
 
   gsl_test (status,
             "gsl_vector_ulong" "_set" " (static)" " writes into array");
 
 
   status = 0;
   for (i = 0; i < 1027; i++)
     {
       if (gsl_vector_ulong_get (v, i) != (unsigned long) i)
         status = 1;
     };
   gsl_test (status,
             "gsl_vector_ulong" "_get" " (static)" " reads from array");
 
 
 
 
   v->stride = 2;
 
   status = 0;
   for (i = 0; i < 1027 / 2; i++)
     {
       if (gsl_vector_ulong_get (v, i) != (unsigned long) (2 * i))
         status = 1;
     };
   gsl_test (status, "gsl_vector_ulong" "_get" " (static)" " reads with stride");
 
   for (i = 0; i < 1027 / 2; i++)
     {
       gsl_vector_ulong_set (v, i, (unsigned long) (i + 1000));
     };
 
   status = 0;
 
   for (i = 0; i < 1027 / 2; i++)
     {
       if (v->data[2 * i] != (unsigned long) (i + 1000))
         status = 1;
     };
 
   gsl_test (status, "gsl_vector_ulong" "_set" " (static)" " writes with stride");
 
 
 
   v->stride = 1 ;
 
   for (i = 0; i < 1027; i++)
     {
       gsl_vector_ulong_set (v, i, (unsigned long) i);
     }
 
   gsl_vector_ulong_swap_elements (v, 2, 5) ;
 
   status = (gsl_vector_ulong_get(v,2) != 5) ;
   status |= (gsl_vector_ulong_get(v,5) != 2) ;
 
   gsl_vector_ulong_swap_elements (v, 2, 5) ;
 
   status |= (gsl_vector_ulong_get(v,2) != 2) ;
   status |= (gsl_vector_ulong_get(v,5) != 5) ;
 
   gsl_test (status, "gsl_vector_ulong" "_swap_elements" " (static)" " exchanges elements") ;
 
   status = 0;
 
   gsl_vector_ulong_reverse (v) ;
 
   for (i = 0; i < 1027; i++)
     {
       status |= (gsl_vector_ulong_get (v, i) != (unsigned long) (1027 - i - 1));
     }
 
   gsl_test (status, "gsl_vector_ulong" "_reverse" " (static)" " reverses elements") ;
 
   {
     unsigned long exp_max = gsl_vector_ulong_get(v, 0);
     unsigned long exp_min = gsl_vector_ulong_get(v, 0);
     size_t exp_imax = 0, exp_imin = 0;
 
     for (i = 0; i < 1027; i++)
       {
         unsigned long k = gsl_vector_ulong_get (v, i) ;
         if (k < exp_min) {
           exp_min = gsl_vector_ulong_get (v, i);
           exp_imin = i;
         }
       }
 
     for (i = 0; i < 1027; i++)
       {
         unsigned long k = gsl_vector_ulong_get (v, i) ;
         if (k > exp_max) {
           exp_max = gsl_vector_ulong_get (v, i) ;
           exp_imax = i;
         }
       }
 
     {
       unsigned long max = gsl_vector_ulong_max (v) ;
 
       gsl_test (max != exp_max, "gsl_vector_ulong" "_max returns correct maximum value");
     }
 
     {
       unsigned long min = gsl_vector_ulong_min (v) ;
 
       gsl_test (min != exp_min, "gsl_vector_ulong" "_min returns correct minimum value");
     }
 
     {
       unsigned long min, max;
       gsl_vector_ulong_minmax (v, &min, &max);
 
       gsl_test (max != exp_max, "gsl_vector_ulong" "_minmax returns correct maximum value");
       gsl_test (min != exp_min, "gsl_vector_ulong" "_minmax returns correct minimum value");
     }
 
 
     {
       size_t imax = gsl_vector_ulong_max_index (v) ;
 
       gsl_test (imax != exp_imax, "gsl_vector_ulong" "_max_index returns correct maximum i");
     }
 
     {
       size_t imin = gsl_vector_ulong_min_index (v) ;
 
       gsl_test (imin != exp_imin, "gsl_vector_ulong" "_min_index returns correct minimum i");
     }
 
     {
       size_t imin, imax;
 
       gsl_vector_ulong_minmax_index (v, &imin, &imax);
 
       gsl_test (imax != exp_imax, "gsl_vector_ulong" "_minmax_index returns correct maximum i");
       gsl_test (imin != exp_imin, "gsl_vector_ulong" "_minmax_index returns correct minimum i");
     }
   }
 
 
   {
     gsl_vector_ulong * a = gsl_vector_ulong_calloc (1027);
     gsl_vector_ulong * b = gsl_vector_ulong_calloc (1027);
 
     for (i = 0; i < 1027; i++)
       {
         gsl_vector_ulong_set (a, i, (unsigned long)(3 + i));
         gsl_vector_ulong_set (b, i, (unsigned long)(3 + 2 * i));
       }
 
     gsl_vector_ulong_memcpy (v, a);
     gsl_vector_ulong_add (v, b);
 
     {
       int status = 0;
 
       for (i = 0; i < 1027; i++)
         {
           unsigned long r = gsl_vector_ulong_get (v,i);
           unsigned long x = gsl_vector_ulong_get (a,i);
           unsigned long y = gsl_vector_ulong_get (b,i);
           unsigned long z = x + y;
           if (r != z)
             status = 1;
         }
       gsl_test (status, "gsl_vector_ulong" "_add vector addition");
     }
 
 
     gsl_vector_ulong_memcpy (v, a);
     gsl_vector_ulong_sub (v, b);
 
     {
       int status = 0;
 
       for (i = 0; i < 1027; i++)
         {
           unsigned long r = gsl_vector_ulong_get (v,i);
           unsigned long x = gsl_vector_ulong_get (a,i);
           unsigned long y = gsl_vector_ulong_get (b,i);
           unsigned long z = x - y;
           if (r != z)
             status = 1;
         }
       gsl_test (status, "gsl_vector_ulong" "_sub vector subtraction");
     }
 
     gsl_vector_ulong_memcpy (v, a);
     gsl_vector_ulong_mul (v, b);
 
     {
       int status = 0;
 
       for (i = 0; i < 1027; i++)
         {
           unsigned long r = gsl_vector_ulong_get (v,i);
           unsigned long x = gsl_vector_ulong_get (a,i);
           unsigned long y = gsl_vector_ulong_get (b,i);
           unsigned long z = x * y;
           if (r != z)
             status = 1;
         }
       gsl_test (status, "gsl_vector_ulong" "_mul multiplication");
     }
 
     gsl_vector_ulong_memcpy (v, a);
     gsl_vector_ulong_div (v, b);
 
     {
       int status = 0;
 
       for (i = 0; i < 1027; i++)
         {
           unsigned long r = gsl_vector_ulong_get (v,i);
           unsigned long x = gsl_vector_ulong_get (a,i);
           unsigned long y = gsl_vector_ulong_get (b,i);
           unsigned long z = x / y;
           if (fabs(r - z) > 2 * 1.1920928955078125e-07 * fabs(z))
             status = 1;
         }
       gsl_test (status, "gsl_vector_ulong" "_div division");
     }
 
 
     gsl_vector_ulong_free (a);
     gsl_vector_ulong_free (b);
   }
 
 
 
 
   gsl_vector_ulong_free (v);
 }
 
 
 void
 test_ulong_binary (void)
 {
   gsl_vector_ulong * v = gsl_vector_ulong_calloc (1027);
   gsl_vector_ulong * w = gsl_vector_ulong_calloc (1027);
 
   size_t i;
 
   {
     FILE *f = fopen ("test.dat", "wb");
 
     for (i = 0; i < 1027; i++)
       {
         gsl_vector_ulong_set (v, i, (unsigned long) (1027 - i));
       };
 
     gsl_vector_ulong_fwrite (f, v);
 
     fclose (f);
   }
 
   {
     FILE *f = fopen ("test.dat", "rb");
 
     gsl_vector_ulong_fread (f, w);
 
     status = 0;
     for (i = 0; i < 1027; i++)
       {
         if (w->data[i] != (unsigned long) (1027 - i))
           status = 1;
       };
 
     gsl_test (status, "gsl_vector_ulong" "_write and read");
 
     fclose (f);
   }
 
   gsl_vector_ulong_free (v);
   gsl_vector_ulong_free (w);
 }
 
 void
 test_ulong_trap (void)
 {
   gsl_vector_ulong * v = gsl_vector_ulong_alloc (1027);
 
   size_t j = 0;
   double x;
 
   status = 0;
   gsl_vector_ulong_set (v, j - 1, (unsigned long)0);
   gsl_test (!status, "gsl_vector_ulong" "_set traps index below lower bound");
 
   status = 0;
   gsl_vector_ulong_set (v, 1027 + 1, (unsigned long)0);
   gsl_test (!status, "gsl_vector_ulong" "_set traps index above upper bound");
 
   status = 0;
   gsl_vector_ulong_set (v, 1027, (unsigned long)0);
   gsl_test (!status, "gsl_vector_ulong" "_set traps index at upper bound");
 
   status = 0;
   x = gsl_vector_ulong_get (v, j - 1);
   gsl_test (!status, "gsl_vector_ulong" "_get traps index below lower bound");
   gsl_test (x != 0,
          "gsl_vector_ulong" "_get returns zero for index below lower bound");
 
   status = 0;
   x = gsl_vector_ulong_get (v, 1027 + 1);
   gsl_test (!status, "gsl_vector_ulong" "_get traps index above upper bound");
   gsl_test (x != 0,
          "gsl_vector_ulong" "_get returns zero for index above upper bound");
 
   status = 0;
   x = gsl_vector_ulong_get (v, 1027);
   gsl_test (!status, "gsl_vector_ulong" "_get traps index at upper bound");
   gsl_test (x != 0,
             "gsl_vector_ulong" "_get returns zero for index at upper bound");
 
   gsl_vector_ulong_free (v);
 }
 # 92 "test.c" 2
 # 1 "test_io.c" 1
 # 20 "test_io.c"
 void test_ulong_text (void);
 
 void
 test_ulong_text (void)
 {
   gsl_vector_ulong * v = gsl_vector_ulong_alloc (1027);
   gsl_vector_ulong * w = gsl_vector_ulong_alloc (1027);
 
   size_t i;
 
   {
     FILE *f = fopen ("test.txt", "w");
 
     for (i = 0; i < 1027; i++)
       {
         gsl_vector_ulong_set (v, i, (unsigned long) i);
       };
 
     gsl_vector_ulong_fprintf (f, v, "%lu");
 
     fclose (f);
   }
 
   {
     FILE *f = fopen ("test.txt", "r");
 
     gsl_vector_ulong_fscanf (f, w);
 
     status = 0;
     for (i = 0; i < 1027; i++)
       {
         if (w->data[i] != (unsigned long) i)
           status = 1;
       };
 
     gsl_test (status, "gsl_vector_ulong" "_fprintf and fscanf");
 
     fclose (f);
   }
 
   gsl_vector_ulong_free (v);
   gsl_vector_ulong_free (w);
 }
 # 93 "test.c" 2
 # 1 "../templates_off.h" 1
 # 94 "test.c" 2
 
 
 
 # 1 "../templates_on.h" 1
 # 98 "test.c" 2
 # 1 "test_source.c" 1
 # 20 "test_source.c"
 void test_long_func (void);
 void test_long_binary (void);
 void test_long_trap (void);
 
 void
 test_long_func (void)
 {
   gsl_vector_long * v;
   size_t i;
 
   v = gsl_vector_long_calloc (1027);
 
   gsl_test (v->data == 0, "gsl_vector_long" "_alloc returns valid pointer");
   gsl_test (v->size != 1027, "gsl_vector_long" "_alloc returns valid size");
   gsl_test (v->stride != 1, "gsl_vector_long" "_alloc returns unit stride");
 
   for (i = 0; i < 1027; i++)
     {
       gsl_vector_long_set (v, i, (long) i);
     }
 
 
   status = 0;
 
   for (i = 0; i < 1027; i++)
     {
       if (v->data[i] != (long) i)
         status = 1;
     };
 
   gsl_test (status,
             "gsl_vector_long" "_set" " (static)" " writes into array");
 
 
   status = 0;
   for (i = 0; i < 1027; i++)
     {
       if (gsl_vector_long_get (v, i) != (long) i)
         status = 1;
     };
   gsl_test (status,
             "gsl_vector_long" "_get" " (static)" " reads from array");
 
 
 
 
   v->stride = 2;
 
   status = 0;
   for (i = 0; i < 1027 / 2; i++)
     {
       if (gsl_vector_long_get (v, i) != (long) (2 * i))
         status = 1;
     };
   gsl_test (status, "gsl_vector_long" "_get" " (static)" " reads with stride");
 
   for (i = 0; i < 1027 / 2; i++)
     {
       gsl_vector_long_set (v, i, (long) (i + 1000));
     };
 
   status = 0;
 
   for (i = 0; i < 1027 / 2; i++)
     {
       if (v->data[2 * i] != (long) (i + 1000))
         status = 1;
     };
 
   gsl_test (status, "gsl_vector_long" "_set" " (static)" " writes with stride");
 
 
 
   v->stride = 1 ;
 
   for (i = 0; i < 1027; i++)
     {
       gsl_vector_long_set (v, i, (long) i);
     }
 
   gsl_vector_long_swap_elements (v, 2, 5) ;
 
   status = (gsl_vector_long_get(v,2) != 5) ;
   status |= (gsl_vector_long_get(v,5) != 2) ;
 
   gsl_vector_long_swap_elements (v, 2, 5) ;
 
   status |= (gsl_vector_long_get(v,2) != 2) ;
   status |= (gsl_vector_long_get(v,5) != 5) ;
 
   gsl_test (status, "gsl_vector_long" "_swap_elements" " (static)" " exchanges elements") ;
 
   status = 0;
 
   gsl_vector_long_reverse (v) ;
 
   for (i = 0; i < 1027; i++)
     {
       status |= (gsl_vector_long_get (v, i) != (long) (1027 - i - 1));
     }
 
   gsl_test (status, "gsl_vector_long" "_reverse" " (static)" " reverses elements") ;
 
   {
     long exp_max = gsl_vector_long_get(v, 0);
     long exp_min = gsl_vector_long_get(v, 0);
     size_t exp_imax = 0, exp_imin = 0;
 
     for (i = 0; i < 1027; i++)
       {
         long k = gsl_vector_long_get (v, i) ;
         if (k < exp_min) {
           exp_min = gsl_vector_long_get (v, i);
           exp_imin = i;
         }
       }
 
     for (i = 0; i < 1027; i++)
       {
         long k = gsl_vector_long_get (v, i) ;
         if (k > exp_max) {
           exp_max = gsl_vector_long_get (v, i) ;
           exp_imax = i;
         }
       }
 
     {
       long max = gsl_vector_long_max (v) ;
 
       gsl_test (max != exp_max, "gsl_vector_long" "_max returns correct maximum value");
     }
 
     {
       long min = gsl_vector_long_min (v) ;
 
       gsl_test (min != exp_min, "gsl_vector_long" "_min returns correct minimum value");
     }
 
     {
       long min, max;
       gsl_vector_long_minmax (v, &min, &max);
 
       gsl_test (max != exp_max, "gsl_vector_long" "_minmax returns correct maximum value");
       gsl_test (min != exp_min, "gsl_vector_long" "_minmax returns correct minimum value");
     }
 
 
     {
       size_t imax = gsl_vector_long_max_index (v) ;
 
       gsl_test (imax != exp_imax, "gsl_vector_long" "_max_index returns correct maximum i");
     }
 
     {
       size_t imin = gsl_vector_long_min_index (v) ;
 
       gsl_test (imin != exp_imin, "gsl_vector_long" "_min_index returns correct minimum i");
     }
 
     {
       size_t imin, imax;
 
       gsl_vector_long_minmax_index (v, &imin, &imax);
 
       gsl_test (imax != exp_imax, "gsl_vector_long" "_minmax_index returns correct maximum i");
       gsl_test (imin != exp_imin, "gsl_vector_long" "_minmax_index returns correct minimum i");
     }
   }
 
 
   {
     gsl_vector_long * a = gsl_vector_long_calloc (1027);
     gsl_vector_long * b = gsl_vector_long_calloc (1027);
 
     for (i = 0; i < 1027; i++)
       {
         gsl_vector_long_set (a, i, (long)(3 + i));
         gsl_vector_long_set (b, i, (long)(3 + 2 * i));
       }
 
     gsl_vector_long_memcpy (v, a);
     gsl_vector_long_add (v, b);
 
     {
       int status = 0;
 
       for (i = 0; i < 1027; i++)
         {
           long r = gsl_vector_long_get (v,i);
           long x = gsl_vector_long_get (a,i);
           long y = gsl_vector_long_get (b,i);
           long z = x + y;
           if (r != z)
             status = 1;
         }
       gsl_test (status, "gsl_vector_long" "_add vector addition");
     }
 
 
     gsl_vector_long_memcpy (v, a);
     gsl_vector_long_sub (v, b);
 
     {
       int status = 0;
 
       for (i = 0; i < 1027; i++)
         {
           long r = gsl_vector_long_get (v,i);
           long x = gsl_vector_long_get (a,i);
           long y = gsl_vector_long_get (b,i);
           long z = x - y;
           if (r != z)
             status = 1;
         }
       gsl_test (status, "gsl_vector_long" "_sub vector subtraction");
     }
 
     gsl_vector_long_memcpy (v, a);
     gsl_vector_long_mul (v, b);
 
     {
       int status = 0;
 
       for (i = 0; i < 1027; i++)
         {
           long r = gsl_vector_long_get (v,i);
           long x = gsl_vector_long_get (a,i);
           long y = gsl_vector_long_get (b,i);
           long z = x * y;
           if (r != z)
             status = 1;
         }
       gsl_test (status, "gsl_vector_long" "_mul multiplication");
     }
 
     gsl_vector_long_memcpy (v, a);
     gsl_vector_long_div (v, b);
 
     {
       int status = 0;
 
       for (i = 0; i < 1027; i++)
         {
           long r = gsl_vector_long_get (v,i);
           long x = gsl_vector_long_get (a,i);
           long y = gsl_vector_long_get (b,i);
           long z = x / y;
           if (fabs(r - z) > 2 * 1.1920928955078125e-07 * fabs(z))
             status = 1;
         }
       gsl_test (status, "gsl_vector_long" "_div division");
     }
 
 
     gsl_vector_long_free (a);
     gsl_vector_long_free (b);
   }
 
 
 
 
   gsl_vector_long_free (v);
 }
 
 
 void
 test_long_binary (void)
 {
   gsl_vector_long * v = gsl_vector_long_calloc (1027);
   gsl_vector_long * w = gsl_vector_long_calloc (1027);
 
   size_t i;
 
   {
     FILE *f = fopen ("test.dat", "wb");
 
     for (i = 0; i < 1027; i++)
       {
         gsl_vector_long_set (v, i, (long) (1027 - i));
       };
 
     gsl_vector_long_fwrite (f, v);
 
     fclose (f);
   }
 
   {
     FILE *f = fopen ("test.dat", "rb");
 
     gsl_vector_long_fread (f, w);
 
     status = 0;
     for (i = 0; i < 1027; i++)
       {
         if (w->data[i] != (long) (1027 - i))
           status = 1;
       };
 
     gsl_test (status, "gsl_vector_long" "_write and read");
 
     fclose (f);
   }
 
   gsl_vector_long_free (v);
   gsl_vector_long_free (w);
 }
 
 void
 test_long_trap (void)
 {
   gsl_vector_long * v = gsl_vector_long_alloc (1027);
 
   size_t j = 0;
   double x;
 
   status = 0;
   gsl_vector_long_set (v, j - 1, (long)0);
   gsl_test (!status, "gsl_vector_long" "_set traps index below lower bound");
 
   status = 0;
   gsl_vector_long_set (v, 1027 + 1, (long)0);
   gsl_test (!status, "gsl_vector_long" "_set traps index above upper bound");
 
   status = 0;
   gsl_vector_long_set (v, 1027, (long)0);
   gsl_test (!status, "gsl_vector_long" "_set traps index at upper bound");
 
   status = 0;
   x = gsl_vector_long_get (v, j - 1);
   gsl_test (!status, "gsl_vector_long" "_get traps index below lower bound");
   gsl_test (x != 0,
          "gsl_vector_long" "_get returns zero for index below lower bound");
 
   status = 0;
   x = gsl_vector_long_get (v, 1027 + 1);
   gsl_test (!status, "gsl_vector_long" "_get traps index above upper bound");
   gsl_test (x != 0,
          "gsl_vector_long" "_get returns zero for index above upper bound");
 
   status = 0;
   x = gsl_vector_long_get (v, 1027);
   gsl_test (!status, "gsl_vector_long" "_get traps index at upper bound");
   gsl_test (x != 0,
             "gsl_vector_long" "_get returns zero for index at upper bound");
 
   gsl_vector_long_free (v);
 }
 # 99 "test.c" 2
 # 1 "test_io.c" 1
 # 20 "test_io.c"
 void test_long_text (void);
 
 void
 test_long_text (void)
 {
   gsl_vector_long * v = gsl_vector_long_alloc (1027);
   gsl_vector_long * w = gsl_vector_long_alloc (1027);
 
   size_t i;
 
   {
     FILE *f = fopen ("test.txt", "w");
 
     for (i = 0; i < 1027; i++)
       {
         gsl_vector_long_set (v, i, (long) i);
       };
 
     gsl_vector_long_fprintf (f, v, "%ld");
 
     fclose (f);
   }
 
   {
     FILE *f = fopen ("test.txt", "r");
 
     gsl_vector_long_fscanf (f, w);
 
     status = 0;
     for (i = 0; i < 1027; i++)
       {
         if (w->data[i] != (long) i)
           status = 1;
       };
 
     gsl_test (status, "gsl_vector_long" "_fprintf and fscanf");
 
     fclose (f);
   }
 
   gsl_vector_long_free (v);
   gsl_vector_long_free (w);
 }
 # 100 "test.c" 2
 # 1 "../templates_off.h" 1
 # 101 "test.c" 2
 
 
 
 # 1 "../templates_on.h" 1
 # 105 "test.c" 2
 # 1 "test_source.c" 1
 # 20 "test_source.c"
 void test_uint_func (void);
 void test_uint_binary (void);
 void test_uint_trap (void);
 
 void
 test_uint_func (void)
 {
   gsl_vector_uint * v;
   size_t i;
 
   v = gsl_vector_uint_calloc (1027);
 
   gsl_test (v->data == 0, "gsl_vector_uint" "_alloc returns valid pointer");
   gsl_test (v->size != 1027, "gsl_vector_uint" "_alloc returns valid size");
   gsl_test (v->stride != 1, "gsl_vector_uint" "_alloc returns unit stride");
 
   for (i = 0; i < 1027; i++)
     {
       gsl_vector_uint_set (v, i, (unsigned int) i);
     }
 
 
   status = 0;
 
   for (i = 0; i < 1027; i++)
     {
       if (v->data[i] != (unsigned int) i)
         status = 1;
     };
 
   gsl_test (status,
             "gsl_vector_uint" "_set" " (static)" " writes into array");
 
 
   status = 0;
   for (i = 0; i < 1027; i++)
     {
       if (gsl_vector_uint_get (v, i) != (unsigned int) i)
         status = 1;
     };
   gsl_test (status,
             "gsl_vector_uint" "_get" " (static)" " reads from array");
 
 
 
 
   v->stride = 2;
 
   status = 0;
   for (i = 0; i < 1027 / 2; i++)
     {
       if (gsl_vector_uint_get (v, i) != (unsigned int) (2 * i))
         status = 1;
     };
   gsl_test (status, "gsl_vector_uint" "_get" " (static)" " reads with stride");
 
   for (i = 0; i < 1027 / 2; i++)
     {
       gsl_vector_uint_set (v, i, (unsigned int) (i + 1000));
     };
 
   status = 0;
 
   for (i = 0; i < 1027 / 2; i++)
     {
       if (v->data[2 * i] != (unsigned int) (i + 1000))
         status = 1;
     };
 
   gsl_test (status, "gsl_vector_uint" "_set" " (static)" " writes with stride");
 
 
 
   v->stride = 1 ;
 
   for (i = 0; i < 1027; i++)
     {
       gsl_vector_uint_set (v, i, (unsigned int) i);
     }
 
   gsl_vector_uint_swap_elements (v, 2, 5) ;
 
   status = (gsl_vector_uint_get(v,2) != 5) ;
   status |= (gsl_vector_uint_get(v,5) != 2) ;
 
   gsl_vector_uint_swap_elements (v, 2, 5) ;
 
   status |= (gsl_vector_uint_get(v,2) != 2) ;
   status |= (gsl_vector_uint_get(v,5) != 5) ;
 
   gsl_test (status, "gsl_vector_uint" "_swap_elements" " (static)" " exchanges elements") ;
 
   status = 0;
 
   gsl_vector_uint_reverse (v) ;
 
   for (i = 0; i < 1027; i++)
     {
       status |= (gsl_vector_uint_get (v, i) != (unsigned int) (1027 - i - 1));
     }
 
   gsl_test (status, "gsl_vector_uint" "_reverse" " (static)" " reverses elements") ;
 
   {
     unsigned int exp_max = gsl_vector_uint_get(v, 0);
     unsigned int exp_min = gsl_vector_uint_get(v, 0);
     size_t exp_imax = 0, exp_imin = 0;
 
     for (i = 0; i < 1027; i++)
       {
         unsigned int k = gsl_vector_uint_get (v, i) ;
         if (k < exp_min) {
           exp_min = gsl_vector_uint_get (v, i);
           exp_imin = i;
         }
       }
 
     for (i = 0; i < 1027; i++)
       {
         unsigned int k = gsl_vector_uint_get (v, i) ;
         if (k > exp_max) {
           exp_max = gsl_vector_uint_get (v, i) ;
           exp_imax = i;
         }
       }
 
     {
       unsigned int max = gsl_vector_uint_max (v) ;
 
       gsl_test (max != exp_max, "gsl_vector_uint" "_max returns correct maximum value");
     }
 
     {
       unsigned int min = gsl_vector_uint_min (v) ;
 
       gsl_test (min != exp_min, "gsl_vector_uint" "_min returns correct minimum value");
     }
 
     {
       unsigned int min, max;
       gsl_vector_uint_minmax (v, &min, &max);
 
       gsl_test (max != exp_max, "gsl_vector_uint" "_minmax returns correct maximum value");
       gsl_test (min != exp_min, "gsl_vector_uint" "_minmax returns correct minimum value");
     }
 
 
     {
       size_t imax = gsl_vector_uint_max_index (v) ;
 
       gsl_test (imax != exp_imax, "gsl_vector_uint" "_max_index returns correct maximum i");
     }
 
     {
       size_t imin = gsl_vector_uint_min_index (v) ;
 
       gsl_test (imin != exp_imin, "gsl_vector_uint" "_min_index returns correct minimum i");
     }
 
     {
       size_t imin, imax;
 
       gsl_vector_uint_minmax_index (v, &imin, &imax);
 
       gsl_test (imax != exp_imax, "gsl_vector_uint" "_minmax_index returns correct maximum i");
       gsl_test (imin != exp_imin, "gsl_vector_uint" "_minmax_index returns correct minimum i");
     }
   }
 
 
   {
     gsl_vector_uint * a = gsl_vector_uint_calloc (1027);
     gsl_vector_uint * b = gsl_vector_uint_calloc (1027);
 
     for (i = 0; i < 1027; i++)
       {
         gsl_vector_uint_set (a, i, (unsigned int)(3 + i));
         gsl_vector_uint_set (b, i, (unsigned int)(3 + 2 * i));
       }
 
     gsl_vector_uint_memcpy (v, a);
     gsl_vector_uint_add (v, b);
 
     {
       int status = 0;
 
       for (i = 0; i < 1027; i++)
         {
           unsigned int r = gsl_vector_uint_get (v,i);
           unsigned int x = gsl_vector_uint_get (a,i);
           unsigned int y = gsl_vector_uint_get (b,i);
           unsigned int z = x + y;
           if (r != z)
             status = 1;
         }
       gsl_test (status, "gsl_vector_uint" "_add vector addition");
     }
 
 
     gsl_vector_uint_memcpy (v, a);
     gsl_vector_uint_sub (v, b);
 
     {
       int status = 0;
 
       for (i = 0; i < 1027; i++)
         {
           unsigned int r = gsl_vector_uint_get (v,i);
           unsigned int x = gsl_vector_uint_get (a,i);
           unsigned int y = gsl_vector_uint_get (b,i);
           unsigned int z = x - y;
           if (r != z)
             status = 1;
         }
       gsl_test (status, "gsl_vector_uint" "_sub vector subtraction");
     }
 
     gsl_vector_uint_memcpy (v, a);
     gsl_vector_uint_mul (v, b);
 
     {
       int status = 0;
 
       for (i = 0; i < 1027; i++)
         {
           unsigned int r = gsl_vector_uint_get (v,i);
           unsigned int x = gsl_vector_uint_get (a,i);
           unsigned int y = gsl_vector_uint_get (b,i);
           unsigned int z = x * y;
           if (r != z)
             status = 1;
         }
       gsl_test (status, "gsl_vector_uint" "_mul multiplication");
     }
 
     gsl_vector_uint_memcpy (v, a);
     gsl_vector_uint_div (v, b);
 
     {
       int status = 0;
 
       for (i = 0; i < 1027; i++)
         {
           unsigned int r = gsl_vector_uint_get (v,i);
           unsigned int x = gsl_vector_uint_get (a,i);
           unsigned int y = gsl_vector_uint_get (b,i);
           unsigned int z = x / y;
           if (fabs(r - z) > 2 * 1.1920928955078125e-07 * fabs(z))
             status = 1;
         }
       gsl_test (status, "gsl_vector_uint" "_div division");
     }
 
 
     gsl_vector_uint_free (a);
     gsl_vector_uint_free (b);
   }
 
 
 
 
   gsl_vector_uint_free (v);
 }
 
 
 void
 test_uint_binary (void)
 {
   gsl_vector_uint * v = gsl_vector_uint_calloc (1027);
   gsl_vector_uint * w = gsl_vector_uint_calloc (1027);
 
   size_t i;
 
   {
     FILE *f = fopen ("test.dat", "wb");
 
     for (i = 0; i < 1027; i++)
       {
         gsl_vector_uint_set (v, i, (unsigned int) (1027 - i));
       };
 
     gsl_vector_uint_fwrite (f, v);
 
     fclose (f);
   }
 
   {
     FILE *f = fopen ("test.dat", "rb");
 
     gsl_vector_uint_fread (f, w);
 
     status = 0;
     for (i = 0; i < 1027; i++)
       {
         if (w->data[i] != (unsigned int) (1027 - i))
           status = 1;
       };
 
     gsl_test (status, "gsl_vector_uint" "_write and read");
 
     fclose (f);
   }
 
   gsl_vector_uint_free (v);
   gsl_vector_uint_free (w);
 }
 
 void
 test_uint_trap (void)
 {
   gsl_vector_uint * v = gsl_vector_uint_alloc (1027);
 
   size_t j = 0;
   double x;
 
   status = 0;
   gsl_vector_uint_set (v, j - 1, (unsigned int)0);
   gsl_test (!status, "gsl_vector_uint" "_set traps index below lower bound");
 
   status = 0;
   gsl_vector_uint_set (v, 1027 + 1, (unsigned int)0);
   gsl_test (!status, "gsl_vector_uint" "_set traps index above upper bound");
 
   status = 0;
   gsl_vector_uint_set (v, 1027, (unsigned int)0);
   gsl_test (!status, "gsl_vector_uint" "_set traps index at upper bound");
 
   status = 0;
   x = gsl_vector_uint_get (v, j - 1);
   gsl_test (!status, "gsl_vector_uint" "_get traps index below lower bound");
   gsl_test (x != 0,
          "gsl_vector_uint" "_get returns zero for index below lower bound");
 
   status = 0;
   x = gsl_vector_uint_get (v, 1027 + 1);
   gsl_test (!status, "gsl_vector_uint" "_get traps index above upper bound");
   gsl_test (x != 0,
          "gsl_vector_uint" "_get returns zero for index above upper bound");
 
   status = 0;
   x = gsl_vector_uint_get (v, 1027);
   gsl_test (!status, "gsl_vector_uint" "_get traps index at upper bound");
   gsl_test (x != 0,
             "gsl_vector_uint" "_get returns zero for index at upper bound");
 
   gsl_vector_uint_free (v);
 }
 # 106 "test.c" 2
 # 1 "test_io.c" 1
 # 20 "test_io.c"
 void test_uint_text (void);
 
 void
 test_uint_text (void)
 {
   gsl_vector_uint * v = gsl_vector_uint_alloc (1027);
   gsl_vector_uint * w = gsl_vector_uint_alloc (1027);
 
   size_t i;
 
   {
     FILE *f = fopen ("test.txt", "w");
 
     for (i = 0; i < 1027; i++)
       {
         gsl_vector_uint_set (v, i, (unsigned int) i);
       };
 
     gsl_vector_uint_fprintf (f, v, "%u");
 
     fclose (f);
   }
 
   {
     FILE *f = fopen ("test.txt", "r");
 
     gsl_vector_uint_fscanf (f, w);
 
     status = 0;
     for (i = 0; i < 1027; i++)
       {
         if (w->data[i] != (unsigned int) i)
           status = 1;
       };
 
     gsl_test (status, "gsl_vector_uint" "_fprintf and fscanf");
 
     fclose (f);
   }
 
   gsl_vector_uint_free (v);
   gsl_vector_uint_free (w);
 }
 # 107 "test.c" 2
 # 1 "../templates_off.h" 1
 # 108 "test.c" 2
 
 
 
 # 1 "../templates_on.h" 1
 # 112 "test.c" 2
 # 1 "test_source.c" 1
 # 20 "test_source.c"
 void test_int_func (void);
 void test_int_binary (void);
 void test_int_trap (void);
 
 void
 test_int_func (void)
 {
   gsl_vector_int * v;
   size_t i;
 
   v = gsl_vector_int_calloc (1027);
 
   gsl_test (v->data == 0, "gsl_vector_int" "_alloc returns valid pointer");
   gsl_test (v->size != 1027, "gsl_vector_int" "_alloc returns valid size");
   gsl_test (v->stride != 1, "gsl_vector_int" "_alloc returns unit stride");
 
   for (i = 0; i < 1027; i++)
     {
       gsl_vector_int_set (v, i, (int) i);
     }
 
 
   status = 0;
 
   for (i = 0; i < 1027; i++)
     {
       if (v->data[i] != (int) i)
         status = 1;
     };
 
   gsl_test (status,
             "gsl_vector_int" "_set" " (static)" " writes into array");
 
 
   status = 0;
   for (i = 0; i < 1027; i++)
     {
       if (gsl_vector_int_get (v, i) != (int) i)
         status = 1;
     };
   gsl_test (status,
             "gsl_vector_int" "_get" " (static)" " reads from array");
 
 
 
 
   v->stride = 2;
 
   status = 0;
   for (i = 0; i < 1027 / 2; i++)
     {
       if (gsl_vector_int_get (v, i) != (int) (2 * i))
         status = 1;
     };
   gsl_test (status, "gsl_vector_int" "_get" " (static)" " reads with stride");
 
   for (i = 0; i < 1027 / 2; i++)
     {
       gsl_vector_int_set (v, i, (int) (i + 1000));
     };
 
   status = 0;
 
   for (i = 0; i < 1027 / 2; i++)
     {
       if (v->data[2 * i] != (int) (i + 1000))
         status = 1;
     };
 
   gsl_test (status, "gsl_vector_int" "_set" " (static)" " writes with stride");
 
 
 
   v->stride = 1 ;
 
   for (i = 0; i < 1027; i++)
     {
       gsl_vector_int_set (v, i, (int) i);
     }
 
   gsl_vector_int_swap_elements (v, 2, 5) ;
 
   status = (gsl_vector_int_get(v,2) != 5) ;
   status |= (gsl_vector_int_get(v,5) != 2) ;
 
   gsl_vector_int_swap_elements (v, 2, 5) ;
 
   status |= (gsl_vector_int_get(v,2) != 2) ;
   status |= (gsl_vector_int_get(v,5) != 5) ;
 
   gsl_test (status, "gsl_vector_int" "_swap_elements" " (static)" " exchanges elements") ;
 
   status = 0;
 
   gsl_vector_int_reverse (v) ;
 
   for (i = 0; i < 1027; i++)
     {
       status |= (gsl_vector_int_get (v, i) != (int) (1027 - i - 1));
     }
 
   gsl_test (status, "gsl_vector_int" "_reverse" " (static)" " reverses elements") ;
 
   {
     int exp_max = gsl_vector_int_get(v, 0);
     int exp_min = gsl_vector_int_get(v, 0);
     size_t exp_imax = 0, exp_imin = 0;
 
     for (i = 0; i < 1027; i++)
       {
         int k = gsl_vector_int_get (v, i) ;
         if (k < exp_min) {
           exp_min = gsl_vector_int_get (v, i);
           exp_imin = i;
         }
       }
 
     for (i = 0; i < 1027; i++)
       {
         int k = gsl_vector_int_get (v, i) ;
         if (k > exp_max) {
           exp_max = gsl_vector_int_get (v, i) ;
           exp_imax = i;
         }
       }
 
     {
       int max = gsl_vector_int_max (v) ;
 
       gsl_test (max != exp_max, "gsl_vector_int" "_max returns correct maximum value");
     }
 
     {
       int min = gsl_vector_int_min (v) ;
 
       gsl_test (min != exp_min, "gsl_vector_int" "_min returns correct minimum value");
     }
 
     {
       int min, max;
       gsl_vector_int_minmax (v, &min, &max);
 
       gsl_test (max != exp_max, "gsl_vector_int" "_minmax returns correct maximum value");
       gsl_test (min != exp_min, "gsl_vector_int" "_minmax returns correct minimum value");
     }
 
 
     {
       size_t imax = gsl_vector_int_max_index (v) ;
 
       gsl_test (imax != exp_imax, "gsl_vector_int" "_max_index returns correct maximum i");
     }
 
     {
       size_t imin = gsl_vector_int_min_index (v) ;
 
       gsl_test (imin != exp_imin, "gsl_vector_int" "_min_index returns correct minimum i");
     }
 
     {
       size_t imin, imax;
 
       gsl_vector_int_minmax_index (v, &imin, &imax);
 
       gsl_test (imax != exp_imax, "gsl_vector_int" "_minmax_index returns correct maximum i");
       gsl_test (imin != exp_imin, "gsl_vector_int" "_minmax_index returns correct minimum i");
     }
   }
 
 
   {
     gsl_vector_int * a = gsl_vector_int_calloc (1027);
     gsl_vector_int * b = gsl_vector_int_calloc (1027);
 
     for (i = 0; i < 1027; i++)
       {
         gsl_vector_int_set (a, i, (int)(3 + i));
         gsl_vector_int_set (b, i, (int)(3 + 2 * i));
       }
 
     gsl_vector_int_memcpy (v, a);
     gsl_vector_int_add (v, b);
 
     {
       int status = 0;
 
       for (i = 0; i < 1027; i++)
         {
           int r = gsl_vector_int_get (v,i);
           int x = gsl_vector_int_get (a,i);
           int y = gsl_vector_int_get (b,i);
           int z = x + y;
           if (r != z)
             status = 1;
         }
       gsl_test (status, "gsl_vector_int" "_add vector addition");
     }
 
 
     gsl_vector_int_memcpy (v, a);
     gsl_vector_int_sub (v, b);
 
     {
       int status = 0;
 
       for (i = 0; i < 1027; i++)
         {
           int r = gsl_vector_int_get (v,i);
           int x = gsl_vector_int_get (a,i);
           int y = gsl_vector_int_get (b,i);
           int z = x - y;
           if (r != z)
             status = 1;
         }
       gsl_test (status, "gsl_vector_int" "_sub vector subtraction");
     }
 
     gsl_vector_int_memcpy (v, a);
     gsl_vector_int_mul (v, b);
 
     {
       int status = 0;
 
       for (i = 0; i < 1027; i++)
         {
           int r = gsl_vector_int_get (v,i);
           int x = gsl_vector_int_get (a,i);
           int y = gsl_vector_int_get (b,i);
           int z = x * y;
           if (r != z)
             status = 1;
         }
       gsl_test (status, "gsl_vector_int" "_mul multiplication");
     }
 
     gsl_vector_int_memcpy (v, a);
     gsl_vector_int_div (v, b);
 
     {
       int status = 0;
 
       for (i = 0; i < 1027; i++)
         {
           int r = gsl_vector_int_get (v,i);
           int x = gsl_vector_int_get (a,i);
           int y = gsl_vector_int_get (b,i);
           int z = x / y;
           if (fabs(r - z) > 2 * 1.1920928955078125e-07 * fabs(z))
             status = 1;
         }
       gsl_test (status, "gsl_vector_int" "_div division");
     }
 
 
     gsl_vector_int_free (a);
     gsl_vector_int_free (b);
   }
 
 
 
 
   gsl_vector_int_free (v);
 }
 
 
 void
 test_int_binary (void)
 {
   gsl_vector_int * v = gsl_vector_int_calloc (1027);
   gsl_vector_int * w = gsl_vector_int_calloc (1027);
 
   size_t i;
 
   {
     FILE *f = fopen ("test.dat", "wb");
 
     for (i = 0; i < 1027; i++)
       {
         gsl_vector_int_set (v, i, (int) (1027 - i));
       };
 
     gsl_vector_int_fwrite (f, v);
 
     fclose (f);
   }
 
   {
     FILE *f = fopen ("test.dat", "rb");
 
     gsl_vector_int_fread (f, w);
 
     status = 0;
     for (i = 0; i < 1027; i++)
       {
         if (w->data[i] != (int) (1027 - i))
           status = 1;
       };
 
     gsl_test (status, "gsl_vector_int" "_write and read");
 
     fclose (f);
   }
 
   gsl_vector_int_free (v);
   gsl_vector_int_free (w);
 }
 
 void
 test_int_trap (void)
 {
   gsl_vector_int * v = gsl_vector_int_alloc (1027);
 
   size_t j = 0;
   double x;
 
   status = 0;
   gsl_vector_int_set (v, j - 1, (int)0);
   gsl_test (!status, "gsl_vector_int" "_set traps index below lower bound");
 
   status = 0;
   gsl_vector_int_set (v, 1027 + 1, (int)0);
   gsl_test (!status, "gsl_vector_int" "_set traps index above upper bound");
 
   status = 0;
   gsl_vector_int_set (v, 1027, (int)0);
   gsl_test (!status, "gsl_vector_int" "_set traps index at upper bound");
 
   status = 0;
   x = gsl_vector_int_get (v, j - 1);
   gsl_test (!status, "gsl_vector_int" "_get traps index below lower bound");
   gsl_test (x != 0,
          "gsl_vector_int" "_get returns zero for index below lower bound");
 
   status = 0;
   x = gsl_vector_int_get (v, 1027 + 1);
   gsl_test (!status, "gsl_vector_int" "_get traps index above upper bound");
   gsl_test (x != 0,
          "gsl_vector_int" "_get returns zero for index above upper bound");
 
   status = 0;
   x = gsl_vector_int_get (v, 1027);
   gsl_test (!status, "gsl_vector_int" "_get traps index at upper bound");
   gsl_test (x != 0,
             "gsl_vector_int" "_get returns zero for index at upper bound");
 
   gsl_vector_int_free (v);
 }
 # 113 "test.c" 2
 # 1 "test_io.c" 1
 # 20 "test_io.c"
 void test_int_text (void);
 
 void
 test_int_text (void)
 {
   gsl_vector_int * v = gsl_vector_int_alloc (1027);
   gsl_vector_int * w = gsl_vector_int_alloc (1027);
 
   size_t i;
 
   {
     FILE *f = fopen ("test.txt", "w");
 
     for (i = 0; i < 1027; i++)
       {
         gsl_vector_int_set (v, i, (int) i);
       };
 
     gsl_vector_int_fprintf (f, v, "%d");
 
     fclose (f);
   }
 
   {
     FILE *f = fopen ("test.txt", "r");
 
     gsl_vector_int_fscanf (f, w);
 
     status = 0;
     for (i = 0; i < 1027; i++)
       {
         if (w->data[i] != (int) i)
           status = 1;
       };
 
     gsl_test (status, "gsl_vector_int" "_fprintf and fscanf");
 
     fclose (f);
   }
 
   gsl_vector_int_free (v);
   gsl_vector_int_free (w);
 }
 # 114 "test.c" 2
 # 1 "../templates_off.h" 1
 # 115 "test.c" 2
 
 
 
 # 1 "../templates_on.h" 1
 # 119 "test.c" 2
 # 1 "test_source.c" 1
 # 20 "test_source.c"
 void test_ushort_func (void);
 void test_ushort_binary (void);
 void test_ushort_trap (void);
 
 void
 test_ushort_func (void)
 {
   gsl_vector_ushort * v;
   size_t i;
 
   v = gsl_vector_ushort_calloc (1027);
 
   gsl_test (v->data == 0, "gsl_vector_ushort" "_alloc returns valid pointer");
   gsl_test (v->size != 1027, "gsl_vector_ushort" "_alloc returns valid size");
   gsl_test (v->stride != 1, "gsl_vector_ushort" "_alloc returns unit stride");
 
   for (i = 0; i < 1027; i++)
     {
       gsl_vector_ushort_set (v, i, (unsigned short) i);
     }
 
 
   status = 0;
 
   for (i = 0; i < 1027; i++)
     {
       if (v->data[i] != (unsigned short) i)
         status = 1;
     };
 
   gsl_test (status,
             "gsl_vector_ushort" "_set" " (static)" " writes into array");
 
 
   status = 0;
   for (i = 0; i < 1027; i++)
     {
       if (gsl_vector_ushort_get (v, i) != (unsigned short) i)
         status = 1;
     };
   gsl_test (status,
             "gsl_vector_ushort" "_get" " (static)" " reads from array");
 
 
 
 
   v->stride = 2;
 
   status = 0;
   for (i = 0; i < 1027 / 2; i++)
     {
       if (gsl_vector_ushort_get (v, i) != (unsigned short) (2 * i))
         status = 1;
     };
   gsl_test (status, "gsl_vector_ushort" "_get" " (static)" " reads with stride");
 
   for (i = 0; i < 1027 / 2; i++)
     {
       gsl_vector_ushort_set (v, i, (unsigned short) (i + 1000));
     };
 
   status = 0;
 
   for (i = 0; i < 1027 / 2; i++)
     {
       if (v->data[2 * i] != (unsigned short) (i + 1000))
         status = 1;
     };
 
   gsl_test (status, "gsl_vector_ushort" "_set" " (static)" " writes with stride");
 
 
 
   v->stride = 1 ;
 
   for (i = 0; i < 1027; i++)
     {
       gsl_vector_ushort_set (v, i, (unsigned short) i);
     }
 
   gsl_vector_ushort_swap_elements (v, 2, 5) ;
 
   status = (gsl_vector_ushort_get(v,2) != 5) ;
   status |= (gsl_vector_ushort_get(v,5) != 2) ;
 
   gsl_vector_ushort_swap_elements (v, 2, 5) ;
 
   status |= (gsl_vector_ushort_get(v,2) != 2) ;
   status |= (gsl_vector_ushort_get(v,5) != 5) ;
 
   gsl_test (status, "gsl_vector_ushort" "_swap_elements" " (static)" " exchanges elements") ;
 
   status = 0;
 
   gsl_vector_ushort_reverse (v) ;
 
   for (i = 0; i < 1027; i++)
     {
       status |= (gsl_vector_ushort_get (v, i) != (unsigned short) (1027 - i - 1));
     }
 
   gsl_test (status, "gsl_vector_ushort" "_reverse" " (static)" " reverses elements") ;
 
   {
     unsigned short exp_max = gsl_vector_ushort_get(v, 0);
     unsigned short exp_min = gsl_vector_ushort_get(v, 0);
     size_t exp_imax = 0, exp_imin = 0;
 
     for (i = 0; i < 1027; i++)
       {
         unsigned short k = gsl_vector_ushort_get (v, i) ;
         if (k < exp_min) {
           exp_min = gsl_vector_ushort_get (v, i);
           exp_imin = i;
         }
       }
 
     for (i = 0; i < 1027; i++)
       {
         unsigned short k = gsl_vector_ushort_get (v, i) ;
         if (k > exp_max) {
           exp_max = gsl_vector_ushort_get (v, i) ;
           exp_imax = i;
         }
       }
 
     {
       unsigned short max = gsl_vector_ushort_max (v) ;
 
       gsl_test (max != exp_max, "gsl_vector_ushort" "_max returns correct maximum value");
     }
 
     {
       unsigned short min = gsl_vector_ushort_min (v) ;
 
       gsl_test (min != exp_min, "gsl_vector_ushort" "_min returns correct minimum value");
     }
 
     {
       unsigned short min, max;
       gsl_vector_ushort_minmax (v, &min, &max);
 
       gsl_test (max != exp_max, "gsl_vector_ushort" "_minmax returns correct maximum value");
       gsl_test (min != exp_min, "gsl_vector_ushort" "_minmax returns correct minimum value");
     }
 
 
     {
       size_t imax = gsl_vector_ushort_max_index (v) ;
 
       gsl_test (imax != exp_imax, "gsl_vector_ushort" "_max_index returns correct maximum i");
     }
 
     {
       size_t imin = gsl_vector_ushort_min_index (v) ;
 
       gsl_test (imin != exp_imin, "gsl_vector_ushort" "_min_index returns correct minimum i");
     }
 
     {
       size_t imin, imax;
 
       gsl_vector_ushort_minmax_index (v, &imin, &imax);
 
       gsl_test (imax != exp_imax, "gsl_vector_ushort" "_minmax_index returns correct maximum i");
       gsl_test (imin != exp_imin, "gsl_vector_ushort" "_minmax_index returns correct minimum i");
     }
   }
 
 
   {
     gsl_vector_ushort * a = gsl_vector_ushort_calloc (1027);
     gsl_vector_ushort * b = gsl_vector_ushort_calloc (1027);
 
     for (i = 0; i < 1027; i++)
       {
         gsl_vector_ushort_set (a, i, (unsigned short)(3 + i));
         gsl_vector_ushort_set (b, i, (unsigned short)(3 + 2 * i));
       }
 
     gsl_vector_ushort_memcpy (v, a);
     gsl_vector_ushort_add (v, b);
 
     {
       int status = 0;
 
       for (i = 0; i < 1027; i++)
         {
           unsigned short r = gsl_vector_ushort_get (v,i);
           unsigned short x = gsl_vector_ushort_get (a,i);
           unsigned short y = gsl_vector_ushort_get (b,i);
           unsigned short z = x + y;
           if (r != z)
             status = 1;
         }
       gsl_test (status, "gsl_vector_ushort" "_add vector addition");
     }
 
 
     gsl_vector_ushort_memcpy (v, a);
     gsl_vector_ushort_sub (v, b);
 
     {
       int status = 0;
 
       for (i = 0; i < 1027; i++)
         {
           unsigned short r = gsl_vector_ushort_get (v,i);
           unsigned short x = gsl_vector_ushort_get (a,i);
           unsigned short y = gsl_vector_ushort_get (b,i);
           unsigned short z = x - y;
           if (r != z)
             status = 1;
         }
       gsl_test (status, "gsl_vector_ushort" "_sub vector subtraction");
     }
 
     gsl_vector_ushort_memcpy (v, a);
     gsl_vector_ushort_mul (v, b);
 
     {
       int status = 0;
 
       for (i = 0; i < 1027; i++)
         {
           unsigned short r = gsl_vector_ushort_get (v,i);
           unsigned short x = gsl_vector_ushort_get (a,i);
           unsigned short y = gsl_vector_ushort_get (b,i);
           unsigned short z = x * y;
           if (r != z)
             status = 1;
         }
       gsl_test (status, "gsl_vector_ushort" "_mul multiplication");
     }
 
     gsl_vector_ushort_memcpy (v, a);
     gsl_vector_ushort_div (v, b);
 
     {
       int status = 0;
 
       for (i = 0; i < 1027; i++)
         {
           unsigned short r = gsl_vector_ushort_get (v,i);
           unsigned short x = gsl_vector_ushort_get (a,i);
           unsigned short y = gsl_vector_ushort_get (b,i);
           unsigned short z = x / y;
           if (fabs(r - z) > 2 * 1.1920928955078125e-07 * fabs(z))
             status = 1;
         }
       gsl_test (status, "gsl_vector_ushort" "_div division");
     }
 
 
     gsl_vector_ushort_free (a);
     gsl_vector_ushort_free (b);
   }
 
 
 
 
   gsl_vector_ushort_free (v);
 }
 
 
 void
 test_ushort_binary (void)
 {
   gsl_vector_ushort * v = gsl_vector_ushort_calloc (1027);
   gsl_vector_ushort * w = gsl_vector_ushort_calloc (1027);
 
   size_t i;
 
   {
     FILE *f = fopen ("test.dat", "wb");
 
     for (i = 0; i < 1027; i++)
       {
         gsl_vector_ushort_set (v, i, (unsigned short) (1027 - i));
       };
 
     gsl_vector_ushort_fwrite (f, v);
 
     fclose (f);
   }
 
   {
     FILE *f = fopen ("test.dat", "rb");
 
     gsl_vector_ushort_fread (f, w);
 
     status = 0;
     for (i = 0; i < 1027; i++)
       {
         if (w->data[i] != (unsigned short) (1027 - i))
           status = 1;
       };
 
     gsl_test (status, "gsl_vector_ushort" "_write and read");
 
     fclose (f);
   }
 
   gsl_vector_ushort_free (v);
   gsl_vector_ushort_free (w);
 }
 
 void
 test_ushort_trap (void)
 {
   gsl_vector_ushort * v = gsl_vector_ushort_alloc (1027);
 
   size_t j = 0;
   double x;
 
   status = 0;
   gsl_vector_ushort_set (v, j - 1, (unsigned short)0);
   gsl_test (!status, "gsl_vector_ushort" "_set traps index below lower bound");
 
   status = 0;
   gsl_vector_ushort_set (v, 1027 + 1, (unsigned short)0);
   gsl_test (!status, "gsl_vector_ushort" "_set traps index above upper bound");
 
   status = 0;
   gsl_vector_ushort_set (v, 1027, (unsigned short)0);
   gsl_test (!status, "gsl_vector_ushort" "_set traps index at upper bound");
 
   status = 0;
   x = gsl_vector_ushort_get (v, j - 1);
   gsl_test (!status, "gsl_vector_ushort" "_get traps index below lower bound");
   gsl_test (x != 0,
          "gsl_vector_ushort" "_get returns zero for index below lower bound");
 
   status = 0;
   x = gsl_vector_ushort_get (v, 1027 + 1);
   gsl_test (!status, "gsl_vector_ushort" "_get traps index above upper bound");
   gsl_test (x != 0,
          "gsl_vector_ushort" "_get returns zero for index above upper bound");
 
   status = 0;
   x = gsl_vector_ushort_get (v, 1027);
   gsl_test (!status, "gsl_vector_ushort" "_get traps index at upper bound");
   gsl_test (x != 0,
             "gsl_vector_ushort" "_get returns zero for index at upper bound");
 
   gsl_vector_ushort_free (v);
 }
 # 120 "test.c" 2
 # 1 "test_io.c" 1
 # 20 "test_io.c"
 void test_ushort_text (void);
 
 void
 test_ushort_text (void)
 {
   gsl_vector_ushort * v = gsl_vector_ushort_alloc (1027);
   gsl_vector_ushort * w = gsl_vector_ushort_alloc (1027);
 
   size_t i;
 
   {
     FILE *f = fopen ("test.txt", "w");
 
     for (i = 0; i < 1027; i++)
       {
         gsl_vector_ushort_set (v, i, (unsigned short) i);
       };
 
     gsl_vector_ushort_fprintf (f, v, "%hu");
 
     fclose (f);
   }
 
   {
     FILE *f = fopen ("test.txt", "r");
 
     gsl_vector_ushort_fscanf (f, w);
 
     status = 0;
     for (i = 0; i < 1027; i++)
       {
         if (w->data[i] != (unsigned short) i)
           status = 1;
       };
 
     gsl_test (status, "gsl_vector_ushort" "_fprintf and fscanf");
 
     fclose (f);
   }
 
   gsl_vector_ushort_free (v);
   gsl_vector_ushort_free (w);
 }
 # 121 "test.c" 2
 # 1 "../templates_off.h" 1
 # 122 "test.c" 2
 
 
 
 # 1 "../templates_on.h" 1
 # 126 "test.c" 2
 # 1 "test_source.c" 1
 # 20 "test_source.c"
 void test_short_func (void);
 void test_short_binary (void);
 void test_short_trap (void);
 
 void
 test_short_func (void)
 {
   gsl_vector_short * v;
   size_t i;
 
   v = gsl_vector_short_calloc (1027);
 
   gsl_test (v->data == 0, "gsl_vector_short" "_alloc returns valid pointer");
   gsl_test (v->size != 1027, "gsl_vector_short" "_alloc returns valid size");
   gsl_test (v->stride != 1, "gsl_vector_short" "_alloc returns unit stride");
 
   for (i = 0; i < 1027; i++)
     {
       gsl_vector_short_set (v, i, (short) i);
     }
 
 
   status = 0;
 
   for (i = 0; i < 1027; i++)
     {
       if (v->data[i] != (short) i)
         status = 1;
     };
 
   gsl_test (status,
             "gsl_vector_short" "_set" " (static)" " writes into array");
 
 
   status = 0;
   for (i = 0; i < 1027; i++)
     {
       if (gsl_vector_short_get (v, i) != (short) i)
         status = 1;
     };
   gsl_test (status,
             "gsl_vector_short" "_get" " (static)" " reads from array");
 
 
 
 
   v->stride = 2;
 
   status = 0;
   for (i = 0; i < 1027 / 2; i++)
     {
       if (gsl_vector_short_get (v, i) != (short) (2 * i))
         status = 1;
     };
   gsl_test (status, "gsl_vector_short" "_get" " (static)" " reads with stride");
 
   for (i = 0; i < 1027 / 2; i++)
     {
       gsl_vector_short_set (v, i, (short) (i + 1000));
     };
 
   status = 0;
 
   for (i = 0; i < 1027 / 2; i++)
     {
       if (v->data[2 * i] != (short) (i + 1000))
         status = 1;
     };
 
   gsl_test (status, "gsl_vector_short" "_set" " (static)" " writes with stride");
 
 
 
   v->stride = 1 ;
 
   for (i = 0; i < 1027; i++)
     {
       gsl_vector_short_set (v, i, (short) i);
     }
 
   gsl_vector_short_swap_elements (v, 2, 5) ;
 
   status = (gsl_vector_short_get(v,2) != 5) ;
   status |= (gsl_vector_short_get(v,5) != 2) ;
 
   gsl_vector_short_swap_elements (v, 2, 5) ;
 
   status |= (gsl_vector_short_get(v,2) != 2) ;
   status |= (gsl_vector_short_get(v,5) != 5) ;
 
   gsl_test (status, "gsl_vector_short" "_swap_elements" " (static)" " exchanges elements") ;
 
   status = 0;
 
   gsl_vector_short_reverse (v) ;
 
   for (i = 0; i < 1027; i++)
     {
       status |= (gsl_vector_short_get (v, i) != (short) (1027 - i - 1));
     }
 
   gsl_test (status, "gsl_vector_short" "_reverse" " (static)" " reverses elements") ;
 
   {
     short exp_max = gsl_vector_short_get(v, 0);
     short exp_min = gsl_vector_short_get(v, 0);
     size_t exp_imax = 0, exp_imin = 0;
 
     for (i = 0; i < 1027; i++)
       {
         short k = gsl_vector_short_get (v, i) ;
         if (k < exp_min) {
           exp_min = gsl_vector_short_get (v, i);
           exp_imin = i;
         }
       }
 
     for (i = 0; i < 1027; i++)
       {
         short k = gsl_vector_short_get (v, i) ;
         if (k > exp_max) {
           exp_max = gsl_vector_short_get (v, i) ;
           exp_imax = i;
         }
       }
 
     {
       short max = gsl_vector_short_max (v) ;
 
       gsl_test (max != exp_max, "gsl_vector_short" "_max returns correct maximum value");
     }
 
     {
       short min = gsl_vector_short_min (v) ;
 
       gsl_test (min != exp_min, "gsl_vector_short" "_min returns correct minimum value");
     }
 
     {
       short min, max;
       gsl_vector_short_minmax (v, &min, &max);
 
       gsl_test (max != exp_max, "gsl_vector_short" "_minmax returns correct maximum value");
       gsl_test (min != exp_min, "gsl_vector_short" "_minmax returns correct minimum value");
     }
 
 
     {
       size_t imax = gsl_vector_short_max_index (v) ;
 
       gsl_test (imax != exp_imax, "gsl_vector_short" "_max_index returns correct maximum i");
     }
 
     {
       size_t imin = gsl_vector_short_min_index (v) ;
 
       gsl_test (imin != exp_imin, "gsl_vector_short" "_min_index returns correct minimum i");
     }
 
     {
       size_t imin, imax;
 
       gsl_vector_short_minmax_index (v, &imin, &imax);
 
       gsl_test (imax != exp_imax, "gsl_vector_short" "_minmax_index returns correct maximum i");
       gsl_test (imin != exp_imin, "gsl_vector_short" "_minmax_index returns correct minimum i");
     }
   }
 
 
   {
     gsl_vector_short * a = gsl_vector_short_calloc (1027);
     gsl_vector_short * b = gsl_vector_short_calloc (1027);
 
     for (i = 0; i < 1027; i++)
       {
         gsl_vector_short_set (a, i, (short)(3 + i));
         gsl_vector_short_set (b, i, (short)(3 + 2 * i));
       }
 
     gsl_vector_short_memcpy (v, a);
     gsl_vector_short_add (v, b);
 
     {
       int status = 0;
 
       for (i = 0; i < 1027; i++)
         {
           short r = gsl_vector_short_get (v,i);
           short x = gsl_vector_short_get (a,i);
           short y = gsl_vector_short_get (b,i);
           short z = x + y;
           if (r != z)
             status = 1;
         }
       gsl_test (status, "gsl_vector_short" "_add vector addition");
     }
 
 
     gsl_vector_short_memcpy (v, a);
     gsl_vector_short_sub (v, b);
 
     {
       int status = 0;
 
       for (i = 0; i < 1027; i++)
         {
           short r = gsl_vector_short_get (v,i);
           short x = gsl_vector_short_get (a,i);
           short y = gsl_vector_short_get (b,i);
           short z = x - y;
           if (r != z)
             status = 1;
         }
       gsl_test (status, "gsl_vector_short" "_sub vector subtraction");
     }
 
     gsl_vector_short_memcpy (v, a);
     gsl_vector_short_mul (v, b);
 
     {
       int status = 0;
 
       for (i = 0; i < 1027; i++)
         {
           short r = gsl_vector_short_get (v,i);
           short x = gsl_vector_short_get (a,i);
           short y = gsl_vector_short_get (b,i);
           short z = x * y;
           if (r != z)
             status = 1;
         }
       gsl_test (status, "gsl_vector_short" "_mul multiplication");
     }
 
     gsl_vector_short_memcpy (v, a);
     gsl_vector_short_div (v, b);
 
     {
       int status = 0;
 
       for (i = 0; i < 1027; i++)
         {
           short r = gsl_vector_short_get (v,i);
           short x = gsl_vector_short_get (a,i);
           short y = gsl_vector_short_get (b,i);
           short z = x / y;
           if (fabs(r - z) > 2 * 1.1920928955078125e-07 * fabs(z))
             status = 1;
         }
       gsl_test (status, "gsl_vector_short" "_div division");
     }
 
 
     gsl_vector_short_free (a);
     gsl_vector_short_free (b);
   }
 
 
 
 
   gsl_vector_short_free (v);
 }
 
 
 void
 test_short_binary (void)
 {
   gsl_vector_short * v = gsl_vector_short_calloc (1027);
   gsl_vector_short * w = gsl_vector_short_calloc (1027);
 
   size_t i;
 
   {
     FILE *f = fopen ("test.dat", "wb");
 
     for (i = 0; i < 1027; i++)
       {
         gsl_vector_short_set (v, i, (short) (1027 - i));
       };
 
     gsl_vector_short_fwrite (f, v);
 
     fclose (f);
   }
 
   {
     FILE *f = fopen ("test.dat", "rb");
 
     gsl_vector_short_fread (f, w);
 
     status = 0;
     for (i = 0; i < 1027; i++)
       {
         if (w->data[i] != (short) (1027 - i))
           status = 1;
       };
 
     gsl_test (status, "gsl_vector_short" "_write and read");
 
     fclose (f);
   }
 
   gsl_vector_short_free (v);
   gsl_vector_short_free (w);
 }
 
 void
 test_short_trap (void)
 {
   gsl_vector_short * v = gsl_vector_short_alloc (1027);
 
   size_t j = 0;
   double x;
 
   status = 0;
   gsl_vector_short_set (v, j - 1, (short)0);
   gsl_test (!status, "gsl_vector_short" "_set traps index below lower bound");
 
   status = 0;
   gsl_vector_short_set (v, 1027 + 1, (short)0);
   gsl_test (!status, "gsl_vector_short" "_set traps index above upper bound");
 
   status = 0;
   gsl_vector_short_set (v, 1027, (short)0);
   gsl_test (!status, "gsl_vector_short" "_set traps index at upper bound");
 
   status = 0;
   x = gsl_vector_short_get (v, j - 1);
   gsl_test (!status, "gsl_vector_short" "_get traps index below lower bound");
   gsl_test (x != 0,
          "gsl_vector_short" "_get returns zero for index below lower bound");
 
   status = 0;
   x = gsl_vector_short_get (v, 1027 + 1);
   gsl_test (!status, "gsl_vector_short" "_get traps index above upper bound");
   gsl_test (x != 0,
          "gsl_vector_short" "_get returns zero for index above upper bound");
 
   status = 0;
   x = gsl_vector_short_get (v, 1027);
   gsl_test (!status, "gsl_vector_short" "_get traps index at upper bound");
   gsl_test (x != 0,
             "gsl_vector_short" "_get returns zero for index at upper bound");
 
   gsl_vector_short_free (v);
 }
 # 127 "test.c" 2
 # 1 "test_io.c" 1
 # 20 "test_io.c"
 void test_short_text (void);
 
 void
 test_short_text (void)
 {
   gsl_vector_short * v = gsl_vector_short_alloc (1027);
   gsl_vector_short * w = gsl_vector_short_alloc (1027);
 
   size_t i;
 
   {
     FILE *f = fopen ("test.txt", "w");
 
     for (i = 0; i < 1027; i++)
       {
         gsl_vector_short_set (v, i, (short) i);
       };
 
     gsl_vector_short_fprintf (f, v, "%hd");
 
     fclose (f);
   }
 
   {
     FILE *f = fopen ("test.txt", "r");
 
     gsl_vector_short_fscanf (f, w);
 
     status = 0;
     for (i = 0; i < 1027; i++)
       {
         if (w->data[i] != (short) i)
           status = 1;
       };
 
     gsl_test (status, "gsl_vector_short" "_fprintf and fscanf");
 
     fclose (f);
   }
 
   gsl_vector_short_free (v);
   gsl_vector_short_free (w);
 }
 # 128 "test.c" 2
 # 1 "../templates_off.h" 1
 # 129 "test.c" 2
 
 
 
 # 1 "../templates_on.h" 1
 # 133 "test.c" 2
 # 1 "test_source.c" 1
 # 20 "test_source.c"
 void test_uchar_func (void);
 void test_uchar_binary (void);
 void test_uchar_trap (void);
 
 void
 test_uchar_func (void)
 {
   gsl_vector_uchar * v;
   size_t i;
 
   v = gsl_vector_uchar_calloc (1027);
 
   gsl_test (v->data == 0, "gsl_vector_uchar" "_alloc returns valid pointer");
   gsl_test (v->size != 1027, "gsl_vector_uchar" "_alloc returns valid size");
   gsl_test (v->stride != 1, "gsl_vector_uchar" "_alloc returns unit stride");
 
   for (i = 0; i < 1027; i++)
     {
       gsl_vector_uchar_set (v, i, (unsigned char) i);
     }
 
 
   status = 0;
 
   for (i = 0; i < 1027; i++)
     {
       if (v->data[i] != (unsigned char) i)
         status = 1;
     };
 
   gsl_test (status,
             "gsl_vector_uchar" "_set" " (static)" " writes into array");
 
 
   status = 0;
   for (i = 0; i < 1027; i++)
     {
       if (gsl_vector_uchar_get (v, i) != (unsigned char) i)
         status = 1;
     };
   gsl_test (status,
             "gsl_vector_uchar" "_get" " (static)" " reads from array");
 
 
 
 
   v->stride = 2;
 
   status = 0;
   for (i = 0; i < 1027 / 2; i++)
     {
       if (gsl_vector_uchar_get (v, i) != (unsigned char) (2 * i))
         status = 1;
     };
   gsl_test (status, "gsl_vector_uchar" "_get" " (static)" " reads with stride");
 
   for (i = 0; i < 1027 / 2; i++)
     {
       gsl_vector_uchar_set (v, i, (unsigned char) (i + 1000));
     };
 
   status = 0;
 
   for (i = 0; i < 1027 / 2; i++)
     {
       if (v->data[2 * i] != (unsigned char) (i + 1000))
         status = 1;
     };
 
   gsl_test (status, "gsl_vector_uchar" "_set" " (static)" " writes with stride");
 
 
 
   v->stride = 1 ;
 
   for (i = 0; i < 1027; i++)
     {
       gsl_vector_uchar_set (v, i, (unsigned char) i);
     }
 
   gsl_vector_uchar_swap_elements (v, 2, 5) ;
 
   status = (gsl_vector_uchar_get(v,2) != 5) ;
   status |= (gsl_vector_uchar_get(v,5) != 2) ;
 
   gsl_vector_uchar_swap_elements (v, 2, 5) ;
 
   status |= (gsl_vector_uchar_get(v,2) != 2) ;
   status |= (gsl_vector_uchar_get(v,5) != 5) ;
 
   gsl_test (status, "gsl_vector_uchar" "_swap_elements" " (static)" " exchanges elements") ;
 
   status = 0;
 
   gsl_vector_uchar_reverse (v) ;
 
   for (i = 0; i < 1027; i++)
     {
       status |= (gsl_vector_uchar_get (v, i) != (unsigned char) (1027 - i - 1));
     }
 
   gsl_test (status, "gsl_vector_uchar" "_reverse" " (static)" " reverses elements") ;
 
   {
     unsigned char exp_max = gsl_vector_uchar_get(v, 0);
     unsigned char exp_min = gsl_vector_uchar_get(v, 0);
     size_t exp_imax = 0, exp_imin = 0;
 
     for (i = 0; i < 1027; i++)
       {
         unsigned char k = gsl_vector_uchar_get (v, i) ;
         if (k < exp_min) {
           exp_min = gsl_vector_uchar_get (v, i);
           exp_imin = i;
         }
       }
 
     for (i = 0; i < 1027; i++)
       {
         unsigned char k = gsl_vector_uchar_get (v, i) ;
         if (k > exp_max) {
           exp_max = gsl_vector_uchar_get (v, i) ;
           exp_imax = i;
         }
       }
 
     {
       unsigned char max = gsl_vector_uchar_max (v) ;
 
       gsl_test (max != exp_max, "gsl_vector_uchar" "_max returns correct maximum value");
     }
 
     {
       unsigned char min = gsl_vector_uchar_min (v) ;
 
       gsl_test (min != exp_min, "gsl_vector_uchar" "_min returns correct minimum value");
     }
 
     {
       unsigned char min, max;
       gsl_vector_uchar_minmax (v, &min, &max);
 
       gsl_test (max != exp_max, "gsl_vector_uchar" "_minmax returns correct maximum value");
       gsl_test (min != exp_min, "gsl_vector_uchar" "_minmax returns correct minimum value");
     }
 
 
     {
       size_t imax = gsl_vector_uchar_max_index (v) ;
 
       gsl_test (imax != exp_imax, "gsl_vector_uchar" "_max_index returns correct maximum i");
     }
 
     {
       size_t imin = gsl_vector_uchar_min_index (v) ;
 
       gsl_test (imin != exp_imin, "gsl_vector_uchar" "_min_index returns correct minimum i");
     }
 
     {
       size_t imin, imax;
 
       gsl_vector_uchar_minmax_index (v, &imin, &imax);
 
       gsl_test (imax != exp_imax, "gsl_vector_uchar" "_minmax_index returns correct maximum i");
       gsl_test (imin != exp_imin, "gsl_vector_uchar" "_minmax_index returns correct minimum i");
     }
   }
 
 
   {
     gsl_vector_uchar * a = gsl_vector_uchar_calloc (1027);
     gsl_vector_uchar * b = gsl_vector_uchar_calloc (1027);
 
     for (i = 0; i < 1027; i++)
       {
         gsl_vector_uchar_set (a, i, (unsigned char)(3 + i));
         gsl_vector_uchar_set (b, i, (unsigned char)(3 + 2 * i));
       }
 
     gsl_vector_uchar_memcpy (v, a);
     gsl_vector_uchar_add (v, b);
 
     {
       int status = 0;
 
       for (i = 0; i < 1027; i++)
         {
           unsigned char r = gsl_vector_uchar_get (v,i);
           unsigned char x = gsl_vector_uchar_get (a,i);
           unsigned char y = gsl_vector_uchar_get (b,i);
           unsigned char z = x + y;
           if (r != z)
             status = 1;
         }
       gsl_test (status, "gsl_vector_uchar" "_add vector addition");
     }
 
 
     gsl_vector_uchar_memcpy (v, a);
     gsl_vector_uchar_sub (v, b);
 
     {
       int status = 0;
 
       for (i = 0; i < 1027; i++)
         {
           unsigned char r = gsl_vector_uchar_get (v,i);
           unsigned char x = gsl_vector_uchar_get (a,i);
           unsigned char y = gsl_vector_uchar_get (b,i);
           unsigned char z = x - y;
           if (r != z)
             status = 1;
         }
       gsl_test (status, "gsl_vector_uchar" "_sub vector subtraction");
     }
 
     gsl_vector_uchar_memcpy (v, a);
     gsl_vector_uchar_mul (v, b);
 
     {
       int status = 0;
 
       for (i = 0; i < 1027; i++)
         {
           unsigned char r = gsl_vector_uchar_get (v,i);
           unsigned char x = gsl_vector_uchar_get (a,i);
           unsigned char y = gsl_vector_uchar_get (b,i);
           unsigned char z = x * y;
           if (r != z)
             status = 1;
         }
       gsl_test (status, "gsl_vector_uchar" "_mul multiplication");
     }
 
     gsl_vector_uchar_memcpy (v, a);
     gsl_vector_uchar_div (v, b);
 
     {
       int status = 0;
 
       for (i = 0; i < 1027; i++)
         {
           unsigned char r = gsl_vector_uchar_get (v,i);
           unsigned char x = gsl_vector_uchar_get (a,i);
           unsigned char y = gsl_vector_uchar_get (b,i);
           unsigned char z = x / y;
           if (fabs(r - z) > 2 * 1.1920928955078125e-07 * fabs(z))
             status = 1;
         }
       gsl_test (status, "gsl_vector_uchar" "_div division");
     }
 
 
     gsl_vector_uchar_free (a);
     gsl_vector_uchar_free (b);
   }
 
 
 
 
   gsl_vector_uchar_free (v);
 }
 
 
 void
 test_uchar_binary (void)
 {
   gsl_vector_uchar * v = gsl_vector_uchar_calloc (1027);
   gsl_vector_uchar * w = gsl_vector_uchar_calloc (1027);
 
   size_t i;
 
   {
     FILE *f = fopen ("test.dat", "wb");
 
     for (i = 0; i < 1027; i++)
       {
         gsl_vector_uchar_set (v, i, (unsigned char) (1027 - i));
       };
 
     gsl_vector_uchar_fwrite (f, v);
 
     fclose (f);
   }
 
   {
     FILE *f = fopen ("test.dat", "rb");
 
     gsl_vector_uchar_fread (f, w);
 
     status = 0;
     for (i = 0; i < 1027; i++)
       {
         if (w->data[i] != (unsigned char) (1027 - i))
           status = 1;
       };
 
     gsl_test (status, "gsl_vector_uchar" "_write and read");
 
     fclose (f);
   }
 
   gsl_vector_uchar_free (v);
   gsl_vector_uchar_free (w);
 }
 
 void
 test_uchar_trap (void)
 {
   gsl_vector_uchar * v = gsl_vector_uchar_alloc (1027);
 
   size_t j = 0;
   double x;
 
   status = 0;
   gsl_vector_uchar_set (v, j - 1, (unsigned char)0);
   gsl_test (!status, "gsl_vector_uchar" "_set traps index below lower bound");
 
   status = 0;
   gsl_vector_uchar_set (v, 1027 + 1, (unsigned char)0);
   gsl_test (!status, "gsl_vector_uchar" "_set traps index above upper bound");
 
   status = 0;
   gsl_vector_uchar_set (v, 1027, (unsigned char)0);
   gsl_test (!status, "gsl_vector_uchar" "_set traps index at upper bound");
 
   status = 0;
   x = gsl_vector_uchar_get (v, j - 1);
   gsl_test (!status, "gsl_vector_uchar" "_get traps index below lower bound");
   gsl_test (x != 0,
          "gsl_vector_uchar" "_get returns zero for index below lower bound");
 
   status = 0;
   x = gsl_vector_uchar_get (v, 1027 + 1);
   gsl_test (!status, "gsl_vector_uchar" "_get traps index above upper bound");
   gsl_test (x != 0,
          "gsl_vector_uchar" "_get returns zero for index above upper bound");
 
   status = 0;
   x = gsl_vector_uchar_get (v, 1027);
   gsl_test (!status, "gsl_vector_uchar" "_get traps index at upper bound");
   gsl_test (x != 0,
             "gsl_vector_uchar" "_get returns zero for index at upper bound");
 
   gsl_vector_uchar_free (v);
 }
 # 134 "test.c" 2
 # 1 "test_io.c" 1
 # 20 "test_io.c"
 void test_uchar_text (void);
 
 void
 test_uchar_text (void)
 {
   gsl_vector_uchar * v = gsl_vector_uchar_alloc (1027);
   gsl_vector_uchar * w = gsl_vector_uchar_alloc (1027);
 
   size_t i;
 
   {
     FILE *f = fopen ("test.txt", "w");
 
     for (i = 0; i < 1027; i++)
       {
         gsl_vector_uchar_set (v, i, (unsigned char) i);
       };
 
     gsl_vector_uchar_fprintf (f, v, "%u");
 
     fclose (f);
   }
 
   {
     FILE *f = fopen ("test.txt", "r");
 
     gsl_vector_uchar_fscanf (f, w);
 
     status = 0;
     for (i = 0; i < 1027; i++)
       {
         if (w->data[i] != (unsigned char) i)
           status = 1;
       };
 
     gsl_test (status, "gsl_vector_uchar" "_fprintf and fscanf");
 
     fclose (f);
   }
 
   gsl_vector_uchar_free (v);
   gsl_vector_uchar_free (w);
 }
 # 135 "test.c" 2
 # 1 "../templates_off.h" 1
 # 136 "test.c" 2
 
 
 
 # 1 "../templates_on.h" 1
 # 140 "test.c" 2
 # 1 "test_source.c" 1
 # 20 "test_source.c"
 void test_char_func (void);
 void test_char_binary (void);
 void test_char_trap (void);
 
 void
 test_char_func (void)
 {
   gsl_vector_char * v;
   size_t i;
 
   v = gsl_vector_char_calloc (1027);
 
   gsl_test (v->data == 0, "gsl_vector_char" "_alloc returns valid pointer");
   gsl_test (v->size != 1027, "gsl_vector_char" "_alloc returns valid size");
   gsl_test (v->stride != 1, "gsl_vector_char" "_alloc returns unit stride");
 
   for (i = 0; i < 1027; i++)
     {
       gsl_vector_char_set (v, i, (char) i);
     }
 
 
   status = 0;
 
   for (i = 0; i < 1027; i++)
     {
       if (v->data[i] != (char) i)
         status = 1;
     };
 
   gsl_test (status,
             "gsl_vector_char" "_set" " (static)" " writes into array");
 
 
   status = 0;
   for (i = 0; i < 1027; i++)
     {
       if (gsl_vector_char_get (v, i) != (char) i)
         status = 1;
     };
   gsl_test (status,
             "gsl_vector_char" "_get" " (static)" " reads from array");
 
 
 
 
   v->stride = 2;
 
   status = 0;
   for (i = 0; i < 1027 / 2; i++)
     {
       if (gsl_vector_char_get (v, i) != (char) (2 * i))
         status = 1;
     };
   gsl_test (status, "gsl_vector_char" "_get" " (static)" " reads with stride");
 
   for (i = 0; i < 1027 / 2; i++)
     {
       gsl_vector_char_set (v, i, (char) (i + 1000));
     };
 
   status = 0;
 
   for (i = 0; i < 1027 / 2; i++)
     {
       if (v->data[2 * i] != (char) (i + 1000))
         status = 1;
     };
 
   gsl_test (status, "gsl_vector_char" "_set" " (static)" " writes with stride");
 
 
 
   v->stride = 1 ;
 
   for (i = 0; i < 1027; i++)
     {
       gsl_vector_char_set (v, i, (char) i);
     }
 
   gsl_vector_char_swap_elements (v, 2, 5) ;
 
   status = (gsl_vector_char_get(v,2) != 5) ;
   status |= (gsl_vector_char_get(v,5) != 2) ;
 
   gsl_vector_char_swap_elements (v, 2, 5) ;
 
   status |= (gsl_vector_char_get(v,2) != 2) ;
   status |= (gsl_vector_char_get(v,5) != 5) ;
 
   gsl_test (status, "gsl_vector_char" "_swap_elements" " (static)" " exchanges elements") ;
 
   status = 0;
 
   gsl_vector_char_reverse (v) ;
 
   for (i = 0; i < 1027; i++)
     {
       status |= (gsl_vector_char_get (v, i) != (char) (1027 - i - 1));
     }
 
   gsl_test (status, "gsl_vector_char" "_reverse" " (static)" " reverses elements") ;
 
   {
     char exp_max = gsl_vector_char_get(v, 0);
     char exp_min = gsl_vector_char_get(v, 0);
     size_t exp_imax = 0, exp_imin = 0;
 
     for (i = 0; i < 1027; i++)
       {
         char k = gsl_vector_char_get (v, i) ;
         if (k < exp_min) {
           exp_min = gsl_vector_char_get (v, i);
           exp_imin = i;
         }
       }
 
     for (i = 0; i < 1027; i++)
       {
         char k = gsl_vector_char_get (v, i) ;
         if (k > exp_max) {
           exp_max = gsl_vector_char_get (v, i) ;
           exp_imax = i;
         }
       }
 
     {
       char max = gsl_vector_char_max (v) ;
 
       gsl_test (max != exp_max, "gsl_vector_char" "_max returns correct maximum value");
     }
 
     {
       char min = gsl_vector_char_min (v) ;
 
       gsl_test (min != exp_min, "gsl_vector_char" "_min returns correct minimum value");
     }
 
     {
       char min, max;
       gsl_vector_char_minmax (v, &min, &max);
 
       gsl_test (max != exp_max, "gsl_vector_char" "_minmax returns correct maximum value");
       gsl_test (min != exp_min, "gsl_vector_char" "_minmax returns correct minimum value");
     }
 
 
     {
       size_t imax = gsl_vector_char_max_index (v) ;
 
       gsl_test (imax != exp_imax, "gsl_vector_char" "_max_index returns correct maximum i");
     }
 
     {
       size_t imin = gsl_vector_char_min_index (v) ;
 
       gsl_test (imin != exp_imin, "gsl_vector_char" "_min_index returns correct minimum i");
     }
 
     {
       size_t imin, imax;
 
       gsl_vector_char_minmax_index (v, &imin, &imax);
 
       gsl_test (imax != exp_imax, "gsl_vector_char" "_minmax_index returns correct maximum i");
       gsl_test (imin != exp_imin, "gsl_vector_char" "_minmax_index returns correct minimum i");
     }
   }
 
 
   {
     gsl_vector_char * a = gsl_vector_char_calloc (1027);
     gsl_vector_char * b = gsl_vector_char_calloc (1027);
 
     for (i = 0; i < 1027; i++)
       {
         gsl_vector_char_set (a, i, (char)(3 + i));
         gsl_vector_char_set (b, i, (char)(3 + 2 * i));
       }
 
     gsl_vector_char_memcpy (v, a);
     gsl_vector_char_add (v, b);
 
     {
       int status = 0;
 
       for (i = 0; i < 1027; i++)
         {
           char r = gsl_vector_char_get (v,i);
           char x = gsl_vector_char_get (a,i);
           char y = gsl_vector_char_get (b,i);
           char z = x + y;
           if (r != z)
             status = 1;
         }
       gsl_test (status, "gsl_vector_char" "_add vector addition");
     }
 
 
     gsl_vector_char_memcpy (v, a);
     gsl_vector_char_sub (v, b);
 
     {
       int status = 0;
 
       for (i = 0; i < 1027; i++)
         {
           char r = gsl_vector_char_get (v,i);
           char x = gsl_vector_char_get (a,i);
           char y = gsl_vector_char_get (b,i);
           char z = x - y;
           if (r != z)
             status = 1;
         }
       gsl_test (status, "gsl_vector_char" "_sub vector subtraction");
     }
 
     gsl_vector_char_memcpy (v, a);
     gsl_vector_char_mul (v, b);
 
     {
       int status = 0;
 
       for (i = 0; i < 1027; i++)
         {
           char r = gsl_vector_char_get (v,i);
           char x = gsl_vector_char_get (a,i);
           char y = gsl_vector_char_get (b,i);
           char z = x * y;
           if (r != z)
             status = 1;
         }
       gsl_test (status, "gsl_vector_char" "_mul multiplication");
     }
 
     gsl_vector_char_memcpy (v, a);
     gsl_vector_char_div (v, b);
 
     {
       int status = 0;
 
       for (i = 0; i < 1027; i++)
         {
           char r = gsl_vector_char_get (v,i);
           char x = gsl_vector_char_get (a,i);
           char y = gsl_vector_char_get (b,i);
           char z = x / y;
           if (fabs(r - z) > 2 * 1.1920928955078125e-07 * fabs(z))
             status = 1;
         }
       gsl_test (status, "gsl_vector_char" "_div division");
     }
 
 
     gsl_vector_char_free (a);
     gsl_vector_char_free (b);
   }
 
 
 
 
   gsl_vector_char_free (v);
 }
 
 
 void
 test_char_binary (void)
 {
   gsl_vector_char * v = gsl_vector_char_calloc (1027);
   gsl_vector_char * w = gsl_vector_char_calloc (1027);
 
   size_t i;
 
   {
     FILE *f = fopen ("test.dat", "wb");
 
     for (i = 0; i < 1027; i++)
       {
         gsl_vector_char_set (v, i, (char) (1027 - i));
       };
 
     gsl_vector_char_fwrite (f, v);
 
     fclose (f);
   }
 
   {
     FILE *f = fopen ("test.dat", "rb");
 
     gsl_vector_char_fread (f, w);
 
     status = 0;
     for (i = 0; i < 1027; i++)
       {
         if (w->data[i] != (char) (1027 - i))
           status = 1;
       };
 
     gsl_test (status, "gsl_vector_char" "_write and read");
 
     fclose (f);
   }
 
   gsl_vector_char_free (v);
   gsl_vector_char_free (w);
 }
 
 void
 test_char_trap (void)
 {
   gsl_vector_char * v = gsl_vector_char_alloc (1027);
 
   size_t j = 0;
   double x;
 
   status = 0;
   gsl_vector_char_set (v, j - 1, (char)0);
   gsl_test (!status, "gsl_vector_char" "_set traps index below lower bound");
 
   status = 0;
   gsl_vector_char_set (v, 1027 + 1, (char)0);
   gsl_test (!status, "gsl_vector_char" "_set traps index above upper bound");
 
   status = 0;
   gsl_vector_char_set (v, 1027, (char)0);
   gsl_test (!status, "gsl_vector_char" "_set traps index at upper bound");
 
   status = 0;
   x = gsl_vector_char_get (v, j - 1);
   gsl_test (!status, "gsl_vector_char" "_get traps index below lower bound");
   gsl_test (x != 0,
          "gsl_vector_char" "_get returns zero for index below lower bound");
 
   status = 0;
   x = gsl_vector_char_get (v, 1027 + 1);
   gsl_test (!status, "gsl_vector_char" "_get traps index above upper bound");
   gsl_test (x != 0,
          "gsl_vector_char" "_get returns zero for index above upper bound");
 
   status = 0;
   x = gsl_vector_char_get (v, 1027);
   gsl_test (!status, "gsl_vector_char" "_get traps index at upper bound");
   gsl_test (x != 0,
             "gsl_vector_char" "_get returns zero for index at upper bound");
 
   gsl_vector_char_free (v);
 }
 # 141 "test.c" 2
 # 1 "test_io.c" 1
 # 20 "test_io.c"
 void test_char_text (void);
 
 void
 test_char_text (void)
 {
   gsl_vector_char * v = gsl_vector_char_alloc (1027);
   gsl_vector_char * w = gsl_vector_char_alloc (1027);
 
   size_t i;
 
   {
     FILE *f = fopen ("test.txt", "w");
 
     for (i = 0; i < 1027; i++)
       {
         gsl_vector_char_set (v, i, (char) i);
       };
 
     gsl_vector_char_fprintf (f, v, "%d");
 
     fclose (f);
   }
 
   {
     FILE *f = fopen ("test.txt", "r");
 
     gsl_vector_char_fscanf (f, w);
 
     status = 0;
     for (i = 0; i < 1027; i++)
       {
         if (w->data[i] != (char) i)
           status = 1;
       };
 
     gsl_test (status, "gsl_vector_char" "_fprintf and fscanf");
 
     fclose (f);
   }
 
   gsl_vector_char_free (v);
   gsl_vector_char_free (w);
 }
 # 142 "test.c" 2
 # 1 "../templates_off.h" 1
 # 143 "test.c" 2
 
 
 void my_error_handler (const char *reason, const char *file,
                        int line, int err);
 
 int
 main (void)
 {
   gsl_ieee_env_setup ();
 
   test_func ();
   test_float_func ();
   test_long_double_func ();
   test_ulong_func ();
   test_long_func ();
   test_uint_func ();
   test_int_func ();
   test_ushort_func ();
   test_short_func ();
   test_uchar_func ();
   test_char_func ();
   test_complex_func ();
   test_complex_float_func ();
   test_complex_long_double_func ();
 
   test_text ();
   test_float_text ();
 
   test_long_double_text ();
 
   test_ulong_text ();
   test_long_text ();
   test_uint_text ();
   test_int_text ();
   test_ushort_text ();
   test_short_text ();
   test_uchar_text ();
   test_char_text ();
   test_complex_text ();
   test_complex_float_text ();
 
   test_complex_long_double_text ();
 
 
   test_binary ();
   test_float_binary ();
   test_long_double_binary ();
   test_ulong_binary ();
   test_long_binary ();
   test_uint_binary ();
   test_int_binary ();
   test_ushort_binary ();
   test_short_binary ();
   test_uchar_binary ();
   test_char_binary ();
   test_complex_binary ();
   test_complex_float_binary ();
   test_complex_long_double_binary ();
 
   gsl_warnings_off = 1;
 
   gsl_set_error_handler (&my_error_handler);
 
   test_trap ();
   test_float_trap ();
   test_long_double_trap ();
   test_ulong_trap ();
   test_long_trap ();
   test_uint_trap ();
   test_int_trap ();
   test_ushort_trap ();
   test_short_trap ();
   test_uchar_trap ();
   test_char_trap ();
   test_complex_trap ();
   test_complex_float_trap ();
   test_complex_long_double_trap ();
 
   exit (gsl_test_summary ());
 }
 
 void
 my_error_handler (const char *reason, const char *file, int line, int err)
 {
   if (0)
     printf ("(caught [%s:%d: %s (%d)])\n", file, line, reason, err);
   status = 1;
 }
 # 7 "test_static.c" 2
 
 --0-950081385-1049927687=:98732--


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]