public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
From: Yuri Urazov <urazov@yahoo.com>
To: nobody@gcc.gnu.org
Cc: gcc-prs@gcc.gnu.org,
Subject: Re: c/10365: Seems like bug in code generator on Sun Sparc (Sol;aris 8) platform
Date: Fri, 11 Apr 2003 21:26:00 -0000	[thread overview]
Message-ID: <20030411212601.9404.qmail@sources.redhat.com> (raw)

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

From: Yuri Urazov <urazov@yahoo.com>
To: ebotcazou@gcc.gnu.org, gcc-bugs@gcc.gnu.org, gcc-prs@gcc.gnu.org,
  nobody@gcc.gnu.org, gcc-gnats@gcc.gnu.org
Cc:  
Subject: Re: c/10365: Seems like bug in code generator on Sun Sparc (Sol;aris 8) platform
Date: Fri, 11 Apr 2003 14:23:15 -0700 (PDT)

 --0-18757205-1050096195=:13710
 Content-Type: text/plain; charset=us-ascii
 Content-Id: 
 Content-Disposition: inline
 
 files
 
 __________________________________________________
 Do you Yahoo!?
 Yahoo! Tax Center - File online, calculators, forms, and more
 http://tax.yahoo.com
 --0-18757205-1050096195=:13710
 Content-Type: text/plain; name="compile-swap.sh"
 Content-Description: compile-swap.sh
 Content-Disposition: inline; filename="compile-swap.sh"
 
 #!/bin/sh
 
 OPT0='-O0 -O0'
 OPT1='-O2 -O0'
 OPT2='-O0 -O2'
 OPT3='-O0'
 OPT4='-O1'
 OPT5='-O2'
 
 OPT=$OPT0
 LVL=0
 case $1 in
  0) OPT=$OPT0 
     LVL=0 ;;
  1) OPT=$OPT1
     LVL=1 ;;
  2) OPT=$OPT2
     LVL=2 ;;
  3) OPT=$OPT3
     LVL=3 ;;
  4) OPT=$OPT4
     LVL=4 ;;
  5) OPT=$OPT5
     LVL=5 ;;
  *) echo "Optimization level must be 0 or 1 or 2 or 3 or 4 or 5. Default is used"
 esac
 
 echo "Optimization level: " $OPT
 
 rm -f .libs/swap.lo
 
 gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I.. -g $OPT -c swap.c  -fPIC -DPIC -o .libs/swap.lo
 gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I.. -g $OPT -c swap.c -o swap.o >/dev/null 2>&1
 mv -f .libs/swap.lo swap.lo
 
 /bin/sh ../libtool --mode=link gcc  -g -O2  -o libgslvector.la   init.lo file.lo vector.lo copy.lo swap.lo  prop.lo minmax.lo oper.lo reim.lo subvector.lo view.lo  -lm
 
 rm test_static.o
 gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I..    -g $OPT -c test_static.c
 
 /bin/sh ../libtool --mode=link gcc  -g $OPT  -o test_static  test_static.o libgslvector.la ../block/libgslblock.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../utils/libutils.la -lm
 
 ls -al test_static.o test_static
 
 ./test_static > LOG$LVL
 
 ls -al  LOG$LVL
 --0-18757205-1050096195=:13710
 Content-Type: text/plain; name="swap.i"
 Content-Description: swap.i
 Content-Disposition: inline; filename="swap.i"
 
 # 1 "swap.c"
 # 1 "<built-in>"
 # 1 "<command line>"
 # 1 "swap.c"
 # 1 "../config.h" 1
 # 2 "swap.c" 2
 # 1 "../gsl/gsl_errno.h" 1
 # 23 "../gsl/gsl_errno.h"
 # 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/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
 # 36 "/usr/include/iso/stdio_iso.h" 2 3 4
 # 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"
 # 22 "/usr/include/stdio_impl.h" 3 4
 typedef int ssize_t;
 # 38 "/usr/include/stdio_impl.h" 3 4
 struct __FILE
 {
 
 
 
 
         ssize_t _cnt;
         unsigned char *_ptr;
 
         unsigned char *_base;
         unsigned char _flag;
         unsigned char _file;
         unsigned __orientation:2;
         unsigned __ionolock:1;
         unsigned __filler:5;
 };
 # 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;
 
 
 
 
 
 
 
 typedef unsigned int size_t;
 
 
 
 
 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
 # 105 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/stdio.h" 3 4
 typedef long off_t;
 
 
 
 
 
 
 
 typedef __longlong_t off64_t;
 # 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 *);
 # 24 "../gsl/gsl_errno.h" 2
 # 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
 # 1 "../gsl/gsl_types.h" 1
 # 26 "../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"
 
 # 3 "swap.c" 2
 # 1 "../gsl/gsl_vector.h" 1
 
 
 
 # 1 "../gsl/gsl_vector_complex_long_double.h" 1
 # 23 "../gsl/gsl_vector_complex_long_double.h"
 # 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" 
 # 46 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2.2/include/iso/stdlib_iso.h" 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;
 # 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 *);
 # 144 "/usr/include/stdlib.h" 3 4
 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 *);
 # 24 "../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)
 {
 
 
 
 
 
 
   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)
 {
 
 
 
 
 
 
   v->data[i * v->stride] = x;
 }
 
 extern inline
 long double *
 gsl_vector_long_double_ptr (gsl_vector_long_double * v, const size_t i)
 {
 
 
 
 
 
 
   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)
 {
 
 
 
 
 
 
   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)
 {
 
 
 
 
 
 
 
   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)
 {
 
 
 
 
 
 
   *((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)
 {
 
 
 
 
 
 
   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)
 {
 
 
 
 
 
 
   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)
 {
 
 
 
 
 
 
   return v->data[i * v->stride];
 }
 
 extern inline
 void
 gsl_vector_set (gsl_vector * v, const size_t i, double x)
 {
 
 
 
 
 
 
   v->data[i * v->stride] = x;
 }
 
 extern inline
 double *
 gsl_vector_ptr (gsl_vector * v, const size_t i)
 {
 
 
 
 
 
 
   return (double *) (v->data + i * v->stride);
 }
 
 extern inline
 const double *
 gsl_vector_const_ptr (const gsl_vector * v, const size_t i)
 {
 
 
 
 
 
 
   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)
 {
 
 
 
 
 
 
 
   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)
 {
 
 
 
 
 
 
   *((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)
 {
 
 
 
 
 
 
   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)
 {
 
 
 
 
 
 
   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)
 {
 
 
 
 
 
 
   return v->data[i * v->stride];
 }
 
 extern inline
 void
 gsl_vector_float_set (gsl_vector_float * v, const size_t i, float x)
 {
 
 
 
 
 
 
   v->data[i * v->stride] = x;
 }
 
 extern inline
 float *
 gsl_vector_float_ptr (gsl_vector_float * v, const size_t i)
 {
 
 
 
 
 
 
   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)
 {
 
 
 
 
 
 
   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)
 {
 
 
 
 
 
 
 
   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)
 {
 
 
 
 
 
 
   *((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)
 {
 
 
 
 
 
 
   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)
 {
 
 
 
 
 
 
   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)
 {
 
 
 
 
 
 
   return v->data[i * v->stride];
 }
 
 extern inline
 void
 gsl_vector_ulong_set (gsl_vector_ulong * v, const size_t i, unsigned long x)
 {
 
 
 
 
 
 
   v->data[i * v->stride] = x;
 }
 
 extern inline
 unsigned long *
 gsl_vector_ulong_ptr (gsl_vector_ulong * v, const size_t i)
 {
 
 
 
 
 
 
   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)
 {
 
 
 
 
 
 
   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)
 {
 
 
 
 
 
 
   return v->data[i * v->stride];
 }
 
 extern inline
 void
 gsl_vector_long_set (gsl_vector_long * v, const size_t i, long x)
 {
 
 
 
 
 
 
   v->data[i * v->stride] = x;
 }
 
 extern inline
 long *
 gsl_vector_long_ptr (gsl_vector_long * v, const size_t i)
 {
 
 
 
 
 
 
   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)
 {
 
 
 
 
 
 
   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)
 {
 
 
 
 
 
 
   return v->data[i * v->stride];
 }
 
 extern inline
 void
 gsl_vector_uint_set (gsl_vector_uint * v, const size_t i, unsigned int x)
 {
 
 
 
 
 
 
   v->data[i * v->stride] = x;
 }
 
 extern inline
 unsigned int *
 gsl_vector_uint_ptr (gsl_vector_uint * v, const size_t i)
 {
 
 
 
 
 
 
   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)
 {
 
 
 
 
 
 
   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)
 {
 
 
 
 
 
 
   return v->data[i * v->stride];
 }
 
 extern inline
 void
 gsl_vector_int_set (gsl_vector_int * v, const size_t i, int x)
 {
 
 
 
 
 
 
   v->data[i * v->stride] = x;
 }
 
 extern inline
 int *
 gsl_vector_int_ptr (gsl_vector_int * v, const size_t i)
 {
 
 
 
 
 
 
   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)
 {
 
 
 
 
 
 
   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)
 {
 
 
 
 
 
 
   return v->data[i * v->stride];
 }
 
 extern inline
 void
 gsl_vector_ushort_set (gsl_vector_ushort * v, const size_t i, unsigned short x)
 {
 
 
 
 
 
 
   v->data[i * v->stride] = x;
 }
 
 extern inline
 unsigned short *
 gsl_vector_ushort_ptr (gsl_vector_ushort * v, const size_t i)
 {
 
 
 
 
 
 
   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)
 {
 
 
 
 
 
 
   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)
 {
 
 
 
 
 
 
   return v->data[i * v->stride];
 }
 
 extern inline
 void
 gsl_vector_short_set (gsl_vector_short * v, const size_t i, short x)
 {
 
 
 
 
 
 
   v->data[i * v->stride] = x;
 }
 
 extern inline
 short *
 gsl_vector_short_ptr (gsl_vector_short * v, const size_t i)
 {
 
 
 
 
 
 
   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)
 {
 
 
 
 
 
 
   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)
 {
 
 
 
 
 
 
   return v->data[i * v->stride];
 }
 
 extern inline
 void
 gsl_vector_uchar_set (gsl_vector_uchar * v, const size_t i, unsigned char x)
 {
 
 
 
 
 
 
   v->data[i * v->stride] = x;
 }
 
 extern inline
 unsigned char *
 gsl_vector_uchar_ptr (gsl_vector_uchar * v, const size_t i)
 {
 
 
 
 
 
 
   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)
 {
 
 
 
 
 
 
   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)
 {
 
 
 
 
 
 
   return v->data[i * v->stride];
 }
 
 extern inline
 void
 gsl_vector_char_set (gsl_vector_char * v, const size_t i, char x)
 {
 
 
 
 
 
 
   v->data[i * v->stride] = x;
 }
 
 extern inline
 char *
 gsl_vector_char_ptr (gsl_vector_char * v, const size_t i)
 {
 
 
 
 
 
 
   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)
 {
 
 
 
 
 
 
   return (const char *) (v->data + i * v->stride);
 }
 
 
 
 
 
 # 23 "../gsl/gsl_vector.h" 2
 # 4 "swap.c" 2
 
 
 # 1 "../templates_on.h" 1
 # 7 "swap.c" 2
 # 1 "swap_source.c" 1
 # 20 "swap_source.c"
 int
 gsl_vector_complex_long_double_swap (gsl_vector_complex_long_double * v, gsl_vector_complex_long_double * w)
 {
   long double * d1 = v->data ;
   long double * d2 = w->data ;
   const size_t size = v->size ;
   const size_t s1 = 2 * v->stride ;
   const size_t s2 = 2 * v->stride ;
   size_t i, k ;
 
   if (v->size != w->size)
     {
       do { gsl_error ("vector lengths must be equal", "swap_source.c", 32, GSL_EINVAL) ; return GSL_EINVAL ; } while (0);
     }
 
   for (i = 0; i < size; i++)
     {
       for (k = 0; k < 2; k++)
         {
           long double tmp = d1[i*s1 + k];
           d1[i*s1+k] = d2[i*s2 + k];
           d2[i*s2+k] = tmp;
         }
     }
 
   return GSL_SUCCESS;
 }
 
 int
 gsl_vector_complex_long_double_swap_elements (gsl_vector_complex_long_double * v, const size_t i, const size_t j)
 {
   long double * data = v->data ;
   const size_t size = v->size ;
   const size_t stride = v->stride ;
 
   if (i >= size)
     {
       do { gsl_error ("first index is out of range", "swap_source.c", 57, GSL_EINVAL) ; return GSL_EINVAL ; } while (0);
     }
 
   if (j >= size)
     {
       do { gsl_error ("second index is out of range", "swap_source.c", 62, GSL_EINVAL) ; return GSL_EINVAL ; } while (0);
     }
 
   if (i != j)
     {
       const size_t s = 2 * stride ;
       size_t k ;
 
       for (k = 0; k < 2; k++)
         {
           long double tmp = data[j*s + k];
           data[j*s+k] = data[i*s + k];
           data[i*s+k] = tmp;
         }
     }
 
   return GSL_SUCCESS;
 }
 
 int
 gsl_vector_complex_long_double_reverse (gsl_vector_complex_long_double * v)
 {
   long double * data = v->data ;
   const size_t size = v->size ;
   const size_t stride = v->stride ;
 
   const size_t s = 2 * stride ;
 
   size_t i ;
 
   for (i = 0 ; i < (size / 2) ; i++)
     {
       size_t j = size - i - 1 ;
       size_t k;
 
       for (k = 0; k < 2; k++)
         {
           long double tmp = data[j*s + k];
           data[j*s+k] = data[i*s + k];
           data[i*s+k] = tmp;
         }
     }
 
   return GSL_SUCCESS;
 }
 # 8 "swap.c" 2
 # 1 "../templates_off.h" 1
 # 9 "swap.c" 2
 
 
 
 # 1 "../templates_on.h" 1
 # 13 "swap.c" 2
 # 1 "swap_source.c" 1
 # 20 "swap_source.c"
 int
 gsl_vector_complex_swap (gsl_vector_complex * v, gsl_vector_complex * w)
 {
   double * d1 = v->data ;
   double * d2 = w->data ;
   const size_t size = v->size ;
   const size_t s1 = 2 * v->stride ;
   const size_t s2 = 2 * v->stride ;
   size_t i, k ;
 
   if (v->size != w->size)
     {
       do { gsl_error ("vector lengths must be equal", "swap_source.c", 32, GSL_EINVAL) ; return GSL_EINVAL ; } while (0);
     }
 
   for (i = 0; i < size; i++)
     {
       for (k = 0; k < 2; k++)
         {
           double tmp = d1[i*s1 + k];
           d1[i*s1+k] = d2[i*s2 + k];
           d2[i*s2+k] = tmp;
         }
     }
 
   return GSL_SUCCESS;
 }
 
 int
 gsl_vector_complex_swap_elements (gsl_vector_complex * v, const size_t i, const size_t j)
 {
   double * data = v->data ;
   const size_t size = v->size ;
   const size_t stride = v->stride ;
 
   if (i >= size)
     {
       do { gsl_error ("first index is out of range", "swap_source.c", 57, GSL_EINVAL) ; return GSL_EINVAL ; } while (0);
     }
 
   if (j >= size)
     {
       do { gsl_error ("second index is out of range", "swap_source.c", 62, GSL_EINVAL) ; return GSL_EINVAL ; } while (0);
     }
 
   if (i != j)
     {
       const size_t s = 2 * stride ;
       size_t k ;
 
       for (k = 0; k < 2; k++)
         {
           double tmp = data[j*s + k];
           data[j*s+k] = data[i*s + k];
           data[i*s+k] = tmp;
         }
     }
 
   return GSL_SUCCESS;
 }
 
 int
 gsl_vector_complex_reverse (gsl_vector_complex * v)
 {
   double * data = v->data ;
   const size_t size = v->size ;
   const size_t stride = v->stride ;
 
   const size_t s = 2 * stride ;
 
   size_t i ;
 
   for (i = 0 ; i < (size / 2) ; i++)
     {
       size_t j = size - i - 1 ;
       size_t k;
 
       for (k = 0; k < 2; k++)
         {
           double tmp = data[j*s + k];
           data[j*s+k] = data[i*s + k];
           data[i*s+k] = tmp;
         }
     }
 
   return GSL_SUCCESS;
 }
 # 14 "swap.c" 2
 # 1 "../templates_off.h" 1
 # 15 "swap.c" 2
 
 
 
 # 1 "../templates_on.h" 1
 # 19 "swap.c" 2
 # 1 "swap_source.c" 1
 # 20 "swap_source.c"
 int
 gsl_vector_complex_float_swap (gsl_vector_complex_float * v, gsl_vector_complex_float * w)
 {
   float * d1 = v->data ;
   float * d2 = w->data ;
   const size_t size = v->size ;
   const size_t s1 = 2 * v->stride ;
   const size_t s2 = 2 * v->stride ;
   size_t i, k ;
 
   if (v->size != w->size)
     {
       do { gsl_error ("vector lengths must be equal", "swap_source.c", 32, GSL_EINVAL) ; return GSL_EINVAL ; } while (0);
     }
 
   for (i = 0; i < size; i++)
     {
       for (k = 0; k < 2; k++)
         {
           float tmp = d1[i*s1 + k];
           d1[i*s1+k] = d2[i*s2 + k];
           d2[i*s2+k] = tmp;
         }
     }
 
   return GSL_SUCCESS;
 }
 
 int
 gsl_vector_complex_float_swap_elements (gsl_vector_complex_float * v, const size_t i, const size_t j)
 {
   float * data = v->data ;
   const size_t size = v->size ;
   const size_t stride = v->stride ;
 
   if (i >= size)
     {
       do { gsl_error ("first index is out of range", "swap_source.c", 57, GSL_EINVAL) ; return GSL_EINVAL ; } while (0);
     }
 
   if (j >= size)
     {
       do { gsl_error ("second index is out of range", "swap_source.c", 62, GSL_EINVAL) ; return GSL_EINVAL ; } while (0);
     }
 
   if (i != j)
     {
       const size_t s = 2 * stride ;
       size_t k ;
 
       for (k = 0; k < 2; k++)
         {
           float tmp = data[j*s + k];
           data[j*s+k] = data[i*s + k];
           data[i*s+k] = tmp;
         }
     }
 
   return GSL_SUCCESS;
 }
 
 int
 gsl_vector_complex_float_reverse (gsl_vector_complex_float * v)
 {
   float * data = v->data ;
   const size_t size = v->size ;
   const size_t stride = v->stride ;
 
   const size_t s = 2 * stride ;
 
   size_t i ;
 
   for (i = 0 ; i < (size / 2) ; i++)
     {
       size_t j = size - i - 1 ;
       size_t k;
 
       for (k = 0; k < 2; k++)
         {
           float tmp = data[j*s + k];
           data[j*s+k] = data[i*s + k];
           data[i*s+k] = tmp;
         }
     }
 
   return GSL_SUCCESS;
 }
 # 20 "swap.c" 2
 # 1 "../templates_off.h" 1
 # 21 "swap.c" 2
 
 
 
 # 1 "../templates_on.h" 1
 # 25 "swap.c" 2
 # 1 "swap_source.c" 1
 # 20 "swap_source.c"
 int
 gsl_vector_long_double_swap (gsl_vector_long_double * v, gsl_vector_long_double * w)
 {
   long double * d1 = v->data ;
   long double * d2 = w->data ;
   const size_t size = v->size ;
   const size_t s1 = 1 * v->stride ;
   const size_t s2 = 1 * v->stride ;
   size_t i, k ;
 
   if (v->size != w->size)
     {
       do { gsl_error ("vector lengths must be equal", "swap_source.c", 32, GSL_EINVAL) ; return GSL_EINVAL ; } while (0);
     }
 
   for (i = 0; i < size; i++)
     {
       for (k = 0; k < 1; k++)
         {
           long double tmp = d1[i*s1 + k];
           d1[i*s1+k] = d2[i*s2 + k];
           d2[i*s2+k] = tmp;
         }
     }
 
   return GSL_SUCCESS;
 }
 
 int
 gsl_vector_long_double_swap_elements (gsl_vector_long_double * v, const size_t i, const size_t j)
 {
   long double * data = v->data ;
   const size_t size = v->size ;
   const size_t stride = v->stride ;
 
   if (i >= size)
     {
       do { gsl_error ("first index is out of range", "swap_source.c", 57, GSL_EINVAL) ; return GSL_EINVAL ; } while (0);
     }
 
   if (j >= size)
     {
       do { gsl_error ("second index is out of range", "swap_source.c", 62, GSL_EINVAL) ; return GSL_EINVAL ; } while (0);
     }
 
   if (i != j)
     {
       const size_t s = 1 * stride ;
       size_t k ;
 
       for (k = 0; k < 1; k++)
         {
           long double tmp = data[j*s + k];
           data[j*s+k] = data[i*s + k];
           data[i*s+k] = tmp;
         }
     }
 
   return GSL_SUCCESS;
 }
 
 int
 gsl_vector_long_double_reverse (gsl_vector_long_double * v)
 {
   long double * data = v->data ;
   const size_t size = v->size ;
   const size_t stride = v->stride ;
 
   const size_t s = 1 * stride ;
 
   size_t i ;
 
   for (i = 0 ; i < (size / 2) ; i++)
     {
       size_t j = size - i - 1 ;
       size_t k;
 
       for (k = 0; k < 1; k++)
         {
           long double tmp = data[j*s + k];
           data[j*s+k] = data[i*s + k];
           data[i*s+k] = tmp;
         }
     }
 
   return GSL_SUCCESS;
 }
 # 26 "swap.c" 2
 # 1 "../templates_off.h" 1
 # 27 "swap.c" 2
 
 
 
 # 1 "../templates_on.h" 1
 # 31 "swap.c" 2
 # 1 "swap_source.c" 1
 # 20 "swap_source.c"
 int
 gsl_vector_swap (gsl_vector * v, gsl_vector * w)
 {
   double * d1 = v->data ;
   double * d2 = w->data ;
   const size_t size = v->size ;
   const size_t s1 = 1 * v->stride ;
   const size_t s2 = 1 * v->stride ;
   size_t i, k ;
 
   if (v->size != w->size)
     {
       do { gsl_error ("vector lengths must be equal", "swap_source.c", 32, GSL_EINVAL) ; return GSL_EINVAL ; } while (0);
     }
 
   for (i = 0; i < size; i++)
     {
       for (k = 0; k < 1; k++)
         {
           double tmp = d1[i*s1 + k];
           d1[i*s1+k] = d2[i*s2 + k];
           d2[i*s2+k] = tmp;
         }
     }
 
   return GSL_SUCCESS;
 }
 
 int
 gsl_vector_swap_elements (gsl_vector * v, const size_t i, const size_t j)
 {
   double * data = v->data ;
   const size_t size = v->size ;
   const size_t stride = v->stride ;
 
   if (i >= size)
     {
       do { gsl_error ("first index is out of range", "swap_source.c", 57, GSL_EINVAL) ; return GSL_EINVAL ; } while (0);
     }
 
   if (j >= size)
     {
       do { gsl_error ("second index is out of range", "swap_source.c", 62, GSL_EINVAL) ; return GSL_EINVAL ; } while (0);
     }
 
   if (i != j)
     {
       const size_t s = 1 * stride ;
       size_t k ;
 
       for (k = 0; k < 1; k++)
         {
           double tmp = data[j*s + k];
           data[j*s+k] = data[i*s + k];
           data[i*s+k] = tmp;
         }
     }
 
   return GSL_SUCCESS;
 }
 
 int
 gsl_vector_reverse (gsl_vector * v)
 {
   double * data = v->data ;
   const size_t size = v->size ;
   const size_t stride = v->stride ;
 
   const size_t s = 1 * stride ;
 
   size_t i ;
 
   for (i = 0 ; i < (size / 2) ; i++)
     {
       size_t j = size - i - 1 ;
       size_t k;
 
       for (k = 0; k < 1; k++)
         {
           double tmp = data[j*s + k];
           data[j*s+k] = data[i*s + k];
           data[i*s+k] = tmp;
         }
     }
 
   return GSL_SUCCESS;
 }
 # 32 "swap.c" 2
 # 1 "../templates_off.h" 1
 # 33 "swap.c" 2
 
 
 
 # 1 "../templates_on.h" 1
 # 37 "swap.c" 2
 # 1 "swap_source.c" 1
 # 20 "swap_source.c"
 int
 gsl_vector_float_swap (gsl_vector_float * v, gsl_vector_float * w)
 {
   float * d1 = v->data ;
   float * d2 = w->data ;
   const size_t size = v->size ;
   const size_t s1 = 1 * v->stride ;
   const size_t s2 = 1 * v->stride ;
   size_t i, k ;
 
   if (v->size != w->size)
     {
       do { gsl_error ("vector lengths must be equal", "swap_source.c", 32, GSL_EINVAL) ; return GSL_EINVAL ; } while (0);
     }
 
   for (i = 0; i < size; i++)
     {
       for (k = 0; k < 1; k++)
         {
           float tmp = d1[i*s1 + k];
           d1[i*s1+k] = d2[i*s2 + k];
           d2[i*s2+k] = tmp;
         }
     }
 
   return GSL_SUCCESS;
 }
 
 int
 gsl_vector_float_swap_elements (gsl_vector_float * v, const size_t i, const size_t j)
 {
   float * data = v->data ;
   const size_t size = v->size ;
   const size_t stride = v->stride ;
 
   if (i >= size)
     {
       do { gsl_error ("first index is out of range", "swap_source.c", 57, GSL_EINVAL) ; return GSL_EINVAL ; } while (0);
     }
 
   if (j >= size)
     {
       do { gsl_error ("second index is out of range", "swap_source.c", 62, GSL_EINVAL) ; return GSL_EINVAL ; } while (0);
     }
 
   if (i != j)
     {
       const size_t s = 1 * stride ;
       size_t k ;
 
       for (k = 0; k < 1; k++)
         {
           float tmp = data[j*s + k];
           data[j*s+k] = data[i*s + k];
           data[i*s+k] = tmp;
         }
     }
 
   return GSL_SUCCESS;
 }
 
 int
 gsl_vector_float_reverse (gsl_vector_float * v)
 {
   float * data = v->data ;
   const size_t size = v->size ;
   const size_t stride = v->stride ;
 
   const size_t s = 1 * stride ;
 
   size_t i ;
 
   for (i = 0 ; i < (size / 2) ; i++)
     {
       size_t j = size - i - 1 ;
       size_t k;
 
       for (k = 0; k < 1; k++)
         {
           float tmp = data[j*s + k];
           data[j*s+k] = data[i*s + k];
           data[i*s+k] = tmp;
         }
     }
 
   return GSL_SUCCESS;
 }
 # 38 "swap.c" 2
 # 1 "../templates_off.h" 1
 # 39 "swap.c" 2
 
 
 
 # 1 "../templates_on.h" 1
 # 43 "swap.c" 2
 # 1 "swap_source.c" 1
 # 20 "swap_source.c"
 int
 gsl_vector_ulong_swap (gsl_vector_ulong * v, gsl_vector_ulong * w)
 {
   unsigned long * d1 = v->data ;
   unsigned long * d2 = w->data ;
   const size_t size = v->size ;
   const size_t s1 = 1 * v->stride ;
   const size_t s2 = 1 * v->stride ;
   size_t i, k ;
 
   if (v->size != w->size)
     {
       do { gsl_error ("vector lengths must be equal", "swap_source.c", 32, GSL_EINVAL) ; return GSL_EINVAL ; } while (0);
     }
 
   for (i = 0; i < size; i++)
     {
       for (k = 0; k < 1; k++)
         {
           unsigned long tmp = d1[i*s1 + k];
           d1[i*s1+k] = d2[i*s2 + k];
           d2[i*s2+k] = tmp;
         }
     }
 
   return GSL_SUCCESS;
 }
 
 int
 gsl_vector_ulong_swap_elements (gsl_vector_ulong * v, const size_t i, const size_t j)
 {
   unsigned long * data = v->data ;
   const size_t size = v->size ;
   const size_t stride = v->stride ;
 
   if (i >= size)
     {
       do { gsl_error ("first index is out of range", "swap_source.c", 57, GSL_EINVAL) ; return GSL_EINVAL ; } while (0);
     }
 
   if (j >= size)
     {
       do { gsl_error ("second index is out of range", "swap_source.c", 62, GSL_EINVAL) ; return GSL_EINVAL ; } while (0);
     }
 
   if (i != j)
     {
       const size_t s = 1 * stride ;
       size_t k ;
 
       for (k = 0; k < 1; k++)
         {
           unsigned long tmp = data[j*s + k];
           data[j*s+k] = data[i*s + k];
           data[i*s+k] = tmp;
         }
     }
 
   return GSL_SUCCESS;
 }
 
 int
 gsl_vector_ulong_reverse (gsl_vector_ulong * v)
 {
   unsigned long * data = v->data ;
   const size_t size = v->size ;
   const size_t stride = v->stride ;
 
   const size_t s = 1 * stride ;
 
   size_t i ;
 
   for (i = 0 ; i < (size / 2) ; i++)
     {
       size_t j = size - i - 1 ;
       size_t k;
 
       for (k = 0; k < 1; k++)
         {
           unsigned long tmp = data[j*s + k];
           data[j*s+k] = data[i*s + k];
           data[i*s+k] = tmp;
         }
     }
 
   return GSL_SUCCESS;
 }
 # 44 "swap.c" 2
 # 1 "../templates_off.h" 1
 # 45 "swap.c" 2
 
 
 
 # 1 "../templates_on.h" 1
 # 49 "swap.c" 2
 # 1 "swap_source.c" 1
 # 20 "swap_source.c"
 int
 gsl_vector_long_swap (gsl_vector_long * v, gsl_vector_long * w)
 {
   long * d1 = v->data ;
   long * d2 = w->data ;
   const size_t size = v->size ;
   const size_t s1 = 1 * v->stride ;
   const size_t s2 = 1 * v->stride ;
   size_t i, k ;
 
   if (v->size != w->size)
     {
       do { gsl_error ("vector lengths must be equal", "swap_source.c", 32, GSL_EINVAL) ; return GSL_EINVAL ; } while (0);
     }
 
   for (i = 0; i < size; i++)
     {
       for (k = 0; k < 1; k++)
         {
           long tmp = d1[i*s1 + k];
           d1[i*s1+k] = d2[i*s2 + k];
           d2[i*s2+k] = tmp;
         }
     }
 
   return GSL_SUCCESS;
 }
 
 int
 gsl_vector_long_swap_elements (gsl_vector_long * v, const size_t i, const size_t j)
 {
   long * data = v->data ;
   const size_t size = v->size ;
   const size_t stride = v->stride ;
 
   if (i >= size)
     {
       do { gsl_error ("first index is out of range", "swap_source.c", 57, GSL_EINVAL) ; return GSL_EINVAL ; } while (0);
     }
 
   if (j >= size)
     {
       do { gsl_error ("second index is out of range", "swap_source.c", 62, GSL_EINVAL) ; return GSL_EINVAL ; } while (0);
     }
 
   if (i != j)
     {
       const size_t s = 1 * stride ;
       size_t k ;
 
       for (k = 0; k < 1; k++)
         {
           long tmp = data[j*s + k];
           data[j*s+k] = data[i*s + k];
           data[i*s+k] = tmp;
         }
     }
 
   return GSL_SUCCESS;
 }
 
 int
 gsl_vector_long_reverse (gsl_vector_long * v)
 {
   long * data = v->data ;
   const size_t size = v->size ;
   const size_t stride = v->stride ;
 
   const size_t s = 1 * stride ;
 
   size_t i ;
 
   for (i = 0 ; i < (size / 2) ; i++)
     {
       size_t j = size - i - 1 ;
       size_t k;
 
       for (k = 0; k < 1; k++)
         {
           long tmp = data[j*s + k];
           data[j*s+k] = data[i*s + k];
           data[i*s+k] = tmp;
         }
     }
 
   return GSL_SUCCESS;
 }
 # 50 "swap.c" 2
 # 1 "../templates_off.h" 1
 # 51 "swap.c" 2
 
 
 
 # 1 "../templates_on.h" 1
 # 55 "swap.c" 2
 # 1 "swap_source.c" 1
 # 20 "swap_source.c"
 int
 gsl_vector_uint_swap (gsl_vector_uint * v, gsl_vector_uint * w)
 {
   unsigned int * d1 = v->data ;
   unsigned int * d2 = w->data ;
   const size_t size = v->size ;
   const size_t s1 = 1 * v->stride ;
   const size_t s2 = 1 * v->stride ;
   size_t i, k ;
 
   if (v->size != w->size)
     {
       do { gsl_error ("vector lengths must be equal", "swap_source.c", 32, GSL_EINVAL) ; return GSL_EINVAL ; } while (0);
     }
 
   for (i = 0; i < size; i++)
     {
       for (k = 0; k < 1; k++)
         {
           unsigned int tmp = d1[i*s1 + k];
           d1[i*s1+k] = d2[i*s2 + k];
           d2[i*s2+k] = tmp;
         }
     }
 
   return GSL_SUCCESS;
 }
 
 int
 gsl_vector_uint_swap_elements (gsl_vector_uint * v, const size_t i, const size_t j)
 {
   unsigned int * data = v->data ;
   const size_t size = v->size ;
   const size_t stride = v->stride ;
 
   if (i >= size)
     {
       do { gsl_error ("first index is out of range", "swap_source.c", 57, GSL_EINVAL) ; return GSL_EINVAL ; } while (0);
     }
 
   if (j >= size)
     {
       do { gsl_error ("second index is out of range", "swap_source.c", 62, GSL_EINVAL) ; return GSL_EINVAL ; } while (0);
     }
 
   if (i != j)
     {
       const size_t s = 1 * stride ;
       size_t k ;
 
       for (k = 0; k < 1; k++)
         {
           unsigned int tmp = data[j*s + k];
           data[j*s+k] = data[i*s + k];
           data[i*s+k] = tmp;
         }
     }
 
   return GSL_SUCCESS;
 }
 
 int
 gsl_vector_uint_reverse (gsl_vector_uint * v)
 {
   unsigned int * data = v->data ;
   const size_t size = v->size ;
   const size_t stride = v->stride ;
 
   const size_t s = 1 * stride ;
 
   size_t i ;
 
   for (i = 0 ; i < (size / 2) ; i++)
     {
       size_t j = size - i - 1 ;
       size_t k;
 
       for (k = 0; k < 1; k++)
         {
           unsigned int tmp = data[j*s + k];
           data[j*s+k] = data[i*s + k];
           data[i*s+k] = tmp;
         }
     }
 
   return GSL_SUCCESS;
 }
 # 56 "swap.c" 2
 # 1 "../templates_off.h" 1
 # 57 "swap.c" 2
 
 
 
 # 1 "../templates_on.h" 1
 # 61 "swap.c" 2
 # 1 "swap_source.c" 1
 # 20 "swap_source.c"
 int
 gsl_vector_int_swap (gsl_vector_int * v, gsl_vector_int * w)
 {
   int * d1 = v->data ;
   int * d2 = w->data ;
   const size_t size = v->size ;
   const size_t s1 = 1 * v->stride ;
   const size_t s2 = 1 * v->stride ;
   size_t i, k ;
 
   if (v->size != w->size)
     {
       do { gsl_error ("vector lengths must be equal", "swap_source.c", 32, GSL_EINVAL) ; return GSL_EINVAL ; } while (0);
     }
 
   for (i = 0; i < size; i++)
     {
       for (k = 0; k < 1; k++)
         {
           int tmp = d1[i*s1 + k];
           d1[i*s1+k] = d2[i*s2 + k];
           d2[i*s2+k] = tmp;
         }
     }
 
   return GSL_SUCCESS;
 }
 
 int
 gsl_vector_int_swap_elements (gsl_vector_int * v, const size_t i, const size_t j)
 {
   int * data = v->data ;
   const size_t size = v->size ;
   const size_t stride = v->stride ;
 
   if (i >= size)
     {
       do { gsl_error ("first index is out of range", "swap_source.c", 57, GSL_EINVAL) ; return GSL_EINVAL ; } while (0);
     }
 
   if (j >= size)
     {
       do { gsl_error ("second index is out of range", "swap_source.c", 62, GSL_EINVAL) ; return GSL_EINVAL ; } while (0);
     }
 
   if (i != j)
     {
       const size_t s = 1 * stride ;
       size_t k ;
 
       for (k = 0; k < 1; k++)
         {
           int tmp = data[j*s + k];
           data[j*s+k] = data[i*s + k];
           data[i*s+k] = tmp;
         }
     }
 
   return GSL_SUCCESS;
 }
 
 int
 gsl_vector_int_reverse (gsl_vector_int * v)
 {
   int * data = v->data ;
   const size_t size = v->size ;
   const size_t stride = v->stride ;
 
   const size_t s = 1 * stride ;
 
   size_t i ;
 
   for (i = 0 ; i < (size / 2) ; i++)
     {
       size_t j = size - i - 1 ;
       size_t k;
 
       for (k = 0; k < 1; k++)
         {
           int tmp = data[j*s + k];
           data[j*s+k] = data[i*s + k];
           data[i*s+k] = tmp;
         }
     }
 
   return GSL_SUCCESS;
 }
 # 62 "swap.c" 2
 # 1 "../templates_off.h" 1
 # 63 "swap.c" 2
 
 
 
 # 1 "../templates_on.h" 1
 # 67 "swap.c" 2
 # 1 "swap_source.c" 1
 # 20 "swap_source.c"
 int
 gsl_vector_ushort_swap (gsl_vector_ushort * v, gsl_vector_ushort * w)
 {
   unsigned short * d1 = v->data ;
   unsigned short * d2 = w->data ;
   const size_t size = v->size ;
   const size_t s1 = 1 * v->stride ;
   const size_t s2 = 1 * v->stride ;
   size_t i, k ;
 
   if (v->size != w->size)
     {
       do { gsl_error ("vector lengths must be equal", "swap_source.c", 32, GSL_EINVAL) ; return GSL_EINVAL ; } while (0);
     }
 
   for (i = 0; i < size; i++)
     {
       for (k = 0; k < 1; k++)
         {
           unsigned short tmp = d1[i*s1 + k];
           d1[i*s1+k] = d2[i*s2 + k];
           d2[i*s2+k] = tmp;
         }
     }
 
   return GSL_SUCCESS;
 }
 
 int
 gsl_vector_ushort_swap_elements (gsl_vector_ushort * v, const size_t i, const size_t j)
 {
   unsigned short * data = v->data ;
   const size_t size = v->size ;
   const size_t stride = v->stride ;
 
   if (i >= size)
     {
       do { gsl_error ("first index is out of range", "swap_source.c", 57, GSL_EINVAL) ; return GSL_EINVAL ; } while (0);
     }
 
   if (j >= size)
     {
       do { gsl_error ("second index is out of range", "swap_source.c", 62, GSL_EINVAL) ; return GSL_EINVAL ; } while (0);
     }
 
   if (i != j)
     {
       const size_t s = 1 * stride ;
       size_t k ;
 
       for (k = 0; k < 1; k++)
         {
           unsigned short tmp = data[j*s + k];
           data[j*s+k] = data[i*s + k];
           data[i*s+k] = tmp;
         }
     }
 
   return GSL_SUCCESS;
 }
 
 int
 gsl_vector_ushort_reverse (gsl_vector_ushort * v)
 {
   unsigned short * data = v->data ;
   const size_t size = v->size ;
   const size_t stride = v->stride ;
 
   const size_t s = 1 * stride ;
 
   size_t i ;
 
   for (i = 0 ; i < (size / 2) ; i++)
     {
       size_t j = size - i - 1 ;
       size_t k;
 
       for (k = 0; k < 1; k++)
         {
           unsigned short tmp = data[j*s + k];
           data[j*s+k] = data[i*s + k];
           data[i*s+k] = tmp;
         }
     }
 
   return GSL_SUCCESS;
 }
 # 68 "swap.c" 2
 # 1 "../templates_off.h" 1
 # 69 "swap.c" 2
 
 
 
 # 1 "../templates_on.h" 1
 # 73 "swap.c" 2
 # 1 "swap_source.c" 1
 # 20 "swap_source.c"
 int
 gsl_vector_short_swap (gsl_vector_short * v, gsl_vector_short * w)
 {
   short * d1 = v->data ;
   short * d2 = w->data ;
   const size_t size = v->size ;
   const size_t s1 = 1 * v->stride ;
   const size_t s2 = 1 * v->stride ;
   size_t i, k ;
 
   if (v->size != w->size)
     {
       do { gsl_error ("vector lengths must be equal", "swap_source.c", 32, GSL_EINVAL) ; return GSL_EINVAL ; } while (0);
     }
 
   for (i = 0; i < size; i++)
     {
       for (k = 0; k < 1; k++)
         {
           short tmp = d1[i*s1 + k];
           d1[i*s1+k] = d2[i*s2 + k];
           d2[i*s2+k] = tmp;
         }
     }
 
   return GSL_SUCCESS;
 }
 
 int
 gsl_vector_short_swap_elements (gsl_vector_short * v, const size_t i, const size_t j)
 {
   short * data = v->data ;
   const size_t size = v->size ;
   const size_t stride = v->stride ;
 
   if (i >= size)
     {
       do { gsl_error ("first index is out of range", "swap_source.c", 57, GSL_EINVAL) ; return GSL_EINVAL ; } while (0);
     }
 
   if (j >= size)
     {
       do { gsl_error ("second index is out of range", "swap_source.c", 62, GSL_EINVAL) ; return GSL_EINVAL ; } while (0);
     }
 
   if (i != j)
     {
       const size_t s = 1 * stride ;
       size_t k ;
 
       for (k = 0; k < 1; k++)
         {
           short tmp = data[j*s + k];
           data[j*s+k] = data[i*s + k];
           data[i*s+k] = tmp;
         }
     }
 
   return GSL_SUCCESS;
 }
 
 int
 gsl_vector_short_reverse (gsl_vector_short * v)
 {
   short * data = v->data ;
   const size_t size = v->size ;
   const size_t stride = v->stride ;
 
   const size_t s = 1 * stride ;
 
   size_t i ;
 
   for (i = 0 ; i < (size / 2) ; i++)
     {
       size_t j = size - i - 1 ;
       size_t k;
 
       for (k = 0; k < 1; k++)
         {
           short tmp = data[j*s + k];
           data[j*s+k] = data[i*s + k];
           data[i*s+k] = tmp;
         }
     }
 
   return GSL_SUCCESS;
 }
 # 74 "swap.c" 2
 # 1 "../templates_off.h" 1
 # 75 "swap.c" 2
 
 
 
 # 1 "../templates_on.h" 1
 # 79 "swap.c" 2
 # 1 "swap_source.c" 1
 # 20 "swap_source.c"
 int
 gsl_vector_uchar_swap (gsl_vector_uchar * v, gsl_vector_uchar * w)
 {
   unsigned char * d1 = v->data ;
   unsigned char * d2 = w->data ;
   const size_t size = v->size ;
   const size_t s1 = 1 * v->stride ;
   const size_t s2 = 1 * v->stride ;
   size_t i, k ;
 
   if (v->size != w->size)
     {
       do { gsl_error ("vector lengths must be equal", "swap_source.c", 32, GSL_EINVAL) ; return GSL_EINVAL ; } while (0);
     }
 
   for (i = 0; i < size; i++)
     {
       for (k = 0; k < 1; k++)
         {
           unsigned char tmp = d1[i*s1 + k];
           d1[i*s1+k] = d2[i*s2 + k];
           d2[i*s2+k] = tmp;
         }
     }
 
   return GSL_SUCCESS;
 }
 
 int
 gsl_vector_uchar_swap_elements (gsl_vector_uchar * v, const size_t i, const size_t j)
 {
   unsigned char * data = v->data ;
   const size_t size = v->size ;
   const size_t stride = v->stride ;
 
   if (i >= size)
     {
       do { gsl_error ("first index is out of range", "swap_source.c", 57, GSL_EINVAL) ; return GSL_EINVAL ; } while (0);
     }
 
   if (j >= size)
     {
       do { gsl_error ("second index is out of range", "swap_source.c", 62, GSL_EINVAL) ; return GSL_EINVAL ; } while (0);
     }
 
   if (i != j)
     {
       const size_t s = 1 * stride ;
       size_t k ;
 
       for (k = 0; k < 1; k++)
         {
           unsigned char tmp = data[j*s + k];
           data[j*s+k] = data[i*s + k];
           data[i*s+k] = tmp;
         }
     }
 
   return GSL_SUCCESS;
 }
 
 int
 gsl_vector_uchar_reverse (gsl_vector_uchar * v)
 {
   unsigned char * data = v->data ;
   const size_t size = v->size ;
   const size_t stride = v->stride ;
 
   const size_t s = 1 * stride ;
 
   size_t i ;
 
   for (i = 0 ; i < (size / 2) ; i++)
     {
       size_t j = size - i - 1 ;
       size_t k;
 
       for (k = 0; k < 1; k++)
         {
           unsigned char tmp = data[j*s + k];
           data[j*s+k] = data[i*s + k];
           data[i*s+k] = tmp;
         }
     }
 
   return GSL_SUCCESS;
 }
 # 80 "swap.c" 2
 # 1 "../templates_off.h" 1
 # 81 "swap.c" 2
 
 
 
 # 1 "../templates_on.h" 1
 # 85 "swap.c" 2
 # 1 "swap_source.c" 1
 # 20 "swap_source.c"
 int
 gsl_vector_char_swap (gsl_vector_char * v, gsl_vector_char * w)
 {
   char * d1 = v->data ;
   char * d2 = w->data ;
   const size_t size = v->size ;
   const size_t s1 = 1 * v->stride ;
   const size_t s2 = 1 * v->stride ;
   size_t i, k ;
 
   if (v->size != w->size)
     {
       do { gsl_error ("vector lengths must be equal", "swap_source.c", 32, GSL_EINVAL) ; return GSL_EINVAL ; } while (0);
     }
 
   for (i = 0; i < size; i++)
     {
       for (k = 0; k < 1; k++)
         {
           char tmp = d1[i*s1 + k];
           d1[i*s1+k] = d2[i*s2 + k];
           d2[i*s2+k] = tmp;
         }
     }
 
   return GSL_SUCCESS;
 }
 
 int
 gsl_vector_char_swap_elements (gsl_vector_char * v, const size_t i, const size_t j)
 {
   char * data = v->data ;
   const size_t size = v->size ;
   const size_t stride = v->stride ;
 
   if (i >= size)
     {
       do { gsl_error ("first index is out of range", "swap_source.c", 57, GSL_EINVAL) ; return GSL_EINVAL ; } while (0);
     }
 
   if (j >= size)
     {
       do { gsl_error ("second index is out of range", "swap_source.c", 62, GSL_EINVAL) ; return GSL_EINVAL ; } while (0);
     }
 
   if (i != j)
     {
       const size_t s = 1 * stride ;
       size_t k ;
 
       for (k = 0; k < 1; k++)
         {
           char tmp = data[j*s + k];
           data[j*s+k] = data[i*s + k];
           data[i*s+k] = tmp;
         }
     }
 
   return GSL_SUCCESS;
 }
 
 int
 gsl_vector_char_reverse (gsl_vector_char * v)
 {
   char * data = v->data ;
   const size_t size = v->size ;
   const size_t stride = v->stride ;
 
   const size_t s = 1 * stride ;
 
   size_t i ;
 
   for (i = 0 ; i < (size / 2) ; i++)
     {
       size_t j = size - i - 1 ;
       size_t k;
 
       for (k = 0; k < 1; k++)
         {
           char tmp = data[j*s + k];
           data[j*s+k] = data[i*s + k];
           data[i*s+k] = tmp;
         }
     }
 
   return GSL_SUCCESS;
 }
 # 86 "swap.c" 2
 # 1 "../templates_off.h" 1
 # 87 "swap.c" 2
 
 --0-18757205-1050096195=:13710--


             reply	other threads:[~2003-04-11 21:26 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-04-11 21:26 Yuri Urazov [this message]
  -- strict thread matches above, loose matches on Subject: below --
2003-04-12 20:27 ebotcazou
2003-04-12 20:07 ebotcazou
2003-04-11 21:26 Yuri Urazov
2003-04-11 21:26 Yuri Urazov
2003-04-11 21:16 Yuri Urazov
2003-04-11  9:02 ebotcazou
2003-04-11  8:38 ebotcazou
2003-04-11  8:37 ebotcazou
2003-04-10  7:06 Eric Botcazou
2003-04-09 22:36 Yuri Urazov
2003-04-09 22:36 Yuri Urazov
2003-04-09 22:36 Yuri Urazov
2003-04-09 21:01 bangerth
2003-04-09 20:16 urazov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20030411212601.9404.qmail@sources.redhat.com \
    --to=urazov@yahoo.com \
    --cc=gcc-prs@gcc.gnu.org \
    --cc=nobody@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).