1;;; libgsl.scm
2;;;
3;;; tie the gsl library into the *libgsl* environment
4
5(require cload.scm)
6(provide 'libgsl.scm)
7
8;; if loading from a different directory, pass that info to C
9(let ((directory (let ((current-file (port-filename)))
10		   (and (memv (current-file 0) '(#\/ #\~))
11			(substring current-file 0 (- (length current-file) 9))))))
12  (when (and directory (not (member directory *load-path*)))
13    (set! *load-path* (cons directory *load-path*)))
14  (with-let (rootlet)
15    (require cload.scm))
16  (when (and directory (not (string-position directory *cload-cflags*)))
17    (set! *cload-cflags* (string-append "-I" directory " " *cload-cflags*))))
18
19
20(when (provided? 'pure-s7)
21  (define (make-polar mag ang)
22    (if (and (real? mag) (real? ang))
23	(complex (* mag (cos ang)) (* mag (sin ang)))
24	(error 'wrong-type-arg "make-polar args should be real"))))
25
26
27;; since we might be loading this locally, reader-cond (in that case) won't find gsl-version unless...
28(unless (defined? '*libgsl*)
29  (with-let (rootlet)
30    (define gsl-version 0.0)		; define at top-level no matter where we are now
31    (when (and (provided? 'linux)
32	       (defined? 'system))
33      (let* ((version (#_system "pkg-config gsl --modversion" #t))
34	     (len (length version)))
35	(when (positive? len)
36	  (set! gsl-version (string->number (if (char=? (version (- len 1)) #\newline)
37						(substring version 0 (- len 1))
38						version)))
39	  (unless (number? gsl-version) ; "2.2.1" -> 2.2?
40	    (let ((i1 (char-position #\. version (+ (char-position #\. version) 1))))
41	      (if (integer? i1)
42		  (set! gsl-version (string->number (substring version 0 i1)))))))))))
43
44(unless (defined? '*libgsl*)
45  (define *libgsl*
46    (with-let (unlet)
47      (define GSL_REAL real-part)
48      (define GSL_IMAG imag-part)
49      (define GSL_COMPLEX_EQ equal?)
50      (define GSL_COMPLEX_ONE 1.0)
51      (define GSL_COMPLEX_ZERO 0.0)
52      (define GSL_COMPLEX_NEGONE -1.0)
53      (define gsl_complex_polar make-polar)
54      (define gsl_complex_rect complex)
55      (define GSL_IS_ODD odd?)
56      (define GSL_IS_EVEN even?)
57      (define (GSL_IS_REAL n) (and (number? n) (not (nan? n)) (not (infinite? n))))
58      (define (GSL_SIGN x) (if (negative? x) -1 1))
59      (define GSL_MAX max)
60      (define GSL_MIN min)
61      (define GSL_MAX_INT max)
62      (define GSL_MIN_INT min)
63      (define GSL_MAX_DBL max)
64      (define GSL_MIN_DBL min)
65      (define gsl_max max)
66      (define gsl_min min)
67
68      (set! *libraries* (cons (cons "libgsl.scm" (curlet)) *libraries*))
69
70      (c-define
71       '((C-macro (double (GSL_CONST_CGS_SPEED_OF_LIGHT GSL_CONST_CGS_GRAVITATIONAL_CONSTANT GSL_CONST_CGS_PLANCKS_CONSTANT_H
72			   GSL_CONST_CGS_PLANCKS_CONSTANT_HBAR GSL_CONST_CGS_ASTRONOMICAL_UNIT GSL_CONST_CGS_LIGHT_YEAR
73			   GSL_CONST_CGS_PARSEC GSL_CONST_CGS_GRAV_ACCEL GSL_CONST_CGS_ELECTRON_VOLT GSL_CONST_CGS_MASS_ELECTRON
74			   GSL_CONST_CGS_MASS_MUON GSL_CONST_CGS_MASS_PROTON GSL_CONST_CGS_MASS_NEUTRON GSL_CONST_CGS_RYDBERG
75			   GSL_CONST_CGS_BOLTZMANN GSL_CONST_CGS_MOLAR_GAS GSL_CONST_CGS_STANDARD_GAS_VOLUME GSL_CONST_CGS_MINUTE
76			   GSL_CONST_CGS_HOUR GSL_CONST_CGS_DAY GSL_CONST_CGS_WEEK GSL_CONST_CGS_INCH GSL_CONST_CGS_FOOT
77			   GSL_CONST_CGS_YARD GSL_CONST_CGS_MILE GSL_CONST_CGS_NAUTICAL_MILE GSL_CONST_CGS_FATHOM GSL_CONST_CGS_MIL
78			   GSL_CONST_CGS_POINT GSL_CONST_CGS_TEXPOINT GSL_CONST_CGS_MICRON GSL_CONST_CGS_ANGSTROM GSL_CONST_CGS_HECTARE
79			   GSL_CONST_CGS_ACRE GSL_CONST_CGS_BARN GSL_CONST_CGS_LITER GSL_CONST_CGS_US_GALLON GSL_CONST_CGS_QUART
80			   GSL_CONST_CGS_PINT GSL_CONST_CGS_CUP GSL_CONST_CGS_FLUID_OUNCE GSL_CONST_CGS_TABLESPOON GSL_CONST_CGS_TEASPOON
81			   GSL_CONST_CGS_CANADIAN_GALLON GSL_CONST_CGS_UK_GALLON GSL_CONST_CGS_MILES_PER_HOUR GSL_CONST_CGS_KILOMETERS_PER_HOUR
82			   GSL_CONST_CGS_KNOT GSL_CONST_CGS_POUND_MASS GSL_CONST_CGS_OUNCE_MASS GSL_CONST_CGS_TON GSL_CONST_CGS_METRIC_TON
83			   GSL_CONST_CGS_UK_TON GSL_CONST_CGS_TROY_OUNCE GSL_CONST_CGS_CARAT GSL_CONST_CGS_UNIFIED_ATOMIC_MASS
84			   GSL_CONST_CGS_GRAM_FORCE GSL_CONST_CGS_POUND_FORCE GSL_CONST_CGS_KILOPOUND_FORCE GSL_CONST_CGS_POUNDAL
85			   GSL_CONST_CGS_CALORIE GSL_CONST_CGS_BTU GSL_CONST_CGS_THERM GSL_CONST_CGS_HORSEPOWER GSL_CONST_CGS_BAR
86			   GSL_CONST_CGS_STD_ATMOSPHERE GSL_CONST_CGS_TORR GSL_CONST_CGS_METER_OF_MERCURY GSL_CONST_CGS_INCH_OF_MERCURY
87			   GSL_CONST_CGS_INCH_OF_WATER GSL_CONST_CGS_PSI GSL_CONST_CGS_POISE GSL_CONST_CGS_STOKES GSL_CONST_CGS_STILB
88			   GSL_CONST_CGS_LUMEN GSL_CONST_CGS_LUX GSL_CONST_CGS_PHOT GSL_CONST_CGS_FOOTCANDLE GSL_CONST_CGS_LAMBERT
89			   GSL_CONST_CGS_FOOTLAMBERT GSL_CONST_CGS_CURIE GSL_CONST_CGS_ROENTGEN GSL_CONST_CGS_RAD GSL_CONST_CGS_SOLAR_MASS
90			   GSL_CONST_CGS_BOHR_RADIUS GSL_CONST_CGS_NEWTON GSL_CONST_CGS_DYNE GSL_CONST_CGS_JOULE GSL_CONST_CGS_ERG
91			   GSL_CONST_CGS_STEFAN_BOLTZMANN_CONSTANT GSL_CONST_CGS_THOMSON_CROSS_SECTION GSL_CONST_CGSM_SPEED_OF_LIGHT
92			   GSL_CONST_CGSM_GRAVITATIONAL_CONSTANT GSL_CONST_CGSM_PLANCKS_CONSTANT_H GSL_CONST_CGSM_PLANCKS_CONSTANT_HBAR
93			   GSL_CONST_CGSM_ASTRONOMICAL_UNIT GSL_CONST_CGSM_LIGHT_YEAR GSL_CONST_CGSM_PARSEC GSL_CONST_CGSM_GRAV_ACCEL
94			   GSL_CONST_CGSM_ELECTRON_VOLT GSL_CONST_CGSM_MASS_ELECTRON GSL_CONST_CGSM_MASS_MUON GSL_CONST_CGSM_MASS_PROTON
95			   GSL_CONST_CGSM_MASS_NEUTRON GSL_CONST_CGSM_RYDBERG GSL_CONST_CGSM_BOLTZMANN GSL_CONST_CGSM_MOLAR_GAS
96			   GSL_CONST_CGSM_STANDARD_GAS_VOLUME GSL_CONST_CGSM_MINUTE GSL_CONST_CGSM_HOUR GSL_CONST_CGSM_DAY
97			   GSL_CONST_CGSM_WEEK GSL_CONST_CGSM_INCH GSL_CONST_CGSM_FOOT GSL_CONST_CGSM_YARD GSL_CONST_CGSM_MILE
98			   GSL_CONST_CGSM_NAUTICAL_MILE GSL_CONST_CGSM_FATHOM GSL_CONST_CGSM_MIL GSL_CONST_CGSM_POINT GSL_CONST_CGSM_TEXPOINT
99			   GSL_CONST_CGSM_MICRON GSL_CONST_CGSM_ANGSTROM GSL_CONST_CGSM_HECTARE GSL_CONST_CGSM_ACRE GSL_CONST_CGSM_BARN
100			   GSL_CONST_CGSM_LITER GSL_CONST_CGSM_US_GALLON GSL_CONST_CGSM_QUART GSL_CONST_CGSM_PINT GSL_CONST_CGSM_CUP
101			   GSL_CONST_CGSM_FLUID_OUNCE GSL_CONST_CGSM_TABLESPOON GSL_CONST_CGSM_TEASPOON GSL_CONST_CGSM_CANADIAN_GALLON
102			   GSL_CONST_CGSM_UK_GALLON GSL_CONST_CGSM_MILES_PER_HOUR GSL_CONST_CGSM_KILOMETERS_PER_HOUR GSL_CONST_CGSM_KNOT
103			   GSL_CONST_CGSM_POUND_MASS GSL_CONST_CGSM_OUNCE_MASS GSL_CONST_CGSM_TON GSL_CONST_CGSM_METRIC_TON
104			   GSL_CONST_CGSM_UK_TON GSL_CONST_CGSM_TROY_OUNCE GSL_CONST_CGSM_CARAT GSL_CONST_CGSM_UNIFIED_ATOMIC_MASS
105			   GSL_CONST_CGSM_GRAM_FORCE GSL_CONST_CGSM_POUND_FORCE GSL_CONST_CGSM_KILOPOUND_FORCE GSL_CONST_CGSM_POUNDAL
106			   GSL_CONST_CGSM_CALORIE GSL_CONST_CGSM_BTU GSL_CONST_CGSM_THERM GSL_CONST_CGSM_HORSEPOWER GSL_CONST_CGSM_BAR
107			   GSL_CONST_CGSM_STD_ATMOSPHERE GSL_CONST_CGSM_TORR GSL_CONST_CGSM_METER_OF_MERCURY GSL_CONST_CGSM_INCH_OF_MERCURY
108			   GSL_CONST_CGSM_INCH_OF_WATER GSL_CONST_CGSM_PSI GSL_CONST_CGSM_POISE GSL_CONST_CGSM_STOKES GSL_CONST_CGSM_STILB
109			   GSL_CONST_CGSM_LUMEN GSL_CONST_CGSM_LUX GSL_CONST_CGSM_PHOT GSL_CONST_CGSM_FOOTCANDLE GSL_CONST_CGSM_LAMBERT
110			   GSL_CONST_CGSM_FOOTLAMBERT GSL_CONST_CGSM_CURIE GSL_CONST_CGSM_ROENTGEN GSL_CONST_CGSM_RAD GSL_CONST_CGSM_SOLAR_MASS
111			   GSL_CONST_CGSM_BOHR_RADIUS GSL_CONST_CGSM_NEWTON GSL_CONST_CGSM_DYNE GSL_CONST_CGSM_JOULE GSL_CONST_CGSM_ERG
112			   GSL_CONST_CGSM_STEFAN_BOLTZMANN_CONSTANT GSL_CONST_CGSM_THOMSON_CROSS_SECTION GSL_CONST_CGSM_BOHR_MAGNETON
113			   GSL_CONST_CGSM_NUCLEAR_MAGNETON GSL_CONST_CGSM_ELECTRON_MAGNETIC_MOMENT GSL_CONST_CGSM_PROTON_MAGNETIC_MOMENT
114			   GSL_CONST_CGSM_FARADAY GSL_CONST_CGSM_ELECTRON_CHARGE GSL_CONST_MKS_SPEED_OF_LIGHT GSL_CONST_MKS_GRAVITATIONAL_CONSTANT
115			   GSL_CONST_MKS_PLANCKS_CONSTANT_H GSL_CONST_MKS_PLANCKS_CONSTANT_HBAR GSL_CONST_MKS_ASTRONOMICAL_UNIT
116			   GSL_CONST_MKS_LIGHT_YEAR GSL_CONST_MKS_PARSEC GSL_CONST_MKS_GRAV_ACCEL GSL_CONST_MKS_ELECTRON_VOLT
117			   GSL_CONST_MKS_MASS_ELECTRON GSL_CONST_MKS_MASS_MUON GSL_CONST_MKS_MASS_PROTON GSL_CONST_MKS_MASS_NEUTRON
118			   GSL_CONST_MKS_RYDBERG GSL_CONST_MKS_BOLTZMANN GSL_CONST_MKS_MOLAR_GAS GSL_CONST_MKS_STANDARD_GAS_VOLUME
119			   GSL_CONST_MKS_MINUTE GSL_CONST_MKS_HOUR GSL_CONST_MKS_DAY GSL_CONST_MKS_WEEK GSL_CONST_MKS_INCH GSL_CONST_MKS_FOOT
120			   GSL_CONST_MKS_YARD GSL_CONST_MKS_MILE GSL_CONST_MKS_NAUTICAL_MILE GSL_CONST_MKS_FATHOM GSL_CONST_MKS_MIL
121			   GSL_CONST_MKS_POINT GSL_CONST_MKS_TEXPOINT GSL_CONST_MKS_MICRON GSL_CONST_MKS_ANGSTROM GSL_CONST_MKS_HECTARE
122			   GSL_CONST_MKS_ACRE GSL_CONST_MKS_BARN GSL_CONST_MKS_LITER GSL_CONST_MKS_US_GALLON GSL_CONST_MKS_QUART
123			   GSL_CONST_MKS_PINT GSL_CONST_MKS_CUP GSL_CONST_MKS_FLUID_OUNCE GSL_CONST_MKS_TABLESPOON GSL_CONST_MKS_TEASPOON
124			   GSL_CONST_MKS_CANADIAN_GALLON GSL_CONST_MKS_UK_GALLON GSL_CONST_MKS_MILES_PER_HOUR GSL_CONST_MKS_KILOMETERS_PER_HOUR
125			   GSL_CONST_MKS_KNOT GSL_CONST_MKS_POUND_MASS GSL_CONST_MKS_OUNCE_MASS GSL_CONST_MKS_TON GSL_CONST_MKS_METRIC_TON
126			   GSL_CONST_MKS_UK_TON GSL_CONST_MKS_TROY_OUNCE GSL_CONST_MKS_CARAT GSL_CONST_MKS_UNIFIED_ATOMIC_MASS
127			   GSL_CONST_MKS_GRAM_FORCE GSL_CONST_MKS_POUND_FORCE GSL_CONST_MKS_KILOPOUND_FORCE GSL_CONST_MKS_POUNDAL
128			   GSL_CONST_MKS_CALORIE GSL_CONST_MKS_BTU GSL_CONST_MKS_THERM GSL_CONST_MKS_HORSEPOWER GSL_CONST_MKS_BAR
129			   GSL_CONST_MKS_STD_ATMOSPHERE GSL_CONST_MKS_TORR GSL_CONST_MKS_METER_OF_MERCURY GSL_CONST_MKS_INCH_OF_MERCURY
130			   GSL_CONST_MKS_INCH_OF_WATER GSL_CONST_MKS_PSI GSL_CONST_MKS_POISE GSL_CONST_MKS_STOKES GSL_CONST_MKS_STILB
131			   GSL_CONST_MKS_LUMEN GSL_CONST_MKS_LUX GSL_CONST_MKS_PHOT GSL_CONST_MKS_FOOTCANDLE GSL_CONST_MKS_LAMBERT GSL_CONST_MKS_FOOTLAMBERT
132			   GSL_CONST_MKS_CURIE GSL_CONST_MKS_ROENTGEN GSL_CONST_MKS_RAD GSL_CONST_MKS_SOLAR_MASS GSL_CONST_MKS_BOHR_RADIUS
133			   GSL_CONST_MKS_NEWTON GSL_CONST_MKS_DYNE GSL_CONST_MKS_JOULE GSL_CONST_MKS_ERG GSL_CONST_MKS_STEFAN_BOLTZMANN_CONSTANT
134			   GSL_CONST_MKS_THOMSON_CROSS_SECTION GSL_CONST_MKS_BOHR_MAGNETON GSL_CONST_MKS_NUCLEAR_MAGNETON
135			   GSL_CONST_MKS_ELECTRON_MAGNETIC_MOMENT GSL_CONST_MKS_PROTON_MAGNETIC_MOMENT GSL_CONST_MKS_FARADAY
136			   GSL_CONST_MKS_ELECTRON_CHARGE GSL_CONST_MKS_VACUUM_PERMITTIVITY GSL_CONST_MKS_VACUUM_PERMEABILITY GSL_CONST_MKS_DEBYE
137			   GSL_CONST_MKS_GAUSS GSL_CONST_MKSA_SPEED_OF_LIGHT GSL_CONST_MKSA_GRAVITATIONAL_CONSTANT GSL_CONST_MKSA_PLANCKS_CONSTANT_H
138			   GSL_CONST_MKSA_PLANCKS_CONSTANT_HBAR GSL_CONST_MKSA_ASTRONOMICAL_UNIT GSL_CONST_MKSA_LIGHT_YEAR GSL_CONST_MKSA_PARSEC
139			   GSL_CONST_MKSA_GRAV_ACCEL GSL_CONST_MKSA_ELECTRON_VOLT GSL_CONST_MKSA_MASS_ELECTRON GSL_CONST_MKSA_MASS_MUON
140			   GSL_CONST_MKSA_MASS_PROTON GSL_CONST_MKSA_MASS_NEUTRON GSL_CONST_MKSA_RYDBERG GSL_CONST_MKSA_BOLTZMANN
141			   GSL_CONST_MKSA_MOLAR_GAS GSL_CONST_MKSA_STANDARD_GAS_VOLUME GSL_CONST_MKSA_MINUTE GSL_CONST_MKSA_HOUR
142			   GSL_CONST_MKSA_DAY GSL_CONST_MKSA_WEEK GSL_CONST_MKSA_INCH GSL_CONST_MKSA_FOOT GSL_CONST_MKSA_YARD
143			   GSL_CONST_MKSA_MILE GSL_CONST_MKSA_NAUTICAL_MILE GSL_CONST_MKSA_FATHOM GSL_CONST_MKSA_MIL GSL_CONST_MKSA_POINT
144			   GSL_CONST_MKSA_TEXPOINT GSL_CONST_MKSA_MICRON GSL_CONST_MKSA_ANGSTROM GSL_CONST_MKSA_HECTARE GSL_CONST_MKSA_ACRE
145			   GSL_CONST_MKSA_BARN GSL_CONST_MKSA_LITER GSL_CONST_MKSA_US_GALLON GSL_CONST_MKSA_QUART GSL_CONST_MKSA_PINT
146			   GSL_CONST_MKSA_CUP GSL_CONST_MKSA_FLUID_OUNCE GSL_CONST_MKSA_TABLESPOON GSL_CONST_MKSA_TEASPOON GSL_CONST_MKSA_CANADIAN_GALLON
147			   GSL_CONST_MKSA_UK_GALLON GSL_CONST_MKSA_MILES_PER_HOUR GSL_CONST_MKSA_KILOMETERS_PER_HOUR GSL_CONST_MKSA_KNOT
148			   GSL_CONST_MKSA_POUND_MASS GSL_CONST_MKSA_OUNCE_MASS GSL_CONST_MKSA_TON GSL_CONST_MKSA_METRIC_TON GSL_CONST_MKSA_UK_TON
149			   GSL_CONST_MKSA_TROY_OUNCE GSL_CONST_MKSA_CARAT GSL_CONST_MKSA_UNIFIED_ATOMIC_MASS GSL_CONST_MKSA_GRAM_FORCE
150			   GSL_CONST_MKSA_POUND_FORCE GSL_CONST_MKSA_KILOPOUND_FORCE GSL_CONST_MKSA_POUNDAL GSL_CONST_MKSA_CALORIE GSL_CONST_MKSA_BTU
151			   GSL_CONST_MKSA_THERM GSL_CONST_MKSA_HORSEPOWER GSL_CONST_MKSA_BAR GSL_CONST_MKSA_STD_ATMOSPHERE GSL_CONST_MKSA_TORR
152			   GSL_CONST_MKSA_METER_OF_MERCURY GSL_CONST_MKSA_INCH_OF_MERCURY GSL_CONST_MKSA_INCH_OF_WATER GSL_CONST_MKSA_PSI
153			   GSL_CONST_MKSA_POISE GSL_CONST_MKSA_STOKES GSL_CONST_MKSA_STILB GSL_CONST_MKSA_LUMEN GSL_CONST_MKSA_LUX GSL_CONST_MKSA_PHOT
154			   GSL_CONST_MKSA_FOOTCANDLE GSL_CONST_MKSA_LAMBERT GSL_CONST_MKSA_FOOTLAMBERT GSL_CONST_MKSA_CURIE GSL_CONST_MKSA_ROENTGEN
155			   GSL_CONST_MKSA_RAD GSL_CONST_MKSA_SOLAR_MASS GSL_CONST_MKSA_BOHR_RADIUS GSL_CONST_MKSA_NEWTON GSL_CONST_MKSA_DYNE
156			   GSL_CONST_MKSA_JOULE GSL_CONST_MKSA_ERG GSL_CONST_MKSA_STEFAN_BOLTZMANN_CONSTANT GSL_CONST_MKSA_THOMSON_CROSS_SECTION
157			   GSL_CONST_MKSA_BOHR_MAGNETON GSL_CONST_MKSA_NUCLEAR_MAGNETON GSL_CONST_MKSA_ELECTRON_MAGNETIC_MOMENT
158			   GSL_CONST_MKSA_PROTON_MAGNETIC_MOMENT GSL_CONST_MKSA_FARADAY GSL_CONST_MKSA_ELECTRON_CHARGE GSL_CONST_MKSA_VACUUM_PERMITTIVITY
159			   GSL_CONST_MKSA_VACUUM_PERMEABILITY GSL_CONST_MKSA_DEBYE GSL_CONST_MKSA_GAUSS GSL_CONST_NUM_FINE_STRUCTURE GSL_CONST_NUM_AVOGADRO
160			   GSL_CONST_NUM_YOTTA GSL_CONST_NUM_ZETTA GSL_CONST_NUM_EXA GSL_CONST_NUM_PETA GSL_CONST_NUM_TERA GSL_CONST_NUM_GIGA
161			   GSL_CONST_NUM_MEGA GSL_CONST_NUM_KILO GSL_CONST_NUM_MILLI GSL_CONST_NUM_MICRO GSL_CONST_NUM_NANO GSL_CONST_NUM_PICO
162			   GSL_CONST_NUM_FEMTO GSL_CONST_NUM_ATTO GSL_CONST_NUM_ZEPTO GSL_CONST_NUM_YOCTO
163			   GSL_DBL_EPSILON GSL_SQRT_DBL_EPSILON GSL_ROOT3_DBL_EPSILON GSL_ROOT4_DBL_EPSILON GSL_ROOT5_DBL_EPSILON
164			   GSL_ROOT6_DBL_EPSILON GSL_LOG_DBL_EPSILON GSL_DBL_MIN GSL_SQRT_DBL_MIN GSL_ROOT3_DBL_MIN GSL_ROOT4_DBL_MIN
165			   GSL_ROOT5_DBL_MIN GSL_ROOT6_DBL_MIN GSL_LOG_DBL_MIN GSL_DBL_MAX GSL_SQRT_DBL_MAX GSL_ROOT3_DBL_MAX
166			   GSL_ROOT4_DBL_MAX GSL_ROOT5_DBL_MAX GSL_ROOT6_DBL_MAX GSL_LOG_DBL_MAX GSL_FLT_EPSILON GSL_SQRT_FLT_EPSILON
167			   GSL_ROOT3_FLT_EPSILON GSL_ROOT4_FLT_EPSILON GSL_ROOT5_FLT_EPSILON GSL_ROOT6_FLT_EPSILON GSL_LOG_FLT_EPSILON
168			   GSL_FLT_MIN GSL_SQRT_FLT_MIN GSL_ROOT3_FLT_MIN GSL_ROOT4_FLT_MIN GSL_ROOT5_FLT_MIN GSL_ROOT6_FLT_MIN
169			   GSL_LOG_FLT_MIN GSL_FLT_MAX GSL_SQRT_FLT_MAX GSL_ROOT3_FLT_MAX GSL_ROOT4_FLT_MAX GSL_ROOT5_FLT_MAX
170			   GSL_ROOT6_FLT_MAX GSL_LOG_FLT_MAX GSL_SFLT_EPSILON GSL_SQRT_SFLT_EPSILON GSL_ROOT3_SFLT_EPSILON GSL_ROOT4_SFLT_EPSILON
171			   GSL_ROOT5_SFLT_EPSILON GSL_ROOT6_SFLT_EPSILON GSL_LOG_SFLT_EPSILON GSL_MACH_EPS GSL_SQRT_MACH_EPS GSL_ROOT3_MACH_EPS
172			   GSL_ROOT4_MACH_EPS GSL_ROOT5_MACH_EPS GSL_ROOT6_MACH_EPS GSL_LOG_MACH_EPS)))
173
174	 (int (GSL_SUCCESS GSL_FAILURE GSL_CONTINUE GSL_EDOM GSL_ERANGE GSL_EFAULT GSL_EINVAL GSL_EFAILED GSL_EFACTOR GSL_ESANITY
175	       GSL_ENOMEM GSL_EBADFUNC GSL_ERUNAWAY GSL_EMAXITER GSL_EZERODIV GSL_EBADTOL GSL_ETOL GSL_EUNDRFLW GSL_EOVRFLW
176	       GSL_ELOSS GSL_EROUND GSL_EBADLEN GSL_ENOTSQR GSL_ESING GSL_EDIVERGE GSL_EUNSUP GSL_EUNIMPL GSL_ECACHE GSL_ETABLE
177	       GSL_ENOPROG GSL_ENOPROGJ GSL_ETOLF GSL_ETOLX GSL_ETOLG GSL_EOF
178	       GSL_IEEE_ROUND_TO_NEAREST GSL_IEEE_ROUND_DOWN GSL_IEEE_ROUND_UP GSL_IEEE_ROUND_TO_ZERO GSL_IEEE_MASK_INVALID
179	       GSL_IEEE_MASK_DENORMALIZED GSL_IEEE_MASK_DIVISION_BY_ZERO GSL_IEEE_MASK_OVERFLOW GSL_IEEE_MASK_UNDERFLOW
180	       GSL_IEEE_MASK_ALL GSL_IEEE_TRAP_INEXACT
181	       GSL_INTEG_GAUSS15 GSL_INTEG_GAUSS21 GSL_INTEG_GAUSS31 GSL_INTEG_GAUSS41 GSL_INTEG_GAUSS51 GSL_INTEG_GAUSS61
182	       GSL_EIGEN_SORT_VAL_ASC GSL_EIGEN_SORT_VAL_DESC GSL_EIGEN_SORT_ABS_ASC GSL_EIGEN_SORT_ABS_DESC
183	       gsl_fft_forward gsl_fft_backward
184	       GSL_IEEE_TYPE_NAN GSL_IEEE_TYPE_INF GSL_IEEE_TYPE_NORMAL GSL_IEEE_TYPE_DENORMAL GSL_IEEE_TYPE_ZERO
185	       GSL_IEEE_SINGLE_PRECISION GSL_IEEE_DOUBLE_PRECISION GSL_IEEE_EXTENDED_PRECISION GSL_LINALG_MOD_NONE
186	       GSL_LINALG_MOD_TRANSPOSE GSL_LINALG_MOD_CONJUGATE
187	       GSL_MESSAGE_MASK_A GSL_MESSAGE_MASK_B GSL_MESSAGE_MASK_C GSL_MESSAGE_MASK_D GSL_MESSAGE_MASK_E
188	       GSL_MESSAGE_MASK_F GSL_MESSAGE_MASK_G GSL_MESSAGE_MASK_H
189	       gsl_wavelet_forward gsl_wavelet_backward))
190
191	 (C-macro (int (GSL_PREC_DOUBLE GSL_PREC_SINGLE GSL_PREC_APPROX GSL_SF_MATHIEU_COEFF GSL_SF_FACT_NMAX GSL_SF_DOUBLEFACT_NMAX
192		        GSL_MAJOR_VERSION GSL_MINOR_VERSION
193			GSL_MODE_DEFAULT
194			GSL_INTEG_COSINE GSL_INTEG_SINE)))
195
196	 (C-macro (double (GSL_SF_GAMMA_XMAX
197			   GSL_POSINF GSL_NEGINF GSL_NAN GSL_POSZERO GSL_NEGZERO)))
198
199	 (C-macro (char* GSL_VERSION))
200
201	 (int (CblasRowMajor CblasColMajor CblasNoTrans CblasTrans CblasConjTrans
202	       CblasUpper CblasLower CblasNonUnit CblasUnit CblasLeft CblasRight))
203
204
205	 ;; redirect GSL errors to s7_error
206	 (in-C "static s7_scheme *gsl_error_s7;
207                static void g_gsl_error(const char *reason, const char *file, int line, int gsl_errno)
208                {
209                  s7_error(gsl_error_s7, s7_make_symbol(gsl_error_s7, \"gsl-error\"),
210                	   s7_list(gsl_error_s7, 5,
211                		   s7_make_string(gsl_error_s7, \"GSL: ~A, ~A in ~A line ~A\"),
212                		   s7_make_string(gsl_error_s7, gsl_strerror(gsl_errno)),
213                		   s7_make_string(gsl_error_s7, reason),
214                		   s7_make_string(gsl_error_s7, file),
215                		   s7_make_integer(gsl_error_s7, line)));
216                }")
217	 (C-init "gsl_error_s7 = sc;")
218	 (C-init "gsl_set_error_handler(g_gsl_error);")
219	 (C-init "s7_define(sc, cur_env, s7_make_symbol(sc, \"version\"), s7_make_string(sc, (char *)gsl_version));")
220
221	 (C-macro (int (GSL_SF_LEGENDRE_SCHMIDT GSL_SF_LEGENDRE_SPHARM GSL_SF_LEGENDRE_FULL GSL_SF_LEGENDRE_NONE)))
222
223	 ;; special functions
224	 ;; ((*libgsl* 'gsl_sf_bessel_J0) 1.0) -> 0.7651976865579666
225	 ;; (let ((sfr ((*libgsl* 'gsl_sf_result.make)))) ((*libgsl* 'gsl_sf_bessel_J0_e) 1.0 sfr) ((*libgsl* 'gsl_sf_result.val) sfr))
226
227	 (int gsl_sf_airy_Ai_e (double int gsl_sf_result*))
228	 (double gsl_sf_airy_Ai (double int))
229	 (int gsl_sf_airy_Bi_e (double int gsl_sf_result*))
230	 (double gsl_sf_airy_Bi (double int))
231	 (int gsl_sf_airy_Ai_scaled_e (double int gsl_sf_result*))
232	 (double gsl_sf_airy_Ai_scaled (double int))
233	 (int gsl_sf_airy_Bi_scaled_e (double int gsl_sf_result*))
234	 (double gsl_sf_airy_Bi_scaled (double int))
235	 (int gsl_sf_airy_Ai_deriv_e (double int gsl_sf_result*))
236	 (double gsl_sf_airy_Ai_deriv (double int))
237	 (int gsl_sf_airy_Bi_deriv_e (double int gsl_sf_result*))
238	 (double gsl_sf_airy_Bi_deriv (double int))
239	 (int gsl_sf_airy_Ai_deriv_scaled_e (double int gsl_sf_result*))
240	 (double gsl_sf_airy_Ai_deriv_scaled (double int))
241	 (int gsl_sf_airy_Bi_deriv_scaled_e (double int gsl_sf_result*))
242	 (double gsl_sf_airy_Bi_deriv_scaled (double int))
243	 (int gsl_sf_airy_zero_Ai_e (int gsl_sf_result*))
244	 (double gsl_sf_airy_zero_Ai (int))
245	 (int gsl_sf_airy_zero_Bi_e (int gsl_sf_result*))
246	 (double gsl_sf_airy_zero_Bi (int))
247	 (int gsl_sf_airy_zero_Ai_deriv_e (int gsl_sf_result*))
248	 (double gsl_sf_airy_zero_Ai_deriv (int))
249	 (int gsl_sf_airy_zero_Bi_deriv_e (int gsl_sf_result*))
250	 (double gsl_sf_airy_zero_Bi_deriv (int))
251	 (int gsl_sf_bessel_J0_e (double gsl_sf_result*))
252	 (double gsl_sf_bessel_J0 (double))
253	 (int gsl_sf_bessel_J1_e (double gsl_sf_result*))
254	 (double gsl_sf_bessel_J1 (double))
255	 (int gsl_sf_bessel_Jn_e (int double gsl_sf_result*))
256	 (double gsl_sf_bessel_Jn (int double))
257	 (int gsl_sf_bessel_Jn_array (int int double double*))
258	 (int gsl_sf_bessel_Y0_e (double gsl_sf_result*))
259	 (double gsl_sf_bessel_Y0 (double))
260	 (int gsl_sf_bessel_Y1_e (double gsl_sf_result*))
261	 (double gsl_sf_bessel_Y1 (double))
262	 (int gsl_sf_bessel_Yn_e (int double gsl_sf_result*))
263	 (double gsl_sf_bessel_Yn (int double))
264	 (int gsl_sf_bessel_Yn_array (int int double double*))
265	 (int gsl_sf_bessel_I0_e (double gsl_sf_result*))
266	 (double gsl_sf_bessel_I0 (double))
267	 (int gsl_sf_bessel_I1_e (double gsl_sf_result*))
268	 (double gsl_sf_bessel_I1 (double))
269	 (int gsl_sf_bessel_In_e (int double gsl_sf_result*))
270	 (double gsl_sf_bessel_In (int double))
271	 (int gsl_sf_bessel_In_array (int int double double*))
272	 (int gsl_sf_bessel_I0_scaled_e (double gsl_sf_result*))
273	 (double gsl_sf_bessel_I0_scaled (double))
274	 (int gsl_sf_bessel_I1_scaled_e (double gsl_sf_result*))
275	 (double gsl_sf_bessel_I1_scaled (double))
276	 (int gsl_sf_bessel_In_scaled_e (int double gsl_sf_result*))
277	 (double gsl_sf_bessel_In_scaled (int double))
278	 (int gsl_sf_bessel_In_scaled_array (int int double double*))
279	 (int gsl_sf_bessel_K0_e (double gsl_sf_result*))
280	 (double gsl_sf_bessel_K0 (double))
281	 (int gsl_sf_bessel_K1_e (double gsl_sf_result*))
282	 (double gsl_sf_bessel_K1 (double))
283	 (int gsl_sf_bessel_Kn_e (int double gsl_sf_result*))
284	 (double gsl_sf_bessel_Kn (int double))
285	 (int gsl_sf_bessel_Kn_array (int int double double*))
286	 (int gsl_sf_bessel_K0_scaled_e (double gsl_sf_result*))
287	 (double gsl_sf_bessel_K0_scaled (double))
288	 (int gsl_sf_bessel_K1_scaled_e (double gsl_sf_result*) )
289	 (double gsl_sf_bessel_K1_scaled (double))
290	 (int gsl_sf_bessel_Kn_scaled_e (int double gsl_sf_result*))
291	 (double gsl_sf_bessel_Kn_scaled (int double))
292	 (int gsl_sf_bessel_Kn_scaled_array (int int double double*))
293	 (int gsl_sf_bessel_j0_e (double gsl_sf_result*))
294	 (double gsl_sf_bessel_j0 (double))
295	 (int gsl_sf_bessel_j1_e (double gsl_sf_result*))
296	 (double gsl_sf_bessel_j1 (double))
297	 (int gsl_sf_bessel_j2_e (double gsl_sf_result*))
298	 (double gsl_sf_bessel_j2 (double))
299	 (int gsl_sf_bessel_jl_e (int double gsl_sf_result*))
300	 (double gsl_sf_bessel_jl (int double))
301	 (int gsl_sf_bessel_jl_array (int double double*))
302	 (int gsl_sf_bessel_jl_steed_array (int double double*))
303	 (int gsl_sf_bessel_y0_e (double gsl_sf_result*))
304	 (double gsl_sf_bessel_y0 (double))
305	 (int gsl_sf_bessel_y1_e (double gsl_sf_result*))
306	 (double gsl_sf_bessel_y1 (double))
307	 (int gsl_sf_bessel_y2_e (double gsl_sf_result*))
308	 (double gsl_sf_bessel_y2 (double))
309	 (int gsl_sf_bessel_yl_e (int double gsl_sf_result*))
310	 (double gsl_sf_bessel_yl (int double))
311	 (int gsl_sf_bessel_yl_array (int double double*))
312	 (int gsl_sf_bessel_i0_scaled_e (double gsl_sf_result*))
313	 (double gsl_sf_bessel_i0_scaled (double))
314	 (int gsl_sf_bessel_i1_scaled_e (double gsl_sf_result*))
315	 (double gsl_sf_bessel_i1_scaled (double))
316	 (int gsl_sf_bessel_i2_scaled_e (double gsl_sf_result*))
317	 (double gsl_sf_bessel_i2_scaled (double))
318	 (int gsl_sf_bessel_il_scaled_e (int double gsl_sf_result*))
319	 (double gsl_sf_bessel_il_scaled (int double))
320	 (int gsl_sf_bessel_il_scaled_array (int double double*))
321	 (int gsl_sf_bessel_k0_scaled_e (double gsl_sf_result*))
322	 (double gsl_sf_bessel_k0_scaled (double))
323	 (int gsl_sf_bessel_k1_scaled_e (double gsl_sf_result*))
324	 (double gsl_sf_bessel_k1_scaled (double))
325	 (int gsl_sf_bessel_k2_scaled_e (double gsl_sf_result*))
326	 (double gsl_sf_bessel_k2_scaled (double))
327	 (int gsl_sf_bessel_kl_scaled_e (int double gsl_sf_result*))
328	 (double gsl_sf_bessel_kl_scaled (int double))
329	 (int gsl_sf_bessel_kl_scaled_array (int double double*))
330	 (int gsl_sf_bessel_Jnu_e (double double gsl_sf_result*))
331	 (double gsl_sf_bessel_Jnu (double double))
332	 (int gsl_sf_bessel_Ynu_e (double double gsl_sf_result*))
333	 (double gsl_sf_bessel_Ynu (double double))
334	 (int gsl_sf_bessel_sequence_Jnu_e (double int size_t double*))
335	 (int gsl_sf_bessel_Inu_scaled_e (double double gsl_sf_result*))
336	 (double gsl_sf_bessel_Inu_scaled (double double))
337	 (int gsl_sf_bessel_Inu_e (double double gsl_sf_result*))
338	 (double gsl_sf_bessel_Inu (double double))
339	 (int gsl_sf_bessel_Knu_scaled_e (double double gsl_sf_result*))
340	 (double gsl_sf_bessel_Knu_scaled (double double))
341	 (reader-cond ((>= gsl-version 1.15) (int gsl_sf_bessel_Knu_scaled_e10_e (double double gsl_sf_result_e10*))))
342	 (int gsl_sf_bessel_Knu_e (double double gsl_sf_result*))
343	 (double gsl_sf_bessel_Knu (double double))
344	 (int gsl_sf_bessel_lnKnu_e (double double gsl_sf_result*))
345	 (double gsl_sf_bessel_lnKnu (double double))
346	 (int gsl_sf_bessel_zero_J0_e (int gsl_sf_result*))
347	 (double gsl_sf_bessel_zero_J0 (int))
348	 (int gsl_sf_bessel_zero_J1_e (int gsl_sf_result*))
349	 (double gsl_sf_bessel_zero_J1 (int))
350	 (int gsl_sf_bessel_zero_Jnu_e (double int gsl_sf_result*))
351	 (double gsl_sf_bessel_zero_Jnu (double int))
352	 (int gsl_sf_clausen_e (double gsl_sf_result*))
353	 (double gsl_sf_clausen (double))
354	 (int gsl_sf_hydrogenicR_1_e (double double gsl_sf_result*))
355	 (double gsl_sf_hydrogenicR_1 (double double))
356	 (int gsl_sf_hydrogenicR_e (int int double double gsl_sf_result*))
357	 (double gsl_sf_hydrogenicR (int int double double))
358	 (int gsl_sf_coulomb_wave_FG_e (double double double int gsl_sf_result* gsl_sf_result* gsl_sf_result* gsl_sf_result* double* double*))
359	 (int gsl_sf_coulomb_wave_F_array (double int double double double* double*))
360	 (int gsl_sf_coulomb_wave_FG_array (double int double double double* double* double* double*))
361	 (int gsl_sf_coulomb_wave_FGp_array (double int double double double* double* double* double* double* double*))
362	 (int gsl_sf_coulomb_wave_sphF_array (double int double double double* double*))
363	 (int gsl_sf_coulomb_CL_e (double double gsl_sf_result*))
364	 (int gsl_sf_coulomb_CL_array (double int double double*))
365	 (int gsl_sf_coupling_3j_e (int int int int int int gsl_sf_result*))
366	 (double gsl_sf_coupling_3j (int int int int int int))
367	 ;; out 2.4 (int gsl_sf_coupling_6j_e (int int int int int int gsl_sf_result*))
368	 ;; out 2.4 (double gsl_sf_coupling_6j (int int int int int int))
369	 (int gsl_sf_coupling_RacahW_e (int int int int int int gsl_sf_result*))
370	 (double gsl_sf_coupling_RacahW (int int int int int int))
371	 (int gsl_sf_coupling_9j_e (int int int int int int int int int gsl_sf_result*))
372	 (double gsl_sf_coupling_9j (int int int int int int int int int))
373	 (int gsl_sf_dawson_e (double gsl_sf_result*))
374	 (double gsl_sf_dawson (double))
375	 (int gsl_sf_debye_1_e (double gsl_sf_result*))
376	 (double gsl_sf_debye_1 (double))
377	 (int gsl_sf_debye_2_e (double gsl_sf_result*))
378	 (double gsl_sf_debye_2 (double))
379	 (int gsl_sf_debye_3_e (double gsl_sf_result*))
380	 (double gsl_sf_debye_3 (double))
381	 (int gsl_sf_debye_4_e (double gsl_sf_result*))
382	 (double gsl_sf_debye_4 (double))
383	 (int gsl_sf_debye_5_e (double gsl_sf_result*))
384	 (double gsl_sf_debye_5 (double))
385	 (int gsl_sf_debye_6_e (double gsl_sf_result*))
386	 (double gsl_sf_debye_6 (double))
387	 (int gsl_sf_dilog_e (double gsl_sf_result*))
388	 (double gsl_sf_dilog (double))
389	 (int gsl_sf_complex_dilog_xy_e (double double gsl_sf_result* gsl_sf_result*))
390	 (int gsl_sf_complex_dilog_e (double double gsl_sf_result* gsl_sf_result*))
391	 (int gsl_sf_complex_spence_xy_e (double double gsl_sf_result* gsl_sf_result*))
392	 (int gsl_sf_multiply_e (double double gsl_sf_result*))
393	 (double gsl_sf_multiply (double double))
394	 (int gsl_sf_multiply_err_e (double double double double gsl_sf_result*))
395	 (int gsl_sf_ellint_Kcomp_e (double int gsl_sf_result*))
396	 (double gsl_sf_ellint_Kcomp (double int))
397	 (int gsl_sf_ellint_Ecomp_e (double int gsl_sf_result*))
398	 (double gsl_sf_ellint_Ecomp (double int))
399	 (int gsl_sf_ellint_Pcomp_e (double double int gsl_sf_result*))
400	 (double gsl_sf_ellint_Pcomp (double double int))
401	 (int gsl_sf_ellint_Dcomp_e (double int gsl_sf_result*))
402	 (double gsl_sf_ellint_Dcomp (double int))
403	 (int gsl_sf_ellint_F_e (double double int gsl_sf_result*))
404	 (double gsl_sf_ellint_F (double double int))
405	 (int gsl_sf_ellint_E_e (double double int gsl_sf_result*))
406	 (double gsl_sf_ellint_E (double double int))
407	 (int gsl_sf_ellint_P_e (double double double int gsl_sf_result*))
408	 (double gsl_sf_ellint_P (double double double int))
409	 (reader-cond ((< gsl-version 2.0)
410		       (int gsl_sf_ellint_D_e (double double double int gsl_sf_result*))
411		       (double gsl_sf_ellint_D (double double double int)))
412		      (#t
413		       (int gsl_sf_ellint_D_e (double double int gsl_sf_result*))
414		       (double gsl_sf_ellint_D (double double int))))
415	 (int gsl_sf_ellint_RC_e (double double int gsl_sf_result*))
416	 (double gsl_sf_ellint_RC (double double int))
417	 (int gsl_sf_ellint_RD_e (double double double int gsl_sf_result*))
418	 (double gsl_sf_ellint_RD (double double double int))
419	 (int gsl_sf_ellint_RF_e (double double double int gsl_sf_result*))
420	 (double gsl_sf_ellint_RF (double double double int))
421	 (int gsl_sf_ellint_RJ_e (double double double double int gsl_sf_result*))
422	 (double gsl_sf_ellint_RJ (double double double double int))
423	 (int gsl_sf_elljac_e (double double double* double* double*)) ; these are double by reference
424	 (int gsl_sf_erfc_e (double gsl_sf_result*))
425	 (double gsl_sf_erfc (double))
426	 (int gsl_sf_log_erfc_e (double gsl_sf_result*))
427	 (double gsl_sf_log_erfc (double))
428	 (int gsl_sf_erf_e (double gsl_sf_result*))
429	 (double gsl_sf_erf (double))
430	 (int gsl_sf_erf_Z_e (double gsl_sf_result*))
431	 (int gsl_sf_erf_Q_e (double gsl_sf_result*))
432	 (double gsl_sf_erf_Z (double))
433	 (double gsl_sf_erf_Q (double))
434	 (int gsl_sf_hazard_e (double gsl_sf_result*))
435	 (double gsl_sf_hazard (double))
436	 (int gsl_sf_exp_e (double gsl_sf_result*))
437	 (double gsl_sf_exp (double))
438	 (int gsl_sf_exp_e10_e (double gsl_sf_result_e10*))
439	 (int gsl_sf_exp_mult_e (double double gsl_sf_result*))
440	 (double gsl_sf_exp_mult (double double))
441	 (int gsl_sf_exp_mult_e10_e (double double gsl_sf_result_e10*))
442	 (int gsl_sf_expm1_e (double gsl_sf_result*))
443	 (double gsl_sf_expm1 (double))
444	 (int gsl_sf_exprel_e (double gsl_sf_result*))
445	 (double gsl_sf_exprel (double))
446	 (int gsl_sf_exprel_2_e (double gsl_sf_result*))
447	 (double gsl_sf_exprel_2 (double))
448	 (int gsl_sf_exprel_n_e (int double gsl_sf_result*))
449	 (double gsl_sf_exprel_n (int double))
450	 (int gsl_sf_exprel_n_CF_e (double double gsl_sf_result*))
451	 (int gsl_sf_exp_err_e (double double gsl_sf_result*))
452	 (int gsl_sf_exp_err_e10_e (double double gsl_sf_result_e10*))
453	 (int gsl_sf_exp_mult_err_e (double double double double gsl_sf_result*))
454	 (int gsl_sf_exp_mult_err_e10_e (double double double double gsl_sf_result_e10*))
455	 (int gsl_sf_expint_E1_e (double gsl_sf_result*))
456	 (double gsl_sf_expint_E1 (double))
457	 (int gsl_sf_expint_E2_e (double gsl_sf_result*))
458	 (double gsl_sf_expint_E2 (double))
459	 (int gsl_sf_expint_En_e (int double gsl_sf_result*))
460	 (double gsl_sf_expint_En (int double))
461	 (int gsl_sf_expint_E1_scaled_e (double gsl_sf_result*))
462	 (double gsl_sf_expint_E1_scaled (double))
463	 (int gsl_sf_expint_E2_scaled_e (double gsl_sf_result*))
464	 (double gsl_sf_expint_E2_scaled (double))
465	 (int gsl_sf_expint_En_scaled_e (int double gsl_sf_result*))
466	 (double gsl_sf_expint_En_scaled (int double))
467	 (int gsl_sf_expint_Ei_e (double gsl_sf_result*))
468	 (double gsl_sf_expint_Ei (double))
469	 (int gsl_sf_expint_Ei_scaled_e (double gsl_sf_result*))
470	 (double gsl_sf_expint_Ei_scaled (double))
471	 (int gsl_sf_Shi_e (double gsl_sf_result*))
472	 (double gsl_sf_Shi (double))
473	 (int gsl_sf_Chi_e (double gsl_sf_result*))
474	 (double gsl_sf_Chi (double))
475	 (int gsl_sf_expint_3_e (double gsl_sf_result*))
476	 (double gsl_sf_expint_3 (double))
477	 (int gsl_sf_Si_e (double gsl_sf_result*))
478	 (double gsl_sf_Si (double))
479	 (int gsl_sf_Ci_e (double gsl_sf_result*))
480	 (double gsl_sf_Ci (double))
481	 (int gsl_sf_atanint_e (double gsl_sf_result*))
482	 (double gsl_sf_atanint (double))
483	 (int gsl_sf_fermi_dirac_m1_e (double gsl_sf_result*))
484	 (double gsl_sf_fermi_dirac_m1 (double))
485	 (int gsl_sf_fermi_dirac_0_e (double gsl_sf_result*))
486	 (double gsl_sf_fermi_dirac_0 (double))
487	 (int gsl_sf_fermi_dirac_1_e (double gsl_sf_result*))
488	 (double gsl_sf_fermi_dirac_1 (double))
489	 (int gsl_sf_fermi_dirac_2_e (double gsl_sf_result*))
490	 (double gsl_sf_fermi_dirac_2 (double))
491	 (int gsl_sf_fermi_dirac_int_e (int double gsl_sf_result*))
492	 (double gsl_sf_fermi_dirac_int (int double))
493	 (int gsl_sf_fermi_dirac_mhalf_e (double gsl_sf_result*))
494	 (double gsl_sf_fermi_dirac_mhalf (double))
495	 (int gsl_sf_fermi_dirac_half_e (double gsl_sf_result*))
496	 (double gsl_sf_fermi_dirac_half (double))
497	 (int gsl_sf_fermi_dirac_3half_e (double gsl_sf_result*))
498	 (double gsl_sf_fermi_dirac_3half (double))
499	 (int gsl_sf_fermi_dirac_inc_0_e (double double gsl_sf_result*))
500	 (double gsl_sf_fermi_dirac_inc_0 (double double))
501	 (int gsl_sf_lngamma_e (double gsl_sf_result*))
502	 (double gsl_sf_lngamma (double))
503	 (int gsl_sf_lngamma_sgn_e (double gsl_sf_result* double*))
504	 (int gsl_sf_gamma_e (double gsl_sf_result*))
505	 (double gsl_sf_gamma (double))
506	 (int gsl_sf_gammastar_e (double gsl_sf_result*))
507	 (double gsl_sf_gammastar (double))
508	 (int gsl_sf_gammainv_e (double gsl_sf_result*))
509	 (double gsl_sf_gammainv (double))
510	 (int gsl_sf_lngamma_complex_e (double double gsl_sf_result* gsl_sf_result*))
511	 (int gsl_sf_taylorcoeff_e (int double gsl_sf_result*))
512	 (double gsl_sf_taylorcoeff (int double))
513	 (int gsl_sf_fact_e (int gsl_sf_result*))
514	 (double gsl_sf_fact (int))
515	 (int gsl_sf_doublefact_e (int gsl_sf_result*))
516	 (double gsl_sf_doublefact (int))
517	 (int gsl_sf_lnfact_e (int gsl_sf_result*))
518	 (double gsl_sf_lnfact (int))
519	 (int gsl_sf_lndoublefact_e (int gsl_sf_result*))
520	 (double gsl_sf_lndoublefact (int))
521	 (int gsl_sf_lnchoose_e (int int gsl_sf_result*))
522	 (double gsl_sf_lnchoose (int int))
523	 (int gsl_sf_choose_e (int int gsl_sf_result*))
524	 (double gsl_sf_choose (int int))
525	 (int gsl_sf_lnpoch_e (double double gsl_sf_result*))
526	 (double gsl_sf_lnpoch (double double))
527	 (int gsl_sf_lnpoch_sgn_e (double double gsl_sf_result* double*))
528	 (int gsl_sf_poch_e (double double gsl_sf_result*))
529	 (double gsl_sf_poch (double double))
530	 (int gsl_sf_pochrel_e (double double gsl_sf_result*))
531	 (double gsl_sf_pochrel (double double))
532	 (int gsl_sf_gamma_inc_Q_e (double double gsl_sf_result*))
533	 (double gsl_sf_gamma_inc_Q (double double))
534	 (int gsl_sf_gamma_inc_P_e (double double gsl_sf_result*))
535	 (double gsl_sf_gamma_inc_P (double double))
536	 (int gsl_sf_gamma_inc_e (double double gsl_sf_result*))
537	 (double gsl_sf_gamma_inc (double double))
538	 (int gsl_sf_lnbeta_e (double double gsl_sf_result*))
539	 (double gsl_sf_lnbeta (double double))
540	 (int gsl_sf_lnbeta_sgn_e (double double gsl_sf_result* double*))
541	 (int gsl_sf_beta_e (double double gsl_sf_result*))
542	 (double gsl_sf_beta (double double))
543	 (int gsl_sf_beta_inc_e (double double double gsl_sf_result*))
544	 (double gsl_sf_beta_inc (double double double))
545	 (int gsl_sf_gegenpoly_1_e (double double gsl_sf_result*))
546	 (int gsl_sf_gegenpoly_2_e (double double gsl_sf_result*))
547	 (int gsl_sf_gegenpoly_3_e (double double gsl_sf_result*))
548	 (double gsl_sf_gegenpoly_1 (double double))
549	 (double gsl_sf_gegenpoly_2 (double double))
550	 (double gsl_sf_gegenpoly_3 (double double))
551	 (int gsl_sf_gegenpoly_n_e (int double double gsl_sf_result*))
552	 (double gsl_sf_gegenpoly_n (int double double))
553	 (int gsl_sf_gegenpoly_array (int double double double*))
554	 (int gsl_sf_hyperg_0F1_e (double double gsl_sf_result*))
555	 (double gsl_sf_hyperg_0F1 (double double))
556	 (int gsl_sf_hyperg_1F1_int_e (int int double gsl_sf_result*))
557	 (double gsl_sf_hyperg_1F1_int (int int double))
558	 (int gsl_sf_hyperg_1F1_e (double double double gsl_sf_result*))
559	 (double gsl_sf_hyperg_1F1 (double double double))
560	 (int gsl_sf_hyperg_U_int_e (int int double gsl_sf_result*))
561	 (double gsl_sf_hyperg_U_int (int int double))
562	 (int gsl_sf_hyperg_U_int_e10_e (int int double gsl_sf_result_e10*))
563	 (int gsl_sf_hyperg_U_e (double double double gsl_sf_result*))
564	 (double gsl_sf_hyperg_U (double double double))
565	 (int gsl_sf_hyperg_U_e10_e (double double double gsl_sf_result_e10*))
566	 (int gsl_sf_hyperg_2F1_e (double double double double gsl_sf_result*))
567	 (double gsl_sf_hyperg_2F1 (double double double double))
568	 (int gsl_sf_hyperg_2F1_conj_e (double double double double gsl_sf_result*))
569	 (double gsl_sf_hyperg_2F1_conj (double double double double))
570	 (int gsl_sf_hyperg_2F1_renorm_e (double double double double gsl_sf_result*))
571	 (double gsl_sf_hyperg_2F1_renorm (double double double double))
572	 (int gsl_sf_hyperg_2F1_conj_renorm_e (double double double double gsl_sf_result*))
573	 (double gsl_sf_hyperg_2F1_conj_renorm (double double double double))
574	 (int gsl_sf_hyperg_2F0_e (double double double gsl_sf_result*))
575	 (double gsl_sf_hyperg_2F0 (double double double))
576	 (int gsl_sf_laguerre_1_e (double double gsl_sf_result*))
577	 (int gsl_sf_laguerre_2_e (double double gsl_sf_result*))
578	 (int gsl_sf_laguerre_3_e (double double gsl_sf_result*))
579	 (double gsl_sf_laguerre_1 (double double))
580	 (double gsl_sf_laguerre_2 (double double))
581	 (double gsl_sf_laguerre_3 (double double))
582	 (int gsl_sf_laguerre_n_e (int double double gsl_sf_result*))
583	 (double gsl_sf_laguerre_n (int double double))
584	 (int gsl_sf_lambert_W0_e (double gsl_sf_result*))
585	 (double gsl_sf_lambert_W0 (double))
586	 (int gsl_sf_lambert_Wm1_e (double gsl_sf_result*))
587	 (double gsl_sf_lambert_Wm1 (double))
588	 (int gsl_sf_legendre_Pl_e (int double gsl_sf_result*))
589	 (double gsl_sf_legendre_Pl (int double))
590	 (int gsl_sf_legendre_Pl_array (int double double*))
591	 (int gsl_sf_legendre_Pl_deriv_array ( int double double* double*))
592	 (int gsl_sf_legendre_P1_e (double gsl_sf_result*))
593	 (int gsl_sf_legendre_P2_e (double gsl_sf_result*))
594	 (int gsl_sf_legendre_P3_e (double gsl_sf_result*))
595	 (double gsl_sf_legendre_P1 (double))
596	 (double gsl_sf_legendre_P2 (double))
597	 (double gsl_sf_legendre_P3 (double))
598	 (int gsl_sf_legendre_Q0_e (double gsl_sf_result*))
599	 (double gsl_sf_legendre_Q0 (double))
600	 (int gsl_sf_legendre_Q1_e (double gsl_sf_result*))
601	 (double gsl_sf_legendre_Q1 (double))
602	 (int gsl_sf_legendre_Ql_e (int double gsl_sf_result*))
603	 (double gsl_sf_legendre_Ql (int double))
604	 (int gsl_sf_legendre_Plm_e (int int double gsl_sf_result*))
605	 (double gsl_sf_legendre_Plm (int int double))
606	 (int gsl_sf_legendre_sphPlm_e (int int double gsl_sf_result*))
607	 (double gsl_sf_legendre_sphPlm (int int double))
608
609	 (reader-cond ((< gsl-version 2.0)
610		       (int gsl_sf_legendre_array_size (int int))
611		       (int gsl_sf_legendre_Plm_array (int int double double*))
612		       (int gsl_sf_legendre_Plm_deriv_array (int int double double* double*))
613		       (int gsl_sf_legendre_sphPlm_array (int int double double*))
614		       (int gsl_sf_legendre_sphPlm_deriv_array (int int double double* double*)))
615		      (#t
616		       (int gsl_sf_legendre_array ((gsl_sf_legendre_t int) size_t double double*))
617		       (int gsl_sf_legendre_array_e ((gsl_sf_legendre_t int) size_t double double double*))
618		       (int gsl_sf_legendre_deriv_array ((gsl_sf_legendre_t int) size_t double double* double*))
619		       (int gsl_sf_legendre_deriv_array_e ((gsl_sf_legendre_t int) size_t double double double* double*))
620		       (int gsl_sf_legendre_deriv_alt_array ((gsl_sf_legendre_t int) size_t double double* double*))
621		       (int gsl_sf_legendre_deriv_alt_array_e ((gsl_sf_legendre_t int) size_t double double double* double*))
622		       (int gsl_sf_legendre_deriv2_array ((gsl_sf_legendre_t int) size_t double double* double* double*))
623		       (int gsl_sf_legendre_deriv2_array_e ((gsl_sf_legendre_t int) size_t double double double* double* double*))
624		       (int gsl_sf_legendre_deriv2_alt_array ((gsl_sf_legendre_t int) size_t double double* double* double*))
625		       (int gsl_sf_legendre_deriv2_alt_array_e ((gsl_sf_legendre_t int) size_t double double double* double* double*))
626		       (size_t gsl_sf_legendre_array_n (size_t))
627		       (size_t gsl_sf_legendre_array_index (size_t size_t))
628		       (size_t gsl_sf_legendre_nlm (size_t))))
629
630	 (reader-cond ((>= gsl-version 2.4)
631		       (int gsl_sf_hermite_prob_e (int double gsl_sf_result*))
632		       (double gsl_sf_hermite_prob (int double))
633		       (int gsl_sf_hermite_func_e (int double gsl_sf_result*))
634		       (double gsl_sf_hermite_func (int double))
635		       (int gsl_sf_hermite_prob_array (int double double*))
636		       (int gsl_sf_hermite_prob_series_e (int double double* gsl_sf_result*))
637		       (double gsl_sf_hermite_prob_series (int double double*))
638		       (int gsl_sf_hermite_func_array (int double double*))
639		       (int gsl_sf_hermite_func_series_e (int double double* gsl_sf_result*))
640		       (double gsl_sf_hermite_func_series (int double double*))
641		       (int gsl_sf_hermite_func_der_e (int int double gsl_sf_result*))
642		       (double gsl_sf_hermite_func_der (int int double))
643		       (int gsl_sf_hermite_prob_zero_e (int int gsl_sf_result*))
644		       (double gsl_sf_hermite_prob_zero (int int))
645		       (int gsl_sf_hermite_func_zero_e (int int gsl_sf_result*))
646		       (double gsl_sf_hermite_func_zero (int int))))
647
648	 (reader-cond ((>= gsl-version 2.6)
649		       (int gsl_sf_hermite_prob_deriv_e (int int double gsl_sf_result*))
650		       (double gsl_sf_hermite_prob_deriv (int int double))
651		       (int gsl_sf_hermite_e (int double gsl_sf_result*))
652		       (double gsl_sf_hermite(int double))
653		       (int gsl_sf_hermite_deriv_e (int int double gsl_sf_result*))
654		       (double gsl_sf_hermite_deriv (int int double))
655		       (int gsl_sf_hermite_prob_array_deriv (int int double double*))
656		       (int gsl_sf_hermite_prob_deriv_array (int int double double*))
657		       (int gsl_sf_hermite_array (int double double*))
658		       (int gsl_sf_hermite_array_deriv (int int double double*))
659		       (int gsl_sf_hermite_deriv_array (int int double double*))
660		       (int gsl_sf_hermite_series_e (int double double* gsl_sf_result*))
661		       (double gsl_sf_hermite_series (int double double*))
662		       (int gsl_sf_hermite_zero_e (int int gsl_sf_result*))
663		       (double gsl_sf_hermite_zero (int int))
664		       (int gsl_sf_hermite_func_fast_e (int double gsl_sf_result*))
665		       (double gsl_sf_hermite_func_fast (int double))))
666
667	 (int gsl_sf_conicalP_half_e (double double gsl_sf_result*))
668	 (double gsl_sf_conicalP_half (double double))
669	 (int gsl_sf_conicalP_mhalf_e (double double gsl_sf_result*))
670	 (double gsl_sf_conicalP_mhalf (double double))
671	 (int gsl_sf_conicalP_0_e (double double gsl_sf_result*))
672	 (double gsl_sf_conicalP_0 (double double))
673	 (int gsl_sf_conicalP_1_e (double double gsl_sf_result*))
674	 (double gsl_sf_conicalP_1 (double double))
675	 (int gsl_sf_conicalP_sph_reg_e (int double double gsl_sf_result*))
676	 (double gsl_sf_conicalP_sph_reg (int double double))
677	 (int gsl_sf_conicalP_cyl_reg_e (int double double gsl_sf_result*))
678	 (double gsl_sf_conicalP_cyl_reg (int double double))
679	 (int gsl_sf_legendre_H3d_0_e (double double gsl_sf_result*))
680	 (double gsl_sf_legendre_H3d_0 (double double))
681	 (int gsl_sf_legendre_H3d_1_e (double double gsl_sf_result*))
682	 (double gsl_sf_legendre_H3d_1 (double double))
683	 (int gsl_sf_legendre_H3d_e (int double double gsl_sf_result*))
684	 (double gsl_sf_legendre_H3d (int double double))
685	 (int gsl_sf_legendre_H3d_array (int double double double*))
686	 (int gsl_sf_log_e (double gsl_sf_result*))
687	 (double gsl_sf_log (double))
688	 (int gsl_sf_log_abs_e (double gsl_sf_result*))
689	 (double gsl_sf_log_abs (double))
690	 (int gsl_sf_complex_log_e (double double gsl_sf_result* gsl_sf_result*))
691	 (int gsl_sf_log_1plusx_e (double gsl_sf_result*))
692	 (double gsl_sf_log_1plusx (double))
693	 (int gsl_sf_log_1plusx_mx_e (double gsl_sf_result*))
694	 (double gsl_sf_log_1plusx_mx (double))
695	 (int gsl_sf_mathieu_a_array (int int double gsl_sf_mathieu_workspace* double*))
696	 (int gsl_sf_mathieu_b_array (int int double gsl_sf_mathieu_workspace* double*))
697	 (int gsl_sf_mathieu_a_coeff (int double double double*))
698	 (int gsl_sf_mathieu_b_coeff (int double double double*))
699	 (gsl_sf_mathieu_workspace* gsl_sf_mathieu_alloc (size_t double))
700	 (void gsl_sf_mathieu_free (gsl_sf_mathieu_workspace*))
701	 (int gsl_sf_mathieu_ce_array (int int double double gsl_sf_mathieu_workspace* double*))
702	 (int gsl_sf_mathieu_se_array (int int double double gsl_sf_mathieu_workspace* double*))
703	 (reader-cond ((< gsl-version 2.0)
704		       (int gsl_sf_mathieu_Mc (int int double double gsl_sf_result*))
705		       (int gsl_sf_mathieu_Ms (int int double double gsl_sf_result*))
706		       (int gsl_sf_mathieu_ce (int double double gsl_sf_result*))
707		       (int gsl_sf_mathieu_se (int double double gsl_sf_result*))
708		       (int gsl_sf_mathieu_a (int double gsl_sf_result*))
709		       (int gsl_sf_mathieu_b (int double gsl_sf_result*)))
710		      (#t
711		       (int gsl_sf_mathieu_Mc_e (int int double double gsl_sf_result*))
712		       (double gsl_sf_mathieu_Mc (int int double double))
713		       (int gsl_sf_mathieu_Ms_e (int int double double gsl_sf_result*))
714		       (double gsl_sf_mathieu_Ms (int int double double))
715		       (int gsl_sf_mathieu_a_e (int double gsl_sf_result*))
716		       (double gsl_sf_mathieu_a (int double))
717		       (int gsl_sf_mathieu_b_e (int double gsl_sf_result*))
718		       (double gsl_sf_mathieu_b (int double))
719		       (int gsl_sf_mathieu_ce_e (int double double gsl_sf_result*))
720		       (double gsl_sf_mathieu_ce (int double double))
721		       (int gsl_sf_mathieu_se_e (int double double gsl_sf_result*))
722		       (double gsl_sf_mathieu_se (int double double))))
723	 (int gsl_sf_mathieu_Mc_array (int int int double double gsl_sf_mathieu_workspace* double*))
724	 (int gsl_sf_mathieu_Ms_array (int int int double double gsl_sf_mathieu_workspace* double*))
725	 (int gsl_sf_pow_int_e (double int gsl_sf_result*))
726	 (double gsl_sf_pow_int (double int))
727	 (int gsl_sf_psi_int_e (int gsl_sf_result*))
728	 (double gsl_sf_psi_int (int))
729	 (int gsl_sf_psi_e (double gsl_sf_result*))
730	 (double gsl_sf_psi (double))
731	 (int gsl_sf_psi_1piy_e (double gsl_sf_result*))
732	 (double gsl_sf_psi_1piy (double))
733	 (int gsl_sf_complex_psi_e (double double gsl_sf_result* gsl_sf_result*))
734	 (int gsl_sf_psi_1_int_e (int gsl_sf_result*))
735	 (double gsl_sf_psi_1_int (int))
736	 (int gsl_sf_psi_1_e (double gsl_sf_result*))
737	 (double gsl_sf_psi_1 (double))
738	 (int gsl_sf_psi_n_e (int double gsl_sf_result*))
739	 (double gsl_sf_psi_n (int double))
740	 (int gsl_sf_result_smash_e (gsl_sf_result_e10* gsl_sf_result*))
741	 (int gsl_sf_synchrotron_1_e (double gsl_sf_result*))
742	 (double gsl_sf_synchrotron_1 (double))
743	 (int gsl_sf_synchrotron_2_e (double gsl_sf_result*))
744	 (double gsl_sf_synchrotron_2 (double))
745	 (int gsl_sf_transport_2_e (double gsl_sf_result*))
746	 (double gsl_sf_transport_2 (double))
747	 (int gsl_sf_transport_3_e (double gsl_sf_result*))
748	 (double gsl_sf_transport_3 (double))
749	 (int gsl_sf_transport_4_e (double gsl_sf_result*))
750	 (double gsl_sf_transport_4 (double))
751	 (int gsl_sf_transport_5_e (double gsl_sf_result*))
752	 (double gsl_sf_transport_5 (double))
753	 (int gsl_sf_sin_e (double gsl_sf_result*))
754	 (double gsl_sf_sin (double))
755	 (int gsl_sf_cos_e (double gsl_sf_result*))
756	 (double gsl_sf_cos (double))
757	 (int gsl_sf_hypot_e (double double gsl_sf_result*))
758	 (double gsl_sf_hypot (double double))
759	 (int gsl_sf_complex_sin_e (double double gsl_sf_result* gsl_sf_result*))
760	 (int gsl_sf_complex_cos_e (double double gsl_sf_result* gsl_sf_result*))
761	 (int gsl_sf_complex_logsin_e (double double gsl_sf_result* gsl_sf_result*))
762	 (int gsl_sf_sinc_e (double gsl_sf_result*))
763	 (double gsl_sf_sinc (double))
764	 (int gsl_sf_lnsinh_e (double gsl_sf_result*))
765	 (double gsl_sf_lnsinh (double))
766	 (int gsl_sf_lncosh_e (double gsl_sf_result*))
767	 (double gsl_sf_lncosh (double))
768	 (int gsl_sf_polar_to_rect (double double gsl_sf_result* gsl_sf_result*))
769	 (int gsl_sf_rect_to_polar (double double gsl_sf_result* gsl_sf_result*))
770	 (int gsl_sf_sin_err_e (double double gsl_sf_result*))
771	 (int gsl_sf_cos_err_e (double double gsl_sf_result*))
772	 (int gsl_sf_angle_restrict_symm_e (double*))
773	 (double gsl_sf_angle_restrict_symm (double))
774	 (int gsl_sf_angle_restrict_pos_e (double*))
775	 (double gsl_sf_angle_restrict_pos (double))
776	 (int gsl_sf_angle_restrict_symm_err_e (double gsl_sf_result*))
777	 (int gsl_sf_angle_restrict_pos_err_e (double gsl_sf_result*))
778	 (int gsl_sf_zeta_int_e (int gsl_sf_result*))
779	 (double gsl_sf_zeta_int (int))
780	 (int gsl_sf_zeta_e (double gsl_sf_result*))
781	 (double gsl_sf_zeta (double))
782	 (int gsl_sf_zetam1_e (double gsl_sf_result*))
783	 (double gsl_sf_zetam1 (double))
784	 (int gsl_sf_zetam1_int_e (int gsl_sf_result*))
785	 (double gsl_sf_zetam1_int (int))
786	 (int gsl_sf_hzeta_e (double double gsl_sf_result*))
787	 (double gsl_sf_hzeta (double double))
788	 (int gsl_sf_eta_int_e (int gsl_sf_result*))
789	 (double gsl_sf_eta_int (int))
790	 (int gsl_sf_eta_e (double gsl_sf_result*))
791	 (double gsl_sf_eta (double))
792
793	 (in-C "static s7_pointer g_gsl_sf_result_make(s7_scheme *sc, s7_pointer args)
794                {
795                  return(s7_make_c_pointer_with_type(sc, (void *)calloc(1, sizeof(gsl_sf_result)), s7_make_symbol(sc, \"gsl_sf_result*\"), s7_f(sc)));
796                }
797                static s7_pointer g_gsl_sf_result_val(s7_scheme *sc, s7_pointer args)
798                {
799                  return(s7_make_real(sc, ((gsl_sf_result *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"gsl_sf_result*\"), __func__, 1))->val));
800                }
801                static s7_pointer g_gsl_sf_result_err(s7_scheme *sc, s7_pointer args)
802                {
803                  return(s7_make_real(sc, ((gsl_sf_result *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"gsl_sf_result*\"), __func__, 1))->err));
804                }
805                static s7_pointer g_gsl_sf_result_e10_make(s7_scheme *sc, s7_pointer args)
806                {
807                  return(s7_make_c_pointer_with_type(sc, (void *)calloc(1, sizeof(gsl_sf_result_e10)), s7_make_symbol(sc, \"gsl_sf_result_e10*\"), s7_f(sc)));
808                }
809                static s7_pointer g_to_doubles(s7_scheme *sc, s7_pointer args)
810                {
811                  if (s7_is_vector(s7_car(args)))
812                    return(s7_make_c_pointer_with_type(sc, (void *)s7_float_vector_elements(s7_car(args)), s7_make_symbol(sc, \"double*\"), s7_f(sc)));
813                  return(s7_car(args));
814                }
815                ")
816
817	 (C-function ("gsl_sf_result.make" g_gsl_sf_result_make "" 0))
818	 (C-function ("gsl_sf_result_e10.make" g_gsl_sf_result_e10_make "" 0))
819	 (C-function ("gsl_sf_result.val" g_gsl_sf_result_val "" 1))
820	 (C-function ("gsl_sf_result.err" g_gsl_sf_result_err "" 1))
821	 (C-function ("double*" g_to_doubles "" 1))
822
823	 (double gsl_log1p (double))
824	 (double gsl_expm1 (double))
825	 (double gsl_hypot (double double))
826	 (double gsl_hypot3 (double double double))
827	 (double gsl_acosh (double))
828	 (double gsl_asinh (double))
829	 (double gsl_atanh (double))
830	 (int gsl_isnan (double))
831	 (int gsl_isinf (double))
832	 (int gsl_finite (double))
833	 (double gsl_nan (void))
834	 (double gsl_posinf (void))
835	 (double gsl_neginf (void))
836	 (double gsl_fdiv (double double))
837	 (double gsl_coerce_double (double))
838	 (double gsl_ldexp (double int))
839
840	 (in-C "static s7_pointer g_gsl_frexp(s7_scheme *sc, s7_pointer args)
841                {
842                  int e = 0;
843                  double res;
844                  res = gsl_frexp(s7_real(s7_car(args)), &e);
845                  return(s7_list(sc, 2, s7_make_real(sc, res), s7_make_integer(sc, e)));
846                }
847                ")
848	 (C-function ("gsl_frexp" g_gsl_frexp "" 1))
849
850	 (int gsl_fcmp (double double double))
851	 (double gsl_pow_2 (double))
852	 (double gsl_pow_3 (double))
853	 (double gsl_pow_4 (double))
854	 (double gsl_pow_5 (double))
855	 (double gsl_pow_6 (double))
856	 (double gsl_pow_7 (double))
857	 (double gsl_pow_8 (double))
858	 (double gsl_pow_9 (double))
859	 (double gsl_pow_int (double int))
860
861	 ;; gsl_cdf
862	 (double gsl_cdf_ugaussian_P (double))
863	 (double gsl_cdf_ugaussian_Q (double))
864	 (double gsl_cdf_ugaussian_Pinv (double))
865	 (double gsl_cdf_ugaussian_Qinv (double))
866	 (double gsl_cdf_gaussian_P (double double))
867	 (double gsl_cdf_gaussian_Q (double double))
868	 (double gsl_cdf_gaussian_Pinv (double double))
869	 (double gsl_cdf_gaussian_Qinv (double double))
870	 (double gsl_cdf_gamma_P (double double double))
871	 (double gsl_cdf_gamma_Q (double double double))
872	 (double gsl_cdf_gamma_Pinv (double double double))
873	 (double gsl_cdf_gamma_Qinv (double double double))
874	 (double gsl_cdf_cauchy_P (double double))
875	 (double gsl_cdf_cauchy_Q (double double))
876	 (double gsl_cdf_cauchy_Pinv (double double))
877	 (double gsl_cdf_cauchy_Qinv (double double))
878	 (double gsl_cdf_laplace_P (double double))
879	 (double gsl_cdf_laplace_Q (double double))
880	 (double gsl_cdf_laplace_Pinv (double double))
881	 (double gsl_cdf_laplace_Qinv (double double))
882	 (double gsl_cdf_rayleigh_P (double double))
883	 (double gsl_cdf_rayleigh_Q (double double))
884	 (double gsl_cdf_rayleigh_Pinv (double double))
885	 (double gsl_cdf_rayleigh_Qinv (double double))
886	 (double gsl_cdf_chisq_P (double double))
887	 (double gsl_cdf_chisq_Q (double double))
888	 (double gsl_cdf_chisq_Pinv (double double))
889	 (double gsl_cdf_chisq_Qinv (double double))
890	 (double gsl_cdf_exponential_P (double double))
891	 (double gsl_cdf_exponential_Q (double double))
892	 (double gsl_cdf_exponential_Pinv (double double))
893	 (double gsl_cdf_exponential_Qinv (double double))
894	 (double gsl_cdf_exppow_P (double double double))
895	 (double gsl_cdf_exppow_Q (double double double))
896	 (double gsl_cdf_tdist_P (double double))
897	 (double gsl_cdf_tdist_Q (double double))
898	 (double gsl_cdf_tdist_Pinv (double double))
899	 (double gsl_cdf_tdist_Qinv (double double))
900	 (double gsl_cdf_fdist_P (double double double))
901	 (double gsl_cdf_fdist_Q (double double double))
902	 (double gsl_cdf_fdist_Pinv (double double double))
903	 (double gsl_cdf_fdist_Qinv (double double double))
904	 (double gsl_cdf_beta_P (double double double))
905	 (double gsl_cdf_beta_Q (double double double))
906	 (double gsl_cdf_beta_Pinv (double double double))
907	 (double gsl_cdf_beta_Qinv (double double double))
908	 (double gsl_cdf_flat_P (double double double))
909	 (double gsl_cdf_flat_Q (double double double))
910	 (double gsl_cdf_flat_Pinv (double double double))
911	 (double gsl_cdf_flat_Qinv (double double double))
912	 (double gsl_cdf_lognormal_P (double double double))
913	 (double gsl_cdf_lognormal_Q (double double double))
914	 (double gsl_cdf_lognormal_Pinv (double double double))
915	 (double gsl_cdf_lognormal_Qinv (double double double))
916	 (double gsl_cdf_gumbel1_P (double double double))
917	 (double gsl_cdf_gumbel1_Q (double double double))
918	 (double gsl_cdf_gumbel1_Pinv (double double double))
919	 (double gsl_cdf_gumbel1_Qinv (double double double))
920	 (double gsl_cdf_gumbel2_P (double double double))
921	 (double gsl_cdf_gumbel2_Q (double double double))
922	 (double gsl_cdf_gumbel2_Pinv (double double double))
923	 (double gsl_cdf_gumbel2_Qinv (double double double))
924	 (double gsl_cdf_weibull_P (double double double))
925	 (double gsl_cdf_weibull_Q (double double double))
926	 (double gsl_cdf_weibull_Pinv (double double double))
927	 (double gsl_cdf_weibull_Qinv (double double double))
928	 (double gsl_cdf_pareto_P (double double double))
929	 (double gsl_cdf_pareto_Q (double double double))
930	 (double gsl_cdf_pareto_Pinv (double double double))
931	 (double gsl_cdf_pareto_Qinv (double double double))
932	 (double gsl_cdf_logistic_P (double double))
933	 (double gsl_cdf_logistic_Q (double double))
934	 (double gsl_cdf_logistic_Pinv (double double))
935	 (double gsl_cdf_logistic_Qinv (double double))
936	 (double gsl_cdf_binomial_P (int double int))
937	 (double gsl_cdf_binomial_Q (int double int))
938	 (double gsl_cdf_poisson_P (int double))
939	 (double gsl_cdf_poisson_Q (int double))
940	 (double gsl_cdf_geometric_P (int double))
941	 (double gsl_cdf_geometric_Q (int double))
942	 (double gsl_cdf_negative_binomial_P (int double double))
943	 (double gsl_cdf_negative_binomial_Q (int double double))
944	 (double gsl_cdf_pascal_P (int double int))
945	 (double gsl_cdf_pascal_Q (int double int))
946	 (double gsl_cdf_hypergeometric_P (int int int int))
947	 (double gsl_cdf_hypergeometric_Q (int int int int))
948
949
950	 ;; gsl_dht
951	 (gsl_dht* gsl_dht_alloc (size_t))
952	 (gsl_dht* gsl_dht_new (size_t double double))
953	 (int gsl_dht_init (gsl_dht* double double))
954	 (double gsl_dht_x_sample (gsl_dht* int))
955	 (double gsl_dht_k_sample (gsl_dht* int))
956	 (void gsl_dht_free (gsl_dht*))
957	 (int gsl_dht_apply (gsl_dht* double* double*))
958
959	 ;; gsl_filter
960	 (reader-cond ((>= gsl-version 2.5)
961		       (int (GSL_FILTER_END_PADZERO GSL_FILTER_END_PADVALUE GSL_FILTER_END_TRUNCATE
962			     GSL_FILTER_SCALE_MAD GSL_FILTER_SCALE_IQR GSL_FILTER_SCALE_SN GSL_FILTER_SCALE_QN))
963		       (gsl_filter_gaussian_workspace* gsl_filter_gaussian_alloc (size_t))
964	               (void gsl_filter_gaussian_free (gsl_filter_gaussian_workspace*))
965	               (int gsl_filter_gaussian ((gsl_filter_end_t int) double size_t gsl_vector* gsl_vector* gsl_filter_gaussian_workspace*))
966	               (int gsl_filter_gaussian_kernel (double size_t int gsl_vector*))
967	               (gsl_filter_median_workspace* gsl_filter_median_alloc (size_t))
968	               (void gsl_filter_median_free (gsl_filter_median_workspace*))
969	               (int gsl_filter_median ((gsl_filter_end_t int) gsl_vector* gsl_vector* gsl_filter_median_workspace*))
970	               (gsl_filter_rmedian_workspace* gsl_filter_rmedian_alloc (size_t))
971	               (void gsl_filter_rmedian_free (gsl_filter_rmedian_workspace*))
972	               (int gsl_filter_rmedian ((gsl_filter_end_t int) gsl_vector* gsl_vector* gsl_filter_rmedian_workspace*))
973;	               ;2.6 (int gsl_filter_rmedian2 (gsl_vector* gsl_vector* gsl_filter_rmedian_workspace*))
974	               (gsl_filter_impulse_workspace* gsl_filter_impulse_alloc (size_t))
975	               (void gsl_filter_impulse_free (gsl_filter_impulse_workspace*))
976	               (int gsl_filter_impulse ((gsl_filter_end_t int) (gsl_filter_scale_t int) double gsl_vector* gsl_vector* gsl_vector* gsl_vector* size_t*
977                                                gsl_vector_int* gsl_filter_impulse_workspace*))))
978
979	 ;; gsl_movstat
980	 (reader-cond ((>= gsl-version 2.5)
981		       (int (GSL_MOVSTAT_END_PADZERO GSL_MOVSTAT_END_PADVALUE GSL_MOVSTAT_END_TRUNCATE))
982	               (gsl_movstat_workspace* gsl_movstat_alloc (size_t))
983	               (gsl_movstat_workspace* gsl_movstat_alloc2 (size_t size_t))
984	               (gsl_movstat_workspace* gsl_movstat_alloc_with_size (size_t size_t size_t))
985	               (void gsl_movstat_free (gsl_movstat_workspace*))
986	               (int gsl_movstat_apply_accum ((gsl_movstat_end_t int) gsl_vector* gsl_movstat_accum* void* gsl_vector* gsl_vector* gsl_movstat_workspace*))
987	               (int gsl_movstat_apply ((gsl_movstat_end_t int) gsl_movstat_function* gsl_vector* gsl_vector* gsl_movstat_workspace*))
988	               (size_t gsl_movstat_fill ((gsl_movstat_end_t int) gsl_vector* size_t size_t size_t double*))
989	               (int gsl_movstat_mean ((gsl_movstat_end_t int) gsl_vector* gsl_vector* gsl_movstat_workspace*))
990	               (int gsl_movstat_variance ((gsl_movstat_end_t int) gsl_vector* gsl_vector* gsl_movstat_workspace*))
991	               (int gsl_movstat_sd ((gsl_movstat_end_t int) gsl_vector* gsl_vector* gsl_movstat_workspace*))
992	               (int gsl_movstat_median ((gsl_movstat_end_t int) gsl_vector* gsl_vector* gsl_movstat_workspace*))
993	               (int gsl_movstat_min ((gsl_movstat_end_t int) gsl_vector* gsl_vector* gsl_movstat_workspace*))
994	               (int gsl_movstat_max ((gsl_movstat_end_t int) gsl_vector* gsl_vector* gsl_movstat_workspace*))
995	               (int gsl_movstat_minmax ((gsl_movstat_end_t int) gsl_vector* gsl_vector* gsl_vector* gsl_movstat_workspace*))
996	               (int gsl_movstat_mad0 ((gsl_movstat_end_t int) gsl_vector* gsl_vector* gsl_vector* gsl_movstat_workspace*))
997	               (int gsl_movstat_mad ((gsl_movstat_end_t int) gsl_vector* gsl_vector* gsl_vector* gsl_movstat_workspace*))
998	               (int gsl_movstat_qqr ((gsl_movstat_end_t int) gsl_vector* double gsl_vector* gsl_movstat_workspace*))
999	               (int gsl_movstat_Sn ((gsl_movstat_end_t int) gsl_vector* gsl_vector* gsl_movstat_workspace*))
1000	               (int gsl_movstat_Qn ((gsl_movstat_end_t int) gsl_vector* gsl_vector* gsl_movstat_workspace*))
1001	               (int gsl_movstat_sum ((gsl_movstat_end_t int) gsl_vector* gsl_vector* gsl_movstat_workspace*))
1002#|
1003	               (gsl_movstat_accum* (gsl_movstat_accum_mad gsl_movstat_accum_max gsl_movstat_accum_mean gsl_movstat_accum_median gsl_movstat_accum_min
1004	                                    gsl_movstat_accum_minmax gsl_movstat_accum_sd gsl_movstat_accum_Sn gsl_movstat_accum_sum gsl_movstat_accum_Qn
1005	                                    gsl_movstat_accum_qqr gsl_movstat_accum_userfunc gsl_movstat_accum_variance))
1006|#
1007		       ))
1008
1009	 ;; gsl_statistics
1010	 (double gsl_stats_mean (double* size_t size_t))
1011	 (double gsl_stats_variance (double* size_t size_t))
1012	 (double gsl_stats_sd (double* size_t size_t))
1013	 (double gsl_stats_variance_with_fixed_mean (double* size_t size_t double))
1014	 (double gsl_stats_sd_with_fixed_mean (double* size_t size_t double))
1015	 (double gsl_stats_tss (double* size_t size_t))
1016	 (double gsl_stats_tss_m (double* size_t size_t double))
1017	 (double gsl_stats_absdev (double* size_t size_t))
1018	 (double gsl_stats_skew (double* size_t size_t))
1019	 (double gsl_stats_kurtosis (double* size_t size_t))
1020	 (double gsl_stats_lag1_autocorrelation (double* size_t size_t))
1021	 (double gsl_stats_covariance (double* size_t double* size_t size_t))
1022	 (double gsl_stats_correlation (double* size_t double* size_t size_t))
1023	 (reader-cond ((>= gsl-version 1.16) (double gsl_stats_spearman (double* size_t double* size_t size_t double*))))
1024	 (double gsl_stats_variance_m (double* size_t size_t double))
1025	 (double gsl_stats_sd_m (double* size_t size_t double))
1026	 (double gsl_stats_absdev_m (double* size_t size_t double))
1027	 (double gsl_stats_skew_m_sd (double* size_t size_t double double))
1028	 (double gsl_stats_kurtosis_m_sd (double* size_t size_t double double))
1029	 (double gsl_stats_lag1_autocorrelation_m (double* size_t size_t double))
1030	 (double gsl_stats_covariance_m (double* size_t double* size_t size_t double double))
1031	 (double gsl_stats_wmean (double* size_t double* size_t size_t))
1032	 (double gsl_stats_wvariance (double* size_t double* size_t size_t))
1033	 (double gsl_stats_wsd (double* size_t double* size_t size_t))
1034	 (double gsl_stats_wvariance_with_fixed_mean (double* size_t double* size_t size_t double))
1035	 (double gsl_stats_wsd_with_fixed_mean (double* size_t double* size_t size_t double))
1036	 (double gsl_stats_wtss (double* size_t double* size_t size_t))
1037	 (double gsl_stats_wtss_m (double* size_t double* size_t size_t double))
1038	 (double gsl_stats_wabsdev (double* size_t double* size_t size_t))
1039	 (double gsl_stats_wskew (double* size_t double* size_t size_t))
1040	 (double gsl_stats_wkurtosis (double* size_t double* size_t size_t))
1041	 (double gsl_stats_wvariance_m (double* size_t double* size_t size_t double))
1042	 (double gsl_stats_wsd_m (double* size_t double* size_t size_t double))
1043	 (double gsl_stats_wabsdev_m (double* size_t double* size_t size_t double))
1044	 (double gsl_stats_wskew_m_sd (double* size_t double* size_t size_t double double))
1045	 (double gsl_stats_wkurtosis_m_sd (double* size_t double* size_t size_t double double))
1046	 (double gsl_stats_pvariance (double* size_t size_t double* size_t size_t))
1047	 (double gsl_stats_ttest (double* size_t size_t double* size_t size_t))
1048	 (double gsl_stats_max (double* size_t size_t))
1049	 (double gsl_stats_min (double* size_t size_t))
1050	 (void gsl_stats_minmax (double* double* double* size_t size_t))
1051	 (size_t gsl_stats_max_index (double* size_t size_t))
1052	 (size_t gsl_stats_min_index (double* size_t size_t))
1053	 (void gsl_stats_minmax_index (size_t* size_t* double* size_t size_t))
1054	 (double gsl_stats_median_from_sorted_data (double* size_t size_t))
1055	 (double gsl_stats_quantile_from_sorted_data (double* size_t size_t double))
1056
1057	 (reader-cond ((>= gsl-version 2.5)
1058 	               (double gsl_stats_select (double* size_t size_t size_t))
1059	               (double gsl_stats_median (double* size_t size_t))
1060	               (double gsl_stats_trmean_from_sorted_data (double double* size_t size_t))
1061	               (double gsl_stats_gastwirth_from_sorted_data (double* size_t size_t))
1062	               (double gsl_stats_mad0 (double* size_t size_t double*))
1063	               (double gsl_stats_mad (double* size_t size_t double*))
1064	               (double gsl_stats_Sn0_from_sorted_data (double* size_t size_t double*))
1065	               (double gsl_stats_Sn_from_sorted_data (double* size_t size_t double*))
1066	               (double gsl_stats_Qn0_from_sorted_data (double* size_t size_t double* int*))
1067	               (double gsl_stats_Qn_from_sorted_data (double* size_t size_t double* int*))))
1068
1069
1070	 (gsl_interp_type* (gsl_interp_linear gsl_interp_polynomial gsl_interp_cspline gsl_interp_cspline_periodic
1071			    gsl_interp_akima gsl_interp_akima_periodic))
1072	 (gsl_min_fminimizer_type* (gsl_min_fminimizer_goldensection gsl_min_fminimizer_brent gsl_min_fminimizer_quad_golden))
1073	 (gsl_multimin_fminimizer_type* (gsl_multimin_fminimizer_nmsimplex gsl_multimin_fminimizer_nmsimplex2 gsl_multimin_fminimizer_nmsimplex2rand))
1074	 (gsl_multiroot_fsolver_type* (gsl_multiroot_fsolver_dnewton gsl_multiroot_fsolver_broyden gsl_multiroot_fsolver_hybrid gsl_multiroot_fsolver_hybrids))
1075	 (double* (gsl_prec_eps gsl_prec_sqrt_eps gsl_prec_root3_eps gsl_prec_root4_eps gsl_prec_root5_eps gsl_prec_root6_eps))
1076	 (gsl_root_fsolver_type* (gsl_root_fsolver_bisection gsl_root_fsolver_brent gsl_root_fsolver_falsepos))
1077	 (char* (gsl_version))
1078	 (gsl_wavelet_type* (gsl_wavelet_daubechies gsl_wavelet_daubechies_centered gsl_wavelet_haar gsl_wavelet_haar_centered gsl_wavelet_bspline
1079			     gsl_wavelet_bspline_centered))
1080
1081	 (reader-cond ((>= gsl-version 1.16)
1082		       (gsl_multifit_robust_type* (gsl_multifit_robust_default gsl_multifit_robust_bisquare gsl_multifit_robust_cauchy gsl_multifit_robust_fair
1083				                   gsl_multifit_robust_huber gsl_multifit_robust_ols gsl_multifit_robust_welsch))))
1084
1085	 (reader-cond ((>= gsl-version 2.0)
1086		       (gsl_interp_type* (gsl_interp_steffen))))
1087
1088	 (int (gsl_message_mask gsl_check_range))
1089
1090	 ;; randist, rng
1091	 (gsl_qrng_type* (gsl_qrng_niederreiter_2 gsl_qrng_sobol gsl_qrng_halton gsl_qrng_reversehalton))
1092	 (gsl_rng_type* (gsl_rng_default gsl_rng_borosh13 gsl_rng_coveyou gsl_rng_cmrg gsl_rng_fishman18 gsl_rng_fishman20 gsl_rng_fishman2x gsl_rng_gfsr4
1093		         gsl_rng_knuthran gsl_rng_knuthran2 gsl_rng_knuthran2002 gsl_rng_lecuyer21 gsl_rng_minstd gsl_rng_mrg gsl_rng_mt19937
1094			 gsl_rng_mt19937_1999 gsl_rng_mt19937_1998 gsl_rng_r250 gsl_rng_ran0 gsl_rng_ran1 gsl_rng_ran2 gsl_rng_ran3 gsl_rng_rand
1095			 gsl_rng_rand48 gsl_rng_random128_bsd gsl_rng_random128_glibc2 gsl_rng_random128_libc5 gsl_rng_random256_bsd
1096			 gsl_rng_random256_glibc2 gsl_rng_random256_libc5 gsl_rng_random32_bsd gsl_rng_random32_glibc2 gsl_rng_random32_libc5
1097			 gsl_rng_random64_bsd gsl_rng_random64_glibc2 gsl_rng_random64_libc5 gsl_rng_random8_bsd gsl_rng_random8_glibc2
1098			 gsl_rng_random8_libc5 gsl_rng_random_bsd gsl_rng_random_glibc2 gsl_rng_random_libc5 gsl_rng_randu
1099			 gsl_rng_ranf gsl_rng_ranlux gsl_rng_ranlux389 gsl_rng_ranlxd1 gsl_rng_ranlxd2 gsl_rng_ranlxs0 gsl_rng_ranlxs1
1100			 gsl_rng_ranlxs2 gsl_rng_ranmar gsl_rng_slatec gsl_rng_taus gsl_rng_taus2 gsl_rng_taus113 gsl_rng_transputer
1101			 gsl_rng_tt800 gsl_rng_uni gsl_rng_uni32 gsl_rng_vax gsl_rng_waterman14 gsl_rng_zuf gsl_rng_default_seed))
1102
1103	 (gsl_qrng* gsl_qrng_alloc (gsl_qrng_type* int))
1104	 (int gsl_qrng_memcpy (gsl_qrng* gsl_qrng*))
1105	 (gsl_qrng* gsl_qrng_clone (gsl_qrng*))
1106	 (void gsl_qrng_free (gsl_qrng*))
1107	 (void gsl_qrng_init (gsl_qrng*))
1108	 (char* gsl_qrng_name (gsl_qrng*))
1109	 (size_t gsl_qrng_size (gsl_qrng*))
1110	 (void* gsl_qrng_state (gsl_qrng*))
1111	 (int gsl_qrng_get (gsl_qrng* double*))
1112	 (int gsl_ran_bernoulli (gsl_rng* double))
1113	 (double gsl_ran_bernoulli_pdf (int double))
1114	 (double gsl_ran_beta (gsl_rng* double double))
1115	 (double gsl_ran_beta_pdf (double double double))
1116	 (int gsl_ran_binomial (gsl_rng* double int))
1117	 (int gsl_ran_binomial_knuth (gsl_rng* double int))
1118	 (int gsl_ran_binomial_tpe (gsl_rng* double int))
1119	 (double gsl_ran_binomial_pdf (int double int))
1120	 (double gsl_ran_exponential (gsl_rng* double))
1121	 (double gsl_ran_exponential_pdf (double double))
1122	 (double gsl_ran_exppow (gsl_rng* double double))
1123	 (double gsl_ran_exppow_pdf (double double double))
1124	 (double gsl_ran_cauchy (gsl_rng* double))
1125	 (double gsl_ran_cauchy_pdf (double double))
1126	 (double gsl_ran_chisq (gsl_rng* double))
1127	 (double gsl_ran_chisq_pdf (double double))
1128	 (void gsl_ran_dirichlet (gsl_rng* size_t double* double*))
1129	 (double gsl_ran_dirichlet_pdf (size_t double* double*))
1130	 (double gsl_ran_dirichlet_lnpdf (size_t double* double*))
1131	 (double gsl_ran_erlang (gsl_rng* double double))
1132	 (double gsl_ran_erlang_pdf (double double double))
1133	 (double gsl_ran_fdist (gsl_rng* double double))
1134	 (double gsl_ran_fdist_pdf (double double double))
1135	 (double gsl_ran_flat (gsl_rng* double double))
1136	 (double gsl_ran_flat_pdf (double double double))
1137	 (double gsl_ran_gamma (gsl_rng* double double))
1138	 (double gsl_ran_gamma_int (gsl_rng* int))
1139	 (double gsl_ran_gamma_pdf (double double double))
1140	 (double gsl_ran_gamma_mt (gsl_rng* double double))
1141	 (double gsl_ran_gamma_knuth (gsl_rng* double double))
1142	 (double gsl_ran_gaussian (gsl_rng* double))
1143	 (double gsl_ran_gaussian_ratio_method (gsl_rng* double))
1144	 (double gsl_ran_gaussian_ziggurat (gsl_rng* double))
1145	 (double gsl_ran_gaussian_pdf (double double))
1146	 (double gsl_ran_ugaussian (gsl_rng*))
1147	 (double gsl_ran_ugaussian_ratio_method (gsl_rng*))
1148	 (double gsl_ran_ugaussian_pdf (double))
1149	 (double gsl_ran_gaussian_tail (gsl_rng* double double))
1150	 (double gsl_ran_gaussian_tail_pdf (double double double))
1151	 (double gsl_ran_ugaussian_tail (gsl_rng* double))
1152	 (double gsl_ran_ugaussian_tail_pdf (double double))
1153	 (void gsl_ran_bivariate_gaussian (gsl_rng* double double double double* double*))
1154	 (double gsl_ran_bivariate_gaussian_pdf (double double double double double))
1155	 (double gsl_ran_landau (gsl_rng*))
1156	 (double gsl_ran_landau_pdf (double))
1157	 (int gsl_ran_geometric (gsl_rng* double))
1158	 (double gsl_ran_geometric_pdf (int double))
1159	 (int gsl_ran_hypergeometric (gsl_rng* int int int))
1160	 (double gsl_ran_hypergeometric_pdf (int int int int))
1161	 (double gsl_ran_gumbel1 (gsl_rng* double double))
1162	 (double gsl_ran_gumbel1_pdf (double double double))
1163	 (double gsl_ran_gumbel2 (gsl_rng* double double))
1164	 (double gsl_ran_gumbel2_pdf (double double double))
1165	 (double gsl_ran_logistic (gsl_rng* double))
1166	 (double gsl_ran_logistic_pdf (double double))
1167	 (double gsl_ran_lognormal (gsl_rng* double double))
1168	 (double gsl_ran_lognormal_pdf (double double double))
1169	 (int gsl_ran_logarithmic (gsl_rng* double))
1170	 (double gsl_ran_logarithmic_pdf (int double))
1171	 ;; int*		    (void gsl_ran_multinomial (gsl_rng* size_t int double* int*)) ; unsigned int*
1172	 ;; int*		    (double gsl_ran_multinomial_pdf (size_t double* int*))        ; unsigned int*
1173	 ;; int*		    (double gsl_ran_multinomial_lnpdf (size_t double* int*))      ; unsigned int*
1174	 (int gsl_ran_negative_binomial (gsl_rng* double double))
1175	 (double gsl_ran_negative_binomial_pdf (int double double))
1176	 (int gsl_ran_pascal (gsl_rng* double int))
1177	 (double gsl_ran_pascal_pdf (int double int))
1178	 (double gsl_ran_pareto (gsl_rng* double double))
1179	 (double gsl_ran_pareto_pdf (double double double))
1180	 (int gsl_ran_poisson (gsl_rng* double))
1181	 ;; int*		    (void gsl_ran_poisson_array (gsl_rng* size_t int* double))   ; unsigned int*
1182	 (double gsl_ran_poisson_pdf (int double))
1183	 (double gsl_ran_rayleigh (gsl_rng* double))
1184	 (double gsl_ran_rayleigh_pdf (double double))
1185	 (double gsl_ran_rayleigh_tail (gsl_rng* double double))
1186	 (double gsl_ran_rayleigh_tail_pdf (double double double))
1187	 (double gsl_ran_tdist (gsl_rng* double))
1188	 (double gsl_ran_tdist_pdf (double double))
1189	 (double gsl_ran_laplace (gsl_rng* double))
1190	 (double gsl_ran_laplace_pdf (double double))
1191	 (double gsl_ran_levy (gsl_rng* double double))
1192	 (double gsl_ran_levy_skew (gsl_rng* double double double))
1193	 (double gsl_ran_weibull (gsl_rng* double double))
1194	 (double gsl_ran_weibull_pdf (double double double))
1195	 (void gsl_ran_dir_2d (gsl_rng* double* double*))
1196	 (void gsl_ran_dir_2d_trig_method (gsl_rng* double* double*))
1197	 (void gsl_ran_dir_3d (gsl_rng* double* double* double*))
1198	 (void gsl_ran_dir_nd (gsl_rng* size_t double*))
1199	 (void gsl_ran_shuffle (gsl_rng* void* size_t size_t))
1200	 (int gsl_ran_choose (gsl_rng* void* size_t void* size_t size_t))
1201	 (void gsl_ran_sample (gsl_rng* void* size_t void* size_t size_t))
1202	 (gsl_ran_discrete_t* gsl_ran_discrete_preproc (size_t double*))
1203	 (void gsl_ran_discrete_free (gsl_ran_discrete_t*))
1204	 (size_t gsl_ran_discrete (gsl_rng* gsl_ran_discrete_t*))
1205	 (double gsl_ran_discrete_pdf (size_t gsl_ran_discrete_t*))
1206	 (gsl_rng_type** gsl_rng_types_setup (void))
1207	 (gsl_rng* gsl_rng_alloc (gsl_rng_type*))
1208	 (int gsl_rng_memcpy (gsl_rng* gsl_rng*))
1209	 (gsl_rng* gsl_rng_clone (gsl_rng*))
1210	 (void gsl_rng_free (gsl_rng*))
1211	 (void gsl_rng_set (gsl_rng* int))
1212	 (int gsl_rng_max (gsl_rng*))
1213	 (int gsl_rng_min (gsl_rng*))
1214	 (char* gsl_rng_name (gsl_rng*))
1215	 (int gsl_rng_fread (FILE* gsl_rng*))
1216	 (int gsl_rng_fwrite (FILE* gsl_rng*))
1217	 (size_t gsl_rng_size (gsl_rng*))
1218	 (void* gsl_rng_state (gsl_rng*))
1219	 (void gsl_rng_print_state (gsl_rng*))
1220	 (gsl_rng_type* gsl_rng_env_setup (void))
1221	 (int gsl_rng_get (gsl_rng*))
1222	 (double gsl_rng_uniform (gsl_rng*))
1223	 (double gsl_rng_uniform_pos (gsl_rng*))
1224	 (int gsl_rng_uniform_int (gsl_rng* int))
1225
1226	 ;; gsl_complex
1227	 (in-C "#define S7_TO_GSL_COMPLEX(sg, g) GSL_SET_COMPLEX(&g, s7_real_part(sg), s7_imag_part(sg))
1228                #define GSL_TO_S7_COMPLEX(sc, g) s7_make_complex(sc, GSL_REAL(g), GSL_IMAG(g))
1229
1230                static s7_pointer s7_gsl_c_c(s7_scheme *sc, s7_pointer arg1, gsl_complex (*callee)(gsl_complex a))
1231                {
1232                  gsl_complex g, g1;
1233                  S7_TO_GSL_COMPLEX(arg1, g1);
1234                  g = callee(g1);
1235                  return(GSL_TO_S7_COMPLEX(sc, g));
1236                }
1237                static s7_pointer s7_gsl_r_c(s7_scheme *sc, s7_pointer arg1, gsl_complex (*callee)(double a))
1238                {
1239                  gsl_complex g;
1240                  g = callee(s7_number_to_real(sc, arg1));
1241                  return(GSL_TO_S7_COMPLEX(sc, g));
1242                }
1243                static s7_pointer s7_gsl_c_r(s7_scheme *sc, s7_pointer arg1, double (*callee)(gsl_complex a))
1244                {
1245                  gsl_complex g1;
1246                  S7_TO_GSL_COMPLEX(arg1, g1);
1247                  return(s7_make_real(sc, callee(g1)));
1248                }
1249                static s7_pointer s7_gsl_cc_c(s7_scheme *sc, s7_pointer arg1, s7_pointer arg2, gsl_complex (*callee)(gsl_complex a, gsl_complex b))
1250                {
1251                  gsl_complex g, g1, g2;
1252                  S7_TO_GSL_COMPLEX(arg1, g1);
1253                  S7_TO_GSL_COMPLEX(arg2, g2);
1254                  g = callee(g1, g2);
1255                  return(GSL_TO_S7_COMPLEX(sc, g));
1256                }
1257                static s7_pointer s7_gsl_cr_c(s7_scheme *sc, s7_pointer arg1, s7_pointer arg2, gsl_complex (*callee)(gsl_complex a, double b))
1258                {
1259                  gsl_complex g, g1;
1260                  S7_TO_GSL_COMPLEX(arg1, g1);
1261                  g = callee(g1, s7_number_to_real(sc, arg2));
1262                  return(GSL_TO_S7_COMPLEX(sc, g));
1263                }
1264                static s7_pointer g_gsl_complex_arg(s7_scheme *sc, s7_pointer args) {return(s7_gsl_c_r(sc, s7_car(args), gsl_complex_arg));}
1265                static s7_pointer g_gsl_complex_abs(s7_scheme *sc, s7_pointer args) {return(s7_gsl_c_r(sc, s7_car(args), gsl_complex_abs));}
1266                static s7_pointer g_gsl_complex_abs2(s7_scheme *sc, s7_pointer args) {return(s7_gsl_c_r(sc, s7_car(args), gsl_complex_abs2));}
1267                static s7_pointer g_gsl_complex_logabs(s7_scheme *sc, s7_pointer args) {return(s7_gsl_c_r(sc, s7_car(args), gsl_complex_logabs));}
1268                static s7_pointer g_gsl_complex_conjugate(s7_scheme *sc, s7_pointer args) {return(s7_gsl_c_c(sc, s7_car(args), gsl_complex_conjugate));}
1269                static s7_pointer g_gsl_complex_inverse(s7_scheme *sc, s7_pointer args) {return(s7_gsl_c_c(sc, s7_car(args), gsl_complex_inverse));}
1270                static s7_pointer g_gsl_complex_negative(s7_scheme *sc, s7_pointer args) {return(s7_gsl_c_c(sc, s7_car(args), gsl_complex_negative));}
1271                static s7_pointer g_gsl_complex_sqrt(s7_scheme *sc, s7_pointer args) {return(s7_gsl_c_c(sc, s7_car(args), gsl_complex_sqrt));}
1272                static s7_pointer g_gsl_complex_exp(s7_scheme *sc, s7_pointer args) {return(s7_gsl_c_c(sc, s7_car(args), gsl_complex_exp));}
1273                static s7_pointer g_gsl_complex_log(s7_scheme *sc, s7_pointer args) {return(s7_gsl_c_c(sc, s7_car(args), gsl_complex_log));}
1274                static s7_pointer g_gsl_complex_log10(s7_scheme *sc, s7_pointer args) {return(s7_gsl_c_c(sc, s7_car(args), gsl_complex_log10));}
1275                static s7_pointer g_gsl_complex_sin(s7_scheme *sc, s7_pointer args) {return(s7_gsl_c_c(sc, s7_car(args), gsl_complex_sin));}
1276                static s7_pointer g_gsl_complex_cos(s7_scheme *sc, s7_pointer args) {return(s7_gsl_c_c(sc, s7_car(args), gsl_complex_cos));}
1277                static s7_pointer g_gsl_complex_sec(s7_scheme *sc, s7_pointer args) {return(s7_gsl_c_c(sc, s7_car(args), gsl_complex_sec));}
1278                static s7_pointer g_gsl_complex_csc(s7_scheme *sc, s7_pointer args) {return(s7_gsl_c_c(sc, s7_car(args), gsl_complex_csc));}
1279                static s7_pointer g_gsl_complex_tan(s7_scheme *sc, s7_pointer args) {return(s7_gsl_c_c(sc, s7_car(args), gsl_complex_tan));}
1280                static s7_pointer g_gsl_complex_cot(s7_scheme *sc, s7_pointer args) {return(s7_gsl_c_c(sc, s7_car(args), gsl_complex_cot));}
1281                static s7_pointer g_gsl_complex_sinh(s7_scheme *sc, s7_pointer args) {return(s7_gsl_c_c(sc, s7_car(args), gsl_complex_sinh));}
1282                static s7_pointer g_gsl_complex_cosh(s7_scheme *sc, s7_pointer args) {return(s7_gsl_c_c(sc, s7_car(args), gsl_complex_cosh));}
1283                static s7_pointer g_gsl_complex_sech(s7_scheme *sc, s7_pointer args) {return(s7_gsl_c_c(sc, s7_car(args), gsl_complex_sech));}
1284                static s7_pointer g_gsl_complex_csch(s7_scheme *sc, s7_pointer args) {return(s7_gsl_c_c(sc, s7_car(args), gsl_complex_csch));}
1285                static s7_pointer g_gsl_complex_tanh(s7_scheme *sc, s7_pointer args) {return(s7_gsl_c_c(sc, s7_car(args), gsl_complex_tanh));}
1286                static s7_pointer g_gsl_complex_coth(s7_scheme *sc, s7_pointer args) {return(s7_gsl_c_c(sc, s7_car(args), gsl_complex_coth));}
1287                static s7_pointer g_gsl_complex_arctan(s7_scheme *sc, s7_pointer args) {return(s7_gsl_c_c(sc, s7_car(args), gsl_complex_arctan));}
1288                static s7_pointer g_gsl_complex_arccot(s7_scheme *sc, s7_pointer args) {return(s7_gsl_c_c(sc, s7_car(args), gsl_complex_arccot));}
1289                static s7_pointer g_gsl_complex_arcsinh(s7_scheme *sc, s7_pointer args) {return(s7_gsl_c_c(sc, s7_car(args), gsl_complex_arcsinh));}
1290                static s7_pointer g_gsl_complex_arcsech(s7_scheme *sc, s7_pointer args) {return(s7_gsl_c_c(sc, s7_car(args), gsl_complex_arcsech));}
1291                static s7_pointer g_gsl_complex_arccsch(s7_scheme *sc, s7_pointer args) {return(s7_gsl_c_c(sc, s7_car(args), gsl_complex_arccsch));}
1292                static s7_pointer g_gsl_complex_arccoth(s7_scheme *sc, s7_pointer args) {return(s7_gsl_c_c(sc, s7_car(args), gsl_complex_arccoth));}
1293                static s7_pointer g_gsl_complex_arcsin(s7_scheme *sc, s7_pointer args) {return(s7_gsl_c_c(sc, s7_car(args), gsl_complex_arcsin));}
1294                static s7_pointer g_gsl_complex_arccos(s7_scheme *sc, s7_pointer args) {return(s7_gsl_c_c(sc, s7_car(args), gsl_complex_arccos));}
1295                static s7_pointer g_gsl_complex_arcsec(s7_scheme *sc, s7_pointer args) {return(s7_gsl_c_c(sc, s7_car(args), gsl_complex_arcsec));}
1296                static s7_pointer g_gsl_complex_arccsc(s7_scheme *sc, s7_pointer args) {return(s7_gsl_c_c(sc, s7_car(args), gsl_complex_arccsc));}
1297                static s7_pointer g_gsl_complex_arccosh(s7_scheme *sc, s7_pointer args) {return(s7_gsl_c_c(sc, s7_car(args), gsl_complex_arccosh));}
1298                static s7_pointer g_gsl_complex_arctanh(s7_scheme *sc, s7_pointer args) {return(s7_gsl_c_c(sc, s7_car(args), gsl_complex_arctanh));}
1299                static s7_pointer g_gsl_complex_sqrt_real(s7_scheme *sc, s7_pointer args) {return(s7_gsl_r_c(sc, s7_car(args), gsl_complex_sqrt_real));}
1300                static s7_pointer g_gsl_complex_arcsin_real(s7_scheme *sc, s7_pointer args) {return(s7_gsl_r_c(sc, s7_car(args), gsl_complex_arcsin_real));}
1301                static s7_pointer g_gsl_complex_arccos_real(s7_scheme *sc, s7_pointer args) {return(s7_gsl_r_c(sc, s7_car(args), gsl_complex_arccos_real));}
1302                static s7_pointer g_gsl_complex_arcsec_real(s7_scheme *sc, s7_pointer args) {return(s7_gsl_r_c(sc, s7_car(args), gsl_complex_arcsec_real));}
1303                static s7_pointer g_gsl_complex_arccsc_real(s7_scheme *sc, s7_pointer args) {return(s7_gsl_r_c(sc, s7_car(args), gsl_complex_arccsc_real));}
1304                static s7_pointer g_gsl_complex_arccosh_real(s7_scheme *sc, s7_pointer args) {return(s7_gsl_r_c(sc, s7_car(args), gsl_complex_arccosh_real));}
1305                static s7_pointer g_gsl_complex_arctanh_real(s7_scheme *sc, s7_pointer args) {return(s7_gsl_r_c(sc, s7_car(args), gsl_complex_arctanh_real));}
1306                static s7_pointer g_gsl_complex_add(s7_scheme *sc, s7_pointer args) {return(s7_gsl_cc_c(sc, s7_car(args), s7_cadr(args), gsl_complex_add));}
1307                static s7_pointer g_gsl_complex_sub(s7_scheme *sc, s7_pointer args) {return(s7_gsl_cc_c(sc, s7_car(args), s7_cadr(args), gsl_complex_sub));}
1308                static s7_pointer g_gsl_complex_mul(s7_scheme *sc, s7_pointer args) {return(s7_gsl_cc_c(sc, s7_car(args), s7_cadr(args), gsl_complex_mul));}
1309                static s7_pointer g_gsl_complex_div(s7_scheme *sc, s7_pointer args) {return(s7_gsl_cc_c(sc, s7_car(args), s7_cadr(args), gsl_complex_div));}
1310                static s7_pointer g_gsl_complex_log_b(s7_scheme *sc, s7_pointer args) {return(s7_gsl_cc_c(sc, s7_car(args), s7_cadr(args), gsl_complex_log_b));}
1311                static s7_pointer g_gsl_complex_pow(s7_scheme *sc, s7_pointer args) {return(s7_gsl_cc_c(sc, s7_car(args), s7_cadr(args), gsl_complex_pow));}
1312                static s7_pointer g_gsl_complex_add_real(s7_scheme *sc, s7_pointer args) {return(s7_gsl_cr_c(sc, s7_car(args), s7_cadr(args), gsl_complex_add_real));}
1313                static s7_pointer g_gsl_complex_sub_real(s7_scheme *sc, s7_pointer args) {return(s7_gsl_cr_c(sc, s7_car(args), s7_cadr(args), gsl_complex_sub_real));}
1314                static s7_pointer g_gsl_complex_mul_real(s7_scheme *sc, s7_pointer args) {return(s7_gsl_cr_c(sc, s7_car(args), s7_cadr(args), gsl_complex_mul_real));}
1315                static s7_pointer g_gsl_complex_div_real(s7_scheme *sc, s7_pointer args) {return(s7_gsl_cr_c(sc, s7_car(args), s7_cadr(args), gsl_complex_div_real));}
1316                static s7_pointer g_gsl_complex_add_imag(s7_scheme *sc, s7_pointer args) {return(s7_gsl_cr_c(sc, s7_car(args), s7_cadr(args), gsl_complex_add_imag));}
1317                static s7_pointer g_gsl_complex_sub_imag(s7_scheme *sc, s7_pointer args) {return(s7_gsl_cr_c(sc, s7_car(args), s7_cadr(args), gsl_complex_sub_imag));}
1318                static s7_pointer g_gsl_complex_mul_imag(s7_scheme *sc, s7_pointer args) {return(s7_gsl_cr_c(sc, s7_car(args), s7_cadr(args), gsl_complex_mul_imag));}
1319                static s7_pointer g_gsl_complex_div_imag(s7_scheme *sc, s7_pointer args) {return(s7_gsl_cr_c(sc, s7_car(args), s7_cadr(args), gsl_complex_div_imag));}
1320                static s7_pointer g_gsl_complex_pow_real(s7_scheme *sc, s7_pointer args) {return(s7_gsl_cr_c(sc, s7_car(args), s7_cadr(args), gsl_complex_pow_real));}
1321                ")
1322
1323	 (C-function ("gsl_complex_arg" g_gsl_complex_arg "" 1))
1324	 (C-function ("gsl_complex_abs" g_gsl_complex_abs "" 1))
1325	 (C-function ("gsl_complex_abs2" g_gsl_complex_abs2 "" 1))
1326	 (C-function ("gsl_complex_logabs" g_gsl_complex_logabs "" 1))
1327
1328	 (C-function ("gsl_complex_conjugate" g_gsl_complex_conjugate "" 1))
1329	 (C-function ("gsl_complex_inverse" g_gsl_complex_inverse "" 1))
1330	 (C-function ("gsl_complex_negative" g_gsl_complex_negative "" 1))
1331	 (C-function ("gsl_complex_sqrt" g_gsl_complex_sqrt "" 1))
1332	 (C-function ("gsl_complex_exp" g_gsl_complex_exp "" 1))
1333	 (C-function ("gsl_complex_log" g_gsl_complex_log "" 1))
1334	 (C-function ("gsl_complex_log10" g_gsl_complex_log10 "" 1))
1335	 (C-function ("gsl_complex_sin" g_gsl_complex_sin "" 1))
1336	 (C-function ("gsl_complex_cos" g_gsl_complex_cos "" 1))
1337	 (C-function ("gsl_complex_sec" g_gsl_complex_sec "" 1))
1338	 (C-function ("gsl_complex_csc" g_gsl_complex_csc "" 1))
1339	 (C-function ("gsl_complex_tan" g_gsl_complex_tan "" 1))
1340	 (C-function ("gsl_complex_cot" g_gsl_complex_cot "" 1))
1341	 (C-function ("gsl_complex_sinh" g_gsl_complex_sinh "" 1))
1342	 (C-function ("gsl_complex_cosh" g_gsl_complex_cosh "" 1))
1343	 (C-function ("gsl_complex_sech" g_gsl_complex_sech "" 1))
1344	 (C-function ("gsl_complex_csch" g_gsl_complex_csch "" 1))
1345	 (C-function ("gsl_complex_tanh" g_gsl_complex_tanh "" 1))
1346	 (C-function ("gsl_complex_coth" g_gsl_complex_coth "" 1))
1347	 (C-function ("gsl_complex_arctan" g_gsl_complex_arctan "" 1))
1348	 (C-function ("gsl_complex_arccot" g_gsl_complex_arccot "" 1))
1349	 (C-function ("gsl_complex_arcsinh" g_gsl_complex_arcsinh "" 1))
1350	 (C-function ("gsl_complex_arcsech" g_gsl_complex_arcsech "" 1))
1351	 (C-function ("gsl_complex_arccsch" g_gsl_complex_arccsch "" 1))
1352	 (C-function ("gsl_complex_arccoth" g_gsl_complex_arccoth "" 1))
1353	 (C-function ("gsl_complex_arcsin" g_gsl_complex_arcsin "" 1))
1354	 (C-function ("gsl_complex_arccos" g_gsl_complex_arccos "" 1))
1355	 (C-function ("gsl_complex_arcsec" g_gsl_complex_arcsec "" 1))
1356	 (C-function ("gsl_complex_arccsc" g_gsl_complex_arccsc "" 1))
1357	 (C-function ("gsl_complex_arccosh" g_gsl_complex_arccosh "" 1))
1358	 (C-function ("gsl_complex_arctanh" g_gsl_complex_arctanh "" 1))
1359
1360	 (C-function ("gsl_complex_sqrt_real" g_gsl_complex_sqrt_real "" 1))
1361	 (C-function ("gsl_complex_arcsin_real" g_gsl_complex_arcsin_real "" 1))
1362	 (C-function ("gsl_complex_arccos_real" g_gsl_complex_arccos_real "" 1))
1363	 (C-function ("gsl_complex_arcsec_real" g_gsl_complex_arcsec_real "" 1))
1364	 (C-function ("gsl_complex_arccsc_real" g_gsl_complex_arccsc_real "" 1))
1365	 (C-function ("gsl_complex_arccosh_real" g_gsl_complex_arccosh_real "" 1))
1366	 (C-function ("gsl_complex_arctanh_real" g_gsl_complex_arctanh_real "" 1))
1367
1368	 (C-function ("gsl_complex_add" g_gsl_complex_add "" 2))
1369	 (C-function ("gsl_complex_sub" g_gsl_complex_sub "" 2))
1370	 (C-function ("gsl_complex_mul" g_gsl_complex_mul "" 2))
1371	 (C-function ("gsl_complex_div" g_gsl_complex_div "" 2))
1372	 (C-function ("gsl_complex_log_b" g_gsl_complex_log_b "" 2))
1373	 (C-function ("gsl_complex_pow" g_gsl_complex_pow "" 2))
1374
1375	 (C-function ("gsl_complex_add_real" g_gsl_complex_add_real "" 2))
1376	 (C-function ("gsl_complex_sub_real" g_gsl_complex_sub_real "" 2))
1377	 (C-function ("gsl_complex_mul_real" g_gsl_complex_mul_real "" 2))
1378	 (C-function ("gsl_complex_div_real" g_gsl_complex_div_real "" 2))
1379	 (C-function ("gsl_complex_add_imag" g_gsl_complex_add_imag "" 2))
1380	 (C-function ("gsl_complex_sub_imag" g_gsl_complex_sub_imag "" 2))
1381	 (C-function ("gsl_complex_mul_imag" g_gsl_complex_mul_imag "" 2))
1382	 (C-function ("gsl_complex_div_imag" g_gsl_complex_div_imag "" 2))
1383	 (C-function ("gsl_complex_pow_real" g_gsl_complex_pow_real "" 2))
1384
1385
1386	 ;; cheb
1387	 (gsl_cheb_series* gsl_cheb_alloc (size_t))
1388	 (void gsl_cheb_free (gsl_cheb_series*))
1389	 (size_t gsl_cheb_order (gsl_cheb_series*))
1390	 (size_t gsl_cheb_size (gsl_cheb_series*))
1391	 (double* gsl_cheb_coeffs (gsl_cheb_series*))
1392	 (double gsl_cheb_eval (gsl_cheb_series* double))
1393	 (int gsl_cheb_eval_err (gsl_cheb_series* double double* double*))
1394	 (double gsl_cheb_eval_n (gsl_cheb_series* size_t double))
1395	 (int gsl_cheb_eval_n_err (gsl_cheb_series* size_t double double* double*))
1396	 (double gsl_cheb_eval_mode (gsl_cheb_series* double int))
1397	 (int gsl_cheb_eval_mode_e (gsl_cheb_series* double int double* double*))
1398	 (int gsl_cheb_calc_deriv (gsl_cheb_series* gsl_cheb_series*))
1399	 (int gsl_cheb_calc_integ (gsl_cheb_series* gsl_cheb_series*))
1400
1401	 ;; gsl_function is a struct with double function(double void*) and void* params
1402	 (in-C "static s7_scheme *gsl_f_s7;
1403                static gsl_function gsl_f;
1404                static double gsl_f_caller(double x, void *p)
1405                {
1406                  return(s7_real(s7_call(gsl_f_s7, (s7_pointer)p, s7_cons(gsl_f_s7, s7_make_real(gsl_f_s7, x), s7_nil(gsl_f_s7)))));
1407                }
1408                #define make_gsl_function(Args) do {gsl_f.function = gsl_f_caller; gsl_f.params = (void *)Args; gsl_f_s7 = sc;} while (0)
1409                static s7_pointer g_gsl_cheb_init(s7_scheme *sc, s7_pointer args)
1410                {
1411                  make_gsl_function(s7_cadr(args));
1412                  return(s7_make_integer(sc, gsl_cheb_init((gsl_cheb_series *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"gsl_cheb_series*\"), __func__, 1),
1413                                                           &gsl_f, s7_real(s7_caddr(args)), s7_real(s7_cadddr(args)))));
1414                }
1415                ")
1416	 (C-function ("gsl_cheb_init" g_gsl_cheb_init "" 4))
1417
1418	 ;; interp
1419	 (gsl_interp_accel* gsl_interp_accel_alloc (void))
1420	 (int gsl_interp_accel_reset (gsl_interp_accel*))
1421	 (void gsl_interp_accel_free (gsl_interp_accel*))
1422	 (gsl_interp* gsl_interp_alloc (gsl_interp_type* size_t))
1423	 (int gsl_interp_init (gsl_interp* double* double* size_t))
1424	 (char* gsl_interp_name (gsl_interp*))
1425	 (int gsl_interp_min_size (gsl_interp*))
1426	 (reader-cond ((>= gsl-version 1.15) (int gsl_interp_type_min_size (gsl_interp_type*))))
1427	 (int gsl_interp_eval_e (gsl_interp* double* double* double gsl_interp_accel* double*))
1428	 (double gsl_interp_eval (gsl_interp* double* double* double gsl_interp_accel*))
1429	 (int gsl_interp_eval_deriv_e (gsl_interp* double* double* double gsl_interp_accel* double*))
1430	 (double gsl_interp_eval_deriv (gsl_interp* double* double* double gsl_interp_accel*))
1431	 (int gsl_interp_eval_deriv2_e (gsl_interp* double* double* double gsl_interp_accel* double*))
1432	 (double gsl_interp_eval_deriv2 (gsl_interp* double* double* double gsl_interp_accel*))
1433	 (int gsl_interp_eval_integ_e (gsl_interp* double* double* double double gsl_interp_accel* double*))
1434	 (double gsl_interp_eval_integ (gsl_interp* double* double* double double gsl_interp_accel*))
1435	 (void gsl_interp_free (gsl_interp*))
1436	 (size_t gsl_interp_bsearch (double* double size_t size_t))
1437	 (size_t gsl_interp_accel_find (gsl_interp_accel* double* size_t double))
1438
1439	 ;; spline (based on interp above)
1440	 (gsl_spline* gsl_spline_alloc (gsl_interp_type* size_t))
1441	 (int gsl_spline_init (gsl_spline* double* double* size_t))
1442	 (char* gsl_spline_name (gsl_spline*))
1443	 (int gsl_spline_min_size (gsl_spline*))
1444	 (int gsl_spline_eval_e (gsl_spline* double gsl_interp_accel* double*))
1445	 (double gsl_spline_eval (gsl_spline* double gsl_interp_accel*))
1446	 (int gsl_spline_eval_deriv_e (gsl_spline* double gsl_interp_accel* double*))
1447	 (double gsl_spline_eval_deriv (gsl_spline* double gsl_interp_accel*))
1448	 (int gsl_spline_eval_deriv2_e (gsl_spline* double gsl_interp_accel* double*))
1449	 (double gsl_spline_eval_deriv2 (gsl_spline* double gsl_interp_accel*))
1450	 (int gsl_spline_eval_integ_e (gsl_spline* double double gsl_interp_accel* double*))
1451	 (double gsl_spline_eval_integ (gsl_spline* double double gsl_interp_accel*))
1452	 (void gsl_spline_free (gsl_spline*))
1453
1454	 ;; bspline
1455	 (gsl_bspline_workspace* gsl_bspline_alloc (size_t size_t))
1456	 (void gsl_bspline_free (gsl_bspline_workspace*))
1457	 (size_t gsl_bspline_ncoeffs (gsl_bspline_workspace*))
1458	 (size_t gsl_bspline_order (gsl_bspline_workspace*))
1459	 (size_t gsl_bspline_nbreak (gsl_bspline_workspace*))
1460	 (double gsl_bspline_breakpoint (size_t gsl_bspline_workspace*))
1461	 (reader-cond ((>= gsl-version 1.16)
1462		       (double gsl_bspline_greville_abscissa (size_t gsl_bspline_workspace*))
1463		       (int gsl_bspline_knots_greville (gsl_vector* gsl_bspline_workspace* double*))))
1464	 (int gsl_bspline_knots (gsl_vector* gsl_bspline_workspace*))
1465	 (int gsl_bspline_knots_uniform (double double gsl_bspline_workspace*))
1466	 (int gsl_bspline_eval (double gsl_vector* gsl_bspline_workspace*))
1467	 (int gsl_bspline_eval_nonzero (double gsl_vector* size_t* size_t* gsl_bspline_workspace*))
1468	   ;;; out 2.0 (gsl_bspline_deriv_workspace* gsl_bspline_deriv_alloc (size_t))
1469	   ;;; out 2.0 (void gsl_bspline_deriv_free (gsl_bspline_deriv_workspace*))
1470	 (reader-cond ((>= gsl-version 2.0)
1471		       (int gsl_bspline_deriv_eval (double size_t gsl_matrix* gsl_bspline_workspace*))
1472		       (int gsl_bspline_deriv_eval_nonzero (double size_t gsl_matrix* size_t* size_t* gsl_bspline_workspace*))))
1473
1474	 ;; sort
1475	 ;; perhaps size_t* -> int vector?
1476
1477	 (void gsl_sort (double* size_t size_t))
1478	 (reader-cond ((>= gsl-version 1.16)
1479		       (void gsl_sort2 (double* size_t double* size_t size_t))
1480		       (void gsl_sort_vector2 (gsl_vector* gsl_vector*))
1481		       (int gsl_poly_dd_hermite_init (double* double* double* double* double* size_t))))
1482	 (void gsl_sort_index (size_t* double* size_t size_t))
1483	 (int gsl_sort_smallest (double* size_t double* size_t size_t))
1484	 (int gsl_sort_smallest_index (size_t* size_t double* size_t size_t))
1485	 (int gsl_sort_largest (double* size_t double* size_t size_t))
1486	 (int gsl_sort_largest_index (size_t* size_t double* size_t size_t))
1487	 (void gsl_sort_vector (gsl_vector*))
1488	 (int gsl_sort_vector_index (gsl_permutation* gsl_vector*))
1489	 (int gsl_sort_vector_smallest (double* size_t gsl_vector*))
1490	 (int gsl_sort_vector_largest (double* size_t gsl_vector*))
1491	 (int gsl_sort_vector_smallest_index (size_t* size_t gsl_vector*))
1492	 (int gsl_sort_vector_largest_index (size_t* size_t gsl_vector*))
1493
1494	 ;; poly
1495	 (double gsl_poly_eval (double* int double))
1496	 (int gsl_poly_eval_derivs (double* size_t double double* size_t))
1497	 (int gsl_poly_dd_init (double* double* double* size_t))
1498	 (double gsl_poly_dd_eval (double* double* size_t double))
1499	 (int gsl_poly_dd_taylor (double* double double* double* size_t double*))
1500	 (void gsl_poly_complex_workspace_free (gsl_poly_complex_workspace*))
1501	 (gsl_poly_complex_workspace* gsl_poly_complex_workspace_alloc (size_t))
1502
1503	 (in-C "static s7_pointer g_gsl_poly_complex_eval(s7_scheme *sc, s7_pointer args)
1504                {
1505                  gsl_complex z, rz;
1506                  S7_TO_GSL_COMPLEX(s7_caddr(args), z);
1507                  rz = gsl_poly_complex_eval((double *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"double*\"), __func__, 1), (int)s7_integer(s7_cadr(args)), z);
1508                  return(GSL_TO_S7_COMPLEX(sc, rz));
1509                }
1510                static s7_pointer g_gsl_complex_poly_complex_eval(s7_scheme *sc, s7_pointer args)
1511                {
1512                  gsl_complex *z;
1513                  gsl_complex rz, x;
1514                  int i, n;
1515                  s7_pointer v;
1516                  v = s7_car(args);
1517                  n = s7_integer(s7_cadr(args));
1518                  z = (gsl_complex *)calloc(n, sizeof(gsl_complex));
1519                  for (i = 0; i < n; i++)
1520                    S7_TO_GSL_COMPLEX(s7_vector_ref(sc, v, i), z[i]);
1521                  S7_TO_GSL_COMPLEX(s7_caddr(args), x);
1522                  rz = gsl_complex_poly_complex_eval(z, n, x);
1523                  free(z);
1524                  return(GSL_TO_S7_COMPLEX(sc, rz));
1525                }
1526                static s7_pointer g_gsl_poly_complex_solve_quadratic(s7_scheme *sc, s7_pointer args)
1527                {
1528                  gsl_complex z0, z1;
1529                  int result;
1530                  s7_pointer res;
1531
1532                  res = s7_cadddr(args);
1533                  result = gsl_poly_complex_solve_quadratic(s7_number_to_real(sc, s7_car(args)), s7_number_to_real(sc, s7_cadr(args)),
1534                                                            s7_number_to_real(sc, s7_caddr(args)), &z0, &z1);
1535                  s7_vector_set(sc, res, 0, GSL_TO_S7_COMPLEX(sc, z0));
1536                  s7_vector_set(sc, res, 1, GSL_TO_S7_COMPLEX(sc, z1));
1537
1538                  return(s7_make_integer(sc, result));
1539                }
1540                static s7_pointer g_gsl_poly_complex_solve_cubic(s7_scheme *sc, s7_pointer args)
1541                {
1542                  /* trailing args are by ref, but I think I'll mimic the real solver above */
1543                  gsl_complex z0, z1, z2;
1544                  int result;
1545                  s7_pointer res;
1546
1547                  result = gsl_poly_complex_solve_cubic(s7_number_to_real(sc, s7_car(args)), s7_number_to_real(sc, s7_cadr(args)),
1548                                                        s7_number_to_real(sc, s7_caddr(args)), &z0, &z1, &z2);
1549                  res = s7_cadddr(args);
1550                  s7_vector_set(sc, res, 0, GSL_TO_S7_COMPLEX(sc, z0));
1551                  s7_vector_set(sc, res, 1, GSL_TO_S7_COMPLEX(sc, z1));
1552                  s7_vector_set(sc, res, 2, GSL_TO_S7_COMPLEX(sc, z2));
1553
1554                  return(s7_make_integer(sc, result));
1555                }
1556
1557                static s7_pointer g_gsl_poly_complex_solve(s7_scheme *sc, s7_pointer args)
1558                {
1559                  /* trailing args are by ref, but I think I'll mimic the real solver above */
1560                  double *z;
1561                  gsl_poly_complex_workspace *w;
1562                  int result, i, size;
1563                  s7_pointer res;
1564
1565                  size = s7_integer(s7_cadr(args));
1566                  res = s7_caddr(args);
1567
1568                  z = (double *)calloc(size * 2, sizeof(double));
1569                  w = gsl_poly_complex_workspace_alloc(size);
1570                  result = gsl_poly_complex_solve((double *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"double*\"), __func__, 1), size, w, (gsl_complex_packed_ptr)z);
1571                  gsl_poly_complex_workspace_free(w);
1572
1573                  for (i = 0; i < size - 1; i++)
1574                    s7_vector_set(sc, res, i, s7_make_complex(sc, z[2 * i], z[2 * i + 1]));
1575                  free(z);
1576
1577                  return(s7_make_integer(sc, result));
1578                }
1579
1580                static s7_pointer g_gsl_poly_solve_quadratic(s7_scheme *sc, s7_pointer args)
1581                {
1582                  double x0, x1;
1583                  int result;
1584                  double *res;
1585                  res = (double *)s7_c_pointer_with_type(sc, s7_cadddr(args), s7_make_symbol(sc, \"double*\"), __func__, 4);
1586                  result = gsl_poly_solve_quadratic(s7_number_to_real(sc, s7_car(args)), s7_number_to_real(sc, s7_cadr(args)),
1587                                                    s7_number_to_real(sc, s7_caddr(args)), &x0, &x1);
1588                  res[0] = x0;
1589                  res[1] = x1;
1590                  return(s7_make_integer(sc, result));
1591                }
1592
1593                static s7_pointer g_gsl_poly_solve_cubic(s7_scheme *sc, s7_pointer args)
1594                {
1595                  double x0, x1, x2;
1596                  int result;
1597                  double *res;
1598                  res = (double *)s7_c_pointer_with_type(sc, s7_cadddr(args), s7_make_symbol(sc, \"double*\"), __func__, 4);
1599                  result = gsl_poly_solve_cubic(s7_number_to_real(sc, s7_car(args)), s7_number_to_real(sc, s7_cadr(args)),
1600                                                s7_number_to_real(sc, s7_caddr(args)), &x0, &x1, &x2);
1601                  res[0] = x0;
1602                  res[1] = x1;
1603                  res[2] = x2;
1604                  return(s7_make_integer(sc, result));
1605                }
1606                ")
1607
1608	 (C-function ("gsl_poly_complex_eval" g_gsl_poly_complex_eval "" 3))
1609	 (C-function ("gsl_complex_poly_complex_eval" g_gsl_complex_poly_complex_eval "" 3))
1610	 (C-function ("gsl_poly_complex_solve_quadratic" g_gsl_poly_complex_solve_quadratic "" 4))
1611	 (C-function ("gsl_poly_complex_solve_cubic" g_gsl_poly_complex_solve_cubic "" 4))
1612	 (C-function ("gsl_poly_complex_solve" g_gsl_poly_complex_solve "" 3))
1613	 (C-function ("gsl_poly_solve_quadratic" g_gsl_poly_solve_quadratic "" 4))
1614	 (C-function ("gsl_poly_solve_cubic" g_gsl_poly_solve_cubic "" 4))
1615
1616	 ;; vector
1617	 (in-C "static s7_pointer g_float_vector_to_gsl_vector(s7_scheme *sc, s7_pointer args)
1618                {
1619                   gsl_vector *g;
1620                   int size;
1621                   s7_pointer v;
1622                   v = s7_car(args);
1623                   size = s7_vector_length(v);
1624                   g = (gsl_vector *)s7_c_pointer_with_type(sc, s7_cadr(args), s7_make_symbol(sc, \"gsl_vector*\"), __func__, 2);
1625                   memcpy((void *)(g->data), (void *)s7_float_vector_elements(v), size * sizeof(double));
1626                   return(s7_cadr(args));
1627                }
1628                static s7_pointer g_gsl_vector_to_float_vector(s7_scheme *sc, s7_pointer args)
1629                {
1630                   gsl_vector *g;
1631                   int size;
1632                   s7_pointer v;
1633                   v = s7_cadr(args);
1634                   size = s7_vector_length(v);
1635                   g = (gsl_vector *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"gsl_vector*\"), __func__, 1);
1636                   memcpy((void *)s7_float_vector_elements(v), (void *)(g->data), size * sizeof(double));
1637                   return(s7_cadr(args));
1638                }
1639                ")
1640	 (C-function ("float-vector->gsl_vector" g_float_vector_to_gsl_vector "" 2))
1641	 (C-function ("gsl_vector->float-vector" g_gsl_vector_to_float_vector "" 2))
1642
1643	 (gsl_vector* gsl_vector_alloc (size_t))
1644	 (gsl_vector* gsl_vector_calloc (size_t))
1645	 (gsl_vector* gsl_vector_alloc_from_vector (gsl_vector* size_t size_t size_t))
1646	 (void gsl_vector_free (gsl_vector*))
1647	 (void gsl_vector_set_zero (gsl_vector*))
1648	 (void gsl_vector_set_all (gsl_vector* double))
1649	 (int gsl_vector_set_basis (gsl_vector* size_t))
1650	 (int gsl_vector_fread (FILE* gsl_vector*))
1651	 (int gsl_vector_fwrite (FILE* gsl_vector*))
1652	 (int gsl_vector_fscanf (FILE* gsl_vector*))
1653	 (int gsl_vector_fprintf (FILE* gsl_vector* char*))
1654	 (int gsl_vector_memcpy (gsl_vector* gsl_vector*))
1655	 (int gsl_vector_reverse (gsl_vector*))
1656	 (int gsl_vector_swap (gsl_vector* gsl_vector*))
1657	 (int gsl_vector_swap_elements (gsl_vector* size_t size_t))
1658	 (double gsl_vector_max (gsl_vector*))
1659	 (double gsl_vector_min (gsl_vector*))
1660	 (size_t gsl_vector_max_index (gsl_vector*))
1661	 (size_t gsl_vector_min_index (gsl_vector*))
1662	 (int gsl_vector_add (gsl_vector* gsl_vector*))
1663	 (int gsl_vector_sub (gsl_vector* gsl_vector*))
1664	 (int gsl_vector_mul (gsl_vector* gsl_vector*))
1665	 (int gsl_vector_div (gsl_vector* gsl_vector*))
1666	 (int gsl_vector_scale (gsl_vector* double))
1667	 (int gsl_vector_add_constant (gsl_vector* double))
1668	 (reader-cond ((>= gsl-version 1.15) (int gsl_vector_equal (gsl_vector* gsl_vector*))))
1669	 (int gsl_vector_isnull (gsl_vector*))
1670	 (int gsl_vector_ispos (gsl_vector*))
1671	 (int gsl_vector_isneg (gsl_vector*))
1672	 (int gsl_vector_isnonneg (gsl_vector*))
1673	 (double gsl_vector_get (gsl_vector* size_t))
1674	 (void gsl_vector_set (gsl_vector* size_t double))
1675	 (double* gsl_vector_ptr (gsl_vector* size_t))
1676	 (double* gsl_vector_const_ptr (gsl_vector* size_t))
1677	 (void gsl_vector_minmax (gsl_vector* double* double*)) ; by ref
1678	 (void gsl_vector_minmax_index (gsl_vector* size_t* size_t*)) ; by ref
1679
1680	 ;; matrix
1681	 (in-C "static s7_pointer g_float_vector_to_gsl_matrix(s7_scheme *sc, s7_pointer args)
1682                {
1683                   gsl_matrix *g;
1684                   int size;
1685                   s7_pointer v;
1686                   v = s7_car(args);
1687                   size = s7_vector_length(v);
1688                   g = (gsl_matrix *)s7_c_pointer_with_type(sc, s7_cadr(args), s7_make_symbol(sc, \"gsl_matrix*\"), __func__, 2);
1689                   memcpy((void *)(g->data), (void *)s7_float_vector_elements(v), size * sizeof(double));
1690                   return(s7_cadr(args));
1691                }
1692                static s7_pointer g_gsl_matrix_to_float_vector(s7_scheme *sc, s7_pointer args)
1693                {
1694                   gsl_matrix *g;
1695                   int size;
1696                   s7_pointer v;
1697                   v = s7_cadr(args);
1698                   size = s7_vector_length(v);
1699                   g = (gsl_matrix *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"gsl_matrix*\"), __func__, 1);
1700                   memcpy((void *)s7_float_vector_elements(v), (void *)(g->data), size * sizeof(double));
1701                   return(s7_cadr(args));
1702                }
1703                ")
1704	 (C-function ("float-vector->gsl_matrix" g_float_vector_to_gsl_matrix "" 2))
1705	 (C-function ("gsl_matrix->float-vector" g_gsl_matrix_to_float_vector "" 2))
1706
1707	 (gsl_matrix* gsl_matrix_alloc (size_t size_t))
1708	 (gsl_matrix* gsl_matrix_calloc (size_t size_t))
1709	 (gsl_matrix* gsl_matrix_alloc_from_matrix (gsl_matrix* size_t size_t size_t size_t))
1710	 (gsl_vector* gsl_vector_alloc_row_from_matrix (gsl_matrix* size_t))
1711	 (gsl_vector* gsl_vector_alloc_col_from_matrix (gsl_matrix* size_t))
1712	 (void gsl_matrix_free (gsl_matrix*))
1713	 (void gsl_matrix_set_zero (gsl_matrix*))
1714	 (void gsl_matrix_set_identity (gsl_matrix*))
1715	 (void gsl_matrix_set_all (gsl_matrix* double))
1716	 (int gsl_matrix_fread (FILE* gsl_matrix*) )
1717	 (int gsl_matrix_fwrite (FILE* gsl_matrix*) )
1718	 (int gsl_matrix_fscanf (FILE* gsl_matrix*))
1719	 (int gsl_matrix_fprintf (FILE* gsl_matrix* char*))
1720	 (int gsl_matrix_memcpy (gsl_matrix* gsl_matrix*))
1721	 (int gsl_matrix_swap (gsl_matrix* gsl_matrix*))
1722	 (int gsl_matrix_swap_rows (gsl_matrix* size_t size_t))
1723	 (int gsl_matrix_swap_columns (gsl_matrix* size_t size_t))
1724	 (int gsl_matrix_swap_rowcol (gsl_matrix* size_t size_t))
1725	 (int gsl_matrix_transpose (gsl_matrix*))
1726	 (int gsl_matrix_transpose_memcpy (gsl_matrix* gsl_matrix*))
1727	 (double gsl_matrix_max (gsl_matrix*))
1728	 (double gsl_matrix_min (gsl_matrix*))
1729	 (void gsl_matrix_minmax (gsl_matrix* double* double*))
1730	 (void gsl_matrix_max_index (gsl_matrix* size_t* size_t*))
1731	 (void gsl_matrix_min_index (gsl_matrix* size_t* size_t*))
1732	 (void gsl_matrix_minmax_index (gsl_matrix* size_t* size_t* size_t* size_t*))
1733	 (reader-cond ((>= gsl-version 1.15) (int gsl_matrix_equal (gsl_matrix* gsl_matrix*))))
1734	 (int gsl_matrix_isnull (gsl_matrix*))
1735	 (int gsl_matrix_ispos (gsl_matrix*))
1736	 (int gsl_matrix_isneg (gsl_matrix*))
1737	 (int gsl_matrix_isnonneg (gsl_matrix*))
1738	 (int gsl_matrix_add (gsl_matrix* gsl_matrix*))
1739	 (int gsl_matrix_sub (gsl_matrix* gsl_matrix*))
1740	 (int gsl_matrix_mul_elements (gsl_matrix* gsl_matrix*))
1741	 (int gsl_matrix_div_elements (gsl_matrix* gsl_matrix*))
1742	 (int gsl_matrix_scale (gsl_matrix* double))
1743	 (int gsl_matrix_add_constant (gsl_matrix* double))
1744	 (int gsl_matrix_add_diagonal (gsl_matrix* double))
1745	 (int gsl_matrix_get_row (gsl_vector* gsl_matrix* size_t))
1746	 (int gsl_matrix_get_col (gsl_vector* gsl_matrix* size_t))
1747	 (int gsl_matrix_set_row (gsl_matrix* size_t gsl_vector*))
1748	 (int gsl_matrix_set_col (gsl_matrix* size_t gsl_vector*))
1749	 (double gsl_matrix_get (gsl_matrix* size_t size_t))
1750	 (void gsl_matrix_set (gsl_matrix* size_t size_t double))
1751	 (double* gsl_matrix_ptr (gsl_matrix* size_t size_t))
1752	 (double* gsl_matrix_const_ptr (gsl_matrix* size_t size_t))
1753	 (in-C "static s7_pointer g_gsl_matrix_size(s7_scheme *sc, s7_pointer args)
1754                {
1755                  gsl_matrix *g; g = (gsl_matrix *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"gsl_matrix*\"), __func__, 1);
1756                  return(s7_cons(sc, s7_make_integer(sc, (s7_int)(g->size1)), s7_make_integer(sc, (s7_int)(g->size2))));
1757                }")
1758	 (C-function ("gsl_matrix_size" g_gsl_matrix_size "" 1))
1759
1760	 ;; cblas
1761	 (int gsl_blas_zdotu (gsl_vector_complex* gsl_vector_complex* gsl_complex*))
1762	 (int gsl_blas_zdotc (gsl_vector_complex* gsl_vector_complex* gsl_complex*))
1763	 (double gsl_blas_dnrm2 (gsl_vector*))
1764	 (double gsl_blas_dasum (gsl_vector*))
1765	 (double gsl_blas_dznrm2 (gsl_vector_complex*))
1766	 (double gsl_blas_dzasum (gsl_vector_complex*))
1767	 (size_t_t gsl_blas_idamax (gsl_vector*))
1768	 (size_t_t gsl_blas_izamax (gsl_vector_complex*))
1769	 (int gsl_blas_dswap (gsl_vector* gsl_vector*))
1770	 (int gsl_blas_dcopy (gsl_vector* gsl_vector*))
1771	 (int gsl_blas_daxpy (double gsl_vector* gsl_vector*))
1772	 (int gsl_blas_zswap (gsl_vector_complex* gsl_vector_complex*))
1773	 (int gsl_blas_zcopy (gsl_vector_complex* gsl_vector_complex*))
1774	 (int gsl_blas_drotg (double* double* double* double*))
1775	 (int gsl_blas_drotmg (double* double* double* double double*))
1776	 (int gsl_blas_drot (gsl_vector* gsl_vector* double double))
1777	 (int gsl_blas_drotm (gsl_vector* gsl_vector* double*))
1778	 (void gsl_blas_dscal (double gsl_vector*))
1779	 (void gsl_blas_zdscal (double gsl_vector_complex*))
1780	 (int gsl_blas_dgemv ((CBLAS_TRANSPOSE_t int) double gsl_matrix* gsl_vector* double gsl_vector*))
1781	 (int gsl_blas_dtrmv ((CBLAS_UPLO_t int) (CBLAS_TRANSPOSE_t int) (CBLAS_DIAG_t int) gsl_matrix* gsl_vector*))
1782	 (int gsl_blas_dtrsv ((CBLAS_UPLO_t int) (CBLAS_TRANSPOSE_t int) (CBLAS_DIAG_t int) gsl_matrix* gsl_vector*))
1783	 (int gsl_blas_ztrmv ((CBLAS_UPLO_t int) (CBLAS_TRANSPOSE_t int) (CBLAS_DIAG_t int) gsl_matrix_complex* gsl_vector_complex*))
1784	 (int gsl_blas_ztrsv ((CBLAS_UPLO_t int) (CBLAS_TRANSPOSE_t int) (CBLAS_DIAG_t int) gsl_matrix_complex* gsl_vector_complex*))
1785	 (int gsl_blas_dsymv ((CBLAS_UPLO_t int) double gsl_matrix* gsl_vector* double gsl_vector*))
1786	 (int gsl_blas_dger (double gsl_vector* gsl_vector* gsl_matrix*))
1787	 (int gsl_blas_dsyr ((CBLAS_UPLO_t int) double gsl_vector* gsl_matrix*))
1788	 (int gsl_blas_dsyr2 ((CBLAS_UPLO_t int) double gsl_vector* gsl_vector* gsl_matrix*))
1789	 (int gsl_blas_zher ((CBLAS_UPLO_t int) double gsl_vector_complex* gsl_matrix_complex*))
1790	 (int gsl_blas_dgemm ((CBLAS_TRANSPOSE_t int) (CBLAS_TRANSPOSE_t int) double gsl_matrix* gsl_matrix* double gsl_matrix*))
1791	 (int gsl_blas_dsymm ((CBLAS_SIDE_t int) (CBLAS_UPLO_t int) double gsl_matrix* gsl_matrix* double gsl_matrix*))
1792	 (int gsl_blas_dsyrk ((CBLAS_UPLO_t int) (CBLAS_TRANSPOSE_t int) double gsl_matrix* double gsl_matrix*))
1793	 (int gsl_blas_dsyr2k ((CBLAS_UPLO_t int) (CBLAS_TRANSPOSE_t int) double gsl_matrix* gsl_matrix* double gsl_matrix*))
1794	 (int gsl_blas_dtrmm ((CBLAS_SIDE_t int) (CBLAS_UPLO_t int) (CBLAS_TRANSPOSE_t int) (CBLAS_DIAG_t int) double gsl_matrix* gsl_matrix*))
1795	 (int gsl_blas_dtrsm ((CBLAS_SIDE_t int) (CBLAS_UPLO_t int) (CBLAS_TRANSPOSE_t int) (CBLAS_DIAG_t int) double gsl_matrix* gsl_matrix*))
1796	 (int gsl_blas_zherk ((CBLAS_UPLO_t int) (CBLAS_TRANSPOSE_t int) double gsl_matrix_complex* double gsl_matrix_complex*))
1797	 (double cblas_ddot (int double* int double* int))
1798	 (void cblas_zdotu_sub (int double* int double* int double*))
1799	 (void cblas_zdotc_sub (int double* int double* int double*))
1800	 (double cblas_dnrm2 (int double* int))
1801	 (double cblas_dasum (int double* int))
1802	 (double cblas_dznrm2 (int void* int))
1803	 (double cblas_dzasum (int void* int))
1804	 (size_t cblas_idamax (int double* int))
1805	 (size_t cblas_icamax (int void* int))
1806	 (size_t cblas_izamax (int void* int))
1807	 (void cblas_dswap (int double* int double* int))
1808	 (void cblas_dcopy (int double* int double* int))
1809	 (void cblas_daxpy (int double double* int double* int))
1810	 (void cblas_zswap (int double* int double* int))
1811	 (void cblas_zcopy (int double* int double* int))
1812	 (void cblas_zaxpy (int double* double* int double* int))
1813	 (void cblas_drotg (double* double* double* double*))
1814	 (void cblas_drotmg (double* double* double* double double*))
1815	 (void cblas_drot (int double* int double* int double double))
1816	 (void cblas_drotm (int double* int double* int double*))
1817	 (void cblas_dscal (int double double* int))
1818	 (void cblas_zscal (int double* double* int))
1819	 (void cblas_zdscal (int double double* int))
1820	 (void cblas_dgemv ((CBLAS_ORDER_t int) (CBLAS_TRANSPOSE_t int) int int double double* int double* int double double* int))
1821	 (void cblas_dgbmv ((CBLAS_ORDER_t int) (CBLAS_TRANSPOSE_t int) int int int int double double* int double* int double double* int))
1822	 (void cblas_dtrmv ((CBLAS_ORDER_t int) (CBLAS_UPLO_t int) (CBLAS_TRANSPOSE_t int) (CBLAS_DIAG_t int) int double* int double* int))
1823	 (void cblas_dtbmv ((CBLAS_ORDER_t int) (CBLAS_UPLO_t int) (CBLAS_TRANSPOSE_t int) (CBLAS_DIAG_t int) int int double* int double* int))
1824	 (void cblas_dtpmv ((CBLAS_ORDER_t int) (CBLAS_UPLO_t int) (CBLAS_TRANSPOSE_t int) (CBLAS_DIAG_t int) int double* double* int))
1825	 (void cblas_dtrsv ((CBLAS_ORDER_t int) (CBLAS_UPLO_t int) (CBLAS_TRANSPOSE_t int) (CBLAS_DIAG_t int) int double* int double* int))
1826	 (void cblas_dtbsv ((CBLAS_ORDER_t int) (CBLAS_UPLO_t int) (CBLAS_TRANSPOSE_t int) (CBLAS_DIAG_t int) int int double* int double* int))
1827	 (void cblas_dtpsv ((CBLAS_ORDER_t int) (CBLAS_UPLO_t int) (CBLAS_TRANSPOSE_t int) (CBLAS_DIAG_t int) int double* double* int))
1828	 (void cblas_zgemv ((CBLAS_ORDER_t int) (CBLAS_TRANSPOSE_t int) int int double* double* int double* int double* double* int))
1829	 (void cblas_zgbmv ((CBLAS_ORDER_t int) (CBLAS_TRANSPOSE_t int) int int int int double* double* int double* int double* double* int))
1830	 (void cblas_ztrmv ((CBLAS_ORDER_t int) (CBLAS_UPLO_t int) (CBLAS_TRANSPOSE_t int) (CBLAS_DIAG_t int) int double* int double* int))
1831	 (void cblas_ztbmv ((CBLAS_ORDER_t int) (CBLAS_UPLO_t int) (CBLAS_TRANSPOSE_t int) (CBLAS_DIAG_t int) int int double* int double* int))
1832	 (void cblas_ztpmv ((CBLAS_ORDER_t int) (CBLAS_UPLO_t int) (CBLAS_TRANSPOSE_t int) (CBLAS_DIAG_t int) int double* double* int))
1833	 (void cblas_ztrsv ((CBLAS_ORDER_t int) (CBLAS_UPLO_t int) (CBLAS_TRANSPOSE_t int) (CBLAS_DIAG_t int) int double* int double* int))
1834	 (void cblas_ztbsv ((CBLAS_ORDER_t int) (CBLAS_UPLO_t int) (CBLAS_TRANSPOSE_t int) (CBLAS_DIAG_t int) int int double* int double* int))
1835	 (void cblas_ztpsv ((CBLAS_ORDER_t int) (CBLAS_UPLO_t int) (CBLAS_TRANSPOSE_t int) (CBLAS_DIAG_t int) int double* double* int))
1836	 (void cblas_dsymv ((CBLAS_ORDER_t int) (CBLAS_UPLO_t int) int double double* int double* int double double* int))
1837	 (void cblas_dsbmv ((CBLAS_ORDER_t int) (CBLAS_UPLO_t int) int int double double* int double* int double double* int))
1838	 (void cblas_dspmv ((CBLAS_ORDER_t int) (CBLAS_UPLO_t int) int double double* double* int double double* int))
1839	 (void cblas_dger ((CBLAS_ORDER_t int) (CBLAS_UPLO_t int) int double double* int double* int double* int))
1840	 (void cblas_dsyr ((CBLAS_ORDER_t int) (CBLAS_UPLO_t int) int double double* int double* int))
1841	 (void cblas_dspr ((CBLAS_ORDER_t int) (CBLAS_UPLO_t int) int double double* int double*))
1842	 (void cblas_dsyr2 ((CBLAS_ORDER_t int) (CBLAS_UPLO_t int) int double double* int double* int double* int))
1843	 (void cblas_dspr2 ((CBLAS_ORDER_t int) (CBLAS_UPLO_t int) int double double* int double* int double*))
1844	 (void cblas_zhemv ((CBLAS_ORDER_t int) (CBLAS_UPLO_t int) int double* double* int double* int double* double* int))
1845	 (void cblas_zhbmv ((CBLAS_ORDER_t int) (CBLAS_UPLO_t int) int int double* double* int double* int double* double* int))
1846	 (void cblas_zhpmv ((CBLAS_ORDER_t int) (CBLAS_UPLO_t int) int double* double* double* int double* double* int))
1847	 (void cblas_zgeru ((CBLAS_ORDER_t int) int int double* double* int double* int double* int))
1848	 (void cblas_zgerc ((CBLAS_ORDER_t int) int int double* double* int double* int double* int))
1849	 (void cblas_zher ((CBLAS_ORDER_t int) (CBLAS_UPLO_t int) int double double* int double* int))
1850	 (void cblas_zhpr ((CBLAS_ORDER_t int) (CBLAS_UPLO_t int) int double double* int double*))
1851	 (void cblas_zher2 ((CBLAS_ORDER_t int) (CBLAS_UPLO_t int) int double* double* int double* int double* int))
1852	 (void cblas_zhpr2 ((CBLAS_ORDER_t int) (CBLAS_UPLO_t int) int double* double* int double* int double*))
1853	 (void cblas_dgemm ((CBLAS_ORDER_t int) (CBLAS_TRANSPOSE_t int) (CBLAS_TRANSPOSE_t int) int int int double double* int double* int double double* int))
1854	 (void cblas_dsymm ((CBLAS_ORDER_t int) (CBLAS_SIDE_t int) (CBLAS_UPLO_t int) int int double double* int double* int double double* int))
1855	 (void cblas_dsyrk ((CBLAS_ORDER_t int) (CBLAS_UPLO_t int) (CBLAS_TRANSPOSE_t int) int int double double* int double double* int))
1856	 (void cblas_dsyr2k ((CBLAS_ORDER_t int) (CBLAS_UPLO_t int) (CBLAS_TRANSPOSE_t int) int int double double* int double* int double double* int))
1857	 (void cblas_dtrmm ((CBLAS_ORDER_t int) (CBLAS_SIDE_t int) (CBLAS_UPLO_t int) (CBLAS_TRANSPOSE_t int) (CBLAS_DIAG_t int) int int double double* int double* int))
1858	 (void cblas_dtrsm ((CBLAS_ORDER_t int) (CBLAS_SIDE_t int) (CBLAS_UPLO_t int) (CBLAS_TRANSPOSE_t int) (CBLAS_DIAG_t int) int int double double* int double* int))
1859	 (void cblas_zgemm ((CBLAS_ORDER_t int) (CBLAS_TRANSPOSE_t int) (CBLAS_TRANSPOSE_t int) int int int double* double* int double* int double* double* int))
1860	 (void cblas_zsymm ((CBLAS_ORDER_t int) (CBLAS_SIDE_t int) (CBLAS_UPLO_t int) int int double* double* int double* int double* double* int))
1861	 (void cblas_zsyrk ((CBLAS_ORDER_t int) (CBLAS_UPLO_t int) (CBLAS_TRANSPOSE_t int) int int double* double* int double* double* int))
1862	 (void cblas_zsyr2k ((CBLAS_ORDER_t int) (CBLAS_UPLO_t int) (CBLAS_TRANSPOSE_t int) int int double* double* int double* int double* double* int))
1863	 (void cblas_ztrmm ((CBLAS_ORDER_t int) (CBLAS_SIDE_t int) (CBLAS_UPLO_t int) (CBLAS_TRANSPOSE_t int) (CBLAS_DIAG_t int) int int double* double* int double* int))
1864	 (void cblas_ztrsm ((CBLAS_ORDER_t int) (CBLAS_SIDE_t int) (CBLAS_UPLO_t int) (CBLAS_TRANSPOSE_t int) (CBLAS_DIAG_t int) int int double* double* int double* int))
1865	 (void cblas_zhemm ((CBLAS_ORDER_t int) (CBLAS_SIDE_t int) (CBLAS_UPLO_t int) int int double* double* int double* int double* double* int))
1866	 (void cblas_zherk ((CBLAS_ORDER_t int) (CBLAS_UPLO_t int) (CBLAS_TRANSPOSE_t int) int int double double* int double double* int))
1867	 (void cblas_zher2k ((CBLAS_ORDER_t int) (CBLAS_UPLO_t int) (CBLAS_TRANSPOSE_t int) int int double* double* int double* int double double* int))
1868
1869	 ;; combination
1870	 (gsl_combination* gsl_combination_alloc (size_t size_t))
1871	 (gsl_combination* gsl_combination_calloc (size_t size_t))
1872	 (void gsl_combination_init_first (gsl_combination*))
1873	 (void gsl_combination_init_last (gsl_combination*))
1874	 (void gsl_combination_free (gsl_combination*))
1875	 (int gsl_combination_memcpy (gsl_combination* gsl_combination*) )
1876	 (int gsl_combination_fread (FILE* gsl_combination*))
1877	 (int gsl_combination_fwrite (FILE* gsl_combination*))
1878	 (int gsl_combination_fscanf (FILE* gsl_combination*))
1879	 (int gsl_combination_fprintf (FILE* gsl_combination* char*))
1880	 (size_t gsl_combination_n (gsl_combination*))
1881	 (size_t gsl_combination_k (gsl_combination*))
1882					;(size_t* gsl_combination_data (gsl_combination*))
1883	 (int gsl_combination_valid (gsl_combination*))
1884	 (int gsl_combination_next (gsl_combination*))
1885	 (int gsl_combination_prev (gsl_combination*))
1886	 (size_t gsl_combination_get (gsl_combination* size_t))
1887	 (in-C "static s7_pointer g_gsl_combination_to_int_vector(s7_scheme *sc, s7_pointer args)
1888                {
1889                   gsl_combination *g;
1890                   int i, size;
1891                   s7_int *el;
1892                   s7_pointer v;
1893                   v = s7_cadr(args);
1894                   size = s7_vector_length(v);
1895                   g = (gsl_combination *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"gsl_combination*\"), __func__, 1);
1896                   el = s7_int_vector_elements(v);
1897                   for (i = 0; i < size; i++) el[i] = (s7_int)(g->data[i]);
1898                   return(s7_cadr(args));
1899                }
1900                ")
1901	 (C-function ("gsl_combination->int-vector" g_gsl_combination_to_int_vector "" 2))
1902
1903	 ;; rl+im for complex in most of these cases
1904	 (int gsl_dft_complex_forward (double* size_t size_t double*))
1905	 (int gsl_dft_complex_backward (double* size_t size_t double*))
1906	 (int gsl_dft_complex_inverse (double* size_t size_t double*))
1907	 (int gsl_dft_complex_transform (double* size_t size_t double* (gsl_fft_direction int)))
1908	 (int gsl_fft_complex_radix2_forward (double* size_t size_t))
1909	 (int gsl_fft_complex_radix2_backward (double* size_t size_t))
1910	 (int gsl_fft_complex_radix2_inverse (double* size_t size_t))
1911	 (int gsl_fft_complex_radix2_transform (double* size_t size_t (gsl_fft_direction int)))
1912	 (int gsl_fft_complex_radix2_dif_forward (double* size_t size_t))
1913	 (int gsl_fft_complex_radix2_dif_backward (double* size_t size_t))
1914	 (int gsl_fft_complex_radix2_dif_inverse (double* size_t size_t))
1915	 (int gsl_fft_complex_radix2_dif_transform (double* size_t size_t (gsl_fft_direction int)))
1916	 (gsl_fft_complex_wavetable* gsl_fft_complex_wavetable_alloc (size_t))
1917	 (void gsl_fft_complex_wavetable_free (gsl_fft_complex_wavetable*))
1918	 (gsl_fft_complex_workspace* gsl_fft_complex_workspace_alloc (size_t))
1919	 (void gsl_fft_complex_workspace_free (gsl_fft_complex_workspace*))
1920	 (int gsl_fft_complex_memcpy (gsl_fft_complex_wavetable* gsl_fft_complex_wavetable*))
1921	 (int gsl_fft_complex_forward (double* size_t size_t gsl_fft_complex_wavetable* gsl_fft_complex_workspace*))
1922	 (int gsl_fft_complex_backward (double* size_t size_t gsl_fft_complex_wavetable* gsl_fft_complex_workspace*))
1923	 (int gsl_fft_complex_inverse (double* size_t size_t gsl_fft_complex_wavetable* gsl_fft_complex_workspace*))
1924	 (int gsl_fft_complex_transform (double* size_t size_t gsl_fft_complex_wavetable* gsl_fft_complex_workspace* (gsl_fft_direction int)))
1925	 (int gsl_fft_real_radix2_transform (double* size_t size_t) )
1926	 (gsl_fft_real_wavetable* gsl_fft_real_wavetable_alloc (size_t))
1927	 (void gsl_fft_real_wavetable_free (gsl_fft_real_wavetable*))
1928	 (gsl_fft_real_workspace* gsl_fft_real_workspace_alloc (size_t))
1929	 (void gsl_fft_real_workspace_free (gsl_fft_real_workspace*))
1930	 (int gsl_fft_real_transform (double* size_t size_t gsl_fft_real_wavetable* gsl_fft_real_workspace*))
1931	 (int gsl_fft_real_unpack (double* double* size_t size_t))
1932
1933
1934	 (gsl_eigen_symm_workspace* gsl_eigen_symm_alloc (size_t))
1935	 (void gsl_eigen_symm_free (gsl_eigen_symm_workspace*))
1936	 (int gsl_eigen_symm (gsl_matrix* gsl_vector* gsl_eigen_symm_workspace*))
1937	 (gsl_eigen_symmv_workspace* gsl_eigen_symmv_alloc (size_t))
1938	 (void gsl_eigen_symmv_free (gsl_eigen_symmv_workspace*))
1939	 (int gsl_eigen_symmv (gsl_matrix* gsl_vector* gsl_matrix* gsl_eigen_symmv_workspace*))
1940	 (gsl_eigen_herm_workspace* gsl_eigen_herm_alloc (size_t))
1941	 (void gsl_eigen_herm_free (gsl_eigen_herm_workspace*))
1942	 (int gsl_eigen_herm (gsl_matrix_complex* gsl_vector* gsl_eigen_herm_workspace*))
1943	 (gsl_eigen_hermv_workspace* gsl_eigen_hermv_alloc (size_t))
1944	 (void gsl_eigen_hermv_free (gsl_eigen_hermv_workspace*))
1945	 (int gsl_eigen_hermv (gsl_matrix_complex* gsl_vector* gsl_matrix_complex* gsl_eigen_hermv_workspace*))
1946	 (gsl_eigen_francis_workspace* gsl_eigen_francis_alloc (void))
1947	 (void gsl_eigen_francis_free (gsl_eigen_francis_workspace*))
1948	 (void gsl_eigen_francis_T (int gsl_eigen_francis_workspace*))
1949	 (int gsl_eigen_francis (gsl_matrix* gsl_vector_complex* gsl_eigen_francis_workspace*))
1950	 (int gsl_eigen_francis_Z (gsl_matrix* gsl_vector_complex* gsl_matrix* gsl_eigen_francis_workspace*))
1951	 (gsl_eigen_nonsymm_workspace* gsl_eigen_nonsymm_alloc (size_t))
1952	 (void gsl_eigen_nonsymm_free (gsl_eigen_nonsymm_workspace*))
1953	 (void gsl_eigen_nonsymm_params (int int gsl_eigen_nonsymm_workspace*))
1954	 (int gsl_eigen_nonsymm (gsl_matrix* gsl_vector_complex* gsl_eigen_nonsymm_workspace*))
1955	 (int gsl_eigen_nonsymm_Z (gsl_matrix* gsl_vector_complex* gsl_matrix* gsl_eigen_nonsymm_workspace*))
1956	 (gsl_eigen_nonsymmv_workspace* gsl_eigen_nonsymmv_alloc (size_t))
1957	 (void gsl_eigen_nonsymmv_free (gsl_eigen_nonsymmv_workspace*))
1958	 (reader-cond ((>= gsl-version 1.15) (void gsl_eigen_nonsymmv_params (int gsl_eigen_nonsymmv_workspace*))))
1959	 (int gsl_eigen_nonsymmv (gsl_matrix* gsl_vector_complex* gsl_matrix_complex* gsl_eigen_nonsymmv_workspace*))
1960	 (int gsl_eigen_nonsymmv_Z (gsl_matrix* gsl_vector_complex* gsl_matrix_complex* gsl_matrix* gsl_eigen_nonsymmv_workspace*))
1961	 (gsl_eigen_gensymm_workspace* gsl_eigen_gensymm_alloc (size_t))
1962	 (void gsl_eigen_gensymm_free (gsl_eigen_gensymm_workspace*))
1963	 (int gsl_eigen_gensymm (gsl_matrix* gsl_matrix* gsl_vector* gsl_eigen_gensymm_workspace*))
1964	 (int gsl_eigen_gensymm_standardize (gsl_matrix* gsl_matrix*))
1965	 (gsl_eigen_gensymmv_workspace* gsl_eigen_gensymmv_alloc (size_t))
1966	 (void gsl_eigen_gensymmv_free (gsl_eigen_gensymmv_workspace*))
1967	 (int gsl_eigen_gensymmv (gsl_matrix* gsl_matrix* gsl_vector* gsl_matrix* gsl_eigen_gensymmv_workspace*))
1968	 (gsl_eigen_genherm_workspace* gsl_eigen_genherm_alloc (size_t))
1969	 (void gsl_eigen_genherm_free (gsl_eigen_genherm_workspace*))
1970	 (int gsl_eigen_genherm (gsl_matrix_complex* gsl_matrix_complex* gsl_vector* gsl_eigen_genherm_workspace*))
1971	 (int gsl_eigen_genherm_standardize (gsl_matrix_complex* gsl_matrix_complex*))
1972	 (gsl_eigen_genhermv_workspace* gsl_eigen_genhermv_alloc (size_t))
1973	 (void gsl_eigen_genhermv_free (gsl_eigen_genhermv_workspace*))
1974	 (int gsl_eigen_genhermv (gsl_matrix_complex* gsl_matrix_complex* gsl_vector* gsl_matrix_complex* gsl_eigen_genhermv_workspace*))
1975	 (gsl_eigen_gen_workspace* gsl_eigen_gen_alloc (size_t))
1976	 (void gsl_eigen_gen_free (gsl_eigen_gen_workspace*))
1977	 (void gsl_eigen_gen_params (int int int gsl_eigen_gen_workspace*))
1978	 (int gsl_eigen_gen (gsl_matrix* gsl_matrix* gsl_vector_complex* gsl_vector* gsl_eigen_gen_workspace*))
1979	 (int gsl_eigen_gen_QZ (gsl_matrix* gsl_matrix* gsl_vector_complex* gsl_vector* gsl_matrix* gsl_matrix* gsl_eigen_gen_workspace*))
1980	 (gsl_eigen_genv_workspace* gsl_eigen_genv_alloc (size_t))
1981	 (void gsl_eigen_genv_free (gsl_eigen_genv_workspace*))
1982	 (int gsl_eigen_genv (gsl_matrix* gsl_matrix* gsl_vector_complex* gsl_vector* gsl_matrix_complex* gsl_eigen_genv_workspace*))
1983	 (int gsl_eigen_genv_QZ (gsl_matrix* gsl_matrix* gsl_vector_complex* gsl_vector* gsl_matrix_complex* gsl_matrix* gsl_matrix* gsl_eigen_genv_workspace*))
1984	 (int gsl_eigen_symmv_sort (gsl_vector* gsl_matrix* (gsl_eigen_sort_t int)))
1985	 (int gsl_eigen_hermv_sort (gsl_vector* gsl_matrix_complex* (gsl_eigen_sort_t int)))
1986	 (int gsl_eigen_nonsymmv_sort (gsl_vector_complex* gsl_matrix_complex* (gsl_eigen_sort_t int)))
1987	 (int gsl_eigen_gensymmv_sort (gsl_vector* gsl_matrix* (gsl_eigen_sort_t int)))
1988	 (int gsl_eigen_genhermv_sort (gsl_vector* gsl_matrix_complex* (gsl_eigen_sort_t int)))
1989	 (int gsl_eigen_genv_sort (gsl_vector_complex* gsl_vector* gsl_matrix_complex* (gsl_eigen_sort_t int)))
1990	 (int gsl_schur_gen_eigvals (gsl_matrix* gsl_matrix* double* double* double* double* double*))
1991	 (int gsl_schur_solve_equation (double gsl_matrix* double double double gsl_vector* gsl_vector* double* double* double))
1992	 (int gsl_schur_solve_equation_z (double gsl_matrix* gsl_complex* double double gsl_vector_complex* gsl_vector_complex* double* double* double))
1993	 (int gsl_eigen_invert_jacobi (gsl_matrix* gsl_matrix* int))
1994	 (in-C "static s7_pointer g_gsl_eigen_jacobi(s7_scheme *sc, s7_pointer args)
1995                {
1996                  unsigned int ref_arg = 0;
1997                  return(s7_make_integer(sc, (s7_int)gsl_eigen_jacobi((gsl_matrix*)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"gsl_matrix*\"), __func__, 1), (gsl_vector*)s7_c_pointer_with_type(sc, s7_cadr(args), s7_make_symbol(sc, \"gsl_vector*\"), __func__, 2),
1998                                             (gsl_matrix*)s7_c_pointer_with_type(sc, s7_caddr(args), s7_make_symbol(sc, \"gsl_matrix*\"), __func__, 3), (int)s7_integer(s7_cadddr(args)), &ref_arg)));
1999                }")
2000	 (C-function ("gsl_eigen_jacobi" g_gsl_eigen_jacobi "" 4))
2001
2002	 (void gsl_error (char* char* int int))
2003	 (void gsl_stream_printf (char* char* int char*))
2004	 (char* gsl_strerror (int))
2005	 (gsl_error_handler_t* gsl_set_error_handler (gsl_error_handler_t*))
2006	 (gsl_error_handler_t* gsl_set_error_handler_off (void))
2007	 (gsl_stream_handler_t* gsl_set_stream_handler (gsl_stream_handler_t*))
2008	 (FILE* gsl_set_stream (FILE*))
2009
2010	 (int gsl_fit_linear (double* size_t double* size_t size_t double* double* double* double* double* double*))
2011	 (int gsl_fit_wlinear (double* size_t double* size_t double* size_t size_t double* double* double* double* double* double*))
2012	 (int gsl_fit_linear_est (double double double double double double double* double*))
2013	 (int gsl_fit_mul (double* size_t double* size_t size_t double* double* double*))
2014	 (int gsl_fit_wmul (double* size_t double* size_t double* size_t size_t double* double* double*))
2015	 (int gsl_fit_mul_est (double double double double* double*))
2016
2017	 (gsl_histogram* gsl_histogram_alloc (size_t))
2018	 (gsl_histogram* gsl_histogram_calloc (size_t))
2019	 (gsl_histogram* gsl_histogram_calloc_uniform (size_t double double))
2020	 (void gsl_histogram_free (gsl_histogram*))
2021	 (int gsl_histogram_increment (gsl_histogram* double))
2022	 (int gsl_histogram_accumulate (gsl_histogram* double double))
2023	 (int gsl_histogram_find (gsl_histogram* double size_t*))
2024	 (double gsl_histogram_get (gsl_histogram* size_t))
2025	 (int gsl_histogram_get_range (gsl_histogram* size_t double* double*))
2026	 (double gsl_histogram_max (gsl_histogram*))
2027	 (double gsl_histogram_min (gsl_histogram*))
2028	 (size_t gsl_histogram_bins (gsl_histogram*))
2029	 (void gsl_histogram_reset (gsl_histogram*))
2030	 (gsl_histogram* gsl_histogram_calloc_range (size_t double*))
2031	 (int gsl_histogram_set_ranges (gsl_histogram* double* size_t))
2032	 (int gsl_histogram_set_ranges_uniform (gsl_histogram* double double))
2033	 (int gsl_histogram_memcpy (gsl_histogram* gsl_histogram*))
2034	 (gsl_histogram* gsl_histogram_clone (gsl_histogram*))
2035	 (double gsl_histogram_max_val (gsl_histogram*))
2036	 (size_t gsl_histogram_max_bin (gsl_histogram*))
2037	 (double gsl_histogram_min_val (gsl_histogram*))
2038	 (size_t gsl_histogram_min_bin (gsl_histogram*))
2039	 (int gsl_histogram_equal_bins_p (gsl_histogram* gsl_histogram*))
2040	 (int gsl_histogram_add (gsl_histogram* gsl_histogram*))
2041	 (int gsl_histogram_sub (gsl_histogram* gsl_histogram*))
2042	 (int gsl_histogram_mul (gsl_histogram* gsl_histogram*))
2043	 (int gsl_histogram_div (gsl_histogram* gsl_histogram*))
2044	 (int gsl_histogram_scale (gsl_histogram* double))
2045	 (int gsl_histogram_shift (gsl_histogram* double))
2046	 (double gsl_histogram_sigma (gsl_histogram*))
2047	 (double gsl_histogram_mean (gsl_histogram*))
2048	 (double gsl_histogram_sum (gsl_histogram*))
2049	 (int gsl_histogram_fwrite (FILE* gsl_histogram*) )
2050	 (int gsl_histogram_fread (FILE* gsl_histogram*))
2051	 (int gsl_histogram_fprintf (FILE* gsl_histogram* char* char*))
2052	 (int gsl_histogram_fscanf (FILE* gsl_histogram*))
2053	 (gsl_histogram_pdf* gsl_histogram_pdf_alloc (size_t))
2054	 (int gsl_histogram_pdf_init (gsl_histogram_pdf* gsl_histogram*))
2055	 (void gsl_histogram_pdf_free (gsl_histogram_pdf*))
2056	 (double gsl_histogram_pdf_sample (gsl_histogram_pdf* double))
2057	 (gsl_histogram2d* gsl_histogram2d_alloc (size_t size_t))
2058	 (gsl_histogram2d* gsl_histogram2d_calloc (size_t size_t))
2059	 (gsl_histogram2d* gsl_histogram2d_calloc_uniform (size_t size_t double double double double))
2060	 (void gsl_histogram2d_free (gsl_histogram2d*))
2061	 (int gsl_histogram2d_increment (gsl_histogram2d* double double))
2062	 (int gsl_histogram2d_accumulate (gsl_histogram2d* double double double))
2063	 (int gsl_histogram2d_find (gsl_histogram2d* double double size_t* size_t*))
2064	 (double gsl_histogram2d_get (gsl_histogram2d* size_t size_t))
2065	 (int gsl_histogram2d_get_xrange (gsl_histogram2d* size_t double* double*))
2066	 (int gsl_histogram2d_get_yrange (gsl_histogram2d* size_t double* double*))
2067	 (double gsl_histogram2d_xmax (gsl_histogram2d*))
2068	 (double gsl_histogram2d_xmin (gsl_histogram2d*))
2069	 (size_t gsl_histogram2d_nx (gsl_histogram2d*))
2070	 (double gsl_histogram2d_ymax (gsl_histogram2d*))
2071	 (double gsl_histogram2d_ymin (gsl_histogram2d*))
2072	 (size_t gsl_histogram2d_ny (gsl_histogram2d*))
2073	 (void gsl_histogram2d_reset (gsl_histogram2d*))
2074	 (gsl_histogram2d* gsl_histogram2d_calloc_range (size_t size_t double* double*))
2075	 (int gsl_histogram2d_set_ranges_uniform (gsl_histogram2d* double double double double))
2076	 (int gsl_histogram2d_memcpy (gsl_histogram2d* gsl_histogram2d*))
2077	 (gsl_histogram2d* gsl_histogram2d_clone (gsl_histogram2d*))
2078	 (double gsl_histogram2d_max_val (gsl_histogram2d*))
2079	 (void gsl_histogram2d_max_bin (gsl_histogram2d* size_t* size_t*))
2080	 (double gsl_histogram2d_min_val (gsl_histogram2d*))
2081	 (void gsl_histogram2d_min_bin (gsl_histogram2d* size_t* size_t*))
2082	 (double gsl_histogram2d_xmean (gsl_histogram2d*))
2083	 (double gsl_histogram2d_ymean (gsl_histogram2d*))
2084	 (double gsl_histogram2d_xsigma (gsl_histogram2d*))
2085	 (double gsl_histogram2d_ysigma (gsl_histogram2d*))
2086	 (double gsl_histogram2d_cov (gsl_histogram2d*))
2087	 (double gsl_histogram2d_sum (gsl_histogram2d*))
2088	 (int gsl_histogram2d_equal_bins_p (gsl_histogram2d* gsl_histogram2d*) )
2089	 (int gsl_histogram2d_add (gsl_histogram2d* gsl_histogram2d*))
2090	 (int gsl_histogram2d_sub (gsl_histogram2d* gsl_histogram2d*))
2091	 (int gsl_histogram2d_mul (gsl_histogram2d* gsl_histogram2d*))
2092	 (int gsl_histogram2d_div (gsl_histogram2d* gsl_histogram2d*))
2093	 (int gsl_histogram2d_scale (gsl_histogram2d* double))
2094	 (int gsl_histogram2d_shift (gsl_histogram2d* double))
2095	 (int gsl_histogram2d_fwrite (FILE* gsl_histogram2d*) )
2096	 (int gsl_histogram2d_fread (FILE* gsl_histogram2d*))
2097	 (int gsl_histogram2d_fprintf (FILE* gsl_histogram2d* char* char*))
2098	 (int gsl_histogram2d_fscanf (FILE* gsl_histogram2d*))
2099	 (gsl_histogram2d_pdf* gsl_histogram2d_pdf_alloc (size_t size_t))
2100	 (int gsl_histogram2d_pdf_init (gsl_histogram2d_pdf* gsl_histogram2d*))
2101	 (void gsl_histogram2d_pdf_free (gsl_histogram2d_pdf*))
2102	 (int gsl_histogram2d_pdf_sample (gsl_histogram2d_pdf* double double double* double*))
2103
2104					;(void gsl_ieee_printf_double (double*) ) ; these are ridiculous
2105					;(void gsl_ieee_fprintf_double (FILE* double*) )
2106					;(void gsl_ieee_double_to_rep (double* gsl_ieee_double_rep*) )
2107	 (void gsl_ieee_env_setup (void) ) ; looks for GSL_IEEE_MODE home var
2108					;(int gsl_ieee_read_mode_string (char* int* int* int*) ) ; int by ref
2109	 (int gsl_ieee_set_mode (int int int) )
2110
2111	 (in-C "static s7_pointer g_gsl_deriv_central(s7_scheme *sc, s7_pointer args)
2112                {
2113                  gsl_function gsl_f;
2114                  make_gsl_function(s7_car(args));
2115                  return(s7_make_integer(sc, gsl_deriv_central(&gsl_f, s7_real(s7_cadr(args)), s7_real(s7_caddr(args)),
2116                                             (double *)s7_c_pointer_with_type(sc, s7_cadddr(args), s7_make_symbol(sc, \"double*\"), __func__, 4),
2117                                             (double *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 4), s7_make_symbol(sc, \"double*\"), __func__, 5))));
2118                }
2119               static s7_pointer g_gsl_deriv_backward(s7_scheme *sc, s7_pointer args)
2120                {
2121                  gsl_function gsl_f;
2122                  make_gsl_function(s7_car(args));
2123                  return(s7_make_integer(sc, gsl_deriv_backward(&gsl_f, s7_real(s7_cadr(args)), s7_real(s7_caddr(args)),
2124                                             (double *)s7_c_pointer_with_type(sc, s7_cadddr(args), s7_make_symbol(sc, \"double*\"), __func__, 4),
2125                                             (double *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 4), s7_make_symbol(sc, \"double*\"), __func__, 5))));
2126                }
2127               static s7_pointer g_gsl_deriv_forward(s7_scheme *sc, s7_pointer args)
2128                {
2129                  gsl_function gsl_f;
2130                  make_gsl_function(s7_car(args));
2131                  return(s7_make_integer(sc, gsl_deriv_forward(&gsl_f, s7_real(s7_cadr(args)), s7_real(s7_caddr(args)),
2132                                             (double *)s7_c_pointer_with_type(sc, s7_cadddr(args), s7_make_symbol(sc, \"double*\"), __func__, 4),
2133                                             (double *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 4), s7_make_symbol(sc, \"double*\"), __func__, 5))));
2134                }
2135                ")
2136	 (C-function ("gsl_deriv_central" g_gsl_deriv_central "" 5))
2137	 (C-function ("gsl_deriv_backward" g_gsl_deriv_backward "" 5))
2138	 (C-function ("gsl_deriv_forward" g_gsl_deriv_forward "" 5))
2139
2140
2141	 (gsl_integration_workspace* gsl_integration_workspace_alloc (size_t))
2142	 (void gsl_integration_workspace_free (gsl_integration_workspace*))
2143	 (gsl_integration_qaws_table* gsl_integration_qaws_table_alloc (double double int int))
2144	 (int gsl_integration_qaws_table_set (gsl_integration_qaws_table* double double int int))
2145	 (void gsl_integration_qaws_table_free (gsl_integration_qaws_table*))
2146;	 (gsl_integration_qawo_table* gsl_integration_qawo_table_alloc (double double int size_t))
2147;	 (int gsl_integration_qawo_table_set (gsl_integration_qawo_table* double double int))
2148;	 (int gsl_integration_qawo_table_set_length (gsl_integration_qawo_table* double))
2149	 (void gsl_integration_qawo_table_free (gsl_integration_qawo_table*))
2150	 (reader-cond ((>= gsl-version 2.5)
2151		       (gsl_integration_romberg_workspace* gsl_integration_romberg_alloc (size_t))
2152                       (void gsl_integration_romberg_free (gsl_integration_romberg_workspace*))))
2153
2154	 (in-C "#define Integration(Name) \
2155                  static s7_pointer g_gsl_integration_ ## Name (s7_scheme *sc, s7_pointer args)   \
2156                {                                                                                 \
2157                  gsl_function gsl_f;                                                             \
2158                  make_gsl_function(s7_car(args));                                                \
2159                  gsl_integration_ ## Name (&gsl_f, s7_real(s7_cadr(args)), s7_real(s7_caddr(args)), \
2160                                       (double *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 3), s7_make_symbol(sc, \"double*\"), __func__, 4), \
2161                                       (double *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 4), s7_make_symbol(sc, \"double*\"), __func__, 5), \
2162                                       (double *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 5), s7_make_symbol(sc, \"double*\"), __func__, 6), \
2163                                       (double *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 6), s7_make_symbol(sc, \"double*\"), __func__, 7)); \
2164                  return(s7_car(args));                                                          \
2165                }
2166               Integration(qk15)
2167               Integration(qk21)
2168               Integration(qk31)
2169               Integration(qk41)
2170               Integration(qk51)
2171               Integration(qk61)
2172               ")
2173	 (C-function ("gsl_integration_qk15" g_gsl_integration_qk15 "" 7))
2174	 (C-function ("gsl_integration_qk21" g_gsl_integration_qk21 "" 7))
2175	 (C-function ("gsl_integration_qk31" g_gsl_integration_qk31 "" 7))
2176	 (C-function ("gsl_integration_qk41" g_gsl_integration_qk41 "" 7))
2177	 (C-function ("gsl_integration_qk51" g_gsl_integration_qk51 "" 7))
2178	 (C-function ("gsl_integration_qk61" g_gsl_integration_qk61 "" 7))
2179
2180	 (reader-cond ((>= gsl-version 2.5)
2181		       (in-C "static s7_pointer g_gsl_integration_romberg(s7_scheme *sc, s7_pointer args)
2182                              {
2183                                gsl_function gsl_f; make_gsl_function(s7_car(args));
2184                                gsl_integration_romberg(&gsl_f,
2185                                                        s7_real(s7_cadr(args)), s7_real(s7_caddr(args)),
2186                                                        s7_real(s7_cadddr(args)), s7_real(s7_list_ref(sc, args, 4)),
2187                                                        (double *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 5), s7_make_symbol(sc, \"double*\"), __func__, 6),
2188                                                        (size_t *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 6), s7_make_symbol(sc, \"double*\"), __func__, 7),
2189                                                        (gsl_integration_romberg_workspace *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 7), s7_make_symbol(sc, \"gsl_integration_romberg_workspace*\"), __func__, 7));
2190                                return(s7_car(args));
2191                              }")
2192		       (C-function ("gsl_integration_romberg" g_gsl_integration_romberg "" 8))))
2193
2194
2195	 (in-C "static s7_pointer g_gsl_integration_qcheb(s7_scheme *sc, s7_pointer args)
2196                {
2197                  gsl_function gsl_f; make_gsl_function(s7_car(args));
2198                  gsl_integration_qcheb(&gsl_f, s7_real(s7_cadr(args)), s7_real(s7_caddr(args)),
2199                                             (double *)s7_c_pointer_with_type(sc, s7_cadddr(args), s7_make_symbol(sc, \"double*\"), __func__, 4),
2200                                             (double *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 4), s7_make_symbol(sc, \"double*\"), __func__, 5));
2201                  return(s7_car(args));
2202                }
2203                static s7_pointer g_gsl_integration_qng(s7_scheme *sc, s7_pointer args)
2204                {
2205                  size_t ref;
2206                  gsl_function gsl_f; make_gsl_function(s7_car(args));
2207                  return(s7_make_integer(sc, gsl_integration_qng(&gsl_f,
2208                                             s7_real(s7_list_ref(sc, args, 1)), s7_real(s7_list_ref(sc, args, 2)),
2209                                             s7_real(s7_list_ref(sc, args, 3)), s7_real(s7_list_ref(sc, args, 4)),
2210                                             (double *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 5), s7_make_symbol(sc, \"double*\"), __func__, 6),
2211                                             (double *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 6), s7_make_symbol(sc, \"double*\"), __func__, 7),
2212                                             &ref)));
2213                }
2214                static s7_pointer g_gsl_integration_qag(s7_scheme *sc, s7_pointer args)
2215                {
2216                  gsl_function gsl_f; make_gsl_function(s7_car(args));
2217                  return(s7_make_integer(sc, gsl_integration_qag(&gsl_f,
2218                                             s7_real(s7_list_ref(sc, args, 1)), s7_real(s7_list_ref(sc, args, 2)),
2219                                             s7_real(s7_list_ref(sc, args, 3)), s7_real(s7_list_ref(sc, args, 4)),
2220                                             (size_t)s7_integer(s7_list_ref(sc, args, 5)), (int)s7_integer(s7_list_ref(sc, args, 6)),
2221                                             (gsl_integration_workspace *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 7), s7_make_symbol(sc, \"gsl_integration_workspace*\"), __func__, 7),
2222                                             (double *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 8), s7_make_symbol(sc, \"double*\"), __func__, 9),
2223                                             (double *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 9), s7_make_symbol(sc, \"double*\"), __func__, 10))));
2224                }
2225                static s7_pointer g_gsl_integration_qagi(s7_scheme *sc, s7_pointer args)
2226                {
2227                  gsl_function gsl_f; make_gsl_function(s7_car(args));
2228                  return(s7_make_integer(sc, gsl_integration_qagi(&gsl_f,
2229                                             s7_real(s7_list_ref(sc, args, 1)), s7_real(s7_list_ref(sc, args, 2)),
2230                                             (size_t)s7_integer(s7_list_ref(sc, args, 3)),
2231                                             (gsl_integration_workspace *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 4), s7_make_symbol(sc, \"gsl_integration_workspace*\"), __func__, 4),
2232                                             (double *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 5), s7_make_symbol(sc, \"double*\"), __func__, 6),
2233                                             (double *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 6), s7_make_symbol(sc, \"double*\"), __func__, 7))));
2234                }
2235                static s7_pointer g_gsl_integration_qagiu(s7_scheme *sc, s7_pointer args)
2236                {
2237                  gsl_function gsl_f; make_gsl_function(s7_car(args));
2238                  return(s7_make_integer(sc, gsl_integration_qagiu(&gsl_f,
2239                                             s7_real(s7_list_ref(sc, args, 1)), s7_real(s7_list_ref(sc, args, 2)), s7_real(s7_list_ref(sc, args, 3)),
2240                                             (size_t)s7_integer(s7_list_ref(sc, args, 4)),
2241                                             (gsl_integration_workspace *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 5), s7_make_symbol(sc, \"gsl_integration_workspace*\"), __func__, 5),
2242                                             (double *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 6), s7_make_symbol(sc, \"double*\"), __func__, 7),
2243                                             (double *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 7), s7_make_symbol(sc, \"double*\"), __func__, 8))));
2244                }
2245                static s7_pointer g_gsl_integration_qagil(s7_scheme *sc, s7_pointer args)
2246                {
2247                  gsl_function gsl_f; make_gsl_function(s7_car(args));
2248                  return(s7_make_integer(sc, gsl_integration_qagil(&gsl_f,
2249                                             s7_real(s7_list_ref(sc, args, 1)), s7_real(s7_list_ref(sc, args, 2)), s7_real(s7_list_ref(sc, args, 3)),
2250                                             (size_t)s7_integer(s7_list_ref(sc, args, 4)),
2251                                             (gsl_integration_workspace *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 5), s7_make_symbol(sc, \"gsl_integration_workspace*\"), __func__, 5),
2252                                             (double *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 6), s7_make_symbol(sc, \"double*\"), __func__, 7),
2253                                             (double *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 7), s7_make_symbol(sc, \"double*\"), __func__, 8))));
2254                }
2255                static s7_pointer g_gsl_integration_qags(s7_scheme *sc, s7_pointer args)
2256                {
2257                  gsl_function gsl_f; make_gsl_function(s7_car(args));
2258                  return(s7_make_integer(sc, gsl_integration_qags(&gsl_f,
2259                                             s7_real(s7_list_ref(sc, args, 1)), s7_real(s7_list_ref(sc, args, 2)),
2260                                             s7_real(s7_list_ref(sc, args, 3)), s7_real(s7_list_ref(sc, args, 4)),
2261                                             (size_t)s7_integer(s7_list_ref(sc, args, 5)),
2262                                             (gsl_integration_workspace *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 6), s7_make_symbol(sc, \"gsl_integration_workspace*\"), __func__, 6),
2263                                             (double *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 7), s7_make_symbol(sc, \"double*\"), __func__, 8),
2264                                             (double *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 8), s7_make_symbol(sc, \"double*\"), __func__, 9))));
2265                }
2266                static s7_pointer g_gsl_integration_qagp(s7_scheme *sc, s7_pointer args)
2267                {
2268                  gsl_function gsl_f; make_gsl_function(s7_car(args));
2269                  return(s7_make_integer(sc, gsl_integration_qagp(&gsl_f,
2270                                             (double *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 1), s7_make_symbol(sc, \"double*\"), __func__, 2),
2271                                             (size_t)s7_integer(s7_list_ref(sc, args, 2)),
2272                                             s7_real(s7_list_ref(sc, args, 3)), s7_real(s7_list_ref(sc, args, 4)),
2273                                             (size_t)s7_integer(s7_list_ref(sc, args, 5)),
2274                                             (gsl_integration_workspace *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 6), s7_make_symbol(sc, \"gsl_integration_workspace*\"), __func__, 6),
2275                                             (double *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 7), s7_make_symbol(sc, \"double*\"), __func__, 8),
2276                                             (double *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 8), s7_make_symbol(sc, \"double*\"), __func__, 9))));
2277                }
2278                static s7_pointer g_gsl_integration_qawc(s7_scheme *sc, s7_pointer args)
2279                {
2280                  gsl_function gsl_f; make_gsl_function(s7_car(args));
2281                  return(s7_make_integer(sc, gsl_integration_qawc(&gsl_f,
2282                                             s7_real(s7_list_ref(sc, args, 1)), s7_real(s7_list_ref(sc, args, 2)),
2283                                             s7_real(s7_list_ref(sc, args, 3)), s7_real(s7_list_ref(sc, args, 4)),
2284                                             s7_real(s7_list_ref(sc, args, 5)),
2285                                             (size_t)s7_integer(s7_list_ref(sc, args, 6)),
2286                                             (gsl_integration_workspace *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 7), s7_make_symbol(sc, \"gsl_integration_workspace*\"), __func__, 7),
2287                                             (double *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 8), s7_make_symbol(sc, \"double*\"), __func__, 9),
2288                                             (double *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 9), s7_make_symbol(sc, \"double*\"), __func__, 10))));
2289                }
2290                static s7_pointer g_gsl_integration_qaws(s7_scheme *sc, s7_pointer args)
2291                {
2292                  gsl_function gsl_f; make_gsl_function(s7_car(args));
2293                  return(s7_make_integer(sc, gsl_integration_qaws(&gsl_f,
2294                                             s7_real(s7_list_ref(sc, args, 1)), s7_real(s7_list_ref(sc, args, 2)),
2295                                             (gsl_integration_qaws_table *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 3), s7_make_symbol(sc, \"gsl_integration_qaws_table*\"), __func__, 3),
2296                                             s7_real(s7_list_ref(sc, args, 4)), s7_real(s7_list_ref(sc, args, 5)),
2297                                             (size_t)s7_integer(s7_list_ref(sc, args, 6)),
2298                                             (gsl_integration_workspace *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 7), s7_make_symbol(sc, \"gsl_integration_workspace*\"), __func__, 7),
2299                                             (double *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 8), s7_make_symbol(sc, \"double*\"), __func__, 9),
2300                                             (double *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 9), s7_make_symbol(sc, \"double*\"), __func__, 10))));
2301                }
2302                static s7_pointer g_gsl_integration_qawo(s7_scheme *sc, s7_pointer args)
2303                {
2304                  gsl_function gsl_f; make_gsl_function(s7_car(args));
2305                  return(s7_make_integer(sc, gsl_integration_qawo(&gsl_f,
2306                                             s7_real(s7_list_ref(sc, args, 1)), s7_real(s7_list_ref(sc, args, 2)),
2307                                             s7_real(s7_list_ref(sc, args, 3)),
2308                                             (size_t)s7_integer(s7_list_ref(sc, args, 4)),
2309                                             (gsl_integration_workspace *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 5), s7_make_symbol(sc, \"gsl_integration_workspace*\"), __func__, 5),
2310                                             (gsl_integration_qawo_table *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 6), s7_make_symbol(sc, \"gsl_integration_qawo_table*\"), __func__, 6),
2311                                             (double *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 7), s7_make_symbol(sc, \"double*\"), __func__, 8),
2312                                             (double *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 8), s7_make_symbol(sc, \"double*\"), __func__, 9))));
2313                }
2314                static s7_pointer g_gsl_integration_qawf(s7_scheme *sc, s7_pointer args)
2315                {
2316                  gsl_function gsl_f; make_gsl_function(s7_car(args));
2317                  return(s7_make_integer(sc, gsl_integration_qawf(&gsl_f,
2318                                             s7_real(s7_list_ref(sc, args, 1)), s7_real(s7_list_ref(sc, args, 2)),
2319                                             (size_t)s7_integer(s7_list_ref(sc, args, 3)),
2320                                             (gsl_integration_workspace *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 4), s7_make_symbol(sc, \"gsl_integration_workspace*\"), __func__, 4),
2321                                             (gsl_integration_workspace *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 5), s7_make_symbol(sc, \"gsl_integration_workspace*\"), __func__, 5),
2322                                             (gsl_integration_qawo_table *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 6), s7_make_symbol(sc, \"gsl_integration_qawo_table*\"), __func__, 6),
2323                                             (double *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 7), s7_make_symbol(sc, \"double*\"), __func__, 8),
2324                                             (double *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 8), s7_make_symbol(sc, \"double*\"), __func__, 9))));
2325                }
2326                static s7_pointer g_gsl_integration_glfixed(s7_scheme *sc, s7_pointer args)
2327                {
2328                  gsl_function gsl_f; make_gsl_function(s7_car(args));
2329                  return(s7_make_real(sc, gsl_integration_glfixed(&gsl_f,
2330                                             s7_real(s7_list_ref(sc, args, 1)), s7_real(s7_list_ref(sc, args, 2)),
2331                                             (const gsl_integration_glfixed_table *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 3), s7_make_symbol(sc, \"gsl_integration_glfixed_table*\"), __func__, 3))));
2332                }
2333                static s7_pointer g_gsl_integration_qk(s7_scheme *sc, s7_pointer args)
2334                {
2335                  gsl_function gsl_f; make_gsl_function(s7_list_ref(sc, args, 6));
2336                  gsl_integration_qk((int)s7_integer(s7_car(args)),
2337                                             (double *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 1), s7_make_symbol(sc, \"double*\"), __func__, 2),
2338                                             (double *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 2), s7_make_symbol(sc, \"double*\"), __func__, 3),
2339                                             (double *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 3), s7_make_symbol(sc, \"double*\"), __func__, 4),
2340                                             (double *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 4), s7_make_symbol(sc, \"double*\"), __func__, 5),
2341                                             (double *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 5), s7_make_symbol(sc, \"double*\"), __func__, 6),
2342                                             &gsl_f,
2343                                             s7_real(s7_list_ref(sc, args, 7)), s7_real(s7_list_ref(sc, args, 8)),
2344                                             (double *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 9), s7_make_symbol(sc, \"double*\"), __func__, 10),
2345                                             (double *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 10), s7_make_symbol(sc, \"double*\"), __func__, 11),
2346                                             (double *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 11), s7_make_symbol(sc, \"double*\"), __func__, 12),
2347                                             (double *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 12), s7_make_symbol(sc, \"double*\"), __func__, 13));
2348                  return(s7_car(args));
2349                }")
2350	 (C-function ("gsl_integration_qcheb" g_gsl_integration_qcheb "" 5))
2351	 (C-function ("gsl_integration_qng" g_gsl_integration_qng "" 7))
2352	 (C-function ("gsl_integration_qag" g_gsl_integration_qag "" 10))
2353	 (C-function ("gsl_integration_qagi" g_gsl_integration_qagi "" 7))
2354	 (C-function ("gsl_integration_qagiu" g_gsl_integration_qagiu "" 8))
2355	 (C-function ("gsl_integration_qagil" g_gsl_integration_qagil "" 8))
2356	 (C-function ("gsl_integration_qags" g_gsl_integration_qags "" 9))
2357	 (C-function ("gsl_integration_qagp" g_gsl_integration_qagp "" 9))
2358	 (C-function ("gsl_integration_qawc" g_gsl_integration_qawc "" 10))
2359	 (C-function ("gsl_integration_qaws" g_gsl_integration_qaws "" 10))
2360	 (C-function ("gsl_integration_qawo" g_gsl_integration_qawo "" 9))
2361	 (C-function ("gsl_integration_qawf" g_gsl_integration_qawf "" 9))
2362	 (C-function ("gsl_integration_qk" g_gsl_integration_qk "" 13))
2363	 (C-function ("gsl_integration_glfixed" g_gsl_integration_glfixed "" 4))
2364
2365	 (gsl_integration_glfixed_table* gsl_integration_glfixed_table_alloc (size_t))
2366	 (void gsl_integration_glfixed_table_free (gsl_integration_glfixed_table*))
2367	 (reader-cond ((>= gsl-version 1.15)
2368		       (int gsl_integration_glfixed_point (double double size_t double* double* gsl_integration_glfixed_table*))
2369		       (gsl_integration_cquad_workspace* gsl_integration_cquad_workspace_alloc (size_t))
2370		       (void gsl_integration_cquad_workspace_free (gsl_integration_cquad_workspace*))))
2371
2372	 (int gsl_linalg_matmult (gsl_matrix* gsl_matrix* gsl_matrix*))
2373	 (int gsl_linalg_matmult_mod (gsl_matrix* (gsl_linalg_matrix_mod_t int) gsl_matrix* (gsl_linalg_matrix_mod_t int) gsl_matrix*))
2374	 (int gsl_linalg_exponential_ss (gsl_matrix* gsl_matrix* int))
2375	 (double gsl_linalg_householder_transform (gsl_vector*))
2376	 (int gsl_linalg_householder_hv (double gsl_vector* gsl_vector*))
2377	 (int gsl_linalg_householder_hm1 (double gsl_matrix*))
2378
2379	 (in-C "static s7_pointer g_gsl_linalg_complex_householder_transform(s7_scheme *sc, s7_pointer args)
2380                {
2381                  gsl_complex g;
2382                  g = gsl_linalg_complex_householder_transform((gsl_vector_complex *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"gsl_vector_complex*\"), __func__, 1));
2383                  return(GSL_TO_S7_COMPLEX(sc, g));
2384                }
2385                static s7_pointer g_gsl_linalg_complex_householder_hv(s7_scheme *sc, s7_pointer args)
2386                {
2387                  gsl_complex g;
2388                  S7_TO_GSL_COMPLEX(s7_car(args), g);
2389                  return(s7_make_integer(sc, gsl_linalg_complex_householder_hv(g, (gsl_vector_complex *)s7_c_pointer_with_type(sc, s7_cadr(args), s7_make_symbol(sc, \"gsl_vector_complex*\"), __func__, 2),
2390                                                                                  (gsl_vector_complex *)s7_c_pointer_with_type(sc, s7_caddr(args), s7_make_symbol(sc, \"gsl_vector_complex*\"), __func__, 3))));
2391                }
2392                static s7_pointer g_gsl_linalg_complex_LU_det(s7_scheme *sc, s7_pointer args)
2393                {
2394                  gsl_complex g;
2395                  g = gsl_linalg_complex_LU_det((gsl_matrix_complex *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"gsl_matrix_complex*\"), __func__, 1), (int)s7_integer(s7_cadr(args)));
2396                  return(GSL_TO_S7_COMPLEX(sc, g));
2397                }
2398                static s7_pointer g_gsl_linalg_complex_LU_sgndet(s7_scheme *sc, s7_pointer args)
2399                {
2400                  gsl_complex g;
2401                  g = gsl_linalg_complex_LU_sgndet((gsl_matrix_complex *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"gsl_matrix_complex*\"), __func__, 1), (int)s7_integer(s7_cadr(args)));
2402                  return(GSL_TO_S7_COMPLEX(sc, g));
2403                }
2404                ")
2405	 (C-function ("gsl_linalg_complex_householder_transform" g_gsl_linalg_complex_householder_transform "" 1))
2406	 ;(C-function ("gsl_linalg_complex_householder_hm" g_gsl_linalg_complex_householder_hm "" 3))
2407	 ;(C-function ("gsl_linalg_complex_householder_mh" g_gsl_linalg_complex_householder_mh "" 3))
2408	 (C-function ("gsl_linalg_complex_householder_hv" g_gsl_linalg_complex_householder_hv "" 3))
2409	 (C-function ("gsl_linalg_complex_LU_det" g_gsl_linalg_complex_LU_det "" 2))
2410	 (C-function ("gsl_linalg_complex_LU_sgndet" g_gsl_linalg_complex_LU_sgndet "" 2))
2411
2412	 (int gsl_linalg_hessenberg_decomp (gsl_matrix* gsl_vector*))
2413	 (int gsl_linalg_hessenberg_unpack (gsl_matrix* gsl_vector* gsl_matrix*))
2414	 (int gsl_linalg_hessenberg_unpack_accum (gsl_matrix* gsl_vector* gsl_matrix*))
2415	 (int gsl_linalg_hessenberg_set_zero (gsl_matrix*))
2416	 (int gsl_linalg_hessenberg_submatrix (gsl_matrix* gsl_matrix* size_t gsl_vector*))
2417	 ;; out 2.4 (int gsl_linalg_hessenberg (gsl_matrix* gsl_vector*))
2418	 (int gsl_linalg_hesstri_decomp (gsl_matrix* gsl_matrix* gsl_matrix* gsl_matrix* gsl_vector*))
2419	 (int gsl_linalg_SV_decomp (gsl_matrix* gsl_matrix* gsl_vector* gsl_vector*))
2420	 (int gsl_linalg_SV_decomp_mod (gsl_matrix* gsl_matrix* gsl_matrix* gsl_vector* gsl_vector*))
2421	 (int gsl_linalg_SV_decomp_jacobi (gsl_matrix* gsl_matrix* gsl_vector*))
2422	 (int gsl_linalg_SV_solve (gsl_matrix* gsl_matrix* gsl_vector* gsl_vector* gsl_vector*))
2423	 (reader-cond ((>= gsl-version 1.16) (int gsl_linalg_SV_leverage (gsl_matrix* gsl_vector*))))
2424	 (in-C "static s7_pointer g_gsl_linalg_LU_decomp(s7_scheme *sc, s7_pointer args)
2425                {
2426                  int s = 0;
2427                  return(s7_make_integer(sc, (s7_int)gsl_linalg_LU_decomp((gsl_matrix *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"gsl_matrix*\"), __func__, 1),
2428                                             (gsl_permutation *)s7_c_pointer_with_type(sc, s7_cadr(args), s7_make_symbol(sc, \"gsl_permutation*\"), __func__, 2), &s)));
2429                }")
2430	 (C-function ("gsl_linalg_LU_decomp" g_gsl_linalg_LU_decomp "" 2))
2431	 (int gsl_linalg_LU_solve (gsl_matrix* gsl_permutation* gsl_vector* gsl_vector*))
2432	 (int gsl_linalg_LU_svx (gsl_matrix* gsl_permutation* gsl_vector*))
2433	 (int gsl_linalg_LU_refine (gsl_matrix* gsl_matrix* gsl_permutation* gsl_vector* gsl_vector* gsl_vector*))
2434	 (int gsl_linalg_LU_invert (gsl_matrix* gsl_permutation* gsl_matrix*))
2435	 (double gsl_linalg_LU_det (gsl_matrix* int))
2436	 (double gsl_linalg_LU_lndet (gsl_matrix*))
2437	 (int gsl_linalg_LU_sgndet (gsl_matrix* int))
2438	 (in-C "static s7_pointer g_gsl_linalg_complex_LU_decomp(s7_scheme *sc, s7_pointer args)
2439                {
2440                  int s = 0;
2441                  return(s7_make_integer(sc, (s7_int)gsl_linalg_complex_LU_decomp((gsl_matrix_complex *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"gsl_matrix_complex*\"), __func__, 1),
2442                                             (gsl_permutation *)s7_c_pointer_with_type(sc, s7_cadr(args), s7_make_symbol(sc, \"gsl_permutation*\"), __func__, 2), &s)));
2443                }")
2444	 (C-function ("gsl_linalg_complex_LU_decomp" g_gsl_linalg_complex_LU_decomp "" 2))
2445	 (int gsl_linalg_complex_LU_solve (gsl_matrix_complex* gsl_permutation* gsl_vector_complex* gsl_vector_complex*))
2446	 (int gsl_linalg_complex_LU_svx (gsl_matrix_complex* gsl_permutation* gsl_vector_complex*))
2447	 (int gsl_linalg_complex_LU_refine (gsl_matrix_complex* gsl_matrix_complex* gsl_permutation* gsl_vector_complex* gsl_vector_complex* gsl_vector_complex*))
2448	 (int gsl_linalg_complex_LU_invert (gsl_matrix_complex* gsl_permutation* gsl_matrix_complex*))
2449	 (double gsl_linalg_complex_LU_lndet (gsl_matrix_complex*))
2450	 (int gsl_linalg_QR_decomp (gsl_matrix* gsl_vector*))
2451	 (int gsl_linalg_QR_solve (gsl_matrix* gsl_vector* gsl_vector* gsl_vector*))
2452	 (int gsl_linalg_QR_svx (gsl_matrix* gsl_vector* gsl_vector*))
2453	 (int gsl_linalg_QR_lssolve (gsl_matrix* gsl_vector* gsl_vector* gsl_vector* gsl_vector*))
2454	 (int gsl_linalg_QR_QRsolve (gsl_matrix* gsl_matrix* gsl_vector* gsl_vector*))
2455	 (int gsl_linalg_QR_Rsolve (gsl_matrix* gsl_vector* gsl_vector*))
2456	 (int gsl_linalg_QR_Rsvx (gsl_matrix* gsl_vector*))
2457	 (int gsl_linalg_QR_update (gsl_matrix* gsl_matrix* gsl_vector* gsl_vector*))
2458	 (int gsl_linalg_QR_QTvec (gsl_matrix* gsl_vector* gsl_vector*))
2459	 (int gsl_linalg_QR_Qvec (gsl_matrix* gsl_vector* gsl_vector*))
2460	 (int gsl_linalg_QR_QTmat (gsl_matrix* gsl_vector* gsl_matrix*))
2461	 (reader-cond ((>= gsl-version 2.0)
2462		       (int gsl_linalg_QR_matQ (gsl_matrix* gsl_vector* gsl_matrix*))
2463		       (void gsl_linalg_givens (double double double* double*))
2464		       (void gsl_linalg_givens_gv (gsl_vector* size_t size_t double double))))
2465	 (int gsl_linalg_QR_unpack (gsl_matrix* gsl_vector* gsl_matrix* gsl_matrix*))
2466	 (int gsl_linalg_R_solve (gsl_matrix* gsl_vector* gsl_vector*))
2467	 (int gsl_linalg_R_svx (gsl_matrix* gsl_vector*))
2468	 (in-C "static s7_pointer g_gsl_linalg_QRPT_decomp(s7_scheme *sc, s7_pointer args)
2469                {
2470                  int s = 0;
2471                  return(s7_make_integer(sc, (s7_int)gsl_linalg_QRPT_decomp(
2472                                             (gsl_matrix *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"gsl_matrix*\"), __func__, 1),
2473                                             (gsl_vector *)s7_c_pointer_with_type(sc, s7_cadr(args), s7_make_symbol(sc, \"gsl_vector*\"), __func__, 2),
2474                                             (gsl_permutation *)s7_c_pointer_with_type(sc, s7_caddr(args), s7_make_symbol(sc, \"gsl_permutation*\"), __func__, 3), &s,
2475                                             (gsl_vector *)s7_c_pointer_with_type(sc, s7_cadddr(args), s7_make_symbol(sc, \"gsl_vector*\"), __func__, 4))));
2476                }")
2477	 (C-function ("gsl_linalg_QRPT_decomp" g_gsl_linalg_QRPT_decomp "" 4))
2478	 (in-C "static s7_pointer g_gsl_linalg_QRPT_decomp2(s7_scheme *sc, s7_pointer args)
2479                {
2480                  int s = 0;
2481                  return(s7_make_integer(sc, (s7_int)gsl_linalg_QRPT_decomp2(
2482                                             (gsl_matrix *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"gsl_matrix*\"), __func__, 1),
2483                                             (gsl_matrix *)s7_c_pointer_with_type(sc, s7_cadr(args), s7_make_symbol(sc, \"gsl_matrix*\"), __func__, 2),
2484                                             (gsl_matrix *)s7_c_pointer_with_type(sc, s7_caddr(args), s7_make_symbol(sc, \"gsl_matrix*\"), __func__, 3),
2485                                             (gsl_vector *)s7_c_pointer_with_type(sc, s7_cadddr(args), s7_make_symbol(sc, \"gsl_vector*\"), __func__, 4),
2486                                             (gsl_permutation *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 5), s7_make_symbol(sc, \"gsl_permutation*\"), __func__, 5),
2487                                             &s,
2488                                             (gsl_vector *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 6), s7_make_symbol(sc, \"gsl_vector*\"), __func__, 6))));
2489                }")
2490	 (C-function ("gsl_linalg_QRPT_decomp2" g_gsl_linalg_QRPT_decomp2 "" 6))
2491	 (int gsl_linalg_QRPT_solve (gsl_matrix* gsl_vector* gsl_permutation* gsl_vector* gsl_vector*))
2492	 (int gsl_linalg_QRPT_svx (gsl_matrix* gsl_vector* gsl_permutation* gsl_vector*))
2493	 (int gsl_linalg_QRPT_QRsolve (gsl_matrix* gsl_matrix* gsl_permutation* gsl_vector* gsl_vector*))
2494	 (int gsl_linalg_QRPT_Rsolve (gsl_matrix* gsl_permutation* gsl_vector* gsl_vector*))
2495	 (int gsl_linalg_QRPT_Rsvx (gsl_matrix* gsl_permutation* gsl_vector*))
2496	 (int gsl_linalg_QRPT_update (gsl_matrix* gsl_matrix* gsl_permutation* gsl_vector* gsl_vector*))
2497	 (int gsl_linalg_LQ_decomp (gsl_matrix* gsl_vector*))
2498	 (int gsl_linalg_LQ_solve_T (gsl_matrix* gsl_vector* gsl_vector* gsl_vector*))
2499	 (int gsl_linalg_LQ_svx_T (gsl_matrix* gsl_vector* gsl_vector*))
2500	 (int gsl_linalg_LQ_lssolve_T (gsl_matrix* gsl_vector* gsl_vector* gsl_vector* gsl_vector*))
2501	 (int gsl_linalg_LQ_Lsolve_T (gsl_matrix* gsl_vector* gsl_vector*))
2502	 (int gsl_linalg_LQ_Lsvx_T (gsl_matrix* gsl_vector*))
2503	 (int gsl_linalg_L_solve_T (gsl_matrix* gsl_vector* gsl_vector*))
2504	 (int gsl_linalg_LQ_vecQ (gsl_matrix* gsl_vector* gsl_vector*))
2505	 (int gsl_linalg_LQ_vecQT (gsl_matrix* gsl_vector* gsl_vector*))
2506	 (int gsl_linalg_LQ_unpack (gsl_matrix* gsl_vector* gsl_matrix* gsl_matrix*))
2507	 (int gsl_linalg_LQ_update (gsl_matrix* gsl_matrix* gsl_vector* gsl_vector*))
2508	 (int gsl_linalg_LQ_LQsolve (gsl_matrix* gsl_matrix* gsl_vector* gsl_vector*))
2509	 (in-C "static s7_pointer g_gsl_linalg_PTLQ_decomp(s7_scheme *sc, s7_pointer args)
2510                {
2511                  int s = 0;
2512                  return(s7_make_integer(sc, (s7_int)gsl_linalg_PTLQ_decomp(
2513                                             (gsl_matrix *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"gsl_matrix*\"), __func__, 1),
2514                                             (gsl_vector *)s7_c_pointer_with_type(sc, s7_cadr(args), s7_make_symbol(sc, \"gsl_vector*\"), __func__, 2),
2515                                             (gsl_permutation *)s7_c_pointer_with_type(sc, s7_caddr(args), s7_make_symbol(sc, \"gsl_permutation*\"), __func__, 3),
2516                                             &s,
2517                                             (gsl_vector *)s7_c_pointer_with_type(sc, s7_cadddr(args), s7_make_symbol(sc, \"gsl_vector*\"), __func__, 4))));
2518                }")
2519	 (C-function ("gsl_linalg_PTLQ_decomp" g_gsl_linalg_PTLQ_decomp "" 4))
2520	 (in-C "static s7_pointer g_gsl_linalg_PTLQ_decomp2(s7_scheme *sc, s7_pointer args)
2521                {
2522                  int s = 0;
2523                  return(s7_make_integer(sc, (s7_int)gsl_linalg_PTLQ_decomp2(
2524                                             (gsl_matrix *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"gsl_matrix*\"), __func__, 1),
2525                                             (gsl_matrix *)s7_c_pointer_with_type(sc, s7_cadr(args), s7_make_symbol(sc, \"gsl_matrix*\"), __func__, 2),
2526                                             (gsl_matrix *)s7_c_pointer_with_type(sc, s7_caddr(args), s7_make_symbol(sc, \"gsl_matrix*\"), __func__, 3),
2527                                             (gsl_vector *)s7_c_pointer_with_type(sc, s7_cadddr(args), s7_make_symbol(sc, \"gsl_vector*\"), __func__, 4),
2528                                             (gsl_permutation *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 5), s7_make_symbol(sc, \"gsl_permutation*\"), __func__, 5),
2529                                             &s,
2530                                             (gsl_vector *)s7_c_pointer_with_type(sc, s7_list_ref(sc, args, 6), s7_make_symbol(sc, \"gsl_vector*\"), __func__, 6))));
2531                }")
2532	 (C-function ("gsl_linalg_PTLQ_decomp2" g_gsl_linalg_PTLQ_decomp2 "" 6))
2533	 (int gsl_linalg_PTLQ_solve_T (gsl_matrix* gsl_vector* gsl_permutation* gsl_vector* gsl_vector*))
2534	 (int gsl_linalg_PTLQ_svx_T (gsl_matrix* gsl_vector* gsl_permutation* gsl_vector*))
2535	 (int gsl_linalg_PTLQ_LQsolve_T (gsl_matrix* gsl_matrix* gsl_permutation* gsl_vector* gsl_vector*))
2536	 (int gsl_linalg_PTLQ_Lsolve_T (gsl_matrix* gsl_permutation* gsl_vector* gsl_vector*))
2537	 (int gsl_linalg_PTLQ_Lsvx_T (gsl_matrix* gsl_permutation* gsl_vector*))
2538	 (int gsl_linalg_PTLQ_update (gsl_matrix* gsl_matrix* gsl_permutation* gsl_vector* gsl_vector*))
2539	 (int gsl_linalg_cholesky_decomp (gsl_matrix*))
2540	 (int gsl_linalg_cholesky_solve (gsl_matrix* gsl_vector* gsl_vector*))
2541	 (int gsl_linalg_cholesky_svx (gsl_matrix* gsl_vector*))
2542	 (int gsl_linalg_cholesky_invert (gsl_matrix*))
2543	 (int gsl_linalg_cholesky_decomp_unit (gsl_matrix* gsl_vector*))
2544	 (int gsl_linalg_complex_cholesky_decomp (gsl_matrix_complex*))
2545	 (int gsl_linalg_complex_cholesky_solve (gsl_matrix_complex* gsl_vector_complex* gsl_vector_complex*))
2546	 (int gsl_linalg_complex_cholesky_svx (gsl_matrix_complex* gsl_vector_complex*))
2547	 (reader-cond ((>= gsl-version 1.15) (int gsl_linalg_complex_cholesky_invert (gsl_matrix_complex*))))
2548	 (int gsl_linalg_symmtd_decomp (gsl_matrix* gsl_vector*))
2549	 (int gsl_linalg_symmtd_unpack (gsl_matrix* gsl_vector* gsl_matrix* gsl_vector* gsl_vector*))
2550	 (int gsl_linalg_symmtd_unpack_T (gsl_matrix* gsl_vector* gsl_vector*))
2551	 (int gsl_linalg_hermtd_decomp (gsl_matrix_complex* gsl_vector_complex*))
2552	 (int gsl_linalg_hermtd_unpack (gsl_matrix_complex* gsl_vector_complex* gsl_matrix_complex* gsl_vector* gsl_vector*))
2553	 (int gsl_linalg_hermtd_unpack_T (gsl_matrix_complex* gsl_vector* gsl_vector*))
2554	 (int gsl_linalg_HH_solve (gsl_matrix* gsl_vector* gsl_vector*))
2555	 (int gsl_linalg_HH_svx (gsl_matrix* gsl_vector*))
2556	 (int gsl_linalg_solve_symm_tridiag (gsl_vector* gsl_vector* gsl_vector* gsl_vector*))
2557	 (int gsl_linalg_solve_tridiag (gsl_vector* gsl_vector* gsl_vector* gsl_vector* gsl_vector*))
2558	 (int gsl_linalg_solve_symm_cyc_tridiag (gsl_vector* gsl_vector* gsl_vector* gsl_vector*))
2559	 (int gsl_linalg_solve_cyc_tridiag (gsl_vector* gsl_vector* gsl_vector* gsl_vector* gsl_vector*))
2560	 (int gsl_linalg_bidiag_decomp (gsl_matrix* gsl_vector* gsl_vector*))
2561	 (int gsl_linalg_bidiag_unpack (gsl_matrix* gsl_vector* gsl_matrix* gsl_vector* gsl_matrix* gsl_vector* gsl_vector*))
2562	 (int gsl_linalg_bidiag_unpack2 (gsl_matrix* gsl_vector* gsl_vector* gsl_matrix*))
2563	 (int gsl_linalg_bidiag_unpack_B (gsl_matrix* gsl_vector* gsl_vector*))
2564	 (int gsl_linalg_balance_matrix (gsl_matrix* gsl_vector*))
2565	 (int gsl_linalg_balance_accum (gsl_matrix* gsl_vector*))
2566	 (int gsl_linalg_balance_columns (gsl_matrix* gsl_vector*))
2567	 (reader-cond ((>= gsl-version 2.6)
2568		       (int gsl_linalg_LQ_lssolve (gsl_matrix* gsl_vector* gsl_vector* gsl_vector* gsl_vector*))
2569		       (int gsl_linalg_LQ_QTvec (gsl_matrix* gsl_vector* gsl_vector*))
2570		       (int gsl_linalg_ldlt_decomp (gsl_matrix*))
2571		       (int gsl_linalg_ldlt_solve (gsl_matrix* gsl_vector* gsl_vector*))
2572		       (int gsl_linalg_ldlt_svx (gsl_matrix* gsl_vector*))
2573		       (int gsl_linalg_ldlt_rcond (gsl_matrix* double* gsl_vector*))
2574		       (int gsl_linalg_ldlt_band_decomp (gsl_matrix*))
2575		       (int gsl_linalg_ldlt_band_solve (gsl_matrix* gsl_vector* gsl_vector*))
2576		       (int gsl_linalg_ldlt_band_svx (gsl_matrix* gsl_vector*))
2577		       (int gsl_linalg_ldlt_band_unpack (gsl_matrix* gsl_matrix* gsl_vector*))
2578		       (int gsl_linalg_ldlt_band_rcond (gsl_matrix* double* gsl_vector*))))
2579
2580	 (gsl_matrix_complex* gsl_matrix_complex_alloc (size_t size_t))
2581	 (gsl_matrix_complex* gsl_matrix_complex_calloc (size_t size_t))
2582	 (gsl_matrix_complex* gsl_matrix_complex_alloc_from_matrix (gsl_matrix_complex* size_t size_t size_t size_t))
2583	 (gsl_vector_complex* gsl_vector_complex_alloc_row_from_matrix (gsl_matrix_complex* size_t))
2584	 (gsl_vector_complex* gsl_vector_complex_alloc_col_from_matrix (gsl_matrix_complex* size_t))
2585	 (gsl_vector_complex* gsl_vector_complex_alloc (size_t))
2586	 (void gsl_vector_complex_free (gsl_vector_complex*))
2587	 (void gsl_matrix_complex_free (gsl_matrix_complex*))
2588	 (void gsl_matrix_complex_set_zero (gsl_matrix_complex*))
2589	 (void gsl_matrix_complex_set_identity (gsl_matrix_complex*))
2590	 (int gsl_matrix_complex_fread (FILE* gsl_matrix_complex*) )
2591	 (int gsl_matrix_complex_fwrite (FILE* gsl_matrix_complex*) )
2592	 (int gsl_matrix_complex_fscanf (FILE* gsl_matrix_complex*))
2593	 (int gsl_matrix_complex_fprintf (FILE* gsl_matrix_complex* char*))
2594	 (int gsl_matrix_complex_memcpy (gsl_matrix_complex* gsl_matrix_complex*))
2595	 (int gsl_matrix_complex_swap (gsl_matrix_complex* gsl_matrix_complex*))
2596	 (int gsl_matrix_complex_swap_rows (gsl_matrix_complex* size_t size_t))
2597	 (int gsl_matrix_complex_swap_columns (gsl_matrix_complex* size_t size_t))
2598	 (int gsl_matrix_complex_swap_rowcol (gsl_matrix_complex* size_t size_t))
2599	 (int gsl_matrix_complex_transpose (gsl_matrix_complex*))
2600	 (int gsl_matrix_complex_transpose_memcpy (gsl_matrix_complex* gsl_matrix_complex*))
2601	 (reader-cond ((>= gsl-version 1.15) (int gsl_matrix_complex_equal (gsl_matrix_complex* gsl_matrix_complex*))))
2602	 (int gsl_matrix_complex_isnull (gsl_matrix_complex*))
2603	 (int gsl_matrix_complex_ispos (gsl_matrix_complex*))
2604	 (int gsl_matrix_complex_isneg (gsl_matrix_complex*))
2605	 (int gsl_matrix_complex_isnonneg (gsl_matrix_complex*))
2606	 (int gsl_matrix_complex_add (gsl_matrix_complex* gsl_matrix_complex*))
2607	 (int gsl_matrix_complex_sub (gsl_matrix_complex* gsl_matrix_complex*))
2608	 (int gsl_matrix_complex_mul_elements (gsl_matrix_complex* gsl_matrix_complex*))
2609	 (int gsl_matrix_complex_div_elements (gsl_matrix_complex* gsl_matrix_complex*))
2610
2611	 (in-C "static s7_pointer g_gsl_matrix_complex_set_all(s7_scheme *sc, s7_pointer args)
2612                {
2613                  gsl_complex g;
2614                  S7_TO_GSL_COMPLEX(s7_cadr(args), g);
2615                  gsl_matrix_complex_set_all((gsl_matrix_complex *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"gsl_matrix_complex*\"), __func__, 1), g);
2616                  return(s7_cadr(args));
2617                }
2618                static s7_pointer g_gsl_matrix_complex_set(s7_scheme *sc, s7_pointer args)
2619                {
2620                  gsl_complex g;
2621                  s7_pointer cg;
2622                  cg = s7_cadddr(args);
2623                  S7_TO_GSL_COMPLEX(cg, g);
2624                  gsl_matrix_complex_set((gsl_matrix_complex *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"gsl_matrix_complex*\"), __func__, 1), s7_integer(s7_cadr(args)), s7_integer(s7_caddr(args)), g);
2625                  return(cg);
2626                }
2627                static s7_pointer g_gsl_matrix_complex_get(s7_scheme *sc, s7_pointer args)
2628                {
2629                  gsl_complex g;
2630                  g = gsl_matrix_complex_get((gsl_matrix_complex *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"gsl_matrix_complex*\"), __func__, 1), s7_integer(s7_cadr(args)), s7_integer(s7_caddr(args)));
2631                  return(GSL_TO_S7_COMPLEX(sc, g));
2632                }
2633                static s7_pointer g_gsl_matrix_complex_scale(s7_scheme *sc, s7_pointer args)
2634                {
2635                  gsl_complex g;
2636                  S7_TO_GSL_COMPLEX(s7_cadr(args), g);
2637                  return(s7_make_integer(sc, gsl_matrix_complex_scale((gsl_matrix_complex *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"gsl_matrix_complex*\"), __func__, 1), g)));
2638                }
2639                static s7_pointer g_gsl_matrix_complex_add_constant(s7_scheme *sc, s7_pointer args)
2640                {
2641                  gsl_complex g;
2642                  S7_TO_GSL_COMPLEX(s7_cadr(args), g);
2643                  return(s7_make_integer(sc, gsl_matrix_complex_add_constant((gsl_matrix_complex *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"gsl_matrix_complex*\"), __func__, 1), g)));
2644                }
2645                static s7_pointer g_gsl_matrix_complex_add_diagonal(s7_scheme *sc, s7_pointer args)
2646                {
2647                  gsl_complex g;
2648                  S7_TO_GSL_COMPLEX(s7_cadr(args), g);
2649                  return(s7_make_integer(sc, gsl_matrix_complex_add_diagonal((gsl_matrix_complex *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"gsl_matrix_complex*\"), __func__, 1), g)));
2650                }
2651                static s7_pointer g_gsl_vector_complex_get(s7_scheme *sc, s7_pointer args)
2652                {
2653                  gsl_complex g;
2654                  g = gsl_vector_complex_get((gsl_vector_complex *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"gsl_vector_complex*\"), __func__, 1), s7_integer(s7_cadr(args)));
2655                  return(GSL_TO_S7_COMPLEX(sc, g));
2656                }
2657                ")
2658	 (C-function ("gsl_matrix_complex_set_all" g_gsl_matrix_complex_set_all "" 2))
2659	 (C-function ("gsl_matrix_complex_set" g_gsl_matrix_complex_set "" 4))
2660	 (C-function ("gsl_matrix_complex_get" g_gsl_matrix_complex_get "" 3))
2661	 (C-function ("gsl_vector_complex_get" g_gsl_vector_complex_get "" 2))
2662	 (C-function ("gsl_matrix_complex_scale" g_gsl_matrix_complex_scale "" 2))
2663	 (C-function ("gsl_matrix_complex_add_constant" g_gsl_matrix_complex_add_constant "" 2))
2664	 (C-function ("gsl_matrix_complex_add_diagonal" g_gsl_matrix_complex_add_diagonal "" 2))
2665
2666	 (int gsl_matrix_complex_get_row (gsl_vector_complex* gsl_matrix_complex* size_t))
2667	 (int gsl_matrix_complex_get_col (gsl_vector_complex* gsl_matrix_complex* size_t))
2668	 (int gsl_matrix_complex_set_row (gsl_matrix_complex* size_t gsl_vector_complex*))
2669	 (int gsl_matrix_complex_set_col (gsl_matrix_complex* size_t gsl_vector_complex*))
2670	 (gsl_complex* gsl_matrix_complex_ptr (gsl_matrix_complex* size_t size_t))
2671	 (gsl_complex* gsl_matrix_complex_const_ptr (gsl_matrix_complex* size_t size_t))
2672
2673	 (void gsl_message (char* char* int int))
2674
2675	 (gsl_min_fminimizer* gsl_min_fminimizer_alloc (gsl_min_fminimizer_type*) )
2676	 (void gsl_min_fminimizer_free (gsl_min_fminimizer*))
2677	 (int gsl_min_fminimizer_set (gsl_min_fminimizer* gsl_function* double double double))
2678	 (int gsl_min_fminimizer_set_with_values (gsl_min_fminimizer* gsl_function* double double double double double double))
2679	 (int gsl_min_fminimizer_iterate (gsl_min_fminimizer*))
2680	 (char* gsl_min_fminimizer_name (gsl_min_fminimizer*))
2681	 (double gsl_min_fminimizer_x_minimum (gsl_min_fminimizer*))
2682	 (double gsl_min_fminimizer_x_lower (gsl_min_fminimizer*))
2683	 (double gsl_min_fminimizer_x_upper (gsl_min_fminimizer*))
2684	 (double gsl_min_fminimizer_f_minimum (gsl_min_fminimizer*))
2685	 (double gsl_min_fminimizer_f_lower (gsl_min_fminimizer*))
2686	 (double gsl_min_fminimizer_f_upper (gsl_min_fminimizer*))
2687	 (double gsl_min_fminimizer_minimum (gsl_min_fminimizer*))
2688	 (int gsl_min_test_interval (double double double double))
2689	 (int gsl_min_find_bracket (gsl_function* double* double* double* double* double* double* size_t))
2690
2691	 ;; gsl_monte* is not doable -- they chose to pass a bare double* array to the (parameter) gsl_monte_function,
2692	 ;;   and there's nothing I can do with that.  To wrap and unwrap it on every call would make it unusable.
2693	 ;;   I could keep wrappers around of all so-far-used sizes, but not until someone actually needs them.
2694	 ;; the fdf cases [removed in gsl 2.0?] are similar, I think, and the ode functions.  GSL also assumes direct access to their
2695	 ;; structs (as in matrix size1/2) -- not very nice for our style of use.
2696
2697	 (gsl_multifit_linear_workspace* gsl_multifit_linear_alloc (size_t size_t))
2698	 (void gsl_multifit_linear_free (gsl_multifit_linear_workspace*))
2699	 (int gsl_multifit_linear (gsl_matrix* gsl_vector* gsl_vector* gsl_matrix* double* gsl_multifit_linear_workspace*))
2700	 (int gsl_multifit_wlinear (gsl_matrix* gsl_vector* gsl_vector* gsl_vector* gsl_matrix* double* gsl_multifit_linear_workspace*))
2701	 (int gsl_multifit_wlinear_svd (gsl_matrix* gsl_vector* gsl_vector* double size_t* gsl_vector* gsl_matrix* double* gsl_multifit_linear_workspace*))
2702	 (int gsl_multifit_wlinear_usvd (gsl_matrix* gsl_vector* gsl_vector* double size_t* gsl_vector* gsl_matrix* double* gsl_multifit_linear_workspace*))
2703	 (int gsl_multifit_linear_est (gsl_vector* gsl_vector* gsl_matrix* double* double*))
2704	 (reader-cond ((>= gsl-version 2.1)
2705		       (double gsl_multifit_linear_rcond (gsl_multifit_linear_workspace*))))
2706	 (reader-cond ((>= gsl-version 2.3)
2707		       (size_t gsl_multifit_linear_rank (double gsl_multifit_linear_workspace*))))
2708	 (int gsl_multifit_linear_residuals (gsl_matrix* gsl_vector* gsl_vector* gsl_vector*))
2709	 (reader-cond ((>= gsl-version 1.16)
2710		       (gsl_multifit_robust_workspace* gsl_multifit_robust_alloc (gsl_multifit_robust_type* size_t size_t))
2711		       (void gsl_multifit_robust_free (gsl_multifit_robust_workspace*))
2712		       (int gsl_multifit_robust_tune (double gsl_multifit_robust_workspace*))
2713		       (char* gsl_multifit_robust_name (gsl_multifit_robust_workspace*))
2714		       (gsl_multifit_robust_stats gsl_multifit_robust_statistics (gsl_multifit_robust_workspace*))
2715		       (int gsl_multifit_robust (gsl_matrix* gsl_vector* gsl_vector* gsl_matrix* gsl_multifit_robust_workspace*))
2716		       (int gsl_multifit_robust_est (gsl_vector* gsl_vector* gsl_matrix* double* double*))
2717		       (int gsl_multifit_fsolver_driver (gsl_multifit_fsolver* size_t double double))))
2718	 (int gsl_multifit_gradient (gsl_matrix* gsl_vector* gsl_vector*))
2719	 (int gsl_multifit_covar (gsl_matrix* double gsl_matrix*))
2720	 (gsl_multifit_fsolver* gsl_multifit_fsolver_alloc (gsl_multifit_fsolver_type* size_t size_t))
2721	 (void gsl_multifit_fsolver_free (gsl_multifit_fsolver*))
2722	 (int gsl_multifit_fsolver_set (gsl_multifit_fsolver* gsl_multifit_function* gsl_vector*))
2723	 (int gsl_multifit_fsolver_iterate (gsl_multifit_fsolver*))
2724	 (char* gsl_multifit_fsolver_name (gsl_multifit_fsolver*))
2725	 (gsl_vector* gsl_multifit_fsolver_position (gsl_multifit_fsolver*))
2726	 (int gsl_multifit_test_delta (gsl_vector* gsl_vector* double double))
2727	 (int gsl_multifit_test_gradient (gsl_vector* double))
2728
2729	 (reader-cond
2730	  ((< gsl-version 2.0)
2731	   (int gsl_multifit_linear_svd (gsl_matrix* gsl_vector* double size_t* gsl_vector* gsl_matrix* double* gsl_multifit_linear_workspace*))
2732	   (int gsl_multifit_linear_usvd (gsl_matrix* gsl_vector* double size_t* gsl_vector* gsl_matrix* double* gsl_multifit_linear_workspace*)))
2733
2734	  ((= gsl-version 2.0)
2735	   (int gsl_multifit_linear_svd (gsl_matrix* gsl_multifit_linear_workspace*))
2736	   (int gsl_multifit_linear_bsvd (gsl_matrix* gsl_multifit_linear_workspace*))
2737	   (int gsl_multifit_linear_solve (double gsl_matrix* gsl_vector* gsl_vector* double* double* gsl_multifit_linear_workspace*))
2738	   (int gsl_multifit_linear_applyW (gsl_matrix* gsl_vector* gsl_vector* gsl_matrix* gsl_vector* gsl_multifit_linear_workspace*))
2739	   (int gsl_multifit_linear_stdform1 (gsl_vector* gsl_matrix* gsl_vector* gsl_matrix* gsl_vector* gsl_multifit_linear_workspace*))
2740	   (int gsl_multifit_linear_wstdform1 (gsl_vector* gsl_matrix* gsl_vector* gsl_vector* gsl_matrix* gsl_vector* gsl_multifit_linear_workspace*))
2741
2742	   (int gsl_multifit_linear_stdform2 (gsl_matrix* gsl_matrix* gsl_vector* gsl_matrix* gsl_vector* gsl_matrix* gsl_multifit_linear_workspace*))
2743	   (int gsl_multifit_linear_wstdform2 (gsl_matrix* gsl_matrix* gsl_vector* gsl_vector* gsl_matrix* gsl_vector* gsl_matrix* gsl_multifit_linear_workspace*))
2744	   (int gsl_multifit_linear_genform1 (gsl_vector* gsl_vector* gsl_vector* gsl_multifit_linear_workspace*))
2745	   (int gsl_multifit_linear_genform2 (gsl_matrix* gsl_matrix* gsl_vector* gsl_vector* gsl_matrix* gsl_vector* gsl_multifit_linear_workspace*))
2746	   (int gsl_multifit_linear_wgenform2 (gsl_matrix* gsl_matrix* gsl_vector* gsl_vector* gsl_vector* gsl_matrix* gsl_vector* gsl_multifit_linear_workspace*))
2747	   (int gsl_multifit_linear_lreg (double double gsl_vector*))
2748	   (int gsl_multifit_linear_lcurve (gsl_vector* gsl_vector* gsl_vector* gsl_vector* gsl_multifit_linear_workspace*))
2749	   (int gsl_multifit_linear_lcorner (gsl_vector* gsl_vector* size_t*))
2750	   (int gsl_multifit_linear_lcorner2 (gsl_vector* gsl_vector* size_t*))
2751	   (int gsl_multifit_linear_Lk (size_t size_t gsl_matrix*))
2752	   (int gsl_multifit_linear_Lsobolev (size_t size_t gsl_vector* gsl_matrix* gsl_multifit_linear_workspace*))
2753	   (int gsl_multifit_robust_maxiter (size_t gsl_multifit_robust_workspace*))
2754	   (int gsl_multifit_robust_weights (gsl_vector* gsl_vector* gsl_multifit_robust_workspace*))
2755	   (int gsl_multifit_robust_residuals (gsl_matrix* gsl_vector* gsl_vector* gsl_vector* gsl_multifit_robust_workspace*))
2756	   (int gsl_multifit_covar_QRPT (gsl_matrix* gsl_permutation* double gsl_matrix*)))
2757
2758	  (#t
2759	   (int gsl_multifit_linear_svd (gsl_matrix* gsl_multifit_linear_workspace*))
2760	   (int gsl_multifit_linear_bsvd (gsl_matrix* gsl_multifit_linear_workspace*))
2761	   (int gsl_multifit_linear_solve (double gsl_matrix* gsl_vector* gsl_vector* double* double* gsl_multifit_linear_workspace*))
2762	   (int gsl_multifit_linear_applyW (gsl_matrix* gsl_vector* gsl_vector* gsl_matrix* gsl_vector*))
2763	   (int gsl_multifit_linear_stdform1 (gsl_vector* gsl_matrix* gsl_vector* gsl_matrix* gsl_vector* gsl_multifit_linear_workspace*))
2764	   (int gsl_multifit_linear_wstdform1 (gsl_vector* gsl_matrix* gsl_vector* gsl_vector* gsl_matrix* gsl_vector* gsl_multifit_linear_workspace*))
2765	   (int gsl_multifit_linear_stdform2 (gsl_matrix* gsl_vector* gsl_matrix* gsl_vector* gsl_matrix* gsl_vector* gsl_matrix* gsl_multifit_linear_workspace*))
2766	   (int gsl_multifit_linear_wstdform2 (gsl_matrix* gsl_vector* gsl_matrix* gsl_vector* gsl_vector* gsl_matrix* gsl_vector* gsl_matrix*
2767							   gsl_multifit_linear_workspace*))
2768	   (int gsl_multifit_linear_genform1 (gsl_vector* gsl_vector* gsl_vector* gsl_multifit_linear_workspace*))
2769	   (int gsl_multifit_linear_genform2 (gsl_matrix* gsl_vector* gsl_matrix* gsl_vector* gsl_vector* gsl_matrix* gsl_vector* gsl_multifit_linear_workspace*))
2770	   (int gsl_multifit_linear_wgenform2 (gsl_matrix* gsl_vector* gsl_matrix* gsl_vector* gsl_vector* gsl_vector* gsl_matrix* gsl_vector*
2771							   gsl_multifit_linear_workspace*))
2772	   (int gsl_multifit_linear_lreg (double double gsl_vector*))
2773	   (int gsl_multifit_linear_lcurve (gsl_vector* gsl_vector* gsl_vector* gsl_vector* gsl_multifit_linear_workspace*))
2774	   (int gsl_multifit_linear_lcorner (gsl_vector* gsl_vector* size_t*))
2775	   (int gsl_multifit_linear_lcorner2 (gsl_vector* gsl_vector* size_t*))
2776	   (int gsl_multifit_linear_Lk (size_t size_t gsl_matrix*))
2777	   (int gsl_multifit_linear_Lsobolev (size_t size_t gsl_vector* gsl_matrix* gsl_multifit_linear_workspace*))
2778	   (int gsl_multifit_robust_maxiter (size_t gsl_multifit_robust_workspace*))
2779	   (int gsl_multifit_robust_weights (gsl_vector* gsl_vector* gsl_multifit_robust_workspace*))
2780	   (int gsl_multifit_robust_residuals (gsl_matrix* gsl_vector* gsl_vector* gsl_vector* gsl_multifit_robust_workspace*))
2781	   (int gsl_multifit_covar_QRPT (gsl_matrix* gsl_permutation* double gsl_matrix*))
2782
2783	   (gsl_multilarge_linear_workspace* gsl_multilarge_linear_alloc (gsl_multilarge_linear_type* size_t))
2784	   (void gsl_multilarge_linear_free (gsl_multilarge_linear_workspace*))
2785	   (char* gsl_multilarge_linear_name (gsl_multilarge_linear_workspace*))
2786	   (int gsl_multilarge_linear_reset (gsl_multilarge_linear_workspace*))
2787	   (int gsl_multilarge_linear_accumulate (gsl_matrix* gsl_vector* gsl_multilarge_linear_workspace*))
2788	   (int gsl_multilarge_linear_solve (double gsl_vector* double* double* gsl_multilarge_linear_workspace*))
2789	   (int gsl_multilarge_linear_rcond (double* gsl_multilarge_linear_workspace*))
2790	   (int gsl_multilarge_linear_lcurve (gsl_vector* gsl_vector* gsl_vector* gsl_multilarge_linear_workspace*))
2791	   (int gsl_multilarge_linear_wstdform1 (gsl_vector* gsl_matrix* gsl_vector* gsl_vector* gsl_matrix* gsl_vector* gsl_multilarge_linear_workspace*))
2792	   (int gsl_multilarge_linear_stdform1 (gsl_vector* gsl_matrix* gsl_vector* gsl_matrix* gsl_vector* gsl_multilarge_linear_workspace*))
2793	   (int gsl_multilarge_linear_L_decomp (gsl_matrix* gsl_vector*))
2794	   (int gsl_multilarge_linear_wstdform2 (gsl_matrix* gsl_vector* gsl_matrix* gsl_vector* gsl_vector* gsl_matrix*  gsl_vector* gsl_multilarge_linear_workspace*))
2795	   (int gsl_multilarge_linear_stdform2 (gsl_matrix* gsl_vector* gsl_matrix* gsl_vector* gsl_matrix* gsl_vector* gsl_multilarge_linear_workspace*))
2796	   (int gsl_multilarge_linear_genform1 (gsl_vector* gsl_vector* gsl_vector* gsl_multilarge_linear_workspace*))
2797	   (int gsl_multilarge_linear_genform2 (gsl_matrix* gsl_vector* gsl_vector* gsl_vector* gsl_multilarge_linear_workspace*))))
2798
2799	 (gsl_multimin_fminimizer* gsl_multimin_fminimizer_alloc (gsl_multimin_fminimizer_type* size_t))
2800	 (void gsl_multimin_fminimizer_free (gsl_multimin_fminimizer*))
2801	 (char* gsl_multimin_fminimizer_name (gsl_multimin_fminimizer*))
2802	 (int gsl_multimin_fminimizer_iterate (gsl_multimin_fminimizer*))
2803	 (gsl_vector* gsl_multimin_fminimizer_x (gsl_multimin_fminimizer*))
2804	 (double gsl_multimin_fminimizer_minimum (gsl_multimin_fminimizer*))
2805	 (double gsl_multimin_fminimizer_size (gsl_multimin_fminimizer*))
2806	 (int gsl_multimin_test_gradient (gsl_vector* double))
2807	 (int gsl_multimin_test_size (double double))
2808
2809	 ;; multimin_function is double f(gsl_vector* void*) -- so we can handle it (but not the fdf brand)
2810	 (in-C "static s7_scheme *gsl_mmf_s7;
2811                static gsl_multimin_function gsl_mmf;
2812                static double gsl_mmf_caller(const gsl_vector *x, void *p)
2813                {
2814                  return(s7_real(s7_call(gsl_mmf_s7, (s7_pointer)p,
2815                                         s7_cons(gsl_mmf_s7,
2816                                                 s7_make_c_pointer_with_type(gsl_mmf_s7, (void *)x, s7_make_symbol(gsl_mmf_s7, \"gsl_vector*\"), s7_f(gsl_mmf_s7)),
2817                                                 s7_nil(gsl_mmf_s7)))));
2818                }
2819                #define make_gsl_mm_function(Args, Size) do {gsl_mmf.f = gsl_mmf_caller; gsl_mmf.n = Size; gsl_mmf.params = (void *)Args; gsl_mmf_s7 = sc;} while (0)
2820                static s7_pointer g_gsl_multimin_fminimizer_set(s7_scheme *sc, s7_pointer args)
2821                {
2822                  make_gsl_mm_function(s7_cadr(args), ((gsl_vector *)s7_c_pointer_with_type(sc, s7_caddr(args), s7_make_symbol(sc, \"gsl_vector*\"), __func__, 3))->size);
2823                  return(s7_make_integer(sc, gsl_multimin_fminimizer_set((gsl_multimin_fminimizer *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"gsl_multimin_fminimizer*\"), __func__, 1),
2824                                                &gsl_mmf, (gsl_vector *)s7_c_pointer_with_type(sc, s7_caddr(args), s7_make_symbol(sc, \"gsl_vector*\"), __func__, 3),
2825                                                          (gsl_vector *)s7_c_pointer_with_type(sc, s7_cadddr(args), s7_make_symbol(sc, \"gsl_vector*\"), __func__, 4))));
2826                }
2827                static s7_pointer g_gsl_multimin_diff(s7_scheme *sc, s7_pointer args)
2828                {
2829                  make_gsl_mm_function(s7_caddr(args), ((gsl_vector *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"gsl_vector*\"), __func__, 1))->size);
2830                  return(s7_make_integer(sc, gsl_multimin_diff(&gsl_mmf, (gsl_vector *)s7_c_pointer_with_type(sc, s7_cadr(args), s7_make_symbol(sc, \"gsl_vector*\"), __func__, 2), (gsl_vector *)s7_c_pointer_with_type(sc, s7_caddr(args), s7_make_symbol(sc, \"gsl_vector*\"), __func__, 3))));
2831                }
2832                static s7_pointer g_gsl_multimin_fminimizer_fval(s7_scheme *sc, s7_pointer args)
2833                {return(s7_make_real(sc, ((gsl_multimin_fminimizer *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"gsl_multimin_fminimizer*\"), __func__, 1))->fval));}
2834               ")
2835	 (C-function ("gsl_multimin_fminimizer_set" g_gsl_multimin_fminimizer_set "" 4))
2836	 (C-function ("gsl_multimin_diff" g_gsl_multimin_diff "" 3))
2837	 (C-function ("gsl_multimin_fminimizer_fval" g_gsl_multimin_fminimizer_fval "" 1))
2838
2839
2840	 ;; int f(const gsl_vector* void* gsl_vector*) so the function is doable
2841	 (in-C "static s7_scheme *gsl_rf_s7;
2842                static gsl_multiroot_function gsl_rf;
2843                static int gsl_rf_caller(const gsl_vector *x, void *p, gsl_vector *y)
2844                {
2845                  return(s7_integer(s7_call(gsl_rf_s7, (s7_pointer)p,
2846                          s7_cons(gsl_rf_s7, s7_make_c_pointer_with_type(gsl_rf_s7, (void *)x, s7_make_symbol(gsl_rf_s7, \"gsl_vector*\"), s7_f(gsl_rf_s7)),
2847                             s7_cons(gsl_rf_s7, s7_make_c_pointer_with_type(gsl_rf_s7, (void *)y, s7_make_symbol(gsl_rf_s7, \"gsl_vector*\"), s7_f(gsl_rf_s7)),
2848                                     s7_nil(gsl_rf_s7))))));
2849                }
2850                #define make_gsl_rf_function(Args, Size) do {gsl_rf.f = gsl_rf_caller; gsl_rf.n = Size; gsl_rf.params = (void *)Args; gsl_rf_s7 = sc;} while (0)
2851                static s7_pointer g_gsl_multiroot_fsolver_set(s7_scheme *sc, s7_pointer args)
2852                {
2853                  make_gsl_rf_function(s7_cadr(args),
2854                                       ((gsl_vector *)s7_c_pointer_with_type(sc, s7_caddr(args), s7_make_symbol(sc, \"gsl_vector*\"), __func__, 1))->size);
2855                  return(s7_make_integer(sc, gsl_multiroot_fsolver_set(
2856                                                (gsl_multiroot_fsolver *)s7_c_pointer_with_type(sc, s7_car(args), s7_make_symbol(sc, \"gsl_multiroot_fsolver*\"), __func__, 2),
2857                                                &gsl_rf,
2858                                                (const gsl_vector *)s7_c_pointer_with_type(sc, s7_caddr(args), s7_make_symbol(sc, \"gsl_vector*\"), __func__, 3))));
2859                }
2860                static s7_pointer g_gsl_multiroot_fdjacobian(s7_scheme *sc, s7_pointer args)
2861                {
2862                  make_gsl_rf_function(s7_car(args),
2863                                       ((gsl_vector *)s7_c_pointer_with_type(sc, s7_cadr(args), s7_make_symbol(sc, \"gsl_vector*\"), __func__, 2))->size);
2864                  return(s7_make_integer(sc, gsl_multiroot_fdjacobian(
2865                                                &gsl_rf,
2866                                                (gsl_vector *)s7_c_pointer_with_type(sc, s7_cadr(args), s7_make_symbol(sc, \"gsl_vector*\"), __func__, 2),
2867                                                (gsl_vector *)s7_c_pointer_with_type(sc, s7_caddr(args), s7_make_symbol(sc, \"gsl_vector*\"), __func__, 3),
2868                                                s7_real(s7_cadddr(args)),
2869                                                (gsl_matrix *)s7_list_ref(sc, args, 5))));
2870                }")
2871	 (C-function ("gsl_multiroot_fsolver_set" g_gsl_multiroot_fsolver_set "" 3))
2872	 (C-function ("gsl_multiroot_fdjacobian" g_gsl_multiroot_fdjacobian "" 5))
2873	 (gsl_multiroot_fsolver* gsl_multiroot_fsolver_alloc (gsl_multiroot_fsolver_type* size_t) )
2874	 (void gsl_multiroot_fsolver_free (gsl_multiroot_fsolver*))
2875	 (int gsl_multiroot_fsolver_iterate (gsl_multiroot_fsolver*))
2876	 (char* gsl_multiroot_fsolver_name (gsl_multiroot_fsolver*))
2877	 (gsl_vector* gsl_multiroot_fsolver_root (gsl_multiroot_fsolver*))
2878	 (gsl_vector* gsl_multiroot_fsolver_dx (gsl_multiroot_fsolver*))
2879	 (gsl_vector* gsl_multiroot_fsolver_f (gsl_multiroot_fsolver*))
2880	 (int gsl_multiroot_test_delta (gsl_vector* gsl_vector* double double))
2881	 (int gsl_multiroot_test_residual (gsl_vector* double))
2882
2883	 (gsl_multiset* gsl_multiset_alloc (size_t size_t))
2884	 (gsl_multiset* gsl_multiset_calloc (size_t size_t))
2885	 (void gsl_multiset_init_first (gsl_multiset*))
2886	 (void gsl_multiset_init_last (gsl_multiset*))
2887	 (void gsl_multiset_free (gsl_multiset*))
2888	 (int gsl_multiset_memcpy (gsl_multiset* gsl_multiset*))
2889	 (int gsl_multiset_fread (FILE* gsl_multiset*))
2890	 (int gsl_multiset_fwrite (FILE* gsl_multiset*))
2891	 (int gsl_multiset_fscanf (FILE* gsl_multiset*))
2892	 (int gsl_multiset_fprintf (FILE* gsl_multiset* char*))
2893	 (size_t gsl_multiset_n (gsl_multiset*))
2894	 (size_t gsl_multiset_k (gsl_multiset*))
2895	 (size_t* gsl_multiset_data (gsl_multiset*))
2896	 (int gsl_multiset_valid (gsl_multiset*))
2897	 (int gsl_multiset_next (gsl_multiset*))
2898	 (int gsl_multiset_prev (gsl_multiset*))
2899	 (size_t gsl_multiset_get (gsl_multiset* size_t))
2900
2901	 ;; the ode functions all pass bare double* arrays to the called function.
2902	 (gsl_permutation* gsl_permutation_alloc (size_t))
2903	 (gsl_permutation* gsl_permutation_calloc (size_t))
2904	 (void gsl_permutation_init (gsl_permutation*))
2905	 (void gsl_permutation_free (gsl_permutation*))
2906	 (int gsl_permutation_memcpy (gsl_permutation* gsl_permutation*))
2907	 (int gsl_permutation_fread (FILE* gsl_permutation*))
2908	 (int gsl_permutation_fwrite (FILE* gsl_permutation*))
2909	 (int gsl_permutation_fscanf (FILE* gsl_permutation*))
2910	 (int gsl_permutation_fprintf (FILE* gsl_permutation* char*))
2911	 (size_t gsl_permutation_size (gsl_permutation*))
2912	 (size_t* gsl_permutation_data (gsl_permutation*))
2913	 (int gsl_permutation_swap (gsl_permutation* size_t size_t))
2914	 (int gsl_permutation_valid (gsl_permutation*))
2915	 (void gsl_permutation_reverse (gsl_permutation*))
2916	 (int gsl_permutation_inverse (gsl_permutation* gsl_permutation*))
2917	 (int gsl_permutation_next (gsl_permutation*))
2918	 (int gsl_permutation_prev (gsl_permutation*))
2919	 (int gsl_permutation_mul (gsl_permutation* gsl_permutation* gsl_permutation*))
2920	 (int gsl_permutation_linear_to_canonical (gsl_permutation* gsl_permutation*))
2921	 (int gsl_permutation_canonical_to_linear (gsl_permutation* gsl_permutation*))
2922	 (size_t gsl_permutation_inversions (gsl_permutation*))
2923	 (size_t gsl_permutation_linear_cycles (gsl_permutation*))
2924	 (size_t gsl_permutation_canonical_cycles (gsl_permutation*))
2925	 (size_t gsl_permutation_get (gsl_permutation* size_t))
2926	 (int gsl_permute_complex (size_t* double* size_t size_t))
2927	 (int gsl_permute_complex_inverse (size_t* double* size_t size_t))
2928	 (int gsl_permute (size_t* double* size_t size_t))
2929	 (int gsl_permute_inverse (size_t* double* size_t size_t))
2930	 (int gsl_permute_vector_complex (gsl_permutation* gsl_vector_complex*))
2931	 (int gsl_permute_vector_complex_inverse (gsl_permutation* gsl_vector_complex*))
2932	 (int gsl_permute_vector (gsl_permutation* gsl_vector*))
2933	 (int gsl_permute_vector_inverse (gsl_permutation* gsl_vector*))
2934
2935	 (gsl_root_fsolver* gsl_root_fsolver_alloc (gsl_root_fsolver_type*))
2936	 (void gsl_root_fsolver_free (gsl_root_fsolver*))
2937	 (int gsl_root_fsolver_set (gsl_root_fsolver* gsl_function* double double))
2938	 (int gsl_root_fsolver_iterate (gsl_root_fsolver*))
2939	 (char* gsl_root_fsolver_name (gsl_root_fsolver*))
2940	 (double gsl_root_fsolver_root (gsl_root_fsolver*))
2941	 (double gsl_root_fsolver_x_lower (gsl_root_fsolver*))
2942	 (double gsl_root_fsolver_x_upper (gsl_root_fsolver*))
2943	 (int gsl_root_test_interval (double double double double))
2944	 (int gsl_root_test_residual (double double))
2945	 (int gsl_root_test_delta (double double double double))
2946
2947	 (gsl_sum_levin_u_workspace* gsl_sum_levin_u_alloc (size_t))
2948	 (void gsl_sum_levin_u_free (gsl_sum_levin_u_workspace*))
2949	 (int gsl_sum_levin_u_accel (double* size_t gsl_sum_levin_u_workspace* double* double*))
2950	 (int gsl_sum_levin_u_minmax (double* size_t size_t size_t gsl_sum_levin_u_workspace* double* double*))
2951	 (int gsl_sum_levin_u_step (double size_t size_t gsl_sum_levin_u_workspace* double*))
2952	 (gsl_sum_levin_utrunc_workspace* gsl_sum_levin_utrunc_alloc (size_t))
2953	 (void gsl_sum_levin_utrunc_free (gsl_sum_levin_utrunc_workspace*))
2954	 (int gsl_sum_levin_utrunc_accel (double* size_t gsl_sum_levin_utrunc_workspace* double* double*))
2955	 (int gsl_sum_levin_utrunc_minmax (double* size_t size_t size_t gsl_sum_levin_utrunc_workspace* double* double*))
2956	 (int gsl_sum_levin_utrunc_step (double size_t gsl_sum_levin_utrunc_workspace* double*))
2957
2958	 (gsl_wavelet* gsl_wavelet_alloc (gsl_wavelet_type* size_t))
2959	 (void gsl_wavelet_free (gsl_wavelet*))
2960	 (char* gsl_wavelet_name (gsl_wavelet*))
2961	 (gsl_wavelet_workspace* gsl_wavelet_workspace_alloc (size_t))
2962	 (void gsl_wavelet_workspace_free (gsl_wavelet_workspace*))
2963	 (int gsl_wavelet_transform (gsl_wavelet* double* size_t size_t (gsl_wavelet_direction int) gsl_wavelet_workspace*))
2964	 (int gsl_wavelet_transform_forward (gsl_wavelet* double* size_t size_t gsl_wavelet_workspace*))
2965	 (int gsl_wavelet_transform_inverse (gsl_wavelet* double* size_t size_t gsl_wavelet_workspace*))
2966	 (int gsl_wavelet2d_transform (gsl_wavelet* double* size_t size_t size_t (gsl_wavelet_direction int) gsl_wavelet_workspace*))
2967	 (int gsl_wavelet2d_transform_forward (gsl_wavelet* double* size_t size_t size_t gsl_wavelet_workspace*))
2968	 (int gsl_wavelet2d_transform_inverse (gsl_wavelet* double* size_t size_t size_t gsl_wavelet_workspace*))
2969	 (int gsl_wavelet2d_nstransform (gsl_wavelet* double* size_t size_t size_t (gsl_wavelet_direction int) gsl_wavelet_workspace*))
2970	 (int gsl_wavelet2d_nstransform_forward (gsl_wavelet* double* size_t size_t size_t gsl_wavelet_workspace*))
2971	 (int gsl_wavelet2d_nstransform_inverse (gsl_wavelet* double* size_t size_t size_t gsl_wavelet_workspace*))
2972	 (int gsl_wavelet2d_transform_matrix (gsl_wavelet* gsl_matrix* (gsl_wavelet_direction int) gsl_wavelet_workspace*))
2973	 (int gsl_wavelet2d_transform_matrix_forward (gsl_wavelet* gsl_matrix* gsl_wavelet_workspace*))
2974	 (int gsl_wavelet2d_transform_matrix_inverse (gsl_wavelet* gsl_matrix* gsl_wavelet_workspace*))
2975	 (int gsl_wavelet2d_nstransform_matrix (gsl_wavelet* gsl_matrix* (gsl_wavelet_direction int) gsl_wavelet_workspace*))
2976	 (int gsl_wavelet2d_nstransform_matrix_forward (gsl_wavelet* gsl_matrix* gsl_wavelet_workspace*))
2977	 (int gsl_wavelet2d_nstransform_matrix_inverse (gsl_wavelet* gsl_matrix* gsl_wavelet_workspace*))
2978
2979	 (reader-cond ((>= gsl-version 2.0)
2980		       ;; rstat
2981		       (gsl_rstat_quantile_workspace* gsl_rstat_quantile_alloc (double))
2982		       (void gsl_rstat_quantile_free (gsl_rstat_quantile_workspace*))
2983		       (int gsl_rstat_quantile_add (double gsl_rstat_quantile_workspace*))
2984		       (double gsl_rstat_quantile_get (gsl_rstat_quantile_workspace*))
2985		       (gsl_rstat_workspace* gsl_rstat_alloc (void))
2986		       (void gsl_rstat_free (gsl_rstat_workspace*))
2987		       (size_t gsl_rstat_n (gsl_rstat_workspace*))
2988		       (int gsl_rstat_add (double gsl_rstat_workspace*))
2989		       (double gsl_rstat_min (gsl_rstat_workspace*))
2990		       (double gsl_rstat_max (gsl_rstat_workspace*))
2991		       (double gsl_rstat_mean (gsl_rstat_workspace*))
2992		       (double gsl_rstat_variance (gsl_rstat_workspace*))
2993		       (double gsl_rstat_sd (gsl_rstat_workspace*))
2994		       (double gsl_rstat_sd_mean (gsl_rstat_workspace*))
2995		       (double gsl_rstat_median (gsl_rstat_workspace*))
2996		       (double gsl_rstat_skew (gsl_rstat_workspace*))
2997		       (double gsl_rstat_kurtosis (gsl_rstat_workspace*))
2998		       (int gsl_rstat_reset (gsl_rstat_workspace*))
2999
3000		       ;; spblas
3001		       (int gsl_spblas_dgemv ((CBLAS_TRANSPOSE_t int) double gsl_spmatrix* gsl_vector* double gsl_vector*))
3002		       (int gsl_spblas_dgemm (double gsl_spmatrix* gsl_spmatrix* gsl_spmatrix*))
3003		       ;(size_t gsl_spblas_scatter (gsl_spmatrix* size_t double size_t* double* int gsl_spmatrix* size_t))
3004
3005		       ;; splinalg
3006		       (gsl_splinalg_itersolve_type* gsl_splinalg_itersolve_gmres)
3007
3008		       (gsl_splinalg_itersolve* gsl_splinalg_itersolve_alloc (gsl_splinalg_itersolve_type* size_t size_t))
3009		       (void gsl_splinalg_itersolve_free (gsl_splinalg_itersolve*))
3010		       (char* gsl_splinalg_itersolve_name (gsl_splinalg_itersolve*))
3011		       (int gsl_splinalg_itersolve_iterate (gsl_spmatrix* gsl_vector* double gsl_vector* gsl_splinalg_itersolve*))
3012		       (double gsl_splinalg_itersolve_normr (gsl_splinalg_itersolve*))
3013
3014		       ;; spmatrix
3015		       (C-macro (int (GSL_SPMATRIX_TRIPLET GSL_SPMATRIX_CCS)))
3016		       ;; #define GSL_SPMATRIX_ISTRIPLET (m)  ((m)->sptype == GSL_SPMATRIX_TRIPLET)
3017		       ;; #define GSL_SPMATRIX_ISCCS (m)  ((m)->sptype == GSL_SPMATRIX_CCS)
3018
3019		       (gsl_spmatrix* gsl_spmatrix_alloc (size_t size_t))
3020		       (gsl_spmatrix* gsl_spmatrix_alloc_nzmax (size_t size_t size_t size_t))
3021		       (void gsl_spmatrix_free (gsl_spmatrix*))
3022		       (int gsl_spmatrix_realloc (size_t gsl_spmatrix*))
3023		       (int gsl_spmatrix_set_zero (gsl_spmatrix*))
3024		       (size_t gsl_spmatrix_nnz (gsl_spmatrix*))
3025		       ;(int gsl_spmatrix_compare_idx (size_t size_t size_t size_t))
3026		       (int gsl_spmatrix_memcpy (gsl_spmatrix* gsl_spmatrix*))
3027		       (double gsl_spmatrix_get (gsl_spmatrix* size_t size_t))
3028		       (int gsl_spmatrix_set (gsl_spmatrix* size_t size_t double))
3029		       (gsl_spmatrix* gsl_spmatrix_compcol (gsl_spmatrix*))
3030		       ;(void gsl_spmatrix_cumsum (size_t size_t*))
3031		       (int gsl_spmatrix_scale (gsl_spmatrix* double))
3032		       (int gsl_spmatrix_minmax (gsl_spmatrix* double* double*))
3033		       (int gsl_spmatrix_add (gsl_spmatrix* gsl_spmatrix* gsl_spmatrix*))
3034		       (int gsl_spmatrix_d2sp (gsl_spmatrix* gsl_matrix*))
3035		       (int gsl_spmatrix_sp2d (gsl_matrix* gsl_spmatrix*))
3036		       (int gsl_spmatrix_equal (gsl_spmatrix* gsl_spmatrix*))
3037		       (int gsl_spmatrix_transpose_memcpy (gsl_spmatrix* gsl_spmatrix*))
3038
3039		       ;; interp2d
3040		       (gsl_interp2d_type* (gsl_interp2d_bilinear gsl_interp2d_bicubic))
3041
3042		       (gsl_interp2d* gsl_interp2d_alloc (gsl_interp2d_type* size_t size_t))
3043		       (char* gsl_interp2d_name (gsl_interp2d*))
3044		       (size_t gsl_interp2d_min_size (gsl_interp2d*))
3045		       (size_t gsl_interp2d_type_min_size (gsl_interp2d_type*))
3046		       (int gsl_interp2d_set (gsl_interp2d* double* size_t size_t double))
3047		       (double gsl_interp2d_get (gsl_interp2d* double* size_t size_t))
3048		       (size_t gsl_interp2d_idx (gsl_interp2d* size_t size_t))
3049		       (int gsl_interp2d_init (gsl_interp2d* double* double* double* size_t size_t))
3050		       (void gsl_interp2d_free (gsl_interp2d*))
3051		       (double gsl_interp2d_eval (gsl_interp2d* double* double* double* double double gsl_interp_accel* gsl_interp_accel*))
3052		       (double gsl_interp2d_eval_extrap (gsl_interp2d* double* double* double* double double gsl_interp_accel* gsl_interp_accel*))
3053		       (int gsl_interp2d_eval_e (gsl_interp2d* double* double* double* double double gsl_interp_accel* gsl_interp_accel* double*))
3054		       ;2.6 (int gsl_interp2d_eval_e_extrap (gsl_interp2d* double* double* double* double double gsl_interp_accel* gsl_interp_accel* double*))
3055		       (reader-cond ((>= gsl-version 2.6)
3056				     (int gsl_interp2d_eval_extrap_e (gsl_interp2d* double* double* double* double double gsl_interp_accel* gsl_interp_accel* double*))))
3057		       (double gsl_interp2d_eval_deriv_x (gsl_interp2d* double* double* double* double double gsl_interp_accel* gsl_interp_accel*))
3058		       (int gsl_interp2d_eval_deriv_x_e (gsl_interp2d* double* double* double* double double gsl_interp_accel* gsl_interp_accel* double*))
3059		       (double gsl_interp2d_eval_deriv_y (gsl_interp2d* double* double* double* double double gsl_interp_accel* gsl_interp_accel*))
3060		       (int gsl_interp2d_eval_deriv_y_e (gsl_interp2d* double* double* double* double double gsl_interp_accel* gsl_interp_accel* double*))
3061		       (double gsl_interp2d_eval_deriv_xx (gsl_interp2d* double* double* double* double double gsl_interp_accel* gsl_interp_accel*))
3062		       (int gsl_interp2d_eval_deriv_xx_e (gsl_interp2d* double* double* double* double double gsl_interp_accel* gsl_interp_accel* double*))
3063		       (double gsl_interp2d_eval_deriv_yy (gsl_interp2d* double* double* double* double double gsl_interp_accel* gsl_interp_accel*))
3064		       (int gsl_interp2d_eval_deriv_yy_e (gsl_interp2d* double* double* double* double double gsl_interp_accel* gsl_interp_accel* double*))
3065		       (double gsl_interp2d_eval_deriv_xy (gsl_interp2d* double* double* double* double double gsl_interp_accel* gsl_interp_accel*))
3066		       (int gsl_interp2d_eval_deriv_xy_e (gsl_interp2d* double* double* double* double double gsl_interp_accel* gsl_interp_accel* double*))
3067
3068		       ;; spline2n
3069		       (gsl_spline2d* gsl_spline2d_alloc (gsl_interp2d_type* size_t size_t))
3070		       (int gsl_spline2d_init (gsl_spline2d* double* double* double* size_t size_t))
3071		       (void gsl_spline2d_free (gsl_spline2d*))
3072		       (double gsl_spline2d_eval (gsl_spline2d* double double gsl_interp_accel* gsl_interp_accel*))
3073		       (int gsl_spline2d_eval_e (gsl_spline2d* double double gsl_interp_accel* gsl_interp_accel* double*))
3074		       (double gsl_spline2d_eval_deriv_x (gsl_spline2d* double double gsl_interp_accel* gsl_interp_accel*))
3075		       (int gsl_spline2d_eval_deriv_x_e (gsl_spline2d* double double gsl_interp_accel* gsl_interp_accel* double*))
3076		       (double gsl_spline2d_eval_deriv_y (gsl_spline2d* double double gsl_interp_accel* gsl_interp_accel*))
3077		       (int gsl_spline2d_eval_deriv_y_e (gsl_spline2d* double double gsl_interp_accel* gsl_interp_accel* double*))
3078		       (double gsl_spline2d_eval_deriv_xx (gsl_spline2d* double double gsl_interp_accel* gsl_interp_accel*))
3079		       (int gsl_spline2d_eval_deriv_xx_e (gsl_spline2d* double double gsl_interp_accel* gsl_interp_accel* double*))
3080		       (double gsl_spline2d_eval_deriv_yy (gsl_spline2d* double double gsl_interp_accel* gsl_interp_accel*))
3081		       (int gsl_spline2d_eval_deriv_yy_e (gsl_spline2d* double double gsl_interp_accel* gsl_interp_accel* double*))
3082		       (double gsl_spline2d_eval_deriv_xy (gsl_spline2d* double double gsl_interp_accel* gsl_interp_accel*))
3083		       (int gsl_spline2d_eval_deriv_xy_e (gsl_spline2d* double double gsl_interp_accel* gsl_interp_accel* double*))
3084		       (size_t gsl_spline2d_min_size (gsl_spline2d*))
3085		       (char* gsl_spline2d_name (gsl_spline2d*))
3086		       (int gsl_spline2d_set (gsl_spline2d* double* size_t size_t double))
3087		       (double gsl_spline2d_get (gsl_spline2d* double* size_t size_t))
3088		       ))
3089	 )
3090       "" (list "gsl/gsl_blas.h"
3091		"gsl/gsl_blas_types.h"
3092		"gsl/gsl_block.h"
3093		"gsl/gsl_block_complex_double.h"
3094		"gsl/gsl_block_double.h"
3095		"gsl/gsl_bspline.h"
3096		"gsl/gsl_cblas.h"
3097		"gsl/gsl_cdf.h"
3098		"gsl/gsl_chebyshev.h"
3099		"gsl/gsl_check_range.h"
3100		"gsl/gsl_combination.h"
3101		"gsl/gsl_complex.h"
3102		"gsl/gsl_complex_math.h"
3103		"gsl/gsl_const.h"
3104		"gsl/gsl_const_cgs.h"
3105		"gsl/gsl_const_cgsm.h"
3106		"gsl/gsl_const_mks.h"
3107		"gsl/gsl_const_mksa.h"
3108		"gsl/gsl_const_num.h"
3109		"gsl/gsl_deriv.h"
3110		"gsl/gsl_dft_complex.h"
3111		"gsl/gsl_dht.h"
3112		"gsl/gsl_diff.h"
3113		"gsl/gsl_eigen.h"
3114		"gsl/gsl_errno.h"
3115		"gsl/gsl_fft.h"
3116		"gsl/gsl_fft_complex.h"
3117		"gsl/gsl_fft_real.h"
3118		(reader-cond ((>= gsl-version 2.5)
3119			      "gsl/gsl_filter.h"
3120			      "gsl/gsl_movstat.h"))
3121		"gsl/gsl_fit.h"
3122		"gsl/gsl_heapsort.h"
3123		"gsl/gsl_histogram.h"
3124		"gsl/gsl_histogram2d.h"
3125		"gsl/gsl_ieee_utils.h"
3126		"gsl/gsl_inline.h"
3127		"gsl/gsl_integration.h"
3128		"gsl/gsl_interp.h"
3129		(reader-cond ((>= gsl-version 2.0)
3130			      "gsl/gsl_interp2d.h"))
3131		"gsl/gsl_linalg.h"
3132		"gsl/gsl_machine.h"
3133		"gsl/gsl_math.h"
3134		"gsl/gsl_matrix.h"
3135		"gsl/gsl_matrix_complex_double.h"
3136		"gsl/gsl_matrix_double.h"
3137		"gsl/gsl_message.h"
3138		"gsl/gsl_min.h"
3139		"gsl/gsl_minmax.h"
3140		"gsl/gsl_mode.h"
3141		"gsl/gsl_multifit.h"
3142		"gsl/gsl_multifit_nlin.h"
3143		(reader-cond ((>= gsl-version 2.1)
3144			      "gsl/gsl_multilarge.h"))
3145		"gsl/gsl_multimin.h"
3146		"gsl/gsl_multiroots.h"
3147		"gsl/gsl_multiset.h"
3148		"gsl/gsl_nan.h"
3149		"gsl/gsl_permutation.h"
3150		"gsl/gsl_permute.h"
3151		"gsl/gsl_permute_complex_double.h"
3152		"gsl/gsl_permute_double.h"
3153		"gsl/gsl_permute_vector.h"
3154		"gsl/gsl_permute_vector_complex_double.h"
3155		"gsl/gsl_permute_vector_double.h"
3156		"gsl/gsl_poly.h"
3157		"gsl/gsl_pow_int.h"
3158		"gsl/gsl_precision.h"
3159		"gsl/gsl_qrng.h"
3160		"gsl/gsl_randist.h"
3161		"gsl/gsl_rng.h"
3162		"gsl/gsl_roots.h"
3163		(reader-cond ((>= gsl-version 2.0)
3164			      "gsl/gsl_rstat.h"))
3165		"gsl/gsl_sf.h"
3166		"gsl/gsl_sf_airy.h"
3167		"gsl/gsl_sf_bessel.h"
3168		"gsl/gsl_sf_clausen.h"
3169		"gsl/gsl_sf_coulomb.h"
3170		"gsl/gsl_sf_coupling.h"
3171		"gsl/gsl_sf_dawson.h"
3172		"gsl/gsl_sf_debye.h"
3173		"gsl/gsl_sf_dilog.h"
3174		"gsl/gsl_sf_elementary.h"
3175		"gsl/gsl_sf_ellint.h"
3176		"gsl/gsl_sf_elljac.h"
3177		"gsl/gsl_sf_erf.h"
3178		"gsl/gsl_sf_exp.h"
3179		"gsl/gsl_sf_expint.h"
3180		"gsl/gsl_sf_fermi_dirac.h"
3181		"gsl/gsl_sf_gamma.h"
3182		"gsl/gsl_sf_gegenbauer.h"
3183		"gsl/gsl_sf_hyperg.h"
3184		"gsl/gsl_sf_laguerre.h"
3185		"gsl/gsl_sf_lambert.h"
3186		"gsl/gsl_sf_legendre.h"
3187		"gsl/gsl_sf_log.h"
3188		"gsl/gsl_sf_mathieu.h"
3189		"gsl/gsl_sf_pow_int.h"
3190		"gsl/gsl_sf_psi.h"
3191		"gsl/gsl_sf_result.h"
3192		(reader-cond ((>= gsl-version 2.0)
3193			      "gsl/gsl_spblas.h"
3194			      "gsl/gsl_splinalg.h"
3195			      "gsl/gsl_spline2d.h"
3196			      "gsl/gsl_spmatrix.h"))
3197		"gsl/gsl_sf_synchrotron.h"
3198		"gsl/gsl_sf_transport.h"
3199		"gsl/gsl_sf_trig.h"
3200		"gsl/gsl_sf_zeta.h"
3201		"gsl/gsl_siman.h"
3202		"gsl/gsl_sort.h"
3203		"gsl/gsl_sort_double.h"
3204		"gsl/gsl_sort_vector.h"
3205		"gsl/gsl_sort_vector_double.h"
3206		"gsl/gsl_specfunc.h"
3207		"gsl/gsl_spline.h"
3208		"gsl/gsl_statistics.h"
3209		"gsl/gsl_statistics_double.h"
3210		"gsl/gsl_sum.h"
3211		"gsl/gsl_sys.h"
3212		"gsl/gsl_vector.h"
3213		"gsl/gsl_vector_complex.h"
3214		"gsl/gsl_vector_complex_double.h"
3215		"gsl/gsl_vector_double.h"
3216		"gsl/gsl_version.h"
3217		"gsl/gsl_wavelet.h"
3218		"gsl/gsl_wavelet2d.h"
3219		)
3220
3221       "-I/usr/local/include -g3 -DGSL_DISABLE_DEPRECATED"
3222       "-L/usr/local/lib -lgsl -lgslcblas"
3223       "libgsl_s7")
3224					; GSL_DISABLE_DEPRECATED is needed to avoid a name collision (dating from version 1.7!!)
3225      (curlet))))
3226
3227*libgsl*
3228