summaryrefslogtreecommitdiff
path: root/packages/special/lib/Numeric/GSL/Special
diff options
context:
space:
mode:
authorAlberto Ruiz <aruiz@um.es>2010-02-24 13:23:42 +0000
committerAlberto Ruiz <aruiz@um.es>2010-02-24 13:23:42 +0000
commit54bcc1fc1e0f9676cb10f627f412eeeea34b5d2c (patch)
tree3983a0046ce08a2390c5a495aae60fd419c58986 /packages/special/lib/Numeric/GSL/Special
parentaae45de54aca92c5f0f013e46c6d6f65508d76f5 (diff)
created package hmatrix-special
Diffstat (limited to 'packages/special/lib/Numeric/GSL/Special')
-rw-r--r--packages/special/lib/Numeric/GSL/Special/Airy.hs141
-rw-r--r--packages/special/lib/Numeric/GSL/Special/Bessel.hs508
-rw-r--r--packages/special/lib/Numeric/GSL/Special/Clausen.hs30
-rw-r--r--packages/special/lib/Numeric/GSL/Special/Coulomb.hs69
-rw-r--r--packages/special/lib/Numeric/GSL/Special/Coupling.hs68
-rw-r--r--packages/special/lib/Numeric/GSL/Special/Dawson.hs30
-rw-r--r--packages/special/lib/Numeric/GSL/Special/Debye.hs80
-rw-r--r--packages/special/lib/Numeric/GSL/Special/Dilog.hs42
-rw-r--r--packages/special/lib/Numeric/GSL/Special/Elementary.hs35
-rw-r--r--packages/special/lib/Numeric/GSL/Special/Ellint.hs140
-rw-r--r--packages/special/lib/Numeric/GSL/Special/Elljac.hs38
-rw-r--r--packages/special/lib/Numeric/GSL/Special/Erf.hs80
-rw-r--r--packages/special/lib/Numeric/GSL/Special/Exp.hs115
-rw-r--r--packages/special/lib/Numeric/GSL/Special/Expint.hs160
-rw-r--r--packages/special/lib/Numeric/GSL/Special/Fermi_dirac.hs110
-rw-r--r--packages/special/lib/Numeric/GSL/Special/Gamma.hs236
-rw-r--r--packages/special/lib/Numeric/GSL/Special/Gegenbauer.hs64
-rw-r--r--packages/special/lib/Numeric/GSL/Special/Hyperg.hs130
-rw-r--r--packages/special/lib/Numeric/GSL/Special/Internal.hsc102
-rw-r--r--packages/special/lib/Numeric/GSL/Special/Laguerre.hs60
-rw-r--r--packages/special/lib/Numeric/GSL/Special/Lambert.hs40
-rw-r--r--packages/special/lib/Numeric/GSL/Special/Legendre.hs233
-rw-r--r--packages/special/lib/Numeric/GSL/Special/Log.hs64
-rw-r--r--packages/special/lib/Numeric/GSL/Special/Pow_int.hs30
-rw-r--r--packages/special/lib/Numeric/GSL/Special/Psi.hs84
-rw-r--r--packages/special/lib/Numeric/GSL/Special/Synchrotron.hs40
-rw-r--r--packages/special/lib/Numeric/GSL/Special/Transport.hs60
-rw-r--r--packages/special/lib/Numeric/GSL/Special/Trig.hs138
-rw-r--r--packages/special/lib/Numeric/GSL/Special/Zeta.hs90
-rw-r--r--packages/special/lib/Numeric/GSL/Special/auto.hs244
-rw-r--r--packages/special/lib/Numeric/GSL/Special/autoall.sh45
-rw-r--r--packages/special/lib/Numeric/GSL/Special/replace.hs14
32 files changed, 3320 insertions, 0 deletions
diff --git a/packages/special/lib/Numeric/GSL/Special/Airy.hs b/packages/special/lib/Numeric/GSL/Special/Airy.hs
new file mode 100644
index 0000000..8a04eed
--- /dev/null
+++ b/packages/special/lib/Numeric/GSL/Special/Airy.hs
@@ -0,0 +1,141 @@
1------------------------------------------------------------
2-- |
3-- Module : Numeric.GSL.Special.Airy
4-- Copyright : (c) Alberto Ruiz 2006
5-- License : GPL
6-- Maintainer : Alberto Ruiz (aruiz at um dot es)
7-- Stability : provisional
8-- Portability : uses ffi
9--
10-- Wrappers for selected functions described at:
11--
12-- <http://www.google.com/search?q=gsl_sf_airy.h&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky>
13------------------------------------------------------------
14
15module Numeric.GSL.Special.Airy(
16 airy_Ai_e
17, airy_Ai
18, airy_Bi_e
19, airy_Bi
20, airy_Ai_scaled_e
21, airy_Ai_scaled
22, airy_Bi_scaled_e
23, airy_Bi_scaled
24, airy_Ai_deriv_e
25, airy_Ai_deriv
26, airy_Bi_deriv_e
27, airy_Bi_deriv
28, airy_Ai_deriv_scaled_e
29, airy_Ai_deriv_scaled
30, airy_Bi_deriv_scaled_e
31, airy_Bi_deriv_scaled
32, airy_zero_Ai_e
33, airy_zero_Ai
34, airy_zero_Bi_e
35, airy_zero_Bi
36, airy_zero_Ai_deriv_e
37, airy_zero_Ai_deriv
38, airy_zero_Bi_deriv_e
39, airy_zero_Bi_deriv
40, Precision(..)
41) where
42
43import Foreign(Ptr)
44import Foreign.C.Types(CInt)
45import Numeric.GSL.Special.Internal
46
47airy_Ai_e :: Double -> Precision -> (Double,Double)
48airy_Ai_e x mode = createSFR "airy_Ai_e" $ gsl_sf_airy_Ai_e x (precCode mode)
49foreign import ccall SAFE_CHEAP "gsl_sf_airy_Ai_e" gsl_sf_airy_Ai_e :: Double -> Gsl_mode_t -> Ptr () -> IO CInt
50
51airy_Ai :: Double -> Precision -> Double
52airy_Ai x mode = gsl_sf_airy_Ai x (precCode mode)
53foreign import ccall SAFE_CHEAP "gsl_sf_airy_Ai" gsl_sf_airy_Ai :: Double -> Gsl_mode_t -> Double
54
55airy_Bi_e :: Double -> Precision -> (Double,Double)
56airy_Bi_e x mode = createSFR "airy_Bi_e" $ gsl_sf_airy_Bi_e x (precCode mode)
57foreign import ccall SAFE_CHEAP "gsl_sf_airy_Bi_e" gsl_sf_airy_Bi_e :: Double -> Gsl_mode_t -> Ptr () -> IO CInt
58
59airy_Bi :: Double -> Precision -> Double
60airy_Bi x mode = gsl_sf_airy_Bi x (precCode mode)
61foreign import ccall SAFE_CHEAP "gsl_sf_airy_Bi" gsl_sf_airy_Bi :: Double -> Gsl_mode_t -> Double
62
63airy_Ai_scaled_e :: Double -> Precision -> (Double,Double)
64airy_Ai_scaled_e x mode = createSFR "airy_Ai_scaled_e" $ gsl_sf_airy_Ai_scaled_e x (precCode mode)
65foreign import ccall SAFE_CHEAP "gsl_sf_airy_Ai_scaled_e" gsl_sf_airy_Ai_scaled_e :: Double -> Gsl_mode_t -> Ptr () -> IO CInt
66
67airy_Ai_scaled :: Double -> Precision -> Double
68airy_Ai_scaled x mode = gsl_sf_airy_Ai_scaled x (precCode mode)
69foreign import ccall SAFE_CHEAP "gsl_sf_airy_Ai_scaled" gsl_sf_airy_Ai_scaled :: Double -> Gsl_mode_t -> Double
70
71airy_Bi_scaled_e :: Double -> Precision -> (Double,Double)
72airy_Bi_scaled_e x mode = createSFR "airy_Bi_scaled_e" $ gsl_sf_airy_Bi_scaled_e x (precCode mode)
73foreign import ccall SAFE_CHEAP "gsl_sf_airy_Bi_scaled_e" gsl_sf_airy_Bi_scaled_e :: Double -> Gsl_mode_t -> Ptr () -> IO CInt
74
75airy_Bi_scaled :: Double -> Precision -> Double
76airy_Bi_scaled x mode = gsl_sf_airy_Bi_scaled x (precCode mode)
77foreign import ccall SAFE_CHEAP "gsl_sf_airy_Bi_scaled" gsl_sf_airy_Bi_scaled :: Double -> Gsl_mode_t -> Double
78
79airy_Ai_deriv_e :: Double -> Precision -> (Double,Double)
80airy_Ai_deriv_e x mode = createSFR "airy_Ai_deriv_e" $ gsl_sf_airy_Ai_deriv_e x (precCode mode)
81foreign import ccall SAFE_CHEAP "gsl_sf_airy_Ai_deriv_e" gsl_sf_airy_Ai_deriv_e :: Double -> Gsl_mode_t -> Ptr () -> IO CInt
82
83airy_Ai_deriv :: Double -> Precision -> Double
84airy_Ai_deriv x mode = gsl_sf_airy_Ai_deriv x (precCode mode)
85foreign import ccall SAFE_CHEAP "gsl_sf_airy_Ai_deriv" gsl_sf_airy_Ai_deriv :: Double -> Gsl_mode_t -> Double
86
87airy_Bi_deriv_e :: Double -> Precision -> (Double,Double)
88airy_Bi_deriv_e x mode = createSFR "airy_Bi_deriv_e" $ gsl_sf_airy_Bi_deriv_e x (precCode mode)
89foreign import ccall SAFE_CHEAP "gsl_sf_airy_Bi_deriv_e" gsl_sf_airy_Bi_deriv_e :: Double -> Gsl_mode_t -> Ptr () -> IO CInt
90
91airy_Bi_deriv :: Double -> Precision -> Double
92airy_Bi_deriv x mode = gsl_sf_airy_Bi_deriv x (precCode mode)
93foreign import ccall SAFE_CHEAP "gsl_sf_airy_Bi_deriv" gsl_sf_airy_Bi_deriv :: Double -> Gsl_mode_t -> Double
94
95airy_Ai_deriv_scaled_e :: Double -> Precision -> (Double,Double)
96airy_Ai_deriv_scaled_e x mode = createSFR "airy_Ai_deriv_scaled_e" $ gsl_sf_airy_Ai_deriv_scaled_e x (precCode mode)
97foreign import ccall SAFE_CHEAP "gsl_sf_airy_Ai_deriv_scaled_e" gsl_sf_airy_Ai_deriv_scaled_e :: Double -> Gsl_mode_t -> Ptr () -> IO CInt
98
99airy_Ai_deriv_scaled :: Double -> Precision -> Double
100airy_Ai_deriv_scaled x mode = gsl_sf_airy_Ai_deriv_scaled x (precCode mode)
101foreign import ccall SAFE_CHEAP "gsl_sf_airy_Ai_deriv_scaled" gsl_sf_airy_Ai_deriv_scaled :: Double -> Gsl_mode_t -> Double
102
103airy_Bi_deriv_scaled_e :: Double -> Precision -> (Double,Double)
104airy_Bi_deriv_scaled_e x mode = createSFR "airy_Bi_deriv_scaled_e" $ gsl_sf_airy_Bi_deriv_scaled_e x (precCode mode)
105foreign import ccall SAFE_CHEAP "gsl_sf_airy_Bi_deriv_scaled_e" gsl_sf_airy_Bi_deriv_scaled_e :: Double -> Gsl_mode_t -> Ptr () -> IO CInt
106
107airy_Bi_deriv_scaled :: Double -> Precision -> Double
108airy_Bi_deriv_scaled x mode = gsl_sf_airy_Bi_deriv_scaled x (precCode mode)
109foreign import ccall SAFE_CHEAP "gsl_sf_airy_Bi_deriv_scaled" gsl_sf_airy_Bi_deriv_scaled :: Double -> Gsl_mode_t -> Double
110
111airy_zero_Ai_e :: CInt -> (Double,Double)
112airy_zero_Ai_e s = createSFR "airy_zero_Ai_e" $ gsl_sf_airy_zero_Ai_e s
113foreign import ccall SAFE_CHEAP "gsl_sf_airy_zero_Ai_e" gsl_sf_airy_zero_Ai_e :: CInt -> Ptr () -> IO CInt
114
115airy_zero_Ai :: CInt -> Double
116airy_zero_Ai = gsl_sf_airy_zero_Ai
117foreign import ccall SAFE_CHEAP "gsl_sf_airy_zero_Ai" gsl_sf_airy_zero_Ai :: CInt -> Double
118
119airy_zero_Bi_e :: CInt -> (Double,Double)
120airy_zero_Bi_e s = createSFR "airy_zero_Bi_e" $ gsl_sf_airy_zero_Bi_e s
121foreign import ccall SAFE_CHEAP "gsl_sf_airy_zero_Bi_e" gsl_sf_airy_zero_Bi_e :: CInt -> Ptr () -> IO CInt
122
123airy_zero_Bi :: CInt -> Double
124airy_zero_Bi = gsl_sf_airy_zero_Bi
125foreign import ccall SAFE_CHEAP "gsl_sf_airy_zero_Bi" gsl_sf_airy_zero_Bi :: CInt -> Double
126
127airy_zero_Ai_deriv_e :: CInt -> (Double,Double)
128airy_zero_Ai_deriv_e s = createSFR "airy_zero_Ai_deriv_e" $ gsl_sf_airy_zero_Ai_deriv_e s
129foreign import ccall SAFE_CHEAP "gsl_sf_airy_zero_Ai_deriv_e" gsl_sf_airy_zero_Ai_deriv_e :: CInt -> Ptr () -> IO CInt
130
131airy_zero_Ai_deriv :: CInt -> Double
132airy_zero_Ai_deriv = gsl_sf_airy_zero_Ai_deriv
133foreign import ccall SAFE_CHEAP "gsl_sf_airy_zero_Ai_deriv" gsl_sf_airy_zero_Ai_deriv :: CInt -> Double
134
135airy_zero_Bi_deriv_e :: CInt -> (Double,Double)
136airy_zero_Bi_deriv_e s = createSFR "airy_zero_Bi_deriv_e" $ gsl_sf_airy_zero_Bi_deriv_e s
137foreign import ccall SAFE_CHEAP "gsl_sf_airy_zero_Bi_deriv_e" gsl_sf_airy_zero_Bi_deriv_e :: CInt -> Ptr () -> IO CInt
138
139airy_zero_Bi_deriv :: CInt -> Double
140airy_zero_Bi_deriv = gsl_sf_airy_zero_Bi_deriv
141foreign import ccall SAFE_CHEAP "gsl_sf_airy_zero_Bi_deriv" gsl_sf_airy_zero_Bi_deriv :: CInt -> Double
diff --git a/packages/special/lib/Numeric/GSL/Special/Bessel.hs b/packages/special/lib/Numeric/GSL/Special/Bessel.hs
new file mode 100644
index 0000000..66d6c5b
--- /dev/null
+++ b/packages/special/lib/Numeric/GSL/Special/Bessel.hs
@@ -0,0 +1,508 @@
1------------------------------------------------------------
2-- |
3-- Module : Numeric.GSL.Special.Bessel
4-- Copyright : (c) Alberto Ruiz 2006
5-- License : GPL
6-- Maintainer : Alberto Ruiz (aruiz at um dot es)
7-- Stability : provisional
8-- Portability : uses ffi
9--
10-- Wrappers for selected functions described at:
11--
12-- <http://www.google.com/search?q=gsl_sf_bessel.h&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky>
13------------------------------------------------------------
14
15module Numeric.GSL.Special.Bessel(
16 bessel_J0_e
17, bessel_J0
18, bessel_J1_e
19, bessel_J1
20, bessel_Jn_e
21, bessel_Jn
22, bessel_Y0_e
23, bessel_Y0
24, bessel_Y1_e
25, bessel_Y1
26, bessel_Yn_e
27, bessel_Yn
28, bessel_I0_e
29, bessel_I0
30, bessel_I1_e
31, bessel_I1
32, bessel_In_e
33, bessel_In
34, bessel_I0_scaled_e
35, bessel_I0_scaled
36, bessel_I1_scaled_e
37, bessel_I1_scaled
38, bessel_In_scaled_e
39, bessel_In_scaled
40, bessel_K0_e
41, bessel_K0
42, bessel_K1_e
43, bessel_K1
44, bessel_Kn_e
45, bessel_Kn
46, bessel_K0_scaled_e
47, bessel_K0_scaled
48, bessel_K1_scaled_e
49, bessel_K1_scaled
50, bessel_Kn_scaled_e
51, bessel_Kn_scaled
52, bessel_j0_e
53, bessel_j0
54, bessel_j1_e
55, bessel_j1
56, bessel_j2_e
57, bessel_j2
58, bessel_jl_e
59, bessel_jl
60, bessel_y0_e
61, bessel_y0
62, bessel_y1_e
63, bessel_y1
64, bessel_y2_e
65, bessel_y2
66, bessel_yl_e
67, bessel_yl
68, bessel_i0_scaled_e
69, bessel_i0_scaled
70, bessel_i1_scaled_e
71, bessel_i1_scaled
72, bessel_i2_scaled_e
73, bessel_i2_scaled
74, bessel_il_scaled_e
75, bessel_il_scaled
76, bessel_k0_scaled_e
77, bessel_k0_scaled
78, bessel_k1_scaled_e
79, bessel_k1_scaled
80, bessel_k2_scaled_e
81, bessel_k2_scaled
82, bessel_kl_scaled_e
83, bessel_kl_scaled
84, bessel_Jnu_e
85, bessel_Jnu
86, bessel_Ynu_e
87, bessel_Ynu
88, bessel_Inu_scaled_e
89, bessel_Inu_scaled
90, bessel_Inu_e
91, bessel_Inu
92, bessel_Knu_scaled_e
93, bessel_Knu_scaled
94, bessel_Knu_e
95, bessel_Knu
96, bessel_lnKnu_e
97, bessel_lnKnu
98, bessel_zero_J0_e
99, bessel_zero_J0
100, bessel_zero_J1_e
101, bessel_zero_J1
102, bessel_zero_Jnu_e
103, bessel_zero_Jnu
104) where
105
106import Foreign(Ptr)
107import Foreign.C.Types(CInt)
108import Numeric.GSL.Special.Internal
109
110bessel_J0_e :: Double -> (Double,Double)
111bessel_J0_e x = createSFR "bessel_J0_e" $ gsl_sf_bessel_J0_e x
112foreign import ccall SAFE_CHEAP "gsl_sf_bessel_J0_e" gsl_sf_bessel_J0_e :: Double -> Ptr () -> IO CInt
113
114bessel_J0 :: Double -> Double
115bessel_J0 = gsl_sf_bessel_J0
116foreign import ccall SAFE_CHEAP "gsl_sf_bessel_J0" gsl_sf_bessel_J0 :: Double -> Double
117
118bessel_J1_e :: Double -> (Double,Double)
119bessel_J1_e x = createSFR "bessel_J1_e" $ gsl_sf_bessel_J1_e x
120foreign import ccall SAFE_CHEAP "gsl_sf_bessel_J1_e" gsl_sf_bessel_J1_e :: Double -> Ptr () -> IO CInt
121
122bessel_J1 :: Double -> Double
123bessel_J1 = gsl_sf_bessel_J1
124foreign import ccall SAFE_CHEAP "gsl_sf_bessel_J1" gsl_sf_bessel_J1 :: Double -> Double
125
126bessel_Jn_e :: CInt -> Double -> (Double,Double)
127bessel_Jn_e n x = createSFR "bessel_Jn_e" $ gsl_sf_bessel_Jn_e n x
128foreign import ccall SAFE_CHEAP "gsl_sf_bessel_Jn_e" gsl_sf_bessel_Jn_e :: CInt -> Double -> Ptr () -> IO CInt
129
130bessel_Jn :: CInt -> Double -> Double
131bessel_Jn = gsl_sf_bessel_Jn
132foreign import ccall SAFE_CHEAP "gsl_sf_bessel_Jn" gsl_sf_bessel_Jn :: CInt -> Double -> Double
133
134bessel_Jn_array :: CInt -> CInt -> Double -> Ptr Double -> CInt
135bessel_Jn_array = gsl_sf_bessel_Jn_array
136foreign import ccall SAFE_CHEAP "gsl_sf_bessel_Jn_array" gsl_sf_bessel_Jn_array :: CInt -> CInt -> Double -> Ptr Double -> CInt
137
138bessel_Y0_e :: Double -> (Double,Double)
139bessel_Y0_e x = createSFR "bessel_Y0_e" $ gsl_sf_bessel_Y0_e x
140foreign import ccall SAFE_CHEAP "gsl_sf_bessel_Y0_e" gsl_sf_bessel_Y0_e :: Double -> Ptr () -> IO CInt
141
142bessel_Y0 :: Double -> Double
143bessel_Y0 = gsl_sf_bessel_Y0
144foreign import ccall SAFE_CHEAP "gsl_sf_bessel_Y0" gsl_sf_bessel_Y0 :: Double -> Double
145
146bessel_Y1_e :: Double -> (Double,Double)
147bessel_Y1_e x = createSFR "bessel_Y1_e" $ gsl_sf_bessel_Y1_e x
148foreign import ccall SAFE_CHEAP "gsl_sf_bessel_Y1_e" gsl_sf_bessel_Y1_e :: Double -> Ptr () -> IO CInt
149
150bessel_Y1 :: Double -> Double
151bessel_Y1 = gsl_sf_bessel_Y1
152foreign import ccall SAFE_CHEAP "gsl_sf_bessel_Y1" gsl_sf_bessel_Y1 :: Double -> Double
153
154bessel_Yn_e :: CInt -> Double -> (Double,Double)
155bessel_Yn_e n x = createSFR "bessel_Yn_e" $ gsl_sf_bessel_Yn_e n x
156foreign import ccall SAFE_CHEAP "gsl_sf_bessel_Yn_e" gsl_sf_bessel_Yn_e :: CInt -> Double -> Ptr () -> IO CInt
157
158bessel_Yn :: CInt -> Double -> Double
159bessel_Yn = gsl_sf_bessel_Yn
160foreign import ccall SAFE_CHEAP "gsl_sf_bessel_Yn" gsl_sf_bessel_Yn :: CInt -> Double -> Double
161
162bessel_Yn_array :: CInt -> CInt -> Double -> Ptr Double -> CInt
163bessel_Yn_array = gsl_sf_bessel_Yn_array
164foreign import ccall SAFE_CHEAP "gsl_sf_bessel_Yn_array" gsl_sf_bessel_Yn_array :: CInt -> CInt -> Double -> Ptr Double -> CInt
165
166bessel_I0_e :: Double -> (Double,Double)
167bessel_I0_e x = createSFR "bessel_I0_e" $ gsl_sf_bessel_I0_e x
168foreign import ccall SAFE_CHEAP "gsl_sf_bessel_I0_e" gsl_sf_bessel_I0_e :: Double -> Ptr () -> IO CInt
169
170bessel_I0 :: Double -> Double
171bessel_I0 = gsl_sf_bessel_I0
172foreign import ccall SAFE_CHEAP "gsl_sf_bessel_I0" gsl_sf_bessel_I0 :: Double -> Double
173
174bessel_I1_e :: Double -> (Double,Double)
175bessel_I1_e x = createSFR "bessel_I1_e" $ gsl_sf_bessel_I1_e x
176foreign import ccall SAFE_CHEAP "gsl_sf_bessel_I1_e" gsl_sf_bessel_I1_e :: Double -> Ptr () -> IO CInt
177
178bessel_I1 :: Double -> Double
179bessel_I1 = gsl_sf_bessel_I1
180foreign import ccall SAFE_CHEAP "gsl_sf_bessel_I1" gsl_sf_bessel_I1 :: Double -> Double
181
182bessel_In_e :: CInt -> Double -> (Double,Double)
183bessel_In_e n x = createSFR "bessel_In_e" $ gsl_sf_bessel_In_e n x
184foreign import ccall SAFE_CHEAP "gsl_sf_bessel_In_e" gsl_sf_bessel_In_e :: CInt -> Double -> Ptr () -> IO CInt
185
186bessel_In :: CInt -> Double -> Double
187bessel_In = gsl_sf_bessel_In
188foreign import ccall SAFE_CHEAP "gsl_sf_bessel_In" gsl_sf_bessel_In :: CInt -> Double -> Double
189
190bessel_In_array :: CInt -> CInt -> Double -> Ptr Double -> CInt
191bessel_In_array = gsl_sf_bessel_In_array
192foreign import ccall SAFE_CHEAP "gsl_sf_bessel_In_array" gsl_sf_bessel_In_array :: CInt -> CInt -> Double -> Ptr Double -> CInt
193
194bessel_I0_scaled_e :: Double -> (Double,Double)
195bessel_I0_scaled_e x = createSFR "bessel_I0_scaled_e" $ gsl_sf_bessel_I0_scaled_e x
196foreign import ccall SAFE_CHEAP "gsl_sf_bessel_I0_scaled_e" gsl_sf_bessel_I0_scaled_e :: Double -> Ptr () -> IO CInt
197
198bessel_I0_scaled :: Double -> Double
199bessel_I0_scaled = gsl_sf_bessel_I0_scaled
200foreign import ccall SAFE_CHEAP "gsl_sf_bessel_I0_scaled" gsl_sf_bessel_I0_scaled :: Double -> Double
201
202bessel_I1_scaled_e :: Double -> (Double,Double)
203bessel_I1_scaled_e x = createSFR "bessel_I1_scaled_e" $ gsl_sf_bessel_I1_scaled_e x
204foreign import ccall SAFE_CHEAP "gsl_sf_bessel_I1_scaled_e" gsl_sf_bessel_I1_scaled_e :: Double -> Ptr () -> IO CInt
205
206bessel_I1_scaled :: Double -> Double
207bessel_I1_scaled = gsl_sf_bessel_I1_scaled
208foreign import ccall SAFE_CHEAP "gsl_sf_bessel_I1_scaled" gsl_sf_bessel_I1_scaled :: Double -> Double
209
210bessel_In_scaled_e :: CInt -> Double -> (Double,Double)
211bessel_In_scaled_e n x = createSFR "bessel_In_scaled_e" $ gsl_sf_bessel_In_scaled_e n x
212foreign import ccall SAFE_CHEAP "gsl_sf_bessel_In_scaled_e" gsl_sf_bessel_In_scaled_e :: CInt -> Double -> Ptr () -> IO CInt
213
214bessel_In_scaled :: CInt -> Double -> Double
215bessel_In_scaled = gsl_sf_bessel_In_scaled
216foreign import ccall SAFE_CHEAP "gsl_sf_bessel_In_scaled" gsl_sf_bessel_In_scaled :: CInt -> Double -> Double
217
218bessel_In_scaled_array :: CInt -> CInt -> Double -> Ptr Double -> CInt
219bessel_In_scaled_array = gsl_sf_bessel_In_scaled_array
220foreign import ccall SAFE_CHEAP "gsl_sf_bessel_In_scaled_array" gsl_sf_bessel_In_scaled_array :: CInt -> CInt -> Double -> Ptr Double -> CInt
221
222bessel_K0_e :: Double -> (Double,Double)
223bessel_K0_e x = createSFR "bessel_K0_e" $ gsl_sf_bessel_K0_e x
224foreign import ccall SAFE_CHEAP "gsl_sf_bessel_K0_e" gsl_sf_bessel_K0_e :: Double -> Ptr () -> IO CInt
225
226bessel_K0 :: Double -> Double
227bessel_K0 = gsl_sf_bessel_K0
228foreign import ccall SAFE_CHEAP "gsl_sf_bessel_K0" gsl_sf_bessel_K0 :: Double -> Double
229
230bessel_K1_e :: Double -> (Double,Double)
231bessel_K1_e x = createSFR "bessel_K1_e" $ gsl_sf_bessel_K1_e x
232foreign import ccall SAFE_CHEAP "gsl_sf_bessel_K1_e" gsl_sf_bessel_K1_e :: Double -> Ptr () -> IO CInt
233
234bessel_K1 :: Double -> Double
235bessel_K1 = gsl_sf_bessel_K1
236foreign import ccall SAFE_CHEAP "gsl_sf_bessel_K1" gsl_sf_bessel_K1 :: Double -> Double
237
238bessel_Kn_e :: CInt -> Double -> (Double,Double)
239bessel_Kn_e n x = createSFR "bessel_Kn_e" $ gsl_sf_bessel_Kn_e n x
240foreign import ccall SAFE_CHEAP "gsl_sf_bessel_Kn_e" gsl_sf_bessel_Kn_e :: CInt -> Double -> Ptr () -> IO CInt
241
242bessel_Kn :: CInt -> Double -> Double
243bessel_Kn = gsl_sf_bessel_Kn
244foreign import ccall SAFE_CHEAP "gsl_sf_bessel_Kn" gsl_sf_bessel_Kn :: CInt -> Double -> Double
245
246bessel_Kn_array :: CInt -> CInt -> Double -> Ptr Double -> CInt
247bessel_Kn_array = gsl_sf_bessel_Kn_array
248foreign import ccall SAFE_CHEAP "gsl_sf_bessel_Kn_array" gsl_sf_bessel_Kn_array :: CInt -> CInt -> Double -> Ptr Double -> CInt
249
250bessel_K0_scaled_e :: Double -> (Double,Double)
251bessel_K0_scaled_e x = createSFR "bessel_K0_scaled_e" $ gsl_sf_bessel_K0_scaled_e x
252foreign import ccall SAFE_CHEAP "gsl_sf_bessel_K0_scaled_e" gsl_sf_bessel_K0_scaled_e :: Double -> Ptr () -> IO CInt
253
254bessel_K0_scaled :: Double -> Double
255bessel_K0_scaled = gsl_sf_bessel_K0_scaled
256foreign import ccall SAFE_CHEAP "gsl_sf_bessel_K0_scaled" gsl_sf_bessel_K0_scaled :: Double -> Double
257
258bessel_K1_scaled_e :: Double -> (Double,Double)
259bessel_K1_scaled_e x = createSFR "bessel_K1_scaled_e" $ gsl_sf_bessel_K1_scaled_e x
260foreign import ccall SAFE_CHEAP "gsl_sf_bessel_K1_scaled_e" gsl_sf_bessel_K1_scaled_e :: Double -> Ptr () -> IO CInt
261
262bessel_K1_scaled :: Double -> Double
263bessel_K1_scaled = gsl_sf_bessel_K1_scaled
264foreign import ccall SAFE_CHEAP "gsl_sf_bessel_K1_scaled" gsl_sf_bessel_K1_scaled :: Double -> Double
265
266bessel_Kn_scaled_e :: CInt -> Double -> (Double,Double)
267bessel_Kn_scaled_e n x = createSFR "bessel_Kn_scaled_e" $ gsl_sf_bessel_Kn_scaled_e n x
268foreign import ccall SAFE_CHEAP "gsl_sf_bessel_Kn_scaled_e" gsl_sf_bessel_Kn_scaled_e :: CInt -> Double -> Ptr () -> IO CInt
269
270bessel_Kn_scaled :: CInt -> Double -> Double
271bessel_Kn_scaled = gsl_sf_bessel_Kn_scaled
272foreign import ccall SAFE_CHEAP "gsl_sf_bessel_Kn_scaled" gsl_sf_bessel_Kn_scaled :: CInt -> Double -> Double
273
274bessel_Kn_scaled_array :: CInt -> CInt -> Double -> Ptr Double -> CInt
275bessel_Kn_scaled_array = gsl_sf_bessel_Kn_scaled_array
276foreign import ccall SAFE_CHEAP "gsl_sf_bessel_Kn_scaled_array" gsl_sf_bessel_Kn_scaled_array :: CInt -> CInt -> Double -> Ptr Double -> CInt
277
278bessel_j0_e :: Double -> (Double,Double)
279bessel_j0_e x = createSFR "bessel_j0_e" $ gsl_sf_bessel_j0_e x
280foreign import ccall SAFE_CHEAP "gsl_sf_bessel_j0_e" gsl_sf_bessel_j0_e :: Double -> Ptr () -> IO CInt
281
282bessel_j0 :: Double -> Double
283bessel_j0 = gsl_sf_bessel_j0
284foreign import ccall SAFE_CHEAP "gsl_sf_bessel_j0" gsl_sf_bessel_j0 :: Double -> Double
285
286bessel_j1_e :: Double -> (Double,Double)
287bessel_j1_e x = createSFR "bessel_j1_e" $ gsl_sf_bessel_j1_e x
288foreign import ccall SAFE_CHEAP "gsl_sf_bessel_j1_e" gsl_sf_bessel_j1_e :: Double -> Ptr () -> IO CInt
289
290bessel_j1 :: Double -> Double
291bessel_j1 = gsl_sf_bessel_j1
292foreign import ccall SAFE_CHEAP "gsl_sf_bessel_j1" gsl_sf_bessel_j1 :: Double -> Double
293
294bessel_j2_e :: Double -> (Double,Double)
295bessel_j2_e x = createSFR "bessel_j2_e" $ gsl_sf_bessel_j2_e x
296foreign import ccall SAFE_CHEAP "gsl_sf_bessel_j2_e" gsl_sf_bessel_j2_e :: Double -> Ptr () -> IO CInt
297
298bessel_j2 :: Double -> Double
299bessel_j2 = gsl_sf_bessel_j2
300foreign import ccall SAFE_CHEAP "gsl_sf_bessel_j2" gsl_sf_bessel_j2 :: Double -> Double
301
302bessel_jl_e :: CInt -> Double -> (Double,Double)
303bessel_jl_e l x = createSFR "bessel_jl_e" $ gsl_sf_bessel_jl_e l x
304foreign import ccall SAFE_CHEAP "gsl_sf_bessel_jl_e" gsl_sf_bessel_jl_e :: CInt -> Double -> Ptr () -> IO CInt
305
306bessel_jl :: CInt -> Double -> Double
307bessel_jl = gsl_sf_bessel_jl
308foreign import ccall SAFE_CHEAP "gsl_sf_bessel_jl" gsl_sf_bessel_jl :: CInt -> Double -> Double
309
310bessel_jl_array :: CInt -> Double -> Ptr Double -> CInt
311bessel_jl_array = gsl_sf_bessel_jl_array
312foreign import ccall SAFE_CHEAP "gsl_sf_bessel_jl_array" gsl_sf_bessel_jl_array :: CInt -> Double -> Ptr Double -> CInt
313
314bessel_jl_steed_array :: CInt -> Double -> Ptr Double -> CInt
315bessel_jl_steed_array = gsl_sf_bessel_jl_steed_array
316foreign import ccall SAFE_CHEAP "gsl_sf_bessel_jl_steed_array" gsl_sf_bessel_jl_steed_array :: CInt -> Double -> Ptr Double -> CInt
317
318bessel_y0_e :: Double -> (Double,Double)
319bessel_y0_e x = createSFR "bessel_y0_e" $ gsl_sf_bessel_y0_e x
320foreign import ccall SAFE_CHEAP "gsl_sf_bessel_y0_e" gsl_sf_bessel_y0_e :: Double -> Ptr () -> IO CInt
321
322bessel_y0 :: Double -> Double
323bessel_y0 = gsl_sf_bessel_y0
324foreign import ccall SAFE_CHEAP "gsl_sf_bessel_y0" gsl_sf_bessel_y0 :: Double -> Double
325
326bessel_y1_e :: Double -> (Double,Double)
327bessel_y1_e x = createSFR "bessel_y1_e" $ gsl_sf_bessel_y1_e x
328foreign import ccall SAFE_CHEAP "gsl_sf_bessel_y1_e" gsl_sf_bessel_y1_e :: Double -> Ptr () -> IO CInt
329
330bessel_y1 :: Double -> Double
331bessel_y1 = gsl_sf_bessel_y1
332foreign import ccall SAFE_CHEAP "gsl_sf_bessel_y1" gsl_sf_bessel_y1 :: Double -> Double
333
334bessel_y2_e :: Double -> (Double,Double)
335bessel_y2_e x = createSFR "bessel_y2_e" $ gsl_sf_bessel_y2_e x
336foreign import ccall SAFE_CHEAP "gsl_sf_bessel_y2_e" gsl_sf_bessel_y2_e :: Double -> Ptr () -> IO CInt
337
338bessel_y2 :: Double -> Double
339bessel_y2 = gsl_sf_bessel_y2
340foreign import ccall SAFE_CHEAP "gsl_sf_bessel_y2" gsl_sf_bessel_y2 :: Double -> Double
341
342bessel_yl_e :: CInt -> Double -> (Double,Double)
343bessel_yl_e l x = createSFR "bessel_yl_e" $ gsl_sf_bessel_yl_e l x
344foreign import ccall SAFE_CHEAP "gsl_sf_bessel_yl_e" gsl_sf_bessel_yl_e :: CInt -> Double -> Ptr () -> IO CInt
345
346bessel_yl :: CInt -> Double -> Double
347bessel_yl = gsl_sf_bessel_yl
348foreign import ccall SAFE_CHEAP "gsl_sf_bessel_yl" gsl_sf_bessel_yl :: CInt -> Double -> Double
349
350bessel_yl_array :: CInt -> Double -> Ptr Double -> CInt
351bessel_yl_array = gsl_sf_bessel_yl_array
352foreign import ccall SAFE_CHEAP "gsl_sf_bessel_yl_array" gsl_sf_bessel_yl_array :: CInt -> Double -> Ptr Double -> CInt
353
354bessel_i0_scaled_e :: Double -> (Double,Double)
355bessel_i0_scaled_e x = createSFR "bessel_i0_scaled_e" $ gsl_sf_bessel_i0_scaled_e x
356foreign import ccall SAFE_CHEAP "gsl_sf_bessel_i0_scaled_e" gsl_sf_bessel_i0_scaled_e :: Double -> Ptr () -> IO CInt
357
358bessel_i0_scaled :: Double -> Double
359bessel_i0_scaled = gsl_sf_bessel_i0_scaled
360foreign import ccall SAFE_CHEAP "gsl_sf_bessel_i0_scaled" gsl_sf_bessel_i0_scaled :: Double -> Double
361
362bessel_i1_scaled_e :: Double -> (Double,Double)
363bessel_i1_scaled_e x = createSFR "bessel_i1_scaled_e" $ gsl_sf_bessel_i1_scaled_e x
364foreign import ccall SAFE_CHEAP "gsl_sf_bessel_i1_scaled_e" gsl_sf_bessel_i1_scaled_e :: Double -> Ptr () -> IO CInt
365
366bessel_i1_scaled :: Double -> Double
367bessel_i1_scaled = gsl_sf_bessel_i1_scaled
368foreign import ccall SAFE_CHEAP "gsl_sf_bessel_i1_scaled" gsl_sf_bessel_i1_scaled :: Double -> Double
369
370bessel_i2_scaled_e :: Double -> (Double,Double)
371bessel_i2_scaled_e x = createSFR "bessel_i2_scaled_e" $ gsl_sf_bessel_i2_scaled_e x
372foreign import ccall SAFE_CHEAP "gsl_sf_bessel_i2_scaled_e" gsl_sf_bessel_i2_scaled_e :: Double -> Ptr () -> IO CInt
373
374bessel_i2_scaled :: Double -> Double
375bessel_i2_scaled = gsl_sf_bessel_i2_scaled
376foreign import ccall SAFE_CHEAP "gsl_sf_bessel_i2_scaled" gsl_sf_bessel_i2_scaled :: Double -> Double
377
378bessel_il_scaled_e :: CInt -> Double -> (Double,Double)
379bessel_il_scaled_e l x = createSFR "bessel_il_scaled_e" $ gsl_sf_bessel_il_scaled_e l x
380foreign import ccall SAFE_CHEAP "gsl_sf_bessel_il_scaled_e" gsl_sf_bessel_il_scaled_e :: CInt -> Double -> Ptr () -> IO CInt
381
382bessel_il_scaled :: CInt -> Double -> Double
383bessel_il_scaled = gsl_sf_bessel_il_scaled
384foreign import ccall SAFE_CHEAP "gsl_sf_bessel_il_scaled" gsl_sf_bessel_il_scaled :: CInt -> Double -> Double
385
386bessel_il_scaled_array :: CInt -> Double -> Ptr Double -> CInt
387bessel_il_scaled_array = gsl_sf_bessel_il_scaled_array
388foreign import ccall SAFE_CHEAP "gsl_sf_bessel_il_scaled_array" gsl_sf_bessel_il_scaled_array :: CInt -> Double -> Ptr Double -> CInt
389
390bessel_k0_scaled_e :: Double -> (Double,Double)
391bessel_k0_scaled_e x = createSFR "bessel_k0_scaled_e" $ gsl_sf_bessel_k0_scaled_e x
392foreign import ccall SAFE_CHEAP "gsl_sf_bessel_k0_scaled_e" gsl_sf_bessel_k0_scaled_e :: Double -> Ptr () -> IO CInt
393
394bessel_k0_scaled :: Double -> Double
395bessel_k0_scaled = gsl_sf_bessel_k0_scaled
396foreign import ccall SAFE_CHEAP "gsl_sf_bessel_k0_scaled" gsl_sf_bessel_k0_scaled :: Double -> Double
397
398bessel_k1_scaled_e :: Double -> (Double,Double)
399bessel_k1_scaled_e x = createSFR "bessel_k1_scaled_e" $ gsl_sf_bessel_k1_scaled_e x
400foreign import ccall SAFE_CHEAP "gsl_sf_bessel_k1_scaled_e" gsl_sf_bessel_k1_scaled_e :: Double -> Ptr () -> IO CInt
401
402bessel_k1_scaled :: Double -> Double
403bessel_k1_scaled = gsl_sf_bessel_k1_scaled
404foreign import ccall SAFE_CHEAP "gsl_sf_bessel_k1_scaled" gsl_sf_bessel_k1_scaled :: Double -> Double
405
406bessel_k2_scaled_e :: Double -> (Double,Double)
407bessel_k2_scaled_e x = createSFR "bessel_k2_scaled_e" $ gsl_sf_bessel_k2_scaled_e x
408foreign import ccall SAFE_CHEAP "gsl_sf_bessel_k2_scaled_e" gsl_sf_bessel_k2_scaled_e :: Double -> Ptr () -> IO CInt
409
410bessel_k2_scaled :: Double -> Double
411bessel_k2_scaled = gsl_sf_bessel_k2_scaled
412foreign import ccall SAFE_CHEAP "gsl_sf_bessel_k2_scaled" gsl_sf_bessel_k2_scaled :: Double -> Double
413
414bessel_kl_scaled_e :: CInt -> Double -> (Double,Double)
415bessel_kl_scaled_e l x = createSFR "bessel_kl_scaled_e" $ gsl_sf_bessel_kl_scaled_e l x
416foreign import ccall SAFE_CHEAP "gsl_sf_bessel_kl_scaled_e" gsl_sf_bessel_kl_scaled_e :: CInt -> Double -> Ptr () -> IO CInt
417
418bessel_kl_scaled :: CInt -> Double -> Double
419bessel_kl_scaled = gsl_sf_bessel_kl_scaled
420foreign import ccall SAFE_CHEAP "gsl_sf_bessel_kl_scaled" gsl_sf_bessel_kl_scaled :: CInt -> Double -> Double
421
422bessel_kl_scaled_array :: CInt -> Double -> Ptr Double -> CInt
423bessel_kl_scaled_array = gsl_sf_bessel_kl_scaled_array
424foreign import ccall SAFE_CHEAP "gsl_sf_bessel_kl_scaled_array" gsl_sf_bessel_kl_scaled_array :: CInt -> Double -> Ptr Double -> CInt
425
426bessel_Jnu_e :: Double -> Double -> (Double,Double)
427bessel_Jnu_e nu x = createSFR "bessel_Jnu_e" $ gsl_sf_bessel_Jnu_e nu x
428foreign import ccall SAFE_CHEAP "gsl_sf_bessel_Jnu_e" gsl_sf_bessel_Jnu_e :: Double -> Double -> Ptr () -> IO CInt
429
430bessel_Jnu :: Double -> Double -> Double
431bessel_Jnu = gsl_sf_bessel_Jnu
432foreign import ccall SAFE_CHEAP "gsl_sf_bessel_Jnu" gsl_sf_bessel_Jnu :: Double -> Double -> Double
433
434bessel_Ynu_e :: Double -> Double -> (Double,Double)
435bessel_Ynu_e nu x = createSFR "bessel_Ynu_e" $ gsl_sf_bessel_Ynu_e nu x
436foreign import ccall SAFE_CHEAP "gsl_sf_bessel_Ynu_e" gsl_sf_bessel_Ynu_e :: Double -> Double -> Ptr () -> IO CInt
437
438bessel_Ynu :: Double -> Double -> Double
439bessel_Ynu = gsl_sf_bessel_Ynu
440foreign import ccall SAFE_CHEAP "gsl_sf_bessel_Ynu" gsl_sf_bessel_Ynu :: Double -> Double -> Double
441
442bessel_sequence_Jnu_e :: Double -> Precision -> Size_t -> Ptr Double -> CInt
443bessel_sequence_Jnu_e nu mode size v = gsl_sf_bessel_sequence_Jnu_e nu (precCode mode) size v
444foreign import ccall SAFE_CHEAP "gsl_sf_bessel_sequence_Jnu_e" gsl_sf_bessel_sequence_Jnu_e :: Double -> Gsl_mode_t -> Size_t -> Ptr Double -> CInt
445
446bessel_Inu_scaled_e :: Double -> Double -> (Double,Double)
447bessel_Inu_scaled_e nu x = createSFR "bessel_Inu_scaled_e" $ gsl_sf_bessel_Inu_scaled_e nu x
448foreign import ccall SAFE_CHEAP "gsl_sf_bessel_Inu_scaled_e" gsl_sf_bessel_Inu_scaled_e :: Double -> Double -> Ptr () -> IO CInt
449
450bessel_Inu_scaled :: Double -> Double -> Double
451bessel_Inu_scaled = gsl_sf_bessel_Inu_scaled
452foreign import ccall SAFE_CHEAP "gsl_sf_bessel_Inu_scaled" gsl_sf_bessel_Inu_scaled :: Double -> Double -> Double
453
454bessel_Inu_e :: Double -> Double -> (Double,Double)
455bessel_Inu_e nu x = createSFR "bessel_Inu_e" $ gsl_sf_bessel_Inu_e nu x
456foreign import ccall SAFE_CHEAP "gsl_sf_bessel_Inu_e" gsl_sf_bessel_Inu_e :: Double -> Double -> Ptr () -> IO CInt
457
458bessel_Inu :: Double -> Double -> Double
459bessel_Inu = gsl_sf_bessel_Inu
460foreign import ccall SAFE_CHEAP "gsl_sf_bessel_Inu" gsl_sf_bessel_Inu :: Double -> Double -> Double
461
462bessel_Knu_scaled_e :: Double -> Double -> (Double,Double)
463bessel_Knu_scaled_e nu x = createSFR "bessel_Knu_scaled_e" $ gsl_sf_bessel_Knu_scaled_e nu x
464foreign import ccall SAFE_CHEAP "gsl_sf_bessel_Knu_scaled_e" gsl_sf_bessel_Knu_scaled_e :: Double -> Double -> Ptr () -> IO CInt
465
466bessel_Knu_scaled :: Double -> Double -> Double
467bessel_Knu_scaled = gsl_sf_bessel_Knu_scaled
468foreign import ccall SAFE_CHEAP "gsl_sf_bessel_Knu_scaled" gsl_sf_bessel_Knu_scaled :: Double -> Double -> Double
469
470bessel_Knu_e :: Double -> Double -> (Double,Double)
471bessel_Knu_e nu x = createSFR "bessel_Knu_e" $ gsl_sf_bessel_Knu_e nu x
472foreign import ccall SAFE_CHEAP "gsl_sf_bessel_Knu_e" gsl_sf_bessel_Knu_e :: Double -> Double -> Ptr () -> IO CInt
473
474bessel_Knu :: Double -> Double -> Double
475bessel_Knu = gsl_sf_bessel_Knu
476foreign import ccall SAFE_CHEAP "gsl_sf_bessel_Knu" gsl_sf_bessel_Knu :: Double -> Double -> Double
477
478bessel_lnKnu_e :: Double -> Double -> (Double,Double)
479bessel_lnKnu_e nu x = createSFR "bessel_lnKnu_e" $ gsl_sf_bessel_lnKnu_e nu x
480foreign import ccall SAFE_CHEAP "gsl_sf_bessel_lnKnu_e" gsl_sf_bessel_lnKnu_e :: Double -> Double -> Ptr () -> IO CInt
481
482bessel_lnKnu :: Double -> Double -> Double
483bessel_lnKnu = gsl_sf_bessel_lnKnu
484foreign import ccall SAFE_CHEAP "gsl_sf_bessel_lnKnu" gsl_sf_bessel_lnKnu :: Double -> Double -> Double
485
486bessel_zero_J0_e :: CInt -> (Double,Double)
487bessel_zero_J0_e s = createSFR "bessel_zero_J0_e" $ gsl_sf_bessel_zero_J0_e s
488foreign import ccall SAFE_CHEAP "gsl_sf_bessel_zero_J0_e" gsl_sf_bessel_zero_J0_e :: CInt -> Ptr () -> IO CInt
489
490bessel_zero_J0 :: CInt -> Double
491bessel_zero_J0 = gsl_sf_bessel_zero_J0
492foreign import ccall SAFE_CHEAP "gsl_sf_bessel_zero_J0" gsl_sf_bessel_zero_J0 :: CInt -> Double
493
494bessel_zero_J1_e :: CInt -> (Double,Double)
495bessel_zero_J1_e s = createSFR "bessel_zero_J1_e" $ gsl_sf_bessel_zero_J1_e s
496foreign import ccall SAFE_CHEAP "gsl_sf_bessel_zero_J1_e" gsl_sf_bessel_zero_J1_e :: CInt -> Ptr () -> IO CInt
497
498bessel_zero_J1 :: CInt -> Double
499bessel_zero_J1 = gsl_sf_bessel_zero_J1
500foreign import ccall SAFE_CHEAP "gsl_sf_bessel_zero_J1" gsl_sf_bessel_zero_J1 :: CInt -> Double
501
502bessel_zero_Jnu_e :: Double -> CInt -> (Double,Double)
503bessel_zero_Jnu_e nu s = createSFR "bessel_zero_Jnu_e" $ gsl_sf_bessel_zero_Jnu_e nu s
504foreign import ccall SAFE_CHEAP "gsl_sf_bessel_zero_Jnu_e" gsl_sf_bessel_zero_Jnu_e :: Double -> CInt -> Ptr () -> IO CInt
505
506bessel_zero_Jnu :: Double -> CInt -> Double
507bessel_zero_Jnu = gsl_sf_bessel_zero_Jnu
508foreign import ccall SAFE_CHEAP "gsl_sf_bessel_zero_Jnu" gsl_sf_bessel_zero_Jnu :: Double -> CInt -> Double
diff --git a/packages/special/lib/Numeric/GSL/Special/Clausen.hs b/packages/special/lib/Numeric/GSL/Special/Clausen.hs
new file mode 100644
index 0000000..70f05a7
--- /dev/null
+++ b/packages/special/lib/Numeric/GSL/Special/Clausen.hs
@@ -0,0 +1,30 @@
1------------------------------------------------------------
2-- |
3-- Module : Numeric.GSL.Special.Clausen
4-- Copyright : (c) Alberto Ruiz 2006
5-- License : GPL
6-- Maintainer : Alberto Ruiz (aruiz at um dot es)
7-- Stability : provisional
8-- Portability : uses ffi
9--
10-- Wrappers for selected functions described at:
11--
12-- <http://www.google.com/search?q=gsl_sf_clausen.h&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky>
13------------------------------------------------------------
14
15module Numeric.GSL.Special.Clausen(
16 clausen_e
17, clausen
18) where
19
20import Foreign(Ptr)
21import Foreign.C.Types(CInt)
22import Numeric.GSL.Special.Internal
23
24clausen_e :: Double -> (Double,Double)
25clausen_e x = createSFR "clausen_e" $ gsl_sf_clausen_e x
26foreign import ccall SAFE_CHEAP "gsl_sf_clausen_e" gsl_sf_clausen_e :: Double -> Ptr () -> IO CInt
27
28clausen :: Double -> Double
29clausen = gsl_sf_clausen
30foreign import ccall SAFE_CHEAP "gsl_sf_clausen" gsl_sf_clausen :: Double -> Double
diff --git a/packages/special/lib/Numeric/GSL/Special/Coulomb.hs b/packages/special/lib/Numeric/GSL/Special/Coulomb.hs
new file mode 100644
index 0000000..7253972
--- /dev/null
+++ b/packages/special/lib/Numeric/GSL/Special/Coulomb.hs
@@ -0,0 +1,69 @@
1------------------------------------------------------------
2-- |
3-- Module : Numeric.GSL.Special.Coulomb
4-- Copyright : (c) Alberto Ruiz 2006
5-- License : GPL
6-- Maintainer : Alberto Ruiz (aruiz at um dot es)
7-- Stability : provisional
8-- Portability : uses ffi
9--
10-- Wrappers for selected functions described at:
11--
12-- <http://www.google.com/search?q=gsl_sf_coulomb.h&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky>
13------------------------------------------------------------
14
15module Numeric.GSL.Special.Coulomb(
16 hydrogenicR_1_e
17, hydrogenicR_1
18, hydrogenicR_e
19, hydrogenicR
20, coulomb_CL_e
21) where
22
23import Foreign(Ptr)
24import Foreign.C.Types(CInt)
25import Numeric.GSL.Special.Internal
26
27hydrogenicR_1_e :: Double -> Double -> (Double,Double)
28hydrogenicR_1_e zZ r = createSFR "hydrogenicR_1_e" $ gsl_sf_hydrogenicR_1_e zZ r
29foreign import ccall SAFE_CHEAP "gsl_sf_hydrogenicR_1_e" gsl_sf_hydrogenicR_1_e :: Double -> Double -> Ptr () -> IO CInt
30
31hydrogenicR_1 :: Double -> Double -> Double
32hydrogenicR_1 = gsl_sf_hydrogenicR_1
33foreign import ccall SAFE_CHEAP "gsl_sf_hydrogenicR_1" gsl_sf_hydrogenicR_1 :: Double -> Double -> Double
34
35hydrogenicR_e :: CInt -> CInt -> Double -> Double -> (Double,Double)
36hydrogenicR_e n l zZ r = createSFR "hydrogenicR_e" $ gsl_sf_hydrogenicR_e n l zZ r
37foreign import ccall SAFE_CHEAP "gsl_sf_hydrogenicR_e" gsl_sf_hydrogenicR_e :: CInt -> CInt -> Double -> Double -> Ptr () -> IO CInt
38
39hydrogenicR :: CInt -> CInt -> Double -> Double -> Double
40hydrogenicR = gsl_sf_hydrogenicR
41foreign import ccall SAFE_CHEAP "gsl_sf_hydrogenicR" gsl_sf_hydrogenicR :: CInt -> CInt -> Double -> Double -> Double
42
43coulomb_wave_FG_e :: Double -> Double -> Double -> CInt -> Ptr () -> Ptr () -> Ptr () -> Ptr () -> Ptr Double -> Ptr Double -> CInt
44coulomb_wave_FG_e = gsl_sf_coulomb_wave_FG_e
45foreign import ccall SAFE_CHEAP "gsl_sf_coulomb_wave_FG_e" gsl_sf_coulomb_wave_FG_e :: Double -> Double -> Double -> CInt -> Ptr () -> Ptr () -> Ptr () -> Ptr () -> Ptr Double -> Ptr Double -> CInt
46
47coulomb_wave_F_array :: Double -> CInt -> Double -> Double -> Ptr Double -> Ptr Double -> CInt
48coulomb_wave_F_array = gsl_sf_coulomb_wave_F_array
49foreign import ccall SAFE_CHEAP "gsl_sf_coulomb_wave_F_array" gsl_sf_coulomb_wave_F_array :: Double -> CInt -> Double -> Double -> Ptr Double -> Ptr Double -> CInt
50
51coulomb_wave_FG_array :: Double -> CInt -> Double -> Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> CInt
52coulomb_wave_FG_array = gsl_sf_coulomb_wave_FG_array
53foreign import ccall SAFE_CHEAP "gsl_sf_coulomb_wave_FG_array" gsl_sf_coulomb_wave_FG_array :: Double -> CInt -> Double -> Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> CInt
54
55coulomb_wave_FGp_array :: Double -> CInt -> Double -> Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> CInt
56coulomb_wave_FGp_array = gsl_sf_coulomb_wave_FGp_array
57foreign import ccall SAFE_CHEAP "gsl_sf_coulomb_wave_FGp_array" gsl_sf_coulomb_wave_FGp_array :: Double -> CInt -> Double -> Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> CInt
58
59coulomb_wave_sphF_array :: Double -> CInt -> Double -> Double -> Ptr Double -> Ptr Double -> CInt
60coulomb_wave_sphF_array = gsl_sf_coulomb_wave_sphF_array
61foreign import ccall SAFE_CHEAP "gsl_sf_coulomb_wave_sphF_array" gsl_sf_coulomb_wave_sphF_array :: Double -> CInt -> Double -> Double -> Ptr Double -> Ptr Double -> CInt
62
63coulomb_CL_e :: Double -> Double -> (Double,Double)
64coulomb_CL_e lL eta = createSFR "coulomb_CL_e" $ gsl_sf_coulomb_CL_e lL eta
65foreign import ccall SAFE_CHEAP "gsl_sf_coulomb_CL_e" gsl_sf_coulomb_CL_e :: Double -> Double -> Ptr () -> IO CInt
66
67coulomb_CL_array :: Double -> CInt -> Double -> Ptr Double -> CInt
68coulomb_CL_array = gsl_sf_coulomb_CL_array
69foreign import ccall SAFE_CHEAP "gsl_sf_coulomb_CL_array" gsl_sf_coulomb_CL_array :: Double -> CInt -> Double -> Ptr Double -> CInt
diff --git a/packages/special/lib/Numeric/GSL/Special/Coupling.hs b/packages/special/lib/Numeric/GSL/Special/Coupling.hs
new file mode 100644
index 0000000..16ff9b9
--- /dev/null
+++ b/packages/special/lib/Numeric/GSL/Special/Coupling.hs
@@ -0,0 +1,68 @@
1------------------------------------------------------------
2-- |
3-- Module : Numeric.GSL.Special.Coupling
4-- Copyright : (c) Alberto Ruiz 2006
5-- License : GPL
6-- Maintainer : Alberto Ruiz (aruiz at um dot es)
7-- Stability : provisional
8-- Portability : uses ffi
9--
10-- Wrappers for selected functions described at:
11--
12-- <http://www.google.com/search?q=gsl_sf_coupling.h&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky>
13------------------------------------------------------------
14
15module Numeric.GSL.Special.Coupling(
16 coupling_3j_e
17, coupling_3j
18, coupling_6j_e
19, coupling_6j
20, coupling_RacahW_e
21, coupling_RacahW
22, coupling_9j_e
23, coupling_9j
24) where
25
26import Foreign(Ptr)
27import Foreign.C.Types(CInt)
28import Numeric.GSL.Special.Internal
29
30coupling_3j_e :: CInt -> CInt -> CInt -> CInt -> CInt -> CInt -> (Double,Double)
31coupling_3j_e two_ja two_jb two_jc two_ma two_mb two_mc = createSFR "coupling_3j_e" $ gsl_sf_coupling_3j_e two_ja two_jb two_jc two_ma two_mb two_mc
32foreign import ccall SAFE_CHEAP "gsl_sf_coupling_3j_e" gsl_sf_coupling_3j_e :: CInt -> CInt -> CInt -> CInt -> CInt -> CInt -> Ptr () -> IO CInt
33
34coupling_3j :: CInt -> CInt -> CInt -> CInt -> CInt -> CInt -> Double
35coupling_3j = gsl_sf_coupling_3j
36foreign import ccall SAFE_CHEAP "gsl_sf_coupling_3j" gsl_sf_coupling_3j :: CInt -> CInt -> CInt -> CInt -> CInt -> CInt -> Double
37
38coupling_6j_e :: CInt -> CInt -> CInt -> CInt -> CInt -> CInt -> (Double,Double)
39coupling_6j_e two_ja two_jb two_jc two_jd two_je two_jf = createSFR "coupling_6j_e" $ gsl_sf_coupling_6j_e two_ja two_jb two_jc two_jd two_je two_jf
40foreign import ccall SAFE_CHEAP "gsl_sf_coupling_6j_e" gsl_sf_coupling_6j_e :: CInt -> CInt -> CInt -> CInt -> CInt -> CInt -> Ptr () -> IO CInt
41
42coupling_6j :: CInt -> CInt -> CInt -> CInt -> CInt -> CInt -> Double
43coupling_6j = gsl_sf_coupling_6j
44foreign import ccall SAFE_CHEAP "gsl_sf_coupling_6j" gsl_sf_coupling_6j :: CInt -> CInt -> CInt -> CInt -> CInt -> CInt -> Double
45
46coupling_RacahW_e :: CInt -> CInt -> CInt -> CInt -> CInt -> CInt -> (Double,Double)
47coupling_RacahW_e two_ja two_jb two_jc two_jd two_je two_jf = createSFR "coupling_RacahW_e" $ gsl_sf_coupling_RacahW_e two_ja two_jb two_jc two_jd two_je two_jf
48foreign import ccall SAFE_CHEAP "gsl_sf_coupling_RacahW_e" gsl_sf_coupling_RacahW_e :: CInt -> CInt -> CInt -> CInt -> CInt -> CInt -> Ptr () -> IO CInt
49
50coupling_RacahW :: CInt -> CInt -> CInt -> CInt -> CInt -> CInt -> Double
51coupling_RacahW = gsl_sf_coupling_RacahW
52foreign import ccall SAFE_CHEAP "gsl_sf_coupling_RacahW" gsl_sf_coupling_RacahW :: CInt -> CInt -> CInt -> CInt -> CInt -> CInt -> Double
53
54coupling_9j_e :: CInt -> CInt -> CInt -> CInt -> CInt -> CInt -> CInt -> CInt -> CInt -> (Double,Double)
55coupling_9j_e two_ja two_jb two_jc two_jd two_je two_jf two_jg two_jh two_ji = createSFR "coupling_9j_e" $ gsl_sf_coupling_9j_e two_ja two_jb two_jc two_jd two_je two_jf two_jg two_jh two_ji
56foreign import ccall SAFE_CHEAP "gsl_sf_coupling_9j_e" gsl_sf_coupling_9j_e :: CInt -> CInt -> CInt -> CInt -> CInt -> CInt -> CInt -> CInt -> CInt -> Ptr () -> IO CInt
57
58coupling_9j :: CInt -> CInt -> CInt -> CInt -> CInt -> CInt -> CInt -> CInt -> CInt -> Double
59coupling_9j = gsl_sf_coupling_9j
60foreign import ccall SAFE_CHEAP "gsl_sf_coupling_9j" gsl_sf_coupling_9j :: CInt -> CInt -> CInt -> CInt -> CInt -> CInt -> CInt -> CInt -> CInt -> Double
61
62coupling_6j_INCORRECT_e :: CInt -> CInt -> CInt -> CInt -> CInt -> CInt -> (Double,Double)
63coupling_6j_INCORRECT_e two_ja two_jb two_jc two_jd two_je two_jf = createSFR "coupling_6j_INCORRECT_e" $ gsl_sf_coupling_6j_INCORRECT_e two_ja two_jb two_jc two_jd two_je two_jf
64foreign import ccall SAFE_CHEAP "gsl_sf_coupling_6j_INCORRECT_e" gsl_sf_coupling_6j_INCORRECT_e :: CInt -> CInt -> CInt -> CInt -> CInt -> CInt -> Ptr () -> IO CInt
65
66coupling_6j_INCORRECT :: CInt -> CInt -> CInt -> CInt -> CInt -> CInt -> Double
67coupling_6j_INCORRECT = gsl_sf_coupling_6j_INCORRECT
68foreign import ccall SAFE_CHEAP "gsl_sf_coupling_6j_INCORRECT" gsl_sf_coupling_6j_INCORRECT :: CInt -> CInt -> CInt -> CInt -> CInt -> CInt -> Double
diff --git a/packages/special/lib/Numeric/GSL/Special/Dawson.hs b/packages/special/lib/Numeric/GSL/Special/Dawson.hs
new file mode 100644
index 0000000..7e8d9ce
--- /dev/null
+++ b/packages/special/lib/Numeric/GSL/Special/Dawson.hs
@@ -0,0 +1,30 @@
1------------------------------------------------------------
2-- |
3-- Module : Numeric.GSL.Special.Dawson
4-- Copyright : (c) Alberto Ruiz 2006
5-- License : GPL
6-- Maintainer : Alberto Ruiz (aruiz at um dot es)
7-- Stability : provisional
8-- Portability : uses ffi
9--
10-- Wrappers for selected functions described at:
11--
12-- <http://www.google.com/search?q=gsl_sf_dawson.h&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky>
13------------------------------------------------------------
14
15module Numeric.GSL.Special.Dawson(
16 dawson_e
17, dawson
18) where
19
20import Foreign(Ptr)
21import Foreign.C.Types(CInt)
22import Numeric.GSL.Special.Internal
23
24dawson_e :: Double -> (Double,Double)
25dawson_e x = createSFR "dawson_e" $ gsl_sf_dawson_e x
26foreign import ccall SAFE_CHEAP "gsl_sf_dawson_e" gsl_sf_dawson_e :: Double -> Ptr () -> IO CInt
27
28dawson :: Double -> Double
29dawson = gsl_sf_dawson
30foreign import ccall SAFE_CHEAP "gsl_sf_dawson" gsl_sf_dawson :: Double -> Double
diff --git a/packages/special/lib/Numeric/GSL/Special/Debye.hs b/packages/special/lib/Numeric/GSL/Special/Debye.hs
new file mode 100644
index 0000000..01976ee
--- /dev/null
+++ b/packages/special/lib/Numeric/GSL/Special/Debye.hs
@@ -0,0 +1,80 @@
1------------------------------------------------------------
2-- |
3-- Module : Numeric.GSL.Special.Debye
4-- Copyright : (c) Alberto Ruiz 2006
5-- License : GPL
6-- Maintainer : Alberto Ruiz (aruiz at um dot es)
7-- Stability : provisional
8-- Portability : uses ffi
9--
10-- Wrappers for selected functions described at:
11--
12-- <http://www.google.com/search?q=gsl_sf_debye.h&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky>
13------------------------------------------------------------
14
15module Numeric.GSL.Special.Debye(
16 debye_1_e
17, debye_1
18, debye_2_e
19, debye_2
20, debye_3_e
21, debye_3
22, debye_4_e
23, debye_4
24, debye_5_e
25, debye_5
26, debye_6_e
27, debye_6
28) where
29
30import Foreign(Ptr)
31import Foreign.C.Types(CInt)
32import Numeric.GSL.Special.Internal
33
34debye_1_e :: Double -> (Double,Double)
35debye_1_e x = createSFR "debye_1_e" $ gsl_sf_debye_1_e x
36foreign import ccall SAFE_CHEAP "gsl_sf_debye_1_e" gsl_sf_debye_1_e :: Double -> Ptr () -> IO CInt
37
38debye_1 :: Double -> Double
39debye_1 = gsl_sf_debye_1
40foreign import ccall SAFE_CHEAP "gsl_sf_debye_1" gsl_sf_debye_1 :: Double -> Double
41
42debye_2_e :: Double -> (Double,Double)
43debye_2_e x = createSFR "debye_2_e" $ gsl_sf_debye_2_e x
44foreign import ccall SAFE_CHEAP "gsl_sf_debye_2_e" gsl_sf_debye_2_e :: Double -> Ptr () -> IO CInt
45
46debye_2 :: Double -> Double
47debye_2 = gsl_sf_debye_2
48foreign import ccall SAFE_CHEAP "gsl_sf_debye_2" gsl_sf_debye_2 :: Double -> Double
49
50debye_3_e :: Double -> (Double,Double)
51debye_3_e x = createSFR "debye_3_e" $ gsl_sf_debye_3_e x
52foreign import ccall SAFE_CHEAP "gsl_sf_debye_3_e" gsl_sf_debye_3_e :: Double -> Ptr () -> IO CInt
53
54debye_3 :: Double -> Double
55debye_3 = gsl_sf_debye_3
56foreign import ccall SAFE_CHEAP "gsl_sf_debye_3" gsl_sf_debye_3 :: Double -> Double
57
58debye_4_e :: Double -> (Double,Double)
59debye_4_e x = createSFR "debye_4_e" $ gsl_sf_debye_4_e x
60foreign import ccall SAFE_CHEAP "gsl_sf_debye_4_e" gsl_sf_debye_4_e :: Double -> Ptr () -> IO CInt
61
62debye_4 :: Double -> Double
63debye_4 = gsl_sf_debye_4
64foreign import ccall SAFE_CHEAP "gsl_sf_debye_4" gsl_sf_debye_4 :: Double -> Double
65
66debye_5_e :: Double -> (Double,Double)
67debye_5_e x = createSFR "debye_5_e" $ gsl_sf_debye_5_e x
68foreign import ccall SAFE_CHEAP "gsl_sf_debye_5_e" gsl_sf_debye_5_e :: Double -> Ptr () -> IO CInt
69
70debye_5 :: Double -> Double
71debye_5 = gsl_sf_debye_5
72foreign import ccall SAFE_CHEAP "gsl_sf_debye_5" gsl_sf_debye_5 :: Double -> Double
73
74debye_6_e :: Double -> (Double,Double)
75debye_6_e x = createSFR "debye_6_e" $ gsl_sf_debye_6_e x
76foreign import ccall SAFE_CHEAP "gsl_sf_debye_6_e" gsl_sf_debye_6_e :: Double -> Ptr () -> IO CInt
77
78debye_6 :: Double -> Double
79debye_6 = gsl_sf_debye_6
80foreign import ccall SAFE_CHEAP "gsl_sf_debye_6" gsl_sf_debye_6 :: Double -> Double
diff --git a/packages/special/lib/Numeric/GSL/Special/Dilog.hs b/packages/special/lib/Numeric/GSL/Special/Dilog.hs
new file mode 100644
index 0000000..48b548b
--- /dev/null
+++ b/packages/special/lib/Numeric/GSL/Special/Dilog.hs
@@ -0,0 +1,42 @@
1------------------------------------------------------------
2-- |
3-- Module : Numeric.GSL.Special.Dilog
4-- Copyright : (c) Alberto Ruiz 2006
5-- License : GPL
6-- Maintainer : Alberto Ruiz (aruiz at um dot es)
7-- Stability : provisional
8-- Portability : uses ffi
9--
10-- Wrappers for selected functions described at:
11--
12-- <http://www.google.com/search?q=gsl_sf_dilog.h&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky>
13------------------------------------------------------------
14
15module Numeric.GSL.Special.Dilog(
16 dilog_e
17, dilog
18) where
19
20import Foreign(Ptr)
21import Foreign.C.Types(CInt)
22import Numeric.GSL.Special.Internal
23
24dilog_e :: Double -> (Double,Double)
25dilog_e x = createSFR "dilog_e" $ gsl_sf_dilog_e x
26foreign import ccall SAFE_CHEAP "gsl_sf_dilog_e" gsl_sf_dilog_e :: Double -> Ptr () -> IO CInt
27
28dilog :: Double -> Double
29dilog = gsl_sf_dilog
30foreign import ccall SAFE_CHEAP "gsl_sf_dilog" gsl_sf_dilog :: Double -> Double
31
32complex_dilog_xy_e :: Double -> Double -> Ptr () -> (Double,Double)
33complex_dilog_xy_e x y result_re = createSFR "complex_dilog_xy_e" $ gsl_sf_complex_dilog_xy_e x y result_re
34foreign import ccall SAFE_CHEAP "gsl_sf_complex_dilog_xy_e" gsl_sf_complex_dilog_xy_e :: Double -> Double -> Ptr () -> Ptr () -> IO CInt
35
36complex_dilog_e :: Double -> Double -> Ptr () -> (Double,Double)
37complex_dilog_e r theta result_re = createSFR "complex_dilog_e" $ gsl_sf_complex_dilog_e r theta result_re
38foreign import ccall SAFE_CHEAP "gsl_sf_complex_dilog_e" gsl_sf_complex_dilog_e :: Double -> Double -> Ptr () -> Ptr () -> IO CInt
39
40complex_spence_xy_e :: Double -> Double -> Ptr () -> (Double,Double)
41complex_spence_xy_e x y real_sp = createSFR "complex_spence_xy_e" $ gsl_sf_complex_spence_xy_e x y real_sp
42foreign import ccall SAFE_CHEAP "gsl_sf_complex_spence_xy_e" gsl_sf_complex_spence_xy_e :: Double -> Double -> Ptr () -> Ptr () -> IO CInt
diff --git a/packages/special/lib/Numeric/GSL/Special/Elementary.hs b/packages/special/lib/Numeric/GSL/Special/Elementary.hs
new file mode 100644
index 0000000..7e7f8b6
--- /dev/null
+++ b/packages/special/lib/Numeric/GSL/Special/Elementary.hs
@@ -0,0 +1,35 @@
1------------------------------------------------------------
2-- |
3-- Module : Numeric.GSL.Special.Elementary
4-- Copyright : (c) Alberto Ruiz 2006
5-- License : GPL
6-- Maintainer : Alberto Ruiz (aruiz at um dot es)
7-- Stability : provisional
8-- Portability : uses ffi
9--
10-- Wrappers for selected functions described at:
11--
12-- <http://www.google.com/search?q=gsl_sf_elementary.h&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky>
13------------------------------------------------------------
14
15module Numeric.GSL.Special.Elementary(
16 multiply_e
17, multiply
18, multiply_err_e
19) where
20
21import Foreign(Ptr)
22import Foreign.C.Types(CInt)
23import Numeric.GSL.Special.Internal
24
25multiply_e :: Double -> Double -> (Double,Double)
26multiply_e x y = createSFR "multiply_e" $ gsl_sf_multiply_e x y
27foreign import ccall SAFE_CHEAP "gsl_sf_multiply_e" gsl_sf_multiply_e :: Double -> Double -> Ptr () -> IO CInt
28
29multiply :: Double -> Double -> Double
30multiply = gsl_sf_multiply
31foreign import ccall SAFE_CHEAP "gsl_sf_multiply" gsl_sf_multiply :: Double -> Double -> Double
32
33multiply_err_e :: Double -> Double -> Double -> Double -> (Double,Double)
34multiply_err_e x dx y dy = createSFR "multiply_err_e" $ gsl_sf_multiply_err_e x dx y dy
35foreign import ccall SAFE_CHEAP "gsl_sf_multiply_err_e" gsl_sf_multiply_err_e :: Double -> Double -> Double -> Double -> Ptr () -> IO CInt
diff --git a/packages/special/lib/Numeric/GSL/Special/Ellint.hs b/packages/special/lib/Numeric/GSL/Special/Ellint.hs
new file mode 100644
index 0000000..6735057
--- /dev/null
+++ b/packages/special/lib/Numeric/GSL/Special/Ellint.hs
@@ -0,0 +1,140 @@
1------------------------------------------------------------
2-- |
3-- Module : Numeric.GSL.Special.Ellint
4-- Copyright : (c) Alberto Ruiz 2006
5-- License : GPL
6-- Maintainer : Alberto Ruiz (aruiz at um dot es)
7-- Stability : provisional
8-- Portability : uses ffi
9--
10-- Wrappers for selected functions described at:
11--
12-- <http://www.google.com/search?q=gsl_sf_ellint.h&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky>
13------------------------------------------------------------
14
15module Numeric.GSL.Special.Ellint(
16 ellint_Kcomp_e
17, ellint_Kcomp
18, ellint_Ecomp_e
19, ellint_Ecomp
20, ellint_Pcomp_e
21, ellint_Pcomp
22, ellint_Dcomp_e
23, ellint_Dcomp
24, ellint_F_e
25, ellint_F
26, ellint_E_e
27, ellint_E
28, ellint_P_e
29, ellint_P
30, ellint_D_e
31, ellint_D
32, ellint_RC_e
33, ellint_RC
34, ellint_RD_e
35, ellint_RD
36, ellint_RF_e
37, ellint_RF
38, ellint_RJ_e
39, ellint_RJ
40) where
41
42import Foreign(Ptr)
43import Foreign.C.Types(CInt)
44import Numeric.GSL.Special.Internal
45
46ellint_Kcomp_e :: Double -> Precision -> (Double,Double)
47ellint_Kcomp_e k mode = createSFR "ellint_Kcomp_e" $ gsl_sf_ellint_Kcomp_e k (precCode mode)
48foreign import ccall SAFE_CHEAP "gsl_sf_ellint_Kcomp_e" gsl_sf_ellint_Kcomp_e :: Double -> Gsl_mode_t -> Ptr () -> IO CInt
49
50ellint_Kcomp :: Double -> Precision -> Double
51ellint_Kcomp k mode = gsl_sf_ellint_Kcomp k (precCode mode)
52foreign import ccall SAFE_CHEAP "gsl_sf_ellint_Kcomp" gsl_sf_ellint_Kcomp :: Double -> Gsl_mode_t -> Double
53
54ellint_Ecomp_e :: Double -> Precision -> (Double,Double)
55ellint_Ecomp_e k mode = createSFR "ellint_Ecomp_e" $ gsl_sf_ellint_Ecomp_e k (precCode mode)
56foreign import ccall SAFE_CHEAP "gsl_sf_ellint_Ecomp_e" gsl_sf_ellint_Ecomp_e :: Double -> Gsl_mode_t -> Ptr () -> IO CInt
57
58ellint_Ecomp :: Double -> Precision -> Double
59ellint_Ecomp k mode = gsl_sf_ellint_Ecomp k (precCode mode)
60foreign import ccall SAFE_CHEAP "gsl_sf_ellint_Ecomp" gsl_sf_ellint_Ecomp :: Double -> Gsl_mode_t -> Double
61
62ellint_Pcomp_e :: Double -> Double -> Precision -> (Double,Double)
63ellint_Pcomp_e k n mode = createSFR "ellint_Pcomp_e" $ gsl_sf_ellint_Pcomp_e k n (precCode mode)
64foreign import ccall SAFE_CHEAP "gsl_sf_ellint_Pcomp_e" gsl_sf_ellint_Pcomp_e :: Double -> Double -> Gsl_mode_t -> Ptr () -> IO CInt
65
66ellint_Pcomp :: Double -> Double -> Precision -> Double
67ellint_Pcomp k n mode = gsl_sf_ellint_Pcomp k n (precCode mode)
68foreign import ccall SAFE_CHEAP "gsl_sf_ellint_Pcomp" gsl_sf_ellint_Pcomp :: Double -> Double -> Gsl_mode_t -> Double
69
70ellint_Dcomp_e :: Double -> Precision -> (Double,Double)
71ellint_Dcomp_e k mode = createSFR "ellint_Dcomp_e" $ gsl_sf_ellint_Dcomp_e k (precCode mode)
72foreign import ccall SAFE_CHEAP "gsl_sf_ellint_Dcomp_e" gsl_sf_ellint_Dcomp_e :: Double -> Gsl_mode_t -> Ptr () -> IO CInt
73
74ellint_Dcomp :: Double -> Precision -> Double
75ellint_Dcomp k mode = gsl_sf_ellint_Dcomp k (precCode mode)
76foreign import ccall SAFE_CHEAP "gsl_sf_ellint_Dcomp" gsl_sf_ellint_Dcomp :: Double -> Gsl_mode_t -> Double
77
78ellint_F_e :: Double -> Double -> Precision -> (Double,Double)
79ellint_F_e phi k mode = createSFR "ellint_F_e" $ gsl_sf_ellint_F_e phi k (precCode mode)
80foreign import ccall SAFE_CHEAP "gsl_sf_ellint_F_e" gsl_sf_ellint_F_e :: Double -> Double -> Gsl_mode_t -> Ptr () -> IO CInt
81
82ellint_F :: Double -> Double -> Precision -> Double
83ellint_F phi k mode = gsl_sf_ellint_F phi k (precCode mode)
84foreign import ccall SAFE_CHEAP "gsl_sf_ellint_F" gsl_sf_ellint_F :: Double -> Double -> Gsl_mode_t -> Double
85
86ellint_E_e :: Double -> Double -> Precision -> (Double,Double)
87ellint_E_e phi k mode = createSFR "ellint_E_e" $ gsl_sf_ellint_E_e phi k (precCode mode)
88foreign import ccall SAFE_CHEAP "gsl_sf_ellint_E_e" gsl_sf_ellint_E_e :: Double -> Double -> Gsl_mode_t -> Ptr () -> IO CInt
89
90ellint_E :: Double -> Double -> Precision -> Double
91ellint_E phi k mode = gsl_sf_ellint_E phi k (precCode mode)
92foreign import ccall SAFE_CHEAP "gsl_sf_ellint_E" gsl_sf_ellint_E :: Double -> Double -> Gsl_mode_t -> Double
93
94ellint_P_e :: Double -> Double -> Double -> Precision -> (Double,Double)
95ellint_P_e phi k n mode = createSFR "ellint_P_e" $ gsl_sf_ellint_P_e phi k n (precCode mode)
96foreign import ccall SAFE_CHEAP "gsl_sf_ellint_P_e" gsl_sf_ellint_P_e :: Double -> Double -> Double -> Gsl_mode_t -> Ptr () -> IO CInt
97
98ellint_P :: Double -> Double -> Double -> Precision -> Double
99ellint_P phi k n mode = gsl_sf_ellint_P phi k n (precCode mode)
100foreign import ccall SAFE_CHEAP "gsl_sf_ellint_P" gsl_sf_ellint_P :: Double -> Double -> Double -> Gsl_mode_t -> Double
101
102ellint_D_e :: Double -> Double -> Double -> Precision -> (Double,Double)
103ellint_D_e phi k n mode = createSFR "ellint_D_e" $ gsl_sf_ellint_D_e phi k n (precCode mode)
104foreign import ccall SAFE_CHEAP "gsl_sf_ellint_D_e" gsl_sf_ellint_D_e :: Double -> Double -> Double -> Gsl_mode_t -> Ptr () -> IO CInt
105
106ellint_D :: Double -> Double -> Double -> Precision -> Double
107ellint_D phi k n mode = gsl_sf_ellint_D phi k n (precCode mode)
108foreign import ccall SAFE_CHEAP "gsl_sf_ellint_D" gsl_sf_ellint_D :: Double -> Double -> Double -> Gsl_mode_t -> Double
109
110ellint_RC_e :: Double -> Double -> Precision -> (Double,Double)
111ellint_RC_e x y mode = createSFR "ellint_RC_e" $ gsl_sf_ellint_RC_e x y (precCode mode)
112foreign import ccall SAFE_CHEAP "gsl_sf_ellint_RC_e" gsl_sf_ellint_RC_e :: Double -> Double -> Gsl_mode_t -> Ptr () -> IO CInt
113
114ellint_RC :: Double -> Double -> Precision -> Double
115ellint_RC x y mode = gsl_sf_ellint_RC x y (precCode mode)
116foreign import ccall SAFE_CHEAP "gsl_sf_ellint_RC" gsl_sf_ellint_RC :: Double -> Double -> Gsl_mode_t -> Double
117
118ellint_RD_e :: Double -> Double -> Double -> Precision -> (Double,Double)
119ellint_RD_e x y z mode = createSFR "ellint_RD_e" $ gsl_sf_ellint_RD_e x y z (precCode mode)
120foreign import ccall SAFE_CHEAP "gsl_sf_ellint_RD_e" gsl_sf_ellint_RD_e :: Double -> Double -> Double -> Gsl_mode_t -> Ptr () -> IO CInt
121
122ellint_RD :: Double -> Double -> Double -> Precision -> Double
123ellint_RD x y z mode = gsl_sf_ellint_RD x y z (precCode mode)
124foreign import ccall SAFE_CHEAP "gsl_sf_ellint_RD" gsl_sf_ellint_RD :: Double -> Double -> Double -> Gsl_mode_t -> Double
125
126ellint_RF_e :: Double -> Double -> Double -> Precision -> (Double,Double)
127ellint_RF_e x y z mode = createSFR "ellint_RF_e" $ gsl_sf_ellint_RF_e x y z (precCode mode)
128foreign import ccall SAFE_CHEAP "gsl_sf_ellint_RF_e" gsl_sf_ellint_RF_e :: Double -> Double -> Double -> Gsl_mode_t -> Ptr () -> IO CInt
129
130ellint_RF :: Double -> Double -> Double -> Precision -> Double
131ellint_RF x y z mode = gsl_sf_ellint_RF x y z (precCode mode)
132foreign import ccall SAFE_CHEAP "gsl_sf_ellint_RF" gsl_sf_ellint_RF :: Double -> Double -> Double -> Gsl_mode_t -> Double
133
134ellint_RJ_e :: Double -> Double -> Double -> Double -> Precision -> (Double,Double)
135ellint_RJ_e x y z p mode = createSFR "ellint_RJ_e" $ gsl_sf_ellint_RJ_e x y z p (precCode mode)
136foreign import ccall SAFE_CHEAP "gsl_sf_ellint_RJ_e" gsl_sf_ellint_RJ_e :: Double -> Double -> Double -> Double -> Gsl_mode_t -> Ptr () -> IO CInt
137
138ellint_RJ :: Double -> Double -> Double -> Double -> Precision -> Double
139ellint_RJ x y z p mode = gsl_sf_ellint_RJ x y z p (precCode mode)
140foreign import ccall SAFE_CHEAP "gsl_sf_ellint_RJ" gsl_sf_ellint_RJ :: Double -> Double -> Double -> Double -> Gsl_mode_t -> Double
diff --git a/packages/special/lib/Numeric/GSL/Special/Elljac.hs b/packages/special/lib/Numeric/GSL/Special/Elljac.hs
new file mode 100644
index 0000000..5b32cfe
--- /dev/null
+++ b/packages/special/lib/Numeric/GSL/Special/Elljac.hs
@@ -0,0 +1,38 @@
1------------------------------------------------------------
2-- |
3-- Module : Numeric.GSL.Special.Elljac
4-- Copyright : (c) Alberto Ruiz 2006
5-- License : GPL
6-- Maintainer : Alberto Ruiz (aruiz at um dot es)
7-- Stability : provisional
8-- Portability : uses ffi
9--
10-- Wrappers for selected functions described at:
11--
12-- <http://www.google.com/search?q=gsl_sf_elljac.h&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky>
13------------------------------------------------------------
14
15module Numeric.GSL.Special.Elljac(
16elljac_e
17) where
18
19import Foreign
20import Foreign.C.Types(CInt)
21
22elljac_e :: Double -> Double -> (Double,Double,Double)
23elljac_e u m = unsafePerformIO $ do
24 psn <- malloc
25 pcn <- malloc
26 pdn <- malloc
27 res <- gsl_sf_elljac_e u m psn pcn pdn
28 sn <- peek psn
29 cn <- peek pcn
30 dn <- peek pdn
31 free psn
32 free pcn
33 free pdn
34 if res == 0 then return (sn,cn,dn)
35 else error $ "error code "++show res++
36 " in elljac_e "++show u++" "++show m
37
38foreign import ccall "gsl_sf_elljac_e" gsl_sf_elljac_e :: Double -> Double -> Ptr Double -> Ptr Double -> Ptr Double -> IO CInt
diff --git a/packages/special/lib/Numeric/GSL/Special/Erf.hs b/packages/special/lib/Numeric/GSL/Special/Erf.hs
new file mode 100644
index 0000000..258afd3
--- /dev/null
+++ b/packages/special/lib/Numeric/GSL/Special/Erf.hs
@@ -0,0 +1,80 @@
1------------------------------------------------------------
2-- |
3-- Module : Numeric.GSL.Special.Erf
4-- Copyright : (c) Alberto Ruiz 2006
5-- License : GPL
6-- Maintainer : Alberto Ruiz (aruiz at um dot es)
7-- Stability : provisional
8-- Portability : uses ffi
9--
10-- Wrappers for selected functions described at:
11--
12-- <http://www.google.com/search?q=gsl_sf_erf.h&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky>
13------------------------------------------------------------
14
15module Numeric.GSL.Special.Erf(
16 erfc_e
17, erfc
18, log_erfc_e
19, log_erfc
20, erf_e
21, erf
22, erf_Z_e
23, erf_Q_e
24, erf_Z
25, erf_Q
26, hazard_e
27, hazard
28) where
29
30import Foreign(Ptr)
31import Foreign.C.Types(CInt)
32import Numeric.GSL.Special.Internal
33
34erfc_e :: Double -> (Double,Double)
35erfc_e x = createSFR "erfc_e" $ gsl_sf_erfc_e x
36foreign import ccall SAFE_CHEAP "gsl_sf_erfc_e" gsl_sf_erfc_e :: Double -> Ptr () -> IO CInt
37
38erfc :: Double -> Double
39erfc = gsl_sf_erfc
40foreign import ccall SAFE_CHEAP "gsl_sf_erfc" gsl_sf_erfc :: Double -> Double
41
42log_erfc_e :: Double -> (Double,Double)
43log_erfc_e x = createSFR "log_erfc_e" $ gsl_sf_log_erfc_e x
44foreign import ccall SAFE_CHEAP "gsl_sf_log_erfc_e" gsl_sf_log_erfc_e :: Double -> Ptr () -> IO CInt
45
46log_erfc :: Double -> Double
47log_erfc = gsl_sf_log_erfc
48foreign import ccall SAFE_CHEAP "gsl_sf_log_erfc" gsl_sf_log_erfc :: Double -> Double
49
50erf_e :: Double -> (Double,Double)
51erf_e x = createSFR "erf_e" $ gsl_sf_erf_e x
52foreign import ccall SAFE_CHEAP "gsl_sf_erf_e" gsl_sf_erf_e :: Double -> Ptr () -> IO CInt
53
54erf :: Double -> Double
55erf = gsl_sf_erf
56foreign import ccall SAFE_CHEAP "gsl_sf_erf" gsl_sf_erf :: Double -> Double
57
58erf_Z_e :: Double -> (Double,Double)
59erf_Z_e x = createSFR "erf_Z_e" $ gsl_sf_erf_Z_e x
60foreign import ccall SAFE_CHEAP "gsl_sf_erf_Z_e" gsl_sf_erf_Z_e :: Double -> Ptr () -> IO CInt
61
62erf_Q_e :: Double -> (Double,Double)
63erf_Q_e x = createSFR "erf_Q_e" $ gsl_sf_erf_Q_e x
64foreign import ccall SAFE_CHEAP "gsl_sf_erf_Q_e" gsl_sf_erf_Q_e :: Double -> Ptr () -> IO CInt
65
66erf_Z :: Double -> Double
67erf_Z = gsl_sf_erf_Z
68foreign import ccall SAFE_CHEAP "gsl_sf_erf_Z" gsl_sf_erf_Z :: Double -> Double
69
70erf_Q :: Double -> Double
71erf_Q = gsl_sf_erf_Q
72foreign import ccall SAFE_CHEAP "gsl_sf_erf_Q" gsl_sf_erf_Q :: Double -> Double
73
74hazard_e :: Double -> (Double,Double)
75hazard_e x = createSFR "hazard_e" $ gsl_sf_hazard_e x
76foreign import ccall SAFE_CHEAP "gsl_sf_hazard_e" gsl_sf_hazard_e :: Double -> Ptr () -> IO CInt
77
78hazard :: Double -> Double
79hazard = gsl_sf_hazard
80foreign import ccall SAFE_CHEAP "gsl_sf_hazard" gsl_sf_hazard :: Double -> Double
diff --git a/packages/special/lib/Numeric/GSL/Special/Exp.hs b/packages/special/lib/Numeric/GSL/Special/Exp.hs
new file mode 100644
index 0000000..4f15964
--- /dev/null
+++ b/packages/special/lib/Numeric/GSL/Special/Exp.hs
@@ -0,0 +1,115 @@
1------------------------------------------------------------
2-- |
3-- Module : Numeric.GSL.Special.Exp
4-- Copyright : (c) Alberto Ruiz 2006
5-- License : GPL
6-- Maintainer : Alberto Ruiz (aruiz at um dot es)
7-- Stability : provisional
8-- Portability : uses ffi
9--
10-- Wrappers for selected functions described at:
11--
12-- <http://www.google.com/search?q=gsl_sf_exp.h&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky>
13------------------------------------------------------------
14
15module Numeric.GSL.Special.Exp(
16 exp_e
17, Numeric.GSL.Special.Exp.exp
18, exp_e10_e
19, exp_mult_e
20, exp_mult
21, exp_mult_e10_e
22, expm1_e
23, expm1
24, exprel_e
25, exprel
26, exprel_2_e
27, exprel_2
28, exprel_n_e
29, exprel_n
30-- , exprel_n_CF_e
31, exp_err_e
32, exp_err_e10_e
33, exp_mult_err_e
34, exp_mult_err_e10_e
35) where
36
37import Foreign(Ptr)
38import Foreign.C.Types(CInt)
39import Numeric.GSL.Special.Internal
40
41exp_e :: Double -> (Double,Double)
42exp_e x = createSFR "exp_e" $ gsl_sf_exp_e x
43foreign import ccall SAFE_CHEAP "gsl_sf_exp_e" gsl_sf_exp_e :: Double -> Ptr () -> IO CInt
44
45exp :: Double -> Double
46exp = gsl_sf_exp
47foreign import ccall SAFE_CHEAP "gsl_sf_exp" gsl_sf_exp :: Double -> Double
48
49exp_e10_e :: Double -> (Double,Int,Double)
50exp_e10_e x = createSFR_E10 "exp_e10_e" $ gsl_sf_exp_e10_e x
51foreign import ccall SAFE_CHEAP "gsl_sf_exp_e10_e" gsl_sf_exp_e10_e :: Double -> Ptr () -> IO CInt
52
53exp_mult_e :: Double -> Double -> (Double,Double)
54exp_mult_e x y = createSFR "exp_mult_e" $ gsl_sf_exp_mult_e x y
55foreign import ccall SAFE_CHEAP "gsl_sf_exp_mult_e" gsl_sf_exp_mult_e :: Double -> Double -> Ptr () -> IO CInt
56
57exp_mult :: Double -> Double -> Double
58exp_mult = gsl_sf_exp_mult
59foreign import ccall SAFE_CHEAP "gsl_sf_exp_mult" gsl_sf_exp_mult :: Double -> Double -> Double
60
61exp_mult_e10_e :: Double -> Double -> (Double,Int,Double)
62exp_mult_e10_e x y = createSFR_E10 "exp_mult_e10_e" $ gsl_sf_exp_mult_e10_e x y
63foreign import ccall SAFE_CHEAP "gsl_sf_exp_mult_e10_e" gsl_sf_exp_mult_e10_e :: Double -> Double -> Ptr () -> IO CInt
64
65expm1_e :: Double -> (Double,Double)
66expm1_e x = createSFR "expm1_e" $ gsl_sf_expm1_e x
67foreign import ccall SAFE_CHEAP "gsl_sf_expm1_e" gsl_sf_expm1_e :: Double -> Ptr () -> IO CInt
68
69expm1 :: Double -> Double
70expm1 = gsl_sf_expm1
71foreign import ccall SAFE_CHEAP "gsl_sf_expm1" gsl_sf_expm1 :: Double -> Double
72
73exprel_e :: Double -> (Double,Double)
74exprel_e x = createSFR "exprel_e" $ gsl_sf_exprel_e x
75foreign import ccall SAFE_CHEAP "gsl_sf_exprel_e" gsl_sf_exprel_e :: Double -> Ptr () -> IO CInt
76
77exprel :: Double -> Double
78exprel = gsl_sf_exprel
79foreign import ccall SAFE_CHEAP "gsl_sf_exprel" gsl_sf_exprel :: Double -> Double
80
81exprel_2_e :: Double -> (Double,Double)
82exprel_2_e x = createSFR "exprel_2_e" $ gsl_sf_exprel_2_e x
83foreign import ccall SAFE_CHEAP "gsl_sf_exprel_2_e" gsl_sf_exprel_2_e :: Double -> Ptr () -> IO CInt
84
85exprel_2 :: Double -> Double
86exprel_2 = gsl_sf_exprel_2
87foreign import ccall SAFE_CHEAP "gsl_sf_exprel_2" gsl_sf_exprel_2 :: Double -> Double
88
89exprel_n_e :: CInt -> Double -> (Double,Double)
90exprel_n_e n x = createSFR "exprel_n_e" $ gsl_sf_exprel_n_e n x
91foreign import ccall SAFE_CHEAP "gsl_sf_exprel_n_e" gsl_sf_exprel_n_e :: CInt -> Double -> Ptr () -> IO CInt
92
93exprel_n :: CInt -> Double -> Double
94exprel_n = gsl_sf_exprel_n
95foreign import ccall SAFE_CHEAP "gsl_sf_exprel_n" gsl_sf_exprel_n :: CInt -> Double -> Double
96
97exprel_n_CF_e :: Double -> Double -> (Double,Double)
98exprel_n_CF_e n x = createSFR "exprel_n_CF_e" $ gsl_sf_exprel_n_CF_e n x
99foreign import ccall SAFE_CHEAP "gsl_sf_exprel_n_CF_e" gsl_sf_exprel_n_CF_e :: Double -> Double -> Ptr () -> IO CInt
100
101exp_err_e :: Double -> Double -> (Double,Double)
102exp_err_e x dx = createSFR "exp_err_e" $ gsl_sf_exp_err_e x dx
103foreign import ccall SAFE_CHEAP "gsl_sf_exp_err_e" gsl_sf_exp_err_e :: Double -> Double -> Ptr () -> IO CInt
104
105exp_err_e10_e :: Double -> Double -> (Double,Int,Double)
106exp_err_e10_e x dx = createSFR_E10 "exp_err_e10_e" $ gsl_sf_exp_err_e10_e x dx
107foreign import ccall SAFE_CHEAP "gsl_sf_exp_err_e10_e" gsl_sf_exp_err_e10_e :: Double -> Double -> Ptr () -> IO CInt
108
109exp_mult_err_e :: Double -> Double -> Double -> Double -> (Double,Double)
110exp_mult_err_e x dx y dy = createSFR "exp_mult_err_e" $ gsl_sf_exp_mult_err_e x dx y dy
111foreign import ccall SAFE_CHEAP "gsl_sf_exp_mult_err_e" gsl_sf_exp_mult_err_e :: Double -> Double -> Double -> Double -> Ptr () -> IO CInt
112
113exp_mult_err_e10_e :: Double -> Double -> Double -> Double -> (Double,Int,Double)
114exp_mult_err_e10_e x dx y dy = createSFR_E10 "exp_mult_err_e10_e" $ gsl_sf_exp_mult_err_e10_e x dx y dy
115foreign import ccall SAFE_CHEAP "gsl_sf_exp_mult_err_e10_e" gsl_sf_exp_mult_err_e10_e :: Double -> Double -> Double -> Double -> Ptr () -> IO CInt
diff --git a/packages/special/lib/Numeric/GSL/Special/Expint.hs b/packages/special/lib/Numeric/GSL/Special/Expint.hs
new file mode 100644
index 0000000..f1102c4
--- /dev/null
+++ b/packages/special/lib/Numeric/GSL/Special/Expint.hs
@@ -0,0 +1,160 @@
1------------------------------------------------------------
2-- |
3-- Module : Numeric.GSL.Special.Expint
4-- Copyright : (c) Alberto Ruiz 2006
5-- License : GPL
6-- Maintainer : Alberto Ruiz (aruiz at um dot es)
7-- Stability : provisional
8-- Portability : uses ffi
9--
10-- Wrappers for selected functions described at:
11--
12-- <http://www.google.com/search?q=gsl_sf_expint.h&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky>
13------------------------------------------------------------
14
15module Numeric.GSL.Special.Expint(
16 expint_E1_e
17, expint_E1
18, expint_E2_e
19, expint_E2
20, expint_En_e
21, expint_En
22, expint_E1_scaled_e
23, expint_E1_scaled
24, expint_E2_scaled_e
25, expint_E2_scaled
26, expint_En_scaled_e
27, expint_En_scaled
28, expint_Ei_e
29, expint_Ei
30, expint_Ei_scaled_e
31, expint_Ei_scaled
32, shi_e
33, shi
34, chi_e
35, chi
36, expint_3_e
37, expint_3
38, si_e
39, si
40, ci_e
41, ci
42, atanint_e
43, atanint
44) where
45
46import Foreign(Ptr)
47import Foreign.C.Types(CInt)
48import Numeric.GSL.Special.Internal
49
50expint_E1_e :: Double -> (Double,Double)
51expint_E1_e x = createSFR "expint_E1_e" $ gsl_sf_expint_E1_e x
52foreign import ccall SAFE_CHEAP "gsl_sf_expint_E1_e" gsl_sf_expint_E1_e :: Double -> Ptr () -> IO CInt
53
54expint_E1 :: Double -> Double
55expint_E1 = gsl_sf_expint_E1
56foreign import ccall SAFE_CHEAP "gsl_sf_expint_E1" gsl_sf_expint_E1 :: Double -> Double
57
58expint_E2_e :: Double -> (Double,Double)
59expint_E2_e x = createSFR "expint_E2_e" $ gsl_sf_expint_E2_e x
60foreign import ccall SAFE_CHEAP "gsl_sf_expint_E2_e" gsl_sf_expint_E2_e :: Double -> Ptr () -> IO CInt
61
62expint_E2 :: Double -> Double
63expint_E2 = gsl_sf_expint_E2
64foreign import ccall SAFE_CHEAP "gsl_sf_expint_E2" gsl_sf_expint_E2 :: Double -> Double
65
66expint_En_e :: CInt -> Double -> (Double,Double)
67expint_En_e n x = createSFR "expint_En_e" $ gsl_sf_expint_En_e n x
68foreign import ccall SAFE_CHEAP "gsl_sf_expint_En_e" gsl_sf_expint_En_e :: CInt -> Double -> Ptr () -> IO CInt
69
70expint_En :: CInt -> Double -> Double
71expint_En = gsl_sf_expint_En
72foreign import ccall SAFE_CHEAP "gsl_sf_expint_En" gsl_sf_expint_En :: CInt -> Double -> Double
73
74expint_E1_scaled_e :: Double -> (Double,Double)
75expint_E1_scaled_e x = createSFR "expint_E1_scaled_e" $ gsl_sf_expint_E1_scaled_e x
76foreign import ccall SAFE_CHEAP "gsl_sf_expint_E1_scaled_e" gsl_sf_expint_E1_scaled_e :: Double -> Ptr () -> IO CInt
77
78expint_E1_scaled :: Double -> Double
79expint_E1_scaled = gsl_sf_expint_E1_scaled
80foreign import ccall SAFE_CHEAP "gsl_sf_expint_E1_scaled" gsl_sf_expint_E1_scaled :: Double -> Double
81
82expint_E2_scaled_e :: Double -> (Double,Double)
83expint_E2_scaled_e x = createSFR "expint_E2_scaled_e" $ gsl_sf_expint_E2_scaled_e x
84foreign import ccall SAFE_CHEAP "gsl_sf_expint_E2_scaled_e" gsl_sf_expint_E2_scaled_e :: Double -> Ptr () -> IO CInt
85
86expint_E2_scaled :: Double -> Double
87expint_E2_scaled = gsl_sf_expint_E2_scaled
88foreign import ccall SAFE_CHEAP "gsl_sf_expint_E2_scaled" gsl_sf_expint_E2_scaled :: Double -> Double
89
90expint_En_scaled_e :: CInt -> Double -> (Double,Double)
91expint_En_scaled_e n x = createSFR "expint_En_scaled_e" $ gsl_sf_expint_En_scaled_e n x
92foreign import ccall SAFE_CHEAP "gsl_sf_expint_En_scaled_e" gsl_sf_expint_En_scaled_e :: CInt -> Double -> Ptr () -> IO CInt
93
94expint_En_scaled :: CInt -> Double -> Double
95expint_En_scaled = gsl_sf_expint_En_scaled
96foreign import ccall SAFE_CHEAP "gsl_sf_expint_En_scaled" gsl_sf_expint_En_scaled :: CInt -> Double -> Double
97
98expint_Ei_e :: Double -> (Double,Double)
99expint_Ei_e x = createSFR "expint_Ei_e" $ gsl_sf_expint_Ei_e x
100foreign import ccall SAFE_CHEAP "gsl_sf_expint_Ei_e" gsl_sf_expint_Ei_e :: Double -> Ptr () -> IO CInt
101
102expint_Ei :: Double -> Double
103expint_Ei = gsl_sf_expint_Ei
104foreign import ccall SAFE_CHEAP "gsl_sf_expint_Ei" gsl_sf_expint_Ei :: Double -> Double
105
106expint_Ei_scaled_e :: Double -> (Double,Double)
107expint_Ei_scaled_e x = createSFR "expint_Ei_scaled_e" $ gsl_sf_expint_Ei_scaled_e x
108foreign import ccall SAFE_CHEAP "gsl_sf_expint_Ei_scaled_e" gsl_sf_expint_Ei_scaled_e :: Double -> Ptr () -> IO CInt
109
110expint_Ei_scaled :: Double -> Double
111expint_Ei_scaled = gsl_sf_expint_Ei_scaled
112foreign import ccall SAFE_CHEAP "gsl_sf_expint_Ei_scaled" gsl_sf_expint_Ei_scaled :: Double -> Double
113
114shi_e :: Double -> (Double,Double)
115shi_e x = createSFR "shi_e" $ gsl_sf_Shi_e x
116foreign import ccall SAFE_CHEAP "gsl_sf_Shi_e" gsl_sf_Shi_e :: Double -> Ptr () -> IO CInt
117
118shi :: Double -> Double
119shi = gsl_sf_Shi
120foreign import ccall SAFE_CHEAP "gsl_sf_Shi" gsl_sf_Shi :: Double -> Double
121
122chi_e :: Double -> (Double,Double)
123chi_e x = createSFR "chi_e" $ gsl_sf_Chi_e x
124foreign import ccall SAFE_CHEAP "gsl_sf_Chi_e" gsl_sf_Chi_e :: Double -> Ptr () -> IO CInt
125
126chi :: Double -> Double
127chi = gsl_sf_Chi
128foreign import ccall SAFE_CHEAP "gsl_sf_Chi" gsl_sf_Chi :: Double -> Double
129
130expint_3_e :: Double -> (Double,Double)
131expint_3_e x = createSFR "expint_3_e" $ gsl_sf_expint_3_e x
132foreign import ccall SAFE_CHEAP "gsl_sf_expint_3_e" gsl_sf_expint_3_e :: Double -> Ptr () -> IO CInt
133
134expint_3 :: Double -> Double
135expint_3 = gsl_sf_expint_3
136foreign import ccall SAFE_CHEAP "gsl_sf_expint_3" gsl_sf_expint_3 :: Double -> Double
137
138si_e :: Double -> (Double,Double)
139si_e x = createSFR "si_e" $ gsl_sf_Si_e x
140foreign import ccall SAFE_CHEAP "gsl_sf_Si_e" gsl_sf_Si_e :: Double -> Ptr () -> IO CInt
141
142si :: Double -> Double
143si = gsl_sf_Si
144foreign import ccall SAFE_CHEAP "gsl_sf_Si" gsl_sf_Si :: Double -> Double
145
146ci_e :: Double -> (Double,Double)
147ci_e x = createSFR "ci_e" $ gsl_sf_Ci_e x
148foreign import ccall SAFE_CHEAP "gsl_sf_Ci_e" gsl_sf_Ci_e :: Double -> Ptr () -> IO CInt
149
150ci :: Double -> Double
151ci = gsl_sf_Ci
152foreign import ccall SAFE_CHEAP "gsl_sf_Ci" gsl_sf_Ci :: Double -> Double
153
154atanint_e :: Double -> (Double,Double)
155atanint_e x = createSFR "atanint_e" $ gsl_sf_atanint_e x
156foreign import ccall SAFE_CHEAP "gsl_sf_atanint_e" gsl_sf_atanint_e :: Double -> Ptr () -> IO CInt
157
158atanint :: Double -> Double
159atanint = gsl_sf_atanint
160foreign import ccall SAFE_CHEAP "gsl_sf_atanint" gsl_sf_atanint :: Double -> Double
diff --git a/packages/special/lib/Numeric/GSL/Special/Fermi_dirac.hs b/packages/special/lib/Numeric/GSL/Special/Fermi_dirac.hs
new file mode 100644
index 0000000..362c7ba
--- /dev/null
+++ b/packages/special/lib/Numeric/GSL/Special/Fermi_dirac.hs
@@ -0,0 +1,110 @@
1------------------------------------------------------------
2-- |
3-- Module : Numeric.GSL.Special.Fermi_dirac
4-- Copyright : (c) Alberto Ruiz 2006
5-- License : GPL
6-- Maintainer : Alberto Ruiz (aruiz at um dot es)
7-- Stability : provisional
8-- Portability : uses ffi
9--
10-- Wrappers for selected functions described at:
11--
12-- <http://www.google.com/search?q=gsl_sf_fermi_dirac.h&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky>
13------------------------------------------------------------
14
15module Numeric.GSL.Special.Fermi_dirac(
16 fermi_dirac_m1_e
17, fermi_dirac_m1
18, fermi_dirac_0_e
19, fermi_dirac_0
20, fermi_dirac_1_e
21, fermi_dirac_1
22, fermi_dirac_2_e
23, fermi_dirac_2
24, fermi_dirac_int_e
25, fermi_dirac_int
26, fermi_dirac_mhalf_e
27, fermi_dirac_mhalf
28, fermi_dirac_half_e
29, fermi_dirac_half
30, fermi_dirac_3half_e
31, fermi_dirac_3half
32, fermi_dirac_inc_0_e
33, fermi_dirac_inc_0
34) where
35
36import Foreign(Ptr)
37import Foreign.C.Types(CInt)
38import Numeric.GSL.Special.Internal
39
40fermi_dirac_m1_e :: Double -> (Double,Double)
41fermi_dirac_m1_e x = createSFR "fermi_dirac_m1_e" $ gsl_sf_fermi_dirac_m1_e x
42foreign import ccall SAFE_CHEAP "gsl_sf_fermi_dirac_m1_e" gsl_sf_fermi_dirac_m1_e :: Double -> Ptr () -> IO CInt
43
44fermi_dirac_m1 :: Double -> Double
45fermi_dirac_m1 = gsl_sf_fermi_dirac_m1
46foreign import ccall SAFE_CHEAP "gsl_sf_fermi_dirac_m1" gsl_sf_fermi_dirac_m1 :: Double -> Double
47
48fermi_dirac_0_e :: Double -> (Double,Double)
49fermi_dirac_0_e x = createSFR "fermi_dirac_0_e" $ gsl_sf_fermi_dirac_0_e x
50foreign import ccall SAFE_CHEAP "gsl_sf_fermi_dirac_0_e" gsl_sf_fermi_dirac_0_e :: Double -> Ptr () -> IO CInt
51
52fermi_dirac_0 :: Double -> Double
53fermi_dirac_0 = gsl_sf_fermi_dirac_0
54foreign import ccall SAFE_CHEAP "gsl_sf_fermi_dirac_0" gsl_sf_fermi_dirac_0 :: Double -> Double
55
56fermi_dirac_1_e :: Double -> (Double,Double)
57fermi_dirac_1_e x = createSFR "fermi_dirac_1_e" $ gsl_sf_fermi_dirac_1_e x
58foreign import ccall SAFE_CHEAP "gsl_sf_fermi_dirac_1_e" gsl_sf_fermi_dirac_1_e :: Double -> Ptr () -> IO CInt
59
60fermi_dirac_1 :: Double -> Double
61fermi_dirac_1 = gsl_sf_fermi_dirac_1
62foreign import ccall SAFE_CHEAP "gsl_sf_fermi_dirac_1" gsl_sf_fermi_dirac_1 :: Double -> Double
63
64fermi_dirac_2_e :: Double -> (Double,Double)
65fermi_dirac_2_e x = createSFR "fermi_dirac_2_e" $ gsl_sf_fermi_dirac_2_e x
66foreign import ccall SAFE_CHEAP "gsl_sf_fermi_dirac_2_e" gsl_sf_fermi_dirac_2_e :: Double -> Ptr () -> IO CInt
67
68fermi_dirac_2 :: Double -> Double
69fermi_dirac_2 = gsl_sf_fermi_dirac_2
70foreign import ccall SAFE_CHEAP "gsl_sf_fermi_dirac_2" gsl_sf_fermi_dirac_2 :: Double -> Double
71
72fermi_dirac_int_e :: CInt -> Double -> (Double,Double)
73fermi_dirac_int_e j x = createSFR "fermi_dirac_int_e" $ gsl_sf_fermi_dirac_int_e j x
74foreign import ccall SAFE_CHEAP "gsl_sf_fermi_dirac_int_e" gsl_sf_fermi_dirac_int_e :: CInt -> Double -> Ptr () -> IO CInt
75
76fermi_dirac_int :: CInt -> Double -> Double
77fermi_dirac_int = gsl_sf_fermi_dirac_int
78foreign import ccall SAFE_CHEAP "gsl_sf_fermi_dirac_int" gsl_sf_fermi_dirac_int :: CInt -> Double -> Double
79
80fermi_dirac_mhalf_e :: Double -> (Double,Double)
81fermi_dirac_mhalf_e x = createSFR "fermi_dirac_mhalf_e" $ gsl_sf_fermi_dirac_mhalf_e x
82foreign import ccall SAFE_CHEAP "gsl_sf_fermi_dirac_mhalf_e" gsl_sf_fermi_dirac_mhalf_e :: Double -> Ptr () -> IO CInt
83
84fermi_dirac_mhalf :: Double -> Double
85fermi_dirac_mhalf = gsl_sf_fermi_dirac_mhalf
86foreign import ccall SAFE_CHEAP "gsl_sf_fermi_dirac_mhalf" gsl_sf_fermi_dirac_mhalf :: Double -> Double
87
88fermi_dirac_half_e :: Double -> (Double,Double)
89fermi_dirac_half_e x = createSFR "fermi_dirac_half_e" $ gsl_sf_fermi_dirac_half_e x
90foreign import ccall SAFE_CHEAP "gsl_sf_fermi_dirac_half_e" gsl_sf_fermi_dirac_half_e :: Double -> Ptr () -> IO CInt
91
92fermi_dirac_half :: Double -> Double
93fermi_dirac_half = gsl_sf_fermi_dirac_half
94foreign import ccall SAFE_CHEAP "gsl_sf_fermi_dirac_half" gsl_sf_fermi_dirac_half :: Double -> Double
95
96fermi_dirac_3half_e :: Double -> (Double,Double)
97fermi_dirac_3half_e x = createSFR "fermi_dirac_3half_e" $ gsl_sf_fermi_dirac_3half_e x
98foreign import ccall SAFE_CHEAP "gsl_sf_fermi_dirac_3half_e" gsl_sf_fermi_dirac_3half_e :: Double -> Ptr () -> IO CInt
99
100fermi_dirac_3half :: Double -> Double
101fermi_dirac_3half = gsl_sf_fermi_dirac_3half
102foreign import ccall SAFE_CHEAP "gsl_sf_fermi_dirac_3half" gsl_sf_fermi_dirac_3half :: Double -> Double
103
104fermi_dirac_inc_0_e :: Double -> Double -> (Double,Double)
105fermi_dirac_inc_0_e x b = createSFR "fermi_dirac_inc_0_e" $ gsl_sf_fermi_dirac_inc_0_e x b
106foreign import ccall SAFE_CHEAP "gsl_sf_fermi_dirac_inc_0_e" gsl_sf_fermi_dirac_inc_0_e :: Double -> Double -> Ptr () -> IO CInt
107
108fermi_dirac_inc_0 :: Double -> Double -> Double
109fermi_dirac_inc_0 = gsl_sf_fermi_dirac_inc_0
110foreign import ccall SAFE_CHEAP "gsl_sf_fermi_dirac_inc_0" gsl_sf_fermi_dirac_inc_0 :: Double -> Double -> Double
diff --git a/packages/special/lib/Numeric/GSL/Special/Gamma.hs b/packages/special/lib/Numeric/GSL/Special/Gamma.hs
new file mode 100644
index 0000000..03b39c4
--- /dev/null
+++ b/packages/special/lib/Numeric/GSL/Special/Gamma.hs
@@ -0,0 +1,236 @@
1------------------------------------------------------------
2-- |
3-- Module : Numeric.GSL.Special.Gamma
4-- Copyright : (c) Alberto Ruiz 2006
5-- License : GPL
6-- Maintainer : Alberto Ruiz (aruiz at um dot es)
7-- Stability : provisional
8-- Portability : uses ffi
9--
10-- Wrappers for selected functions described at:
11--
12-- <http://www.google.com/search?q=gsl_sf_gamma.h&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky>
13------------------------------------------------------------
14
15module Numeric.GSL.Special.Gamma(
16 lngamma_e
17, lngamma
18, gamma_e
19, gamma
20, gammastar_e
21, gammastar
22, gammainv_e
23, gammainv
24, taylorcoeff_e
25, taylorcoeff
26, fact_e
27, fact
28, doublefact_e
29, doublefact
30, lnfact_e
31, lnfact
32, lndoublefact_e
33, lndoublefact
34, lnchoose_e
35, lnchoose
36, choose_e
37, choose
38, lnpoch_e
39, lnpoch
40, poch_e
41, poch
42, pochrel_e
43, pochrel
44, gamma_inc_Q_e
45, gamma_inc_Q
46, gamma_inc_P_e
47, gamma_inc_P
48, gamma_inc_e
49, gamma_inc
50, lnbeta_e
51, lnbeta
52, beta_e
53, beta
54, beta_inc_e
55, beta_inc
56) where
57
58import Foreign(Ptr)
59import Foreign.C.Types(CInt)
60import Numeric.GSL.Special.Internal
61
62lngamma_e :: Double -> (Double,Double)
63lngamma_e x = createSFR "lngamma_e" $ gsl_sf_lngamma_e x
64foreign import ccall SAFE_CHEAP "gsl_sf_lngamma_e" gsl_sf_lngamma_e :: Double -> Ptr () -> IO CInt
65
66lngamma :: Double -> Double
67lngamma = gsl_sf_lngamma
68foreign import ccall SAFE_CHEAP "gsl_sf_lngamma" gsl_sf_lngamma :: Double -> Double
69
70lngamma_sgn_e :: Double -> Ptr () -> Ptr Double -> CInt
71lngamma_sgn_e = gsl_sf_lngamma_sgn_e
72foreign import ccall SAFE_CHEAP "gsl_sf_lngamma_sgn_e" gsl_sf_lngamma_sgn_e :: Double -> Ptr () -> Ptr Double -> CInt
73
74gamma_e :: Double -> (Double,Double)
75gamma_e x = createSFR "gamma_e" $ gsl_sf_gamma_e x
76foreign import ccall SAFE_CHEAP "gsl_sf_gamma_e" gsl_sf_gamma_e :: Double -> Ptr () -> IO CInt
77
78gamma :: Double -> Double
79gamma = gsl_sf_gamma
80foreign import ccall SAFE_CHEAP "gsl_sf_gamma" gsl_sf_gamma :: Double -> Double
81
82gammastar_e :: Double -> (Double,Double)
83gammastar_e x = createSFR "gammastar_e" $ gsl_sf_gammastar_e x
84foreign import ccall SAFE_CHEAP "gsl_sf_gammastar_e" gsl_sf_gammastar_e :: Double -> Ptr () -> IO CInt
85
86gammastar :: Double -> Double
87gammastar = gsl_sf_gammastar
88foreign import ccall SAFE_CHEAP "gsl_sf_gammastar" gsl_sf_gammastar :: Double -> Double
89
90gammainv_e :: Double -> (Double,Double)
91gammainv_e x = createSFR "gammainv_e" $ gsl_sf_gammainv_e x
92foreign import ccall SAFE_CHEAP "gsl_sf_gammainv_e" gsl_sf_gammainv_e :: Double -> Ptr () -> IO CInt
93
94gammainv :: Double -> Double
95gammainv = gsl_sf_gammainv
96foreign import ccall SAFE_CHEAP "gsl_sf_gammainv" gsl_sf_gammainv :: Double -> Double
97
98lngamma_complex_e :: Double -> Double -> Ptr () -> (Double,Double)
99lngamma_complex_e zr zi lnr = createSFR "lngamma_complex_e" $ gsl_sf_lngamma_complex_e zr zi lnr
100foreign import ccall SAFE_CHEAP "gsl_sf_lngamma_complex_e" gsl_sf_lngamma_complex_e :: Double -> Double -> Ptr () -> Ptr () -> IO CInt
101
102taylorcoeff_e :: CInt -> Double -> (Double,Double)
103taylorcoeff_e n x = createSFR "taylorcoeff_e" $ gsl_sf_taylorcoeff_e n x
104foreign import ccall SAFE_CHEAP "gsl_sf_taylorcoeff_e" gsl_sf_taylorcoeff_e :: CInt -> Double -> Ptr () -> IO CInt
105
106taylorcoeff :: CInt -> Double -> Double
107taylorcoeff = gsl_sf_taylorcoeff
108foreign import ccall SAFE_CHEAP "gsl_sf_taylorcoeff" gsl_sf_taylorcoeff :: CInt -> Double -> Double
109
110fact_e :: CInt -> (Double,Double)
111fact_e n = createSFR "fact_e" $ gsl_sf_fact_e n
112foreign import ccall SAFE_CHEAP "gsl_sf_fact_e" gsl_sf_fact_e :: CInt -> Ptr () -> IO CInt
113
114fact :: CInt -> Double
115fact = gsl_sf_fact
116foreign import ccall SAFE_CHEAP "gsl_sf_fact" gsl_sf_fact :: CInt -> Double
117
118doublefact_e :: CInt -> (Double,Double)
119doublefact_e n = createSFR "doublefact_e" $ gsl_sf_doublefact_e n
120foreign import ccall SAFE_CHEAP "gsl_sf_doublefact_e" gsl_sf_doublefact_e :: CInt -> Ptr () -> IO CInt
121
122doublefact :: CInt -> Double
123doublefact = gsl_sf_doublefact
124foreign import ccall SAFE_CHEAP "gsl_sf_doublefact" gsl_sf_doublefact :: CInt -> Double
125
126lnfact_e :: CInt -> (Double,Double)
127lnfact_e n = createSFR "lnfact_e" $ gsl_sf_lnfact_e n
128foreign import ccall SAFE_CHEAP "gsl_sf_lnfact_e" gsl_sf_lnfact_e :: CInt -> Ptr () -> IO CInt
129
130lnfact :: CInt -> Double
131lnfact = gsl_sf_lnfact
132foreign import ccall SAFE_CHEAP "gsl_sf_lnfact" gsl_sf_lnfact :: CInt -> Double
133
134lndoublefact_e :: CInt -> (Double,Double)
135lndoublefact_e n = createSFR "lndoublefact_e" $ gsl_sf_lndoublefact_e n
136foreign import ccall SAFE_CHEAP "gsl_sf_lndoublefact_e" gsl_sf_lndoublefact_e :: CInt -> Ptr () -> IO CInt
137
138lndoublefact :: CInt -> Double
139lndoublefact = gsl_sf_lndoublefact
140foreign import ccall SAFE_CHEAP "gsl_sf_lndoublefact" gsl_sf_lndoublefact :: CInt -> Double
141
142lnchoose_e :: CInt -> CInt -> (Double,Double)
143lnchoose_e n m = createSFR "lnchoose_e" $ gsl_sf_lnchoose_e n m
144foreign import ccall SAFE_CHEAP "gsl_sf_lnchoose_e" gsl_sf_lnchoose_e :: CInt -> CInt -> Ptr () -> IO CInt
145
146lnchoose :: CInt -> CInt -> Double
147lnchoose = gsl_sf_lnchoose
148foreign import ccall SAFE_CHEAP "gsl_sf_lnchoose" gsl_sf_lnchoose :: CInt -> CInt -> Double
149
150choose_e :: CInt -> CInt -> (Double,Double)
151choose_e n m = createSFR "choose_e" $ gsl_sf_choose_e n m
152foreign import ccall SAFE_CHEAP "gsl_sf_choose_e" gsl_sf_choose_e :: CInt -> CInt -> Ptr () -> IO CInt
153
154choose :: CInt -> CInt -> Double
155choose = gsl_sf_choose
156foreign import ccall SAFE_CHEAP "gsl_sf_choose" gsl_sf_choose :: CInt -> CInt -> Double
157
158lnpoch_e :: Double -> Double -> (Double,Double)
159lnpoch_e a x = createSFR "lnpoch_e" $ gsl_sf_lnpoch_e a x
160foreign import ccall SAFE_CHEAP "gsl_sf_lnpoch_e" gsl_sf_lnpoch_e :: Double -> Double -> Ptr () -> IO CInt
161
162lnpoch :: Double -> Double -> Double
163lnpoch = gsl_sf_lnpoch
164foreign import ccall SAFE_CHEAP "gsl_sf_lnpoch" gsl_sf_lnpoch :: Double -> Double -> Double
165
166lnpoch_sgn_e :: Double -> Double -> Ptr () -> Ptr Double -> CInt
167lnpoch_sgn_e = gsl_sf_lnpoch_sgn_e
168foreign import ccall SAFE_CHEAP "gsl_sf_lnpoch_sgn_e" gsl_sf_lnpoch_sgn_e :: Double -> Double -> Ptr () -> Ptr Double -> CInt
169
170poch_e :: Double -> Double -> (Double,Double)
171poch_e a x = createSFR "poch_e" $ gsl_sf_poch_e a x
172foreign import ccall SAFE_CHEAP "gsl_sf_poch_e" gsl_sf_poch_e :: Double -> Double -> Ptr () -> IO CInt
173
174poch :: Double -> Double -> Double
175poch = gsl_sf_poch
176foreign import ccall SAFE_CHEAP "gsl_sf_poch" gsl_sf_poch :: Double -> Double -> Double
177
178pochrel_e :: Double -> Double -> (Double,Double)
179pochrel_e a x = createSFR "pochrel_e" $ gsl_sf_pochrel_e a x
180foreign import ccall SAFE_CHEAP "gsl_sf_pochrel_e" gsl_sf_pochrel_e :: Double -> Double -> Ptr () -> IO CInt
181
182pochrel :: Double -> Double -> Double
183pochrel = gsl_sf_pochrel
184foreign import ccall SAFE_CHEAP "gsl_sf_pochrel" gsl_sf_pochrel :: Double -> Double -> Double
185
186gamma_inc_Q_e :: Double -> Double -> (Double,Double)
187gamma_inc_Q_e a x = createSFR "gamma_inc_Q_e" $ gsl_sf_gamma_inc_Q_e a x
188foreign import ccall SAFE_CHEAP "gsl_sf_gamma_inc_Q_e" gsl_sf_gamma_inc_Q_e :: Double -> Double -> Ptr () -> IO CInt
189
190gamma_inc_Q :: Double -> Double -> Double
191gamma_inc_Q = gsl_sf_gamma_inc_Q
192foreign import ccall SAFE_CHEAP "gsl_sf_gamma_inc_Q" gsl_sf_gamma_inc_Q :: Double -> Double -> Double
193
194gamma_inc_P_e :: Double -> Double -> (Double,Double)
195gamma_inc_P_e a x = createSFR "gamma_inc_P_e" $ gsl_sf_gamma_inc_P_e a x
196foreign import ccall SAFE_CHEAP "gsl_sf_gamma_inc_P_e" gsl_sf_gamma_inc_P_e :: Double -> Double -> Ptr () -> IO CInt
197
198gamma_inc_P :: Double -> Double -> Double
199gamma_inc_P = gsl_sf_gamma_inc_P
200foreign import ccall SAFE_CHEAP "gsl_sf_gamma_inc_P" gsl_sf_gamma_inc_P :: Double -> Double -> Double
201
202gamma_inc_e :: Double -> Double -> (Double,Double)
203gamma_inc_e a x = createSFR "gamma_inc_e" $ gsl_sf_gamma_inc_e a x
204foreign import ccall SAFE_CHEAP "gsl_sf_gamma_inc_e" gsl_sf_gamma_inc_e :: Double -> Double -> Ptr () -> IO CInt
205
206gamma_inc :: Double -> Double -> Double
207gamma_inc = gsl_sf_gamma_inc
208foreign import ccall SAFE_CHEAP "gsl_sf_gamma_inc" gsl_sf_gamma_inc :: Double -> Double -> Double
209
210lnbeta_e :: Double -> Double -> (Double,Double)
211lnbeta_e a b = createSFR "lnbeta_e" $ gsl_sf_lnbeta_e a b
212foreign import ccall SAFE_CHEAP "gsl_sf_lnbeta_e" gsl_sf_lnbeta_e :: Double -> Double -> Ptr () -> IO CInt
213
214lnbeta :: Double -> Double -> Double
215lnbeta = gsl_sf_lnbeta
216foreign import ccall SAFE_CHEAP "gsl_sf_lnbeta" gsl_sf_lnbeta :: Double -> Double -> Double
217
218lnbeta_sgn_e :: Double -> Double -> Ptr () -> Ptr Double -> CInt
219lnbeta_sgn_e = gsl_sf_lnbeta_sgn_e
220foreign import ccall SAFE_CHEAP "gsl_sf_lnbeta_sgn_e" gsl_sf_lnbeta_sgn_e :: Double -> Double -> Ptr () -> Ptr Double -> CInt
221
222beta_e :: Double -> Double -> (Double,Double)
223beta_e a b = createSFR "beta_e" $ gsl_sf_beta_e a b
224foreign import ccall SAFE_CHEAP "gsl_sf_beta_e" gsl_sf_beta_e :: Double -> Double -> Ptr () -> IO CInt
225
226beta :: Double -> Double -> Double
227beta = gsl_sf_beta
228foreign import ccall SAFE_CHEAP "gsl_sf_beta" gsl_sf_beta :: Double -> Double -> Double
229
230beta_inc_e :: Double -> Double -> Double -> (Double,Double)
231beta_inc_e a b x = createSFR "beta_inc_e" $ gsl_sf_beta_inc_e a b x
232foreign import ccall SAFE_CHEAP "gsl_sf_beta_inc_e" gsl_sf_beta_inc_e :: Double -> Double -> Double -> Ptr () -> IO CInt
233
234beta_inc :: Double -> Double -> Double -> Double
235beta_inc = gsl_sf_beta_inc
236foreign import ccall SAFE_CHEAP "gsl_sf_beta_inc" gsl_sf_beta_inc :: Double -> Double -> Double -> Double
diff --git a/packages/special/lib/Numeric/GSL/Special/Gegenbauer.hs b/packages/special/lib/Numeric/GSL/Special/Gegenbauer.hs
new file mode 100644
index 0000000..31568f3
--- /dev/null
+++ b/packages/special/lib/Numeric/GSL/Special/Gegenbauer.hs
@@ -0,0 +1,64 @@
1------------------------------------------------------------
2-- |
3-- Module : Numeric.GSL.Special.Gegenbauer
4-- Copyright : (c) Alberto Ruiz 2006
5-- License : GPL
6-- Maintainer : Alberto Ruiz (aruiz at um dot es)
7-- Stability : provisional
8-- Portability : uses ffi
9--
10-- Wrappers for selected functions described at:
11--
12-- <http://www.google.com/search?q=gsl_sf_gegenbauer.h&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky>
13------------------------------------------------------------
14
15module Numeric.GSL.Special.Gegenbauer(
16 gegenpoly_1_e
17, gegenpoly_2_e
18, gegenpoly_3_e
19, gegenpoly_1
20, gegenpoly_2
21, gegenpoly_3
22, gegenpoly_n_e
23, gegenpoly_n
24) where
25
26import Foreign(Ptr)
27import Foreign.C.Types(CInt)
28import Numeric.GSL.Special.Internal
29
30gegenpoly_1_e :: Double -> Double -> (Double,Double)
31gegenpoly_1_e lambda x = createSFR "gegenpoly_1_e" $ gsl_sf_gegenpoly_1_e lambda x
32foreign import ccall SAFE_CHEAP "gsl_sf_gegenpoly_1_e" gsl_sf_gegenpoly_1_e :: Double -> Double -> Ptr () -> IO CInt
33
34gegenpoly_2_e :: Double -> Double -> (Double,Double)
35gegenpoly_2_e lambda x = createSFR "gegenpoly_2_e" $ gsl_sf_gegenpoly_2_e lambda x
36foreign import ccall SAFE_CHEAP "gsl_sf_gegenpoly_2_e" gsl_sf_gegenpoly_2_e :: Double -> Double -> Ptr () -> IO CInt
37
38gegenpoly_3_e :: Double -> Double -> (Double,Double)
39gegenpoly_3_e lambda x = createSFR "gegenpoly_3_e" $ gsl_sf_gegenpoly_3_e lambda x
40foreign import ccall SAFE_CHEAP "gsl_sf_gegenpoly_3_e" gsl_sf_gegenpoly_3_e :: Double -> Double -> Ptr () -> IO CInt
41
42gegenpoly_1 :: Double -> Double -> Double
43gegenpoly_1 = gsl_sf_gegenpoly_1
44foreign import ccall SAFE_CHEAP "gsl_sf_gegenpoly_1" gsl_sf_gegenpoly_1 :: Double -> Double -> Double
45
46gegenpoly_2 :: Double -> Double -> Double
47gegenpoly_2 = gsl_sf_gegenpoly_2
48foreign import ccall SAFE_CHEAP "gsl_sf_gegenpoly_2" gsl_sf_gegenpoly_2 :: Double -> Double -> Double
49
50gegenpoly_3 :: Double -> Double -> Double
51gegenpoly_3 = gsl_sf_gegenpoly_3
52foreign import ccall SAFE_CHEAP "gsl_sf_gegenpoly_3" gsl_sf_gegenpoly_3 :: Double -> Double -> Double
53
54gegenpoly_n_e :: CInt -> Double -> Double -> (Double,Double)
55gegenpoly_n_e n lambda x = createSFR "gegenpoly_n_e" $ gsl_sf_gegenpoly_n_e n lambda x
56foreign import ccall SAFE_CHEAP "gsl_sf_gegenpoly_n_e" gsl_sf_gegenpoly_n_e :: CInt -> Double -> Double -> Ptr () -> IO CInt
57
58gegenpoly_n :: CInt -> Double -> Double -> Double
59gegenpoly_n = gsl_sf_gegenpoly_n
60foreign import ccall SAFE_CHEAP "gsl_sf_gegenpoly_n" gsl_sf_gegenpoly_n :: CInt -> Double -> Double -> Double
61
62gegenpoly_array :: CInt -> Double -> Double -> Ptr Double -> CInt
63gegenpoly_array = gsl_sf_gegenpoly_array
64foreign import ccall SAFE_CHEAP "gsl_sf_gegenpoly_array" gsl_sf_gegenpoly_array :: CInt -> Double -> Double -> Ptr Double -> CInt
diff --git a/packages/special/lib/Numeric/GSL/Special/Hyperg.hs b/packages/special/lib/Numeric/GSL/Special/Hyperg.hs
new file mode 100644
index 0000000..b5425f1
--- /dev/null
+++ b/packages/special/lib/Numeric/GSL/Special/Hyperg.hs
@@ -0,0 +1,130 @@
1------------------------------------------------------------
2-- |
3-- Module : Numeric.GSL.Special.Hyperg
4-- Copyright : (c) Alberto Ruiz 2006
5-- License : GPL
6-- Maintainer : Alberto Ruiz (aruiz at um dot es)
7-- Stability : provisional
8-- Portability : uses ffi
9--
10-- Wrappers for selected functions described at:
11--
12-- <http://www.google.com/search?q=gsl_sf_hyperg.h&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky>
13------------------------------------------------------------
14
15module Numeric.GSL.Special.Hyperg(
16 hyperg_0F1_e
17, hyperg_0F1
18, hyperg_1F1_int_e
19, hyperg_1F1_int
20, hyperg_1F1_e
21, hyperg_1F1
22, hyperg_U_int_e
23, hyperg_U_int
24, hyperg_U_int_e10_e
25, hyperg_U_e
26, hyperg_U
27, hyperg_U_e10_e
28, hyperg_2F1_e
29, hyperg_2F1
30, hyperg_2F1_conj_e
31, hyperg_2F1_conj
32, hyperg_2F1_renorm_e
33, hyperg_2F1_renorm
34, hyperg_2F1_conj_renorm_e
35, hyperg_2F1_conj_renorm
36, hyperg_2F0_e
37, hyperg_2F0
38) where
39
40import Foreign(Ptr)
41import Foreign.C.Types(CInt)
42import Numeric.GSL.Special.Internal
43
44hyperg_0F1_e :: Double -> Double -> (Double,Double)
45hyperg_0F1_e c x = createSFR "hyperg_0F1_e" $ gsl_sf_hyperg_0F1_e c x
46foreign import ccall SAFE_CHEAP "gsl_sf_hyperg_0F1_e" gsl_sf_hyperg_0F1_e :: Double -> Double -> Ptr () -> IO CInt
47
48hyperg_0F1 :: Double -> Double -> Double
49hyperg_0F1 = gsl_sf_hyperg_0F1
50foreign import ccall SAFE_CHEAP "gsl_sf_hyperg_0F1" gsl_sf_hyperg_0F1 :: Double -> Double -> Double
51
52hyperg_1F1_int_e :: CInt -> CInt -> Double -> (Double,Double)
53hyperg_1F1_int_e m n x = createSFR "hyperg_1F1_int_e" $ gsl_sf_hyperg_1F1_int_e m n x
54foreign import ccall SAFE_CHEAP "gsl_sf_hyperg_1F1_int_e" gsl_sf_hyperg_1F1_int_e :: CInt -> CInt -> Double -> Ptr () -> IO CInt
55
56hyperg_1F1_int :: CInt -> CInt -> Double -> Double
57hyperg_1F1_int = gsl_sf_hyperg_1F1_int
58foreign import ccall SAFE_CHEAP "gsl_sf_hyperg_1F1_int" gsl_sf_hyperg_1F1_int :: CInt -> CInt -> Double -> Double
59
60hyperg_1F1_e :: Double -> Double -> Double -> (Double,Double)
61hyperg_1F1_e a b x = createSFR "hyperg_1F1_e" $ gsl_sf_hyperg_1F1_e a b x
62foreign import ccall SAFE_CHEAP "gsl_sf_hyperg_1F1_e" gsl_sf_hyperg_1F1_e :: Double -> Double -> Double -> Ptr () -> IO CInt
63
64hyperg_1F1 :: Double -> Double -> Double -> Double
65hyperg_1F1 = gsl_sf_hyperg_1F1
66foreign import ccall SAFE_CHEAP "gsl_sf_hyperg_1F1" gsl_sf_hyperg_1F1 :: Double -> Double -> Double -> Double
67
68hyperg_U_int_e :: CInt -> CInt -> Double -> (Double,Double)
69hyperg_U_int_e m n x = createSFR "hyperg_U_int_e" $ gsl_sf_hyperg_U_int_e m n x
70foreign import ccall SAFE_CHEAP "gsl_sf_hyperg_U_int_e" gsl_sf_hyperg_U_int_e :: CInt -> CInt -> Double -> Ptr () -> IO CInt
71
72hyperg_U_int :: CInt -> CInt -> Double -> Double
73hyperg_U_int = gsl_sf_hyperg_U_int
74foreign import ccall SAFE_CHEAP "gsl_sf_hyperg_U_int" gsl_sf_hyperg_U_int :: CInt -> CInt -> Double -> Double
75
76hyperg_U_int_e10_e :: CInt -> CInt -> Double -> (Double,Int,Double)
77hyperg_U_int_e10_e m n x = createSFR_E10 "hyperg_U_int_e10_e" $ gsl_sf_hyperg_U_int_e10_e m n x
78foreign import ccall SAFE_CHEAP "gsl_sf_hyperg_U_int_e10_e" gsl_sf_hyperg_U_int_e10_e :: CInt -> CInt -> Double -> Ptr () -> IO CInt
79
80hyperg_U_e :: Double -> Double -> Double -> (Double,Double)
81hyperg_U_e a b x = createSFR "hyperg_U_e" $ gsl_sf_hyperg_U_e a b x
82foreign import ccall SAFE_CHEAP "gsl_sf_hyperg_U_e" gsl_sf_hyperg_U_e :: Double -> Double -> Double -> Ptr () -> IO CInt
83
84hyperg_U :: Double -> Double -> Double -> Double
85hyperg_U = gsl_sf_hyperg_U
86foreign import ccall SAFE_CHEAP "gsl_sf_hyperg_U" gsl_sf_hyperg_U :: Double -> Double -> Double -> Double
87
88hyperg_U_e10_e :: Double -> Double -> Double -> (Double,Int,Double)
89hyperg_U_e10_e a b x = createSFR_E10 "hyperg_U_e10_e" $ gsl_sf_hyperg_U_e10_e a b x
90foreign import ccall SAFE_CHEAP "gsl_sf_hyperg_U_e10_e" gsl_sf_hyperg_U_e10_e :: Double -> Double -> Double -> Ptr () -> IO CInt
91
92hyperg_2F1_e :: Double -> Double -> Double -> Double -> (Double,Double)
93hyperg_2F1_e a b c x = createSFR "hyperg_2F1_e" $ gsl_sf_hyperg_2F1_e a b c x
94foreign import ccall SAFE_CHEAP "gsl_sf_hyperg_2F1_e" gsl_sf_hyperg_2F1_e :: Double -> Double -> Double -> Double -> Ptr () -> IO CInt
95
96hyperg_2F1 :: Double -> Double -> Double -> Double -> Double
97hyperg_2F1 = gsl_sf_hyperg_2F1
98foreign import ccall SAFE_CHEAP "gsl_sf_hyperg_2F1" gsl_sf_hyperg_2F1 :: Double -> Double -> Double -> Double -> Double
99
100hyperg_2F1_conj_e :: Double -> Double -> Double -> Double -> (Double,Double)
101hyperg_2F1_conj_e aR aI c x = createSFR "hyperg_2F1_conj_e" $ gsl_sf_hyperg_2F1_conj_e aR aI c x
102foreign import ccall SAFE_CHEAP "gsl_sf_hyperg_2F1_conj_e" gsl_sf_hyperg_2F1_conj_e :: Double -> Double -> Double -> Double -> Ptr () -> IO CInt
103
104hyperg_2F1_conj :: Double -> Double -> Double -> Double -> Double
105hyperg_2F1_conj = gsl_sf_hyperg_2F1_conj
106foreign import ccall SAFE_CHEAP "gsl_sf_hyperg_2F1_conj" gsl_sf_hyperg_2F1_conj :: Double -> Double -> Double -> Double -> Double
107
108hyperg_2F1_renorm_e :: Double -> Double -> Double -> Double -> (Double,Double)
109hyperg_2F1_renorm_e a b c x = createSFR "hyperg_2F1_renorm_e" $ gsl_sf_hyperg_2F1_renorm_e a b c x
110foreign import ccall SAFE_CHEAP "gsl_sf_hyperg_2F1_renorm_e" gsl_sf_hyperg_2F1_renorm_e :: Double -> Double -> Double -> Double -> Ptr () -> IO CInt
111
112hyperg_2F1_renorm :: Double -> Double -> Double -> Double -> Double
113hyperg_2F1_renorm = gsl_sf_hyperg_2F1_renorm
114foreign import ccall SAFE_CHEAP "gsl_sf_hyperg_2F1_renorm" gsl_sf_hyperg_2F1_renorm :: Double -> Double -> Double -> Double -> Double
115
116hyperg_2F1_conj_renorm_e :: Double -> Double -> Double -> Double -> (Double,Double)
117hyperg_2F1_conj_renorm_e aR aI c x = createSFR "hyperg_2F1_conj_renorm_e" $ gsl_sf_hyperg_2F1_conj_renorm_e aR aI c x
118foreign import ccall SAFE_CHEAP "gsl_sf_hyperg_2F1_conj_renorm_e" gsl_sf_hyperg_2F1_conj_renorm_e :: Double -> Double -> Double -> Double -> Ptr () -> IO CInt
119
120hyperg_2F1_conj_renorm :: Double -> Double -> Double -> Double -> Double
121hyperg_2F1_conj_renorm = gsl_sf_hyperg_2F1_conj_renorm
122foreign import ccall SAFE_CHEAP "gsl_sf_hyperg_2F1_conj_renorm" gsl_sf_hyperg_2F1_conj_renorm :: Double -> Double -> Double -> Double -> Double
123
124hyperg_2F0_e :: Double -> Double -> Double -> (Double,Double)
125hyperg_2F0_e a b x = createSFR "hyperg_2F0_e" $ gsl_sf_hyperg_2F0_e a b x
126foreign import ccall SAFE_CHEAP "gsl_sf_hyperg_2F0_e" gsl_sf_hyperg_2F0_e :: Double -> Double -> Double -> Ptr () -> IO CInt
127
128hyperg_2F0 :: Double -> Double -> Double -> Double
129hyperg_2F0 = gsl_sf_hyperg_2F0
130foreign import ccall SAFE_CHEAP "gsl_sf_hyperg_2F0" gsl_sf_hyperg_2F0 :: Double -> Double -> Double -> Double
diff --git a/packages/special/lib/Numeric/GSL/Special/Internal.hsc b/packages/special/lib/Numeric/GSL/Special/Internal.hsc
new file mode 100644
index 0000000..68ec2f2
--- /dev/null
+++ b/packages/special/lib/Numeric/GSL/Special/Internal.hsc
@@ -0,0 +1,102 @@
1 {-# LANGUAGE ForeignFunctionInterface #-}
2-----------------------------------------------------------------------------
3{- |
4Module : Numeric.GSL.Special.Internal
5Copyright : (c) Alberto Ruiz 2007
6License : GPL-style
7
8Maintainer : Alberto Ruiz (aruiz at um dot es)
9Stability : provisional
10Portability : uses ffi
11
12Support for Special functions.
13
14<http://www.gnu.org/software/gsl/manual/html_node/Special-Functions.html#Special-Functions>
15-}
16-----------------------------------------------------------------------------
17
18#include <gsl/gsl_sf_result.h>
19#let alignment t = "%lu", (unsigned long)offsetof(struct {char x__; t (y__); }, y__)
20
21module Numeric.GSL.Special.Internal (
22 createSFR,
23 createSFR_E10,
24 Precision(..),
25 Gsl_mode_t,
26 Size_t,
27 precCode
28)
29where
30
31import Foreign
32import Data.Packed.Development(check,(//))
33import Foreign.C.Types(CSize,CInt)
34
35
36data Precision = PrecDouble | PrecSingle | PrecApprox
37
38precCode :: Precision -> Int
39precCode PrecDouble = 0
40precCode PrecSingle = 1
41precCode PrecApprox = 2
42
43type Gsl_mode_t = Int
44
45type Size_t = CSize
46
47---------------------------------------------------
48
49data Gsl_sf_result = SF Double Double
50 deriving (Show)
51
52instance Storable Gsl_sf_result where
53 sizeOf _ = #size gsl_sf_result
54 alignment _ = #alignment gsl_sf_result
55 peek ptr = do
56 val <- (#peek gsl_sf_result, val) ptr
57 err <- (#peek gsl_sf_result, err) ptr
58 return (SF val err)
59 poke ptr (SF val err) = do
60 (#poke gsl_sf_result, val) ptr val
61 (#poke gsl_sf_result, err) ptr err
62
63
64data Gsl_sf_result_e10 = SFE Double Double CInt
65 deriving (Show)
66
67instance Storable Gsl_sf_result_e10 where
68 sizeOf _ = #size gsl_sf_result_e10
69 alignment _ = #alignment gsl_sf_result_e10
70 peek ptr = do
71 val <- (#peek gsl_sf_result_e10, val) ptr
72 err <- (#peek gsl_sf_result_e10, err) ptr
73 e10 <- (#peek gsl_sf_result_e10, e10) ptr
74 return (SFE val err e10)
75 poke ptr (SFE val err e10) = do
76 (#poke gsl_sf_result_e10, val) ptr val
77 (#poke gsl_sf_result_e10, err) ptr err
78 (#poke gsl_sf_result_e10, e10) ptr e10
79
80
81----------------------------------------------------------------
82-- | access to a sf_result
83createSFR :: String -> (Ptr a -> IO CInt) -> (Double, Double)
84createSFR s f = unsafePerformIO $ do
85 p <- malloc :: IO (Ptr Gsl_sf_result)
86 f (castPtr p) // check s
87 SF val err <- peek p
88 free p
89 return (val,err)
90
91
92---------------------------------------------------------------------
93-- the sf_result_e10 contains two doubles and the exponent
94
95-- | access to sf_result_e10
96createSFR_E10 :: String -> (Ptr a -> IO CInt) -> (Double, Int, Double)
97createSFR_E10 s f = unsafePerformIO $ do
98 p <- malloc :: IO (Ptr Gsl_sf_result_e10)
99 f (castPtr p) // check s
100 SFE val err expo <- peek p
101 free p
102 return (val, fromIntegral expo,err)
diff --git a/packages/special/lib/Numeric/GSL/Special/Laguerre.hs b/packages/special/lib/Numeric/GSL/Special/Laguerre.hs
new file mode 100644
index 0000000..8db6a6c
--- /dev/null
+++ b/packages/special/lib/Numeric/GSL/Special/Laguerre.hs
@@ -0,0 +1,60 @@
1------------------------------------------------------------
2-- |
3-- Module : Numeric.GSL.Special.Laguerre
4-- Copyright : (c) Alberto Ruiz 2006
5-- License : GPL
6-- Maintainer : Alberto Ruiz (aruiz at um dot es)
7-- Stability : provisional
8-- Portability : uses ffi
9--
10-- Wrappers for selected functions described at:
11--
12-- <http://www.google.com/search?q=gsl_sf_laguerre.h&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky>
13------------------------------------------------------------
14
15module Numeric.GSL.Special.Laguerre(
16 laguerre_1_e
17, laguerre_2_e
18, laguerre_3_e
19, laguerre_1
20, laguerre_2
21, laguerre_3
22, laguerre_n_e
23, laguerre_n
24) where
25
26import Foreign(Ptr)
27import Foreign.C.Types(CInt)
28import Numeric.GSL.Special.Internal
29
30laguerre_1_e :: Double -> Double -> (Double,Double)
31laguerre_1_e a x = createSFR "laguerre_1_e" $ gsl_sf_laguerre_1_e a x
32foreign import ccall SAFE_CHEAP "gsl_sf_laguerre_1_e" gsl_sf_laguerre_1_e :: Double -> Double -> Ptr () -> IO CInt
33
34laguerre_2_e :: Double -> Double -> (Double,Double)
35laguerre_2_e a x = createSFR "laguerre_2_e" $ gsl_sf_laguerre_2_e a x
36foreign import ccall SAFE_CHEAP "gsl_sf_laguerre_2_e" gsl_sf_laguerre_2_e :: Double -> Double -> Ptr () -> IO CInt
37
38laguerre_3_e :: Double -> Double -> (Double,Double)
39laguerre_3_e a x = createSFR "laguerre_3_e" $ gsl_sf_laguerre_3_e a x
40foreign import ccall SAFE_CHEAP "gsl_sf_laguerre_3_e" gsl_sf_laguerre_3_e :: Double -> Double -> Ptr () -> IO CInt
41
42laguerre_1 :: Double -> Double -> Double
43laguerre_1 = gsl_sf_laguerre_1
44foreign import ccall SAFE_CHEAP "gsl_sf_laguerre_1" gsl_sf_laguerre_1 :: Double -> Double -> Double
45
46laguerre_2 :: Double -> Double -> Double
47laguerre_2 = gsl_sf_laguerre_2
48foreign import ccall SAFE_CHEAP "gsl_sf_laguerre_2" gsl_sf_laguerre_2 :: Double -> Double -> Double
49
50laguerre_3 :: Double -> Double -> Double
51laguerre_3 = gsl_sf_laguerre_3
52foreign import ccall SAFE_CHEAP "gsl_sf_laguerre_3" gsl_sf_laguerre_3 :: Double -> Double -> Double
53
54laguerre_n_e :: CInt -> Double -> Double -> (Double,Double)
55laguerre_n_e n a x = createSFR "laguerre_n_e" $ gsl_sf_laguerre_n_e n a x
56foreign import ccall SAFE_CHEAP "gsl_sf_laguerre_n_e" gsl_sf_laguerre_n_e :: CInt -> Double -> Double -> Ptr () -> IO CInt
57
58laguerre_n :: CInt -> Double -> Double -> Double
59laguerre_n = gsl_sf_laguerre_n
60foreign import ccall SAFE_CHEAP "gsl_sf_laguerre_n" gsl_sf_laguerre_n :: CInt -> Double -> Double -> Double
diff --git a/packages/special/lib/Numeric/GSL/Special/Lambert.hs b/packages/special/lib/Numeric/GSL/Special/Lambert.hs
new file mode 100644
index 0000000..b229bf6
--- /dev/null
+++ b/packages/special/lib/Numeric/GSL/Special/Lambert.hs
@@ -0,0 +1,40 @@
1------------------------------------------------------------
2-- |
3-- Module : Numeric.GSL.Special.Lambert
4-- Copyright : (c) Alberto Ruiz 2006
5-- License : GPL
6-- Maintainer : Alberto Ruiz (aruiz at um dot es)
7-- Stability : provisional
8-- Portability : uses ffi
9--
10-- Wrappers for selected functions described at:
11--
12-- <http://www.google.com/search?q=gsl_sf_lambert.h&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky>
13------------------------------------------------------------
14
15module Numeric.GSL.Special.Lambert(
16 lambert_W0_e
17, lambert_W0
18, lambert_Wm1_e
19, lambert_Wm1
20) where
21
22import Foreign(Ptr)
23import Foreign.C.Types(CInt)
24import Numeric.GSL.Special.Internal
25
26lambert_W0_e :: Double -> (Double,Double)
27lambert_W0_e x = createSFR "lambert_W0_e" $ gsl_sf_lambert_W0_e x
28foreign import ccall SAFE_CHEAP "gsl_sf_lambert_W0_e" gsl_sf_lambert_W0_e :: Double -> Ptr () -> IO CInt
29
30lambert_W0 :: Double -> Double
31lambert_W0 = gsl_sf_lambert_W0
32foreign import ccall SAFE_CHEAP "gsl_sf_lambert_W0" gsl_sf_lambert_W0 :: Double -> Double
33
34lambert_Wm1_e :: Double -> (Double,Double)
35lambert_Wm1_e x = createSFR "lambert_Wm1_e" $ gsl_sf_lambert_Wm1_e x
36foreign import ccall SAFE_CHEAP "gsl_sf_lambert_Wm1_e" gsl_sf_lambert_Wm1_e :: Double -> Ptr () -> IO CInt
37
38lambert_Wm1 :: Double -> Double
39lambert_Wm1 = gsl_sf_lambert_Wm1
40foreign import ccall SAFE_CHEAP "gsl_sf_lambert_Wm1" gsl_sf_lambert_Wm1 :: Double -> Double
diff --git a/packages/special/lib/Numeric/GSL/Special/Legendre.hs b/packages/special/lib/Numeric/GSL/Special/Legendre.hs
new file mode 100644
index 0000000..e329457
--- /dev/null
+++ b/packages/special/lib/Numeric/GSL/Special/Legendre.hs
@@ -0,0 +1,233 @@
1------------------------------------------------------------
2-- |
3-- Module : Numeric.GSL.Special.Legendre
4-- Copyright : (c) Alberto Ruiz 2006
5-- License : GPL
6-- Maintainer : Alberto Ruiz (aruiz at um dot es)
7-- Stability : provisional
8-- Portability : uses ffi
9--
10-- Wrappers for selected functions described at:
11--
12-- <http://www.google.com/search?q=gsl_sf_legendre.h&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky>
13------------------------------------------------------------
14
15module Numeric.GSL.Special.Legendre(
16 legendre_Pl_e
17, legendre_Pl
18, legendre_P1_e
19, legendre_P2_e
20, legendre_P3_e
21, legendre_P1
22, legendre_P2
23, legendre_P3
24, legendre_Q0_e
25, legendre_Q0
26, legendre_Q1_e
27, legendre_Q1
28, legendre_Ql_e
29, legendre_Ql
30, legendre_Plm_e
31, legendre_Plm
32, legendre_sphPlm_e
33, legendre_sphPlm
34, legendre_array_size
35, conicalP_half_e
36, conicalP_half
37, conicalP_mhalf_e
38, conicalP_mhalf
39, conicalP_0_e
40, conicalP_0
41, conicalP_1_e
42, conicalP_1
43, conicalP_sph_reg_e
44, conicalP_sph_reg
45, conicalP_cyl_reg_e
46, conicalP_cyl_reg
47, legendre_H3d_0_e
48, legendre_H3d_0
49, legendre_H3d_1_e
50, legendre_H3d_1
51, legendre_H3d_e
52, legendre_H3d
53) where
54
55import Foreign(Ptr)
56import Foreign.C.Types(CInt)
57import Numeric.GSL.Special.Internal
58
59legendre_Pl_e :: CInt -> Double -> (Double,Double)
60legendre_Pl_e l x = createSFR "legendre_Pl_e" $ gsl_sf_legendre_Pl_e l x
61foreign import ccall SAFE_CHEAP "gsl_sf_legendre_Pl_e" gsl_sf_legendre_Pl_e :: CInt -> Double -> Ptr () -> IO CInt
62
63legendre_Pl :: CInt -> Double -> Double
64legendre_Pl = gsl_sf_legendre_Pl
65foreign import ccall SAFE_CHEAP "gsl_sf_legendre_Pl" gsl_sf_legendre_Pl :: CInt -> Double -> Double
66
67legendre_Pl_array :: CInt -> Double -> Ptr Double -> CInt
68legendre_Pl_array = gsl_sf_legendre_Pl_array
69foreign import ccall SAFE_CHEAP "gsl_sf_legendre_Pl_array" gsl_sf_legendre_Pl_array :: CInt -> Double -> Ptr Double -> CInt
70
71legendre_Pl_deriv_array :: CInt -> Double -> Ptr Double -> Ptr Double -> CInt
72legendre_Pl_deriv_array = gsl_sf_legendre_Pl_deriv_array
73foreign import ccall SAFE_CHEAP "gsl_sf_legendre_Pl_deriv_array" gsl_sf_legendre_Pl_deriv_array :: CInt -> Double -> Ptr Double -> Ptr Double -> CInt
74
75legendre_P1_e :: Double -> (Double,Double)
76legendre_P1_e x = createSFR "legendre_P1_e" $ gsl_sf_legendre_P1_e x
77foreign import ccall SAFE_CHEAP "gsl_sf_legendre_P1_e" gsl_sf_legendre_P1_e :: Double -> Ptr () -> IO CInt
78
79legendre_P2_e :: Double -> (Double,Double)
80legendre_P2_e x = createSFR "legendre_P2_e" $ gsl_sf_legendre_P2_e x
81foreign import ccall SAFE_CHEAP "gsl_sf_legendre_P2_e" gsl_sf_legendre_P2_e :: Double -> Ptr () -> IO CInt
82
83legendre_P3_e :: Double -> (Double,Double)
84legendre_P3_e x = createSFR "legendre_P3_e" $ gsl_sf_legendre_P3_e x
85foreign import ccall SAFE_CHEAP "gsl_sf_legendre_P3_e" gsl_sf_legendre_P3_e :: Double -> Ptr () -> IO CInt
86
87legendre_P1 :: Double -> Double
88legendre_P1 = gsl_sf_legendre_P1
89foreign import ccall SAFE_CHEAP "gsl_sf_legendre_P1" gsl_sf_legendre_P1 :: Double -> Double
90
91legendre_P2 :: Double -> Double
92legendre_P2 = gsl_sf_legendre_P2
93foreign import ccall SAFE_CHEAP "gsl_sf_legendre_P2" gsl_sf_legendre_P2 :: Double -> Double
94
95legendre_P3 :: Double -> Double
96legendre_P3 = gsl_sf_legendre_P3
97foreign import ccall SAFE_CHEAP "gsl_sf_legendre_P3" gsl_sf_legendre_P3 :: Double -> Double
98
99legendre_Q0_e :: Double -> (Double,Double)
100legendre_Q0_e x = createSFR "legendre_Q0_e" $ gsl_sf_legendre_Q0_e x
101foreign import ccall SAFE_CHEAP "gsl_sf_legendre_Q0_e" gsl_sf_legendre_Q0_e :: Double -> Ptr () -> IO CInt
102
103legendre_Q0 :: Double -> Double
104legendre_Q0 = gsl_sf_legendre_Q0
105foreign import ccall SAFE_CHEAP "gsl_sf_legendre_Q0" gsl_sf_legendre_Q0 :: Double -> Double
106
107legendre_Q1_e :: Double -> (Double,Double)
108legendre_Q1_e x = createSFR "legendre_Q1_e" $ gsl_sf_legendre_Q1_e x
109foreign import ccall SAFE_CHEAP "gsl_sf_legendre_Q1_e" gsl_sf_legendre_Q1_e :: Double -> Ptr () -> IO CInt
110
111legendre_Q1 :: Double -> Double
112legendre_Q1 = gsl_sf_legendre_Q1
113foreign import ccall SAFE_CHEAP "gsl_sf_legendre_Q1" gsl_sf_legendre_Q1 :: Double -> Double
114
115legendre_Ql_e :: CInt -> Double -> (Double,Double)
116legendre_Ql_e l x = createSFR "legendre_Ql_e" $ gsl_sf_legendre_Ql_e l x
117foreign import ccall SAFE_CHEAP "gsl_sf_legendre_Ql_e" gsl_sf_legendre_Ql_e :: CInt -> Double -> Ptr () -> IO CInt
118
119legendre_Ql :: CInt -> Double -> Double
120legendre_Ql = gsl_sf_legendre_Ql
121foreign import ccall SAFE_CHEAP "gsl_sf_legendre_Ql" gsl_sf_legendre_Ql :: CInt -> Double -> Double
122
123legendre_Plm_e :: CInt -> CInt -> Double -> (Double,Double)
124legendre_Plm_e l m x = createSFR "legendre_Plm_e" $ gsl_sf_legendre_Plm_e l m x
125foreign import ccall SAFE_CHEAP "gsl_sf_legendre_Plm_e" gsl_sf_legendre_Plm_e :: CInt -> CInt -> Double -> Ptr () -> IO CInt
126
127legendre_Plm :: CInt -> CInt -> Double -> Double
128legendre_Plm = gsl_sf_legendre_Plm
129foreign import ccall SAFE_CHEAP "gsl_sf_legendre_Plm" gsl_sf_legendre_Plm :: CInt -> CInt -> Double -> Double
130
131legendre_Plm_array :: CInt -> CInt -> Double -> Ptr Double -> CInt
132legendre_Plm_array = gsl_sf_legendre_Plm_array
133foreign import ccall SAFE_CHEAP "gsl_sf_legendre_Plm_array" gsl_sf_legendre_Plm_array :: CInt -> CInt -> Double -> Ptr Double -> CInt
134
135legendre_Plm_deriv_array :: CInt -> CInt -> Double -> Ptr Double -> Ptr Double -> CInt
136legendre_Plm_deriv_array = gsl_sf_legendre_Plm_deriv_array
137foreign import ccall SAFE_CHEAP "gsl_sf_legendre_Plm_deriv_array" gsl_sf_legendre_Plm_deriv_array :: CInt -> CInt -> Double -> Ptr Double -> Ptr Double -> CInt
138
139legendre_sphPlm_e :: CInt -> CInt -> Double -> (Double,Double)
140legendre_sphPlm_e l m x = createSFR "legendre_sphPlm_e" $ gsl_sf_legendre_sphPlm_e l m x
141foreign import ccall SAFE_CHEAP "gsl_sf_legendre_sphPlm_e" gsl_sf_legendre_sphPlm_e :: CInt -> CInt -> Double -> Ptr () -> IO CInt
142
143legendre_sphPlm :: CInt -> CInt -> Double -> Double
144legendre_sphPlm = gsl_sf_legendre_sphPlm
145foreign import ccall SAFE_CHEAP "gsl_sf_legendre_sphPlm" gsl_sf_legendre_sphPlm :: CInt -> CInt -> Double -> Double
146
147legendre_sphPlm_array :: CInt -> CInt -> Double -> Ptr Double -> CInt
148legendre_sphPlm_array = gsl_sf_legendre_sphPlm_array
149foreign import ccall SAFE_CHEAP "gsl_sf_legendre_sphPlm_array" gsl_sf_legendre_sphPlm_array :: CInt -> CInt -> Double -> Ptr Double -> CInt
150
151legendre_sphPlm_deriv_array :: CInt -> CInt -> Double -> Ptr Double -> Ptr Double -> CInt
152legendre_sphPlm_deriv_array = gsl_sf_legendre_sphPlm_deriv_array
153foreign import ccall SAFE_CHEAP "gsl_sf_legendre_sphPlm_deriv_array" gsl_sf_legendre_sphPlm_deriv_array :: CInt -> CInt -> Double -> Ptr Double -> Ptr Double -> CInt
154
155legendre_array_size :: CInt -> CInt -> CInt
156legendre_array_size = gsl_sf_legendre_array_size
157foreign import ccall SAFE_CHEAP "gsl_sf_legendre_array_size" gsl_sf_legendre_array_size :: CInt -> CInt -> CInt
158
159conicalP_half_e :: Double -> Double -> (Double,Double)
160conicalP_half_e lambda x = createSFR "conicalP_half_e" $ gsl_sf_conicalP_half_e lambda x
161foreign import ccall SAFE_CHEAP "gsl_sf_conicalP_half_e" gsl_sf_conicalP_half_e :: Double -> Double -> Ptr () -> IO CInt
162
163conicalP_half :: Double -> Double -> Double
164conicalP_half = gsl_sf_conicalP_half
165foreign import ccall SAFE_CHEAP "gsl_sf_conicalP_half" gsl_sf_conicalP_half :: Double -> Double -> Double
166
167conicalP_mhalf_e :: Double -> Double -> (Double,Double)
168conicalP_mhalf_e lambda x = createSFR "conicalP_mhalf_e" $ gsl_sf_conicalP_mhalf_e lambda x
169foreign import ccall SAFE_CHEAP "gsl_sf_conicalP_mhalf_e" gsl_sf_conicalP_mhalf_e :: Double -> Double -> Ptr () -> IO CInt
170
171conicalP_mhalf :: Double -> Double -> Double
172conicalP_mhalf = gsl_sf_conicalP_mhalf
173foreign import ccall SAFE_CHEAP "gsl_sf_conicalP_mhalf" gsl_sf_conicalP_mhalf :: Double -> Double -> Double
174
175conicalP_0_e :: Double -> Double -> (Double,Double)
176conicalP_0_e lambda x = createSFR "conicalP_0_e" $ gsl_sf_conicalP_0_e lambda x
177foreign import ccall SAFE_CHEAP "gsl_sf_conicalP_0_e" gsl_sf_conicalP_0_e :: Double -> Double -> Ptr () -> IO CInt
178
179conicalP_0 :: Double -> Double -> Double
180conicalP_0 = gsl_sf_conicalP_0
181foreign import ccall SAFE_CHEAP "gsl_sf_conicalP_0" gsl_sf_conicalP_0 :: Double -> Double -> Double
182
183conicalP_1_e :: Double -> Double -> (Double,Double)
184conicalP_1_e lambda x = createSFR "conicalP_1_e" $ gsl_sf_conicalP_1_e lambda x
185foreign import ccall SAFE_CHEAP "gsl_sf_conicalP_1_e" gsl_sf_conicalP_1_e :: Double -> Double -> Ptr () -> IO CInt
186
187conicalP_1 :: Double -> Double -> Double
188conicalP_1 = gsl_sf_conicalP_1
189foreign import ccall SAFE_CHEAP "gsl_sf_conicalP_1" gsl_sf_conicalP_1 :: Double -> Double -> Double
190
191conicalP_sph_reg_e :: CInt -> Double -> Double -> (Double,Double)
192conicalP_sph_reg_e l lambda x = createSFR "conicalP_sph_reg_e" $ gsl_sf_conicalP_sph_reg_e l lambda x
193foreign import ccall SAFE_CHEAP "gsl_sf_conicalP_sph_reg_e" gsl_sf_conicalP_sph_reg_e :: CInt -> Double -> Double -> Ptr () -> IO CInt
194
195conicalP_sph_reg :: CInt -> Double -> Double -> Double
196conicalP_sph_reg = gsl_sf_conicalP_sph_reg
197foreign import ccall SAFE_CHEAP "gsl_sf_conicalP_sph_reg" gsl_sf_conicalP_sph_reg :: CInt -> Double -> Double -> Double
198
199conicalP_cyl_reg_e :: CInt -> Double -> Double -> (Double,Double)
200conicalP_cyl_reg_e m lambda x = createSFR "conicalP_cyl_reg_e" $ gsl_sf_conicalP_cyl_reg_e m lambda x
201foreign import ccall SAFE_CHEAP "gsl_sf_conicalP_cyl_reg_e" gsl_sf_conicalP_cyl_reg_e :: CInt -> Double -> Double -> Ptr () -> IO CInt
202
203conicalP_cyl_reg :: CInt -> Double -> Double -> Double
204conicalP_cyl_reg = gsl_sf_conicalP_cyl_reg
205foreign import ccall SAFE_CHEAP "gsl_sf_conicalP_cyl_reg" gsl_sf_conicalP_cyl_reg :: CInt -> Double -> Double -> Double
206
207legendre_H3d_0_e :: Double -> Double -> (Double,Double)
208legendre_H3d_0_e lambda eta = createSFR "legendre_H3d_0_e" $ gsl_sf_legendre_H3d_0_e lambda eta
209foreign import ccall SAFE_CHEAP "gsl_sf_legendre_H3d_0_e" gsl_sf_legendre_H3d_0_e :: Double -> Double -> Ptr () -> IO CInt
210
211legendre_H3d_0 :: Double -> Double -> Double
212legendre_H3d_0 = gsl_sf_legendre_H3d_0
213foreign import ccall SAFE_CHEAP "gsl_sf_legendre_H3d_0" gsl_sf_legendre_H3d_0 :: Double -> Double -> Double
214
215legendre_H3d_1_e :: Double -> Double -> (Double,Double)
216legendre_H3d_1_e lambda eta = createSFR "legendre_H3d_1_e" $ gsl_sf_legendre_H3d_1_e lambda eta
217foreign import ccall SAFE_CHEAP "gsl_sf_legendre_H3d_1_e" gsl_sf_legendre_H3d_1_e :: Double -> Double -> Ptr () -> IO CInt
218
219legendre_H3d_1 :: Double -> Double -> Double
220legendre_H3d_1 = gsl_sf_legendre_H3d_1
221foreign import ccall SAFE_CHEAP "gsl_sf_legendre_H3d_1" gsl_sf_legendre_H3d_1 :: Double -> Double -> Double
222
223legendre_H3d_e :: CInt -> Double -> Double -> (Double,Double)
224legendre_H3d_e l lambda eta = createSFR "legendre_H3d_e" $ gsl_sf_legendre_H3d_e l lambda eta
225foreign import ccall SAFE_CHEAP "gsl_sf_legendre_H3d_e" gsl_sf_legendre_H3d_e :: CInt -> Double -> Double -> Ptr () -> IO CInt
226
227legendre_H3d :: CInt -> Double -> Double -> Double
228legendre_H3d = gsl_sf_legendre_H3d
229foreign import ccall SAFE_CHEAP "gsl_sf_legendre_H3d" gsl_sf_legendre_H3d :: CInt -> Double -> Double -> Double
230
231legendre_H3d_array :: CInt -> Double -> Double -> Ptr Double -> CInt
232legendre_H3d_array = gsl_sf_legendre_H3d_array
233foreign import ccall SAFE_CHEAP "gsl_sf_legendre_H3d_array" gsl_sf_legendre_H3d_array :: CInt -> Double -> Double -> Ptr Double -> CInt
diff --git a/packages/special/lib/Numeric/GSL/Special/Log.hs b/packages/special/lib/Numeric/GSL/Special/Log.hs
new file mode 100644
index 0000000..a57b67a
--- /dev/null
+++ b/packages/special/lib/Numeric/GSL/Special/Log.hs
@@ -0,0 +1,64 @@
1------------------------------------------------------------
2-- |
3-- Module : Numeric.GSL.Special.Log
4-- Copyright : (c) Alberto Ruiz 2006
5-- License : GPL
6-- Maintainer : Alberto Ruiz (aruiz at um dot es)
7-- Stability : provisional
8-- Portability : uses ffi
9--
10-- Wrappers for selected functions described at:
11--
12-- <http://www.google.com/search?q=gsl_sf_log.h&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky>
13------------------------------------------------------------
14
15module Numeric.GSL.Special.Log(
16 log_e
17, Numeric.GSL.Special.Log.log
18, log_abs_e
19, log_abs
20, log_1plusx_e
21, log_1plusx
22, log_1plusx_mx_e
23, log_1plusx_mx
24) where
25
26import Foreign(Ptr)
27import Foreign.C.Types(CInt)
28import Numeric.GSL.Special.Internal
29
30log_e :: Double -> (Double,Double)
31log_e x = createSFR "log_e" $ gsl_sf_log_e x
32foreign import ccall SAFE_CHEAP "gsl_sf_log_e" gsl_sf_log_e :: Double -> Ptr () -> IO CInt
33
34log :: Double -> Double
35log = gsl_sf_log
36foreign import ccall SAFE_CHEAP "gsl_sf_log" gsl_sf_log :: Double -> Double
37
38log_abs_e :: Double -> (Double,Double)
39log_abs_e x = createSFR "log_abs_e" $ gsl_sf_log_abs_e x
40foreign import ccall SAFE_CHEAP "gsl_sf_log_abs_e" gsl_sf_log_abs_e :: Double -> Ptr () -> IO CInt
41
42log_abs :: Double -> Double
43log_abs = gsl_sf_log_abs
44foreign import ccall SAFE_CHEAP "gsl_sf_log_abs" gsl_sf_log_abs :: Double -> Double
45
46complex_log_e :: Double -> Double -> Ptr () -> (Double,Double)
47complex_log_e zr zi lnr = createSFR "complex_log_e" $ gsl_sf_complex_log_e zr zi lnr
48foreign import ccall SAFE_CHEAP "gsl_sf_complex_log_e" gsl_sf_complex_log_e :: Double -> Double -> Ptr () -> Ptr () -> IO CInt
49
50log_1plusx_e :: Double -> (Double,Double)
51log_1plusx_e x = createSFR "log_1plusx_e" $ gsl_sf_log_1plusx_e x
52foreign import ccall SAFE_CHEAP "gsl_sf_log_1plusx_e" gsl_sf_log_1plusx_e :: Double -> Ptr () -> IO CInt
53
54log_1plusx :: Double -> Double
55log_1plusx = gsl_sf_log_1plusx
56foreign import ccall SAFE_CHEAP "gsl_sf_log_1plusx" gsl_sf_log_1plusx :: Double -> Double
57
58log_1plusx_mx_e :: Double -> (Double,Double)
59log_1plusx_mx_e x = createSFR "log_1plusx_mx_e" $ gsl_sf_log_1plusx_mx_e x
60foreign import ccall SAFE_CHEAP "gsl_sf_log_1plusx_mx_e" gsl_sf_log_1plusx_mx_e :: Double -> Ptr () -> IO CInt
61
62log_1plusx_mx :: Double -> Double
63log_1plusx_mx = gsl_sf_log_1plusx_mx
64foreign import ccall SAFE_CHEAP "gsl_sf_log_1plusx_mx" gsl_sf_log_1plusx_mx :: Double -> Double
diff --git a/packages/special/lib/Numeric/GSL/Special/Pow_int.hs b/packages/special/lib/Numeric/GSL/Special/Pow_int.hs
new file mode 100644
index 0000000..fd232ab
--- /dev/null
+++ b/packages/special/lib/Numeric/GSL/Special/Pow_int.hs
@@ -0,0 +1,30 @@
1------------------------------------------------------------
2-- |
3-- Module : Numeric.GSL.Special.Pow_int
4-- Copyright : (c) Alberto Ruiz 2006
5-- License : GPL
6-- Maintainer : Alberto Ruiz (aruiz at um dot es)
7-- Stability : provisional
8-- Portability : uses ffi
9--
10-- Wrappers for selected functions described at:
11--
12-- <http://www.google.com/search?q=gsl_sf_pow_int.h&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky>
13------------------------------------------------------------
14
15module Numeric.GSL.Special.Pow_int(
16 pow_int_e
17, pow_int
18) where
19
20import Foreign(Ptr)
21import Foreign.C.Types(CInt)
22import Numeric.GSL.Special.Internal
23
24pow_int_e :: Double -> CInt -> (Double,Double)
25pow_int_e x n = createSFR "pow_int_e" $ gsl_sf_pow_int_e x n
26foreign import ccall SAFE_CHEAP "gsl_sf_pow_int_e" gsl_sf_pow_int_e :: Double -> CInt -> Ptr () -> IO CInt
27
28pow_int :: Double -> CInt -> Double
29pow_int = gsl_sf_pow_int
30foreign import ccall SAFE_CHEAP "gsl_sf_pow_int" gsl_sf_pow_int :: Double -> CInt -> Double
diff --git a/packages/special/lib/Numeric/GSL/Special/Psi.hs b/packages/special/lib/Numeric/GSL/Special/Psi.hs
new file mode 100644
index 0000000..4655b8c
--- /dev/null
+++ b/packages/special/lib/Numeric/GSL/Special/Psi.hs
@@ -0,0 +1,84 @@
1------------------------------------------------------------
2-- |
3-- Module : Numeric.GSL.Special.Psi
4-- Copyright : (c) Alberto Ruiz 2006
5-- License : GPL
6-- Maintainer : Alberto Ruiz (aruiz at um dot es)
7-- Stability : provisional
8-- Portability : uses ffi
9--
10-- Wrappers for selected functions described at:
11--
12-- <http://www.google.com/search?q=gsl_sf_psi.h&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky>
13------------------------------------------------------------
14
15module Numeric.GSL.Special.Psi(
16 psi_int_e
17, psi_int
18, psi_e
19, psi
20, psi_1piy_e
21, psi_1piy
22, psi_1_int_e
23, psi_1_int
24, psi_1_e
25, psi_1
26, psi_n_e
27, psi_n
28) where
29
30import Foreign(Ptr)
31import Foreign.C.Types(CInt)
32import Numeric.GSL.Special.Internal
33
34psi_int_e :: CInt -> (Double,Double)
35psi_int_e n = createSFR "psi_int_e" $ gsl_sf_psi_int_e n
36foreign import ccall SAFE_CHEAP "gsl_sf_psi_int_e" gsl_sf_psi_int_e :: CInt -> Ptr () -> IO CInt
37
38psi_int :: CInt -> Double
39psi_int = gsl_sf_psi_int
40foreign import ccall SAFE_CHEAP "gsl_sf_psi_int" gsl_sf_psi_int :: CInt -> Double
41
42psi_e :: Double -> (Double,Double)
43psi_e x = createSFR "psi_e" $ gsl_sf_psi_e x
44foreign import ccall SAFE_CHEAP "gsl_sf_psi_e" gsl_sf_psi_e :: Double -> Ptr () -> IO CInt
45
46psi :: Double -> Double
47psi = gsl_sf_psi
48foreign import ccall SAFE_CHEAP "gsl_sf_psi" gsl_sf_psi :: Double -> Double
49
50psi_1piy_e :: Double -> (Double,Double)
51psi_1piy_e y = createSFR "psi_1piy_e" $ gsl_sf_psi_1piy_e y
52foreign import ccall SAFE_CHEAP "gsl_sf_psi_1piy_e" gsl_sf_psi_1piy_e :: Double -> Ptr () -> IO CInt
53
54psi_1piy :: Double -> Double
55psi_1piy = gsl_sf_psi_1piy
56foreign import ccall SAFE_CHEAP "gsl_sf_psi_1piy" gsl_sf_psi_1piy :: Double -> Double
57
58complex_psi_e :: Double -> Double -> Ptr () -> (Double,Double)
59complex_psi_e x y result_re = createSFR "complex_psi_e" $ gsl_sf_complex_psi_e x y result_re
60foreign import ccall SAFE_CHEAP "gsl_sf_complex_psi_e" gsl_sf_complex_psi_e :: Double -> Double -> Ptr () -> Ptr () -> IO CInt
61
62psi_1_int_e :: CInt -> (Double,Double)
63psi_1_int_e n = createSFR "psi_1_int_e" $ gsl_sf_psi_1_int_e n
64foreign import ccall SAFE_CHEAP "gsl_sf_psi_1_int_e" gsl_sf_psi_1_int_e :: CInt -> Ptr () -> IO CInt
65
66psi_1_int :: CInt -> Double
67psi_1_int = gsl_sf_psi_1_int
68foreign import ccall SAFE_CHEAP "gsl_sf_psi_1_int" gsl_sf_psi_1_int :: CInt -> Double
69
70psi_1_e :: Double -> (Double,Double)
71psi_1_e x = createSFR "psi_1_e" $ gsl_sf_psi_1_e x
72foreign import ccall SAFE_CHEAP "gsl_sf_psi_1_e" gsl_sf_psi_1_e :: Double -> Ptr () -> IO CInt
73
74psi_1 :: Double -> Double
75psi_1 = gsl_sf_psi_1
76foreign import ccall SAFE_CHEAP "gsl_sf_psi_1" gsl_sf_psi_1 :: Double -> Double
77
78psi_n_e :: CInt -> Double -> (Double,Double)
79psi_n_e n x = createSFR "psi_n_e" $ gsl_sf_psi_n_e n x
80foreign import ccall SAFE_CHEAP "gsl_sf_psi_n_e" gsl_sf_psi_n_e :: CInt -> Double -> Ptr () -> IO CInt
81
82psi_n :: CInt -> Double -> Double
83psi_n = gsl_sf_psi_n
84foreign import ccall SAFE_CHEAP "gsl_sf_psi_n" gsl_sf_psi_n :: CInt -> Double -> Double
diff --git a/packages/special/lib/Numeric/GSL/Special/Synchrotron.hs b/packages/special/lib/Numeric/GSL/Special/Synchrotron.hs
new file mode 100644
index 0000000..59d6c76
--- /dev/null
+++ b/packages/special/lib/Numeric/GSL/Special/Synchrotron.hs
@@ -0,0 +1,40 @@
1------------------------------------------------------------
2-- |
3-- Module : Numeric.GSL.Special.Synchrotron
4-- Copyright : (c) Alberto Ruiz 2006
5-- License : GPL
6-- Maintainer : Alberto Ruiz (aruiz at um dot es)
7-- Stability : provisional
8-- Portability : uses ffi
9--
10-- Wrappers for selected functions described at:
11--
12-- <http://www.google.com/search?q=gsl_sf_synchrotron.h&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky>
13------------------------------------------------------------
14
15module Numeric.GSL.Special.Synchrotron(
16 synchrotron_1_e
17, synchrotron_1
18, synchrotron_2_e
19, synchrotron_2
20) where
21
22import Foreign(Ptr)
23import Foreign.C.Types(CInt)
24import Numeric.GSL.Special.Internal
25
26synchrotron_1_e :: Double -> (Double,Double)
27synchrotron_1_e x = createSFR "synchrotron_1_e" $ gsl_sf_synchrotron_1_e x
28foreign import ccall SAFE_CHEAP "gsl_sf_synchrotron_1_e" gsl_sf_synchrotron_1_e :: Double -> Ptr () -> IO CInt
29
30synchrotron_1 :: Double -> Double
31synchrotron_1 = gsl_sf_synchrotron_1
32foreign import ccall SAFE_CHEAP "gsl_sf_synchrotron_1" gsl_sf_synchrotron_1 :: Double -> Double
33
34synchrotron_2_e :: Double -> (Double,Double)
35synchrotron_2_e x = createSFR "synchrotron_2_e" $ gsl_sf_synchrotron_2_e x
36foreign import ccall SAFE_CHEAP "gsl_sf_synchrotron_2_e" gsl_sf_synchrotron_2_e :: Double -> Ptr () -> IO CInt
37
38synchrotron_2 :: Double -> Double
39synchrotron_2 = gsl_sf_synchrotron_2
40foreign import ccall SAFE_CHEAP "gsl_sf_synchrotron_2" gsl_sf_synchrotron_2 :: Double -> Double
diff --git a/packages/special/lib/Numeric/GSL/Special/Transport.hs b/packages/special/lib/Numeric/GSL/Special/Transport.hs
new file mode 100644
index 0000000..e95a67a
--- /dev/null
+++ b/packages/special/lib/Numeric/GSL/Special/Transport.hs
@@ -0,0 +1,60 @@
1------------------------------------------------------------
2-- |
3-- Module : Numeric.GSL.Special.Transport
4-- Copyright : (c) Alberto Ruiz 2006
5-- License : GPL
6-- Maintainer : Alberto Ruiz (aruiz at um dot es)
7-- Stability : provisional
8-- Portability : uses ffi
9--
10-- Wrappers for selected functions described at:
11--
12-- <http://www.google.com/search?q=gsl_sf_transport.h&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky>
13------------------------------------------------------------
14
15module Numeric.GSL.Special.Transport(
16 transport_2_e
17, transport_2
18, transport_3_e
19, transport_3
20, transport_4_e
21, transport_4
22, transport_5_e
23, transport_5
24) where
25
26import Foreign(Ptr)
27import Foreign.C.Types(CInt)
28import Numeric.GSL.Special.Internal
29
30transport_2_e :: Double -> (Double,Double)
31transport_2_e x = createSFR "transport_2_e" $ gsl_sf_transport_2_e x
32foreign import ccall SAFE_CHEAP "gsl_sf_transport_2_e" gsl_sf_transport_2_e :: Double -> Ptr () -> IO CInt
33
34transport_2 :: Double -> Double
35transport_2 = gsl_sf_transport_2
36foreign import ccall SAFE_CHEAP "gsl_sf_transport_2" gsl_sf_transport_2 :: Double -> Double
37
38transport_3_e :: Double -> (Double,Double)
39transport_3_e x = createSFR "transport_3_e" $ gsl_sf_transport_3_e x
40foreign import ccall SAFE_CHEAP "gsl_sf_transport_3_e" gsl_sf_transport_3_e :: Double -> Ptr () -> IO CInt
41
42transport_3 :: Double -> Double
43transport_3 = gsl_sf_transport_3
44foreign import ccall SAFE_CHEAP "gsl_sf_transport_3" gsl_sf_transport_3 :: Double -> Double
45
46transport_4_e :: Double -> (Double,Double)
47transport_4_e x = createSFR "transport_4_e" $ gsl_sf_transport_4_e x
48foreign import ccall SAFE_CHEAP "gsl_sf_transport_4_e" gsl_sf_transport_4_e :: Double -> Ptr () -> IO CInt
49
50transport_4 :: Double -> Double
51transport_4 = gsl_sf_transport_4
52foreign import ccall SAFE_CHEAP "gsl_sf_transport_4" gsl_sf_transport_4 :: Double -> Double
53
54transport_5_e :: Double -> (Double,Double)
55transport_5_e x = createSFR "transport_5_e" $ gsl_sf_transport_5_e x
56foreign import ccall SAFE_CHEAP "gsl_sf_transport_5_e" gsl_sf_transport_5_e :: Double -> Ptr () -> IO CInt
57
58transport_5 :: Double -> Double
59transport_5 = gsl_sf_transport_5
60foreign import ccall SAFE_CHEAP "gsl_sf_transport_5" gsl_sf_transport_5 :: Double -> Double
diff --git a/packages/special/lib/Numeric/GSL/Special/Trig.hs b/packages/special/lib/Numeric/GSL/Special/Trig.hs
new file mode 100644
index 0000000..4b7ae67
--- /dev/null
+++ b/packages/special/lib/Numeric/GSL/Special/Trig.hs
@@ -0,0 +1,138 @@
1------------------------------------------------------------
2-- |
3-- Module : Numeric.GSL.Special.Trig
4-- Copyright : (c) Alberto Ruiz 2006
5-- License : GPL
6-- Maintainer : Alberto Ruiz (aruiz at um dot es)
7-- Stability : provisional
8-- Portability : uses ffi
9--
10-- Wrappers for selected functions described at:
11--
12-- <http://www.google.com/search?q=gsl_sf_trig.h&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky>
13------------------------------------------------------------
14
15module Numeric.GSL.Special.Trig(
16 sin_e
17, Numeric.GSL.Special.Trig.sin
18, cos_e
19, Numeric.GSL.Special.Trig.cos
20, hypot_e
21, hypot
22, sinc_e
23, sinc
24, lnsinh_e
25, lnsinh
26, lncosh_e
27, lncosh
28, sin_err_e
29, cos_err_e
30, angle_restrict_symm
31, angle_restrict_pos
32, angle_restrict_symm_err_e
33, angle_restrict_pos_err_e
34) where
35
36import Foreign(Ptr)
37import Foreign.C.Types(CInt)
38import Numeric.GSL.Special.Internal
39
40sin_e :: Double -> (Double,Double)
41sin_e x = createSFR "sin_e" $ gsl_sf_sin_e x
42foreign import ccall SAFE_CHEAP "gsl_sf_sin_e" gsl_sf_sin_e :: Double -> Ptr () -> IO CInt
43
44sin :: Double -> Double
45sin = gsl_sf_sin
46foreign import ccall SAFE_CHEAP "gsl_sf_sin" gsl_sf_sin :: Double -> Double
47
48cos_e :: Double -> (Double,Double)
49cos_e x = createSFR "cos_e" $ gsl_sf_cos_e x
50foreign import ccall SAFE_CHEAP "gsl_sf_cos_e" gsl_sf_cos_e :: Double -> Ptr () -> IO CInt
51
52cos :: Double -> Double
53cos = gsl_sf_cos
54foreign import ccall SAFE_CHEAP "gsl_sf_cos" gsl_sf_cos :: Double -> Double
55
56hypot_e :: Double -> Double -> (Double,Double)
57hypot_e x y = createSFR "hypot_e" $ gsl_sf_hypot_e x y
58foreign import ccall SAFE_CHEAP "gsl_sf_hypot_e" gsl_sf_hypot_e :: Double -> Double -> Ptr () -> IO CInt
59
60hypot :: Double -> Double -> Double
61hypot = gsl_sf_hypot
62foreign import ccall SAFE_CHEAP "gsl_sf_hypot" gsl_sf_hypot :: Double -> Double -> Double
63
64complex_sin_e :: Double -> Double -> Ptr () -> (Double,Double)
65complex_sin_e zr zi szr = createSFR "complex_sin_e" $ gsl_sf_complex_sin_e zr zi szr
66foreign import ccall SAFE_CHEAP "gsl_sf_complex_sin_e" gsl_sf_complex_sin_e :: Double -> Double -> Ptr () -> Ptr () -> IO CInt
67
68complex_cos_e :: Double -> Double -> Ptr () -> (Double,Double)
69complex_cos_e zr zi czr = createSFR "complex_cos_e" $ gsl_sf_complex_cos_e zr zi czr
70foreign import ccall SAFE_CHEAP "gsl_sf_complex_cos_e" gsl_sf_complex_cos_e :: Double -> Double -> Ptr () -> Ptr () -> IO CInt
71
72complex_logsin_e :: Double -> Double -> Ptr () -> (Double,Double)
73complex_logsin_e zr zi lszr = createSFR "complex_logsin_e" $ gsl_sf_complex_logsin_e zr zi lszr
74foreign import ccall SAFE_CHEAP "gsl_sf_complex_logsin_e" gsl_sf_complex_logsin_e :: Double -> Double -> Ptr () -> Ptr () -> IO CInt
75
76sinc_e :: Double -> (Double,Double)
77sinc_e x = createSFR "sinc_e" $ gsl_sf_sinc_e x
78foreign import ccall SAFE_CHEAP "gsl_sf_sinc_e" gsl_sf_sinc_e :: Double -> Ptr () -> IO CInt
79
80sinc :: Double -> Double
81sinc = gsl_sf_sinc
82foreign import ccall SAFE_CHEAP "gsl_sf_sinc" gsl_sf_sinc :: Double -> Double
83
84lnsinh_e :: Double -> (Double,Double)
85lnsinh_e x = createSFR "lnsinh_e" $ gsl_sf_lnsinh_e x
86foreign import ccall SAFE_CHEAP "gsl_sf_lnsinh_e" gsl_sf_lnsinh_e :: Double -> Ptr () -> IO CInt
87
88lnsinh :: Double -> Double
89lnsinh = gsl_sf_lnsinh
90foreign import ccall SAFE_CHEAP "gsl_sf_lnsinh" gsl_sf_lnsinh :: Double -> Double
91
92lncosh_e :: Double -> (Double,Double)
93lncosh_e x = createSFR "lncosh_e" $ gsl_sf_lncosh_e x
94foreign import ccall SAFE_CHEAP "gsl_sf_lncosh_e" gsl_sf_lncosh_e :: Double -> Ptr () -> IO CInt
95
96lncosh :: Double -> Double
97lncosh = gsl_sf_lncosh
98foreign import ccall SAFE_CHEAP "gsl_sf_lncosh" gsl_sf_lncosh :: Double -> Double
99
100polar_to_rect :: Double -> Double -> Ptr () -> (Double,Double)
101polar_to_rect r theta x = createSFR "polar_to_rect" $ gsl_sf_polar_to_rect r theta x
102foreign import ccall SAFE_CHEAP "gsl_sf_polar_to_rect" gsl_sf_polar_to_rect :: Double -> Double -> Ptr () -> Ptr () -> IO CInt
103
104rect_to_polar :: Double -> Double -> Ptr () -> (Double,Double)
105rect_to_polar x y r = createSFR "rect_to_polar" $ gsl_sf_rect_to_polar x y r
106foreign import ccall SAFE_CHEAP "gsl_sf_rect_to_polar" gsl_sf_rect_to_polar :: Double -> Double -> Ptr () -> Ptr () -> IO CInt
107
108sin_err_e :: Double -> Double -> (Double,Double)
109sin_err_e x dx = createSFR "sin_err_e" $ gsl_sf_sin_err_e x dx
110foreign import ccall SAFE_CHEAP "gsl_sf_sin_err_e" gsl_sf_sin_err_e :: Double -> Double -> Ptr () -> IO CInt
111
112cos_err_e :: Double -> Double -> (Double,Double)
113cos_err_e x dx = createSFR "cos_err_e" $ gsl_sf_cos_err_e x dx
114foreign import ccall SAFE_CHEAP "gsl_sf_cos_err_e" gsl_sf_cos_err_e :: Double -> Double -> Ptr () -> IO CInt
115
116angle_restrict_symm_e :: Ptr Double -> CInt
117angle_restrict_symm_e = gsl_sf_angle_restrict_symm_e
118foreign import ccall SAFE_CHEAP "gsl_sf_angle_restrict_symm_e" gsl_sf_angle_restrict_symm_e :: Ptr Double -> CInt
119
120angle_restrict_symm :: Double -> Double
121angle_restrict_symm = gsl_sf_angle_restrict_symm
122foreign import ccall SAFE_CHEAP "gsl_sf_angle_restrict_symm" gsl_sf_angle_restrict_symm :: Double -> Double
123
124angle_restrict_pos_e :: Ptr Double -> CInt
125angle_restrict_pos_e = gsl_sf_angle_restrict_pos_e
126foreign import ccall SAFE_CHEAP "gsl_sf_angle_restrict_pos_e" gsl_sf_angle_restrict_pos_e :: Ptr Double -> CInt
127
128angle_restrict_pos :: Double -> Double
129angle_restrict_pos = gsl_sf_angle_restrict_pos
130foreign import ccall SAFE_CHEAP "gsl_sf_angle_restrict_pos" gsl_sf_angle_restrict_pos :: Double -> Double
131
132angle_restrict_symm_err_e :: Double -> (Double,Double)
133angle_restrict_symm_err_e theta = createSFR "angle_restrict_symm_err_e" $ gsl_sf_angle_restrict_symm_err_e theta
134foreign import ccall SAFE_CHEAP "gsl_sf_angle_restrict_symm_err_e" gsl_sf_angle_restrict_symm_err_e :: Double -> Ptr () -> IO CInt
135
136angle_restrict_pos_err_e :: Double -> (Double,Double)
137angle_restrict_pos_err_e theta = createSFR "angle_restrict_pos_err_e" $ gsl_sf_angle_restrict_pos_err_e theta
138foreign import ccall SAFE_CHEAP "gsl_sf_angle_restrict_pos_err_e" gsl_sf_angle_restrict_pos_err_e :: Double -> Ptr () -> IO CInt
diff --git a/packages/special/lib/Numeric/GSL/Special/Zeta.hs b/packages/special/lib/Numeric/GSL/Special/Zeta.hs
new file mode 100644
index 0000000..930efc0
--- /dev/null
+++ b/packages/special/lib/Numeric/GSL/Special/Zeta.hs
@@ -0,0 +1,90 @@
1------------------------------------------------------------
2-- |
3-- Module : Numeric.GSL.Special.Zeta
4-- Copyright : (c) Alberto Ruiz 2006
5-- License : GPL
6-- Maintainer : Alberto Ruiz (aruiz at um dot es)
7-- Stability : provisional
8-- Portability : uses ffi
9--
10-- Wrappers for selected functions described at:
11--
12-- <http://www.google.com/search?q=gsl_sf_zeta.h&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky>
13------------------------------------------------------------
14
15module Numeric.GSL.Special.Zeta(
16 zeta_int_e
17, zeta_int
18, zeta_e
19, zeta
20, zetam1_e
21, zetam1
22, zetam1_int_e
23, zetam1_int
24, hzeta_e
25, hzeta
26, eta_int_e
27, eta_int
28, eta_e
29, eta
30) where
31
32import Foreign(Ptr)
33import Foreign.C.Types(CInt)
34import Numeric.GSL.Special.Internal
35
36zeta_int_e :: CInt -> (Double,Double)
37zeta_int_e n = createSFR "zeta_int_e" $ gsl_sf_zeta_int_e n
38foreign import ccall SAFE_CHEAP "gsl_sf_zeta_int_e" gsl_sf_zeta_int_e :: CInt -> Ptr () -> IO CInt
39
40zeta_int :: CInt -> Double
41zeta_int = gsl_sf_zeta_int
42foreign import ccall SAFE_CHEAP "gsl_sf_zeta_int" gsl_sf_zeta_int :: CInt -> Double
43
44zeta_e :: Double -> (Double,Double)
45zeta_e s = createSFR "zeta_e" $ gsl_sf_zeta_e s
46foreign import ccall SAFE_CHEAP "gsl_sf_zeta_e" gsl_sf_zeta_e :: Double -> Ptr () -> IO CInt
47
48zeta :: Double -> Double
49zeta = gsl_sf_zeta
50foreign import ccall SAFE_CHEAP "gsl_sf_zeta" gsl_sf_zeta :: Double -> Double
51
52zetam1_e :: Double -> (Double,Double)
53zetam1_e s = createSFR "zetam1_e" $ gsl_sf_zetam1_e s
54foreign import ccall SAFE_CHEAP "gsl_sf_zetam1_e" gsl_sf_zetam1_e :: Double -> Ptr () -> IO CInt
55
56zetam1 :: Double -> Double
57zetam1 = gsl_sf_zetam1
58foreign import ccall SAFE_CHEAP "gsl_sf_zetam1" gsl_sf_zetam1 :: Double -> Double
59
60zetam1_int_e :: CInt -> (Double,Double)
61zetam1_int_e s = createSFR "zetam1_int_e" $ gsl_sf_zetam1_int_e s
62foreign import ccall SAFE_CHEAP "gsl_sf_zetam1_int_e" gsl_sf_zetam1_int_e :: CInt -> Ptr () -> IO CInt
63
64zetam1_int :: CInt -> Double
65zetam1_int = gsl_sf_zetam1_int
66foreign import ccall SAFE_CHEAP "gsl_sf_zetam1_int" gsl_sf_zetam1_int :: CInt -> Double
67
68hzeta_e :: Double -> Double -> (Double,Double)
69hzeta_e s q = createSFR "hzeta_e" $ gsl_sf_hzeta_e s q
70foreign import ccall SAFE_CHEAP "gsl_sf_hzeta_e" gsl_sf_hzeta_e :: Double -> Double -> Ptr () -> IO CInt
71
72hzeta :: Double -> Double -> Double
73hzeta = gsl_sf_hzeta
74foreign import ccall SAFE_CHEAP "gsl_sf_hzeta" gsl_sf_hzeta :: Double -> Double -> Double
75
76eta_int_e :: CInt -> (Double,Double)
77eta_int_e n = createSFR "eta_int_e" $ gsl_sf_eta_int_e n
78foreign import ccall SAFE_CHEAP "gsl_sf_eta_int_e" gsl_sf_eta_int_e :: CInt -> Ptr () -> IO CInt
79
80eta_int :: CInt -> Double
81eta_int = gsl_sf_eta_int
82foreign import ccall SAFE_CHEAP "gsl_sf_eta_int" gsl_sf_eta_int :: CInt -> Double
83
84eta_e :: Double -> (Double,Double)
85eta_e s = createSFR "eta_e" $ gsl_sf_eta_e s
86foreign import ccall SAFE_CHEAP "gsl_sf_eta_e" gsl_sf_eta_e :: Double -> Ptr () -> IO CInt
87
88eta :: Double -> Double
89eta = gsl_sf_eta
90foreign import ccall SAFE_CHEAP "gsl_sf_eta" gsl_sf_eta :: Double -> Double
diff --git a/packages/special/lib/Numeric/GSL/Special/auto.hs b/packages/special/lib/Numeric/GSL/Special/auto.hs
new file mode 100644
index 0000000..b46e6c6
--- /dev/null
+++ b/packages/special/lib/Numeric/GSL/Special/auto.hs
@@ -0,0 +1,244 @@
1#!/usr/bin/env runhaskell
2
3-- automatic generation of wrappers for simple GSL special functions
4
5import Text.ParserCombinators.Parsec
6import System
7import Data.List(intersperse, isPrefixOf)
8import Data.Char(toUpper,isUpper,toLower)
9
10data Type = Normal Ident | Pointer Ident deriving (Eq, Show)
11
12type Ident = String
13
14data Header = Header Type Ident [(Type,Ident)] deriving Show
15
16headers f = case parse parseHeaders "" f of
17 Right l -> l
18 Left s -> error (show s)
19
20
21rep (c,r) [] = []
22rep (c,r) f@(x:xs)
23 | c `isPrefixOf` f = r ++ rep (c,r) (drop (length c) f)
24 | otherwise = x:(rep (c,r) xs)
25
26
27fixlong [] = []
28fixlong "\\" = []
29fixlong ('\\':'\n':xs) = xs
30fixlong (x:xs) = x : fixlong xs
31
32
33safe (Header _ _ args) = all ok args
34 || all ok (init args) && kn (last args)
35 where ok ((Normal s),_) | s `elem` ["double","float","int","gsl_mode_t"] = True
36 ok _ = False
37 kn ((Pointer "gsl_sf_result"),_) = True
38 kn ((Pointer "gsl_sf_result_e10"),_) = True
39 kn _ = False
40
41
42
43fixC s = rep ("gsl_mode_t","int") $ rep ("gsl_sf_result","double") $ rep ("gsl_sf_result_e10","double") $ s
44
45main = do
46 args <- getArgs
47 let name = args!!0
48 headerfile =
49 case args of
50 [n] -> "/usr/include/gsl/gsl_sf_"++n++".h"
51 [_,f] -> f
52 file <- readFile headerfile
53
54 putStrLn headerfile
55 --mapM_ print (headers $ fixlong file)
56 let parsed = (headers $ fixlong file)
57 -- writeFile (name ++".h") (fixC $ unlines $ map showC parsed)
58
59 --putStrLn ""
60 --mapM (\(Header _ n _) -> putStrLn (drop 7 n ++",")) parsed
61 --putStrLn ""
62 --mapM_ (putStrLn.showFull (name ++".h")) parsed
63 let exports = rep (")",") where") $ rep ("(\n","(\n ") $ rep (",\n",", ") $ unlines $ ["("]++intersperse "," (map (\(Header _ n _) -> hName n) (filter safe parsed))++[")"]
64 let defs = unlines $ map (showFull (name ++".h")) parsed
65 let imports = "\nimport Foreign(Ptr)\n"
66 ++"import Foreign.C.Types(CInt)\n"
67 ++"import Numeric.GSL.Special.Internal\n"
68 let mod = modhead name ++ "module Numeric.GSL.Special."++ upperFirst name++exports++imports++defs
69 writeFile (upperFirst name ++ ".hs") mod
70-- appendFile "funs.txt" $ rep ("(\n ","-- * "
71-- ++map toUpper name
72-- -- ++"\n"++google ( "gsl_sf_"++name++".h")++"\n"
73-- ++"\n,") $ rep (") where","") $ exports
74
75
76google name = "<http://www.google.com/search?q="
77 ++name
78 ++"&as_sitesearch=www.gnu.org/software/gsl/manual&btnI=Lucky>"
79
80modhead name = replicate 60 '-' ++ "\n-- |\n"
81 ++"-- Module : Numeric.GSL.Special."++upperFirst name++"\n"
82 ++"-- Copyright : (c) Alberto Ruiz 2006\n"
83 ++"-- License : GPL\n"
84 ++"-- Maintainer : Alberto Ruiz (aruiz at um dot es)\n"
85 ++"-- Stability : provisional\n"
86 ++"-- Portability : uses ffi\n"
87 ++"--\n"
88 ++"-- Wrappers for selected functions described at:\n--\n-- "
89 ++ google ( "gsl_sf_"++name++".h")++"\n"
90 ++ replicate 60 '-' ++ "\n\n"
91
92upperFirst (x:xs) = toUpper x : xs
93
94comment = do
95 string "/*"
96 closecomment
97 spaces
98 return "comment"
99
100closecomment = try (string "*/")
101 <|> (do anyChar
102 closecomment)
103
104ident = do
105 spaces
106 id <- many1 (noneOf "()[]* \n\t,;")
107 spaces
108 return id
109
110comment' = between (char '(') (char ')') (many $ noneOf ")")
111
112
113define = do
114 string "#"
115 closedefine
116 spaces
117 return "define"
118
119closedefine = try (string "\n")
120 <|> (do anyChar
121 closedefine)
122
123marks = do
124 try (string "__BEGIN_DECLS" >> spaces >> return "begin")
125 <|>
126 try (string "__END_DECLS" >> spaces >> return "end")
127
128
129
130irrelevant =
131 try comment
132 <|>
133 try define
134 <|>
135 marks
136
137
138parseHeaders = many parseHeader
139
140parseHeader = do
141 spaces
142 many irrelevant
143 spaces
144 (res,name) <- typ
145 spaces
146 args <- between (char '(') (char ')') (sepBy typ (char ','))
147 spaces
148 char ';'
149 spaces
150 many irrelevant
151 return $ Header res name args
152
153typ = try t1 <|> t2
154
155symbol s = spaces >> string s >> spaces
156
157t1 = do
158 t <- try (symbol "const" >> symbol "unsigned" >> ident) -- aaagh
159 <|>
160 try (symbol "const" >> ident)
161 <|>
162 try (symbol "unsigned" >> ident)
163 <|> ident
164 n <- ident
165 return (Normal t,n)
166
167t2 = do
168 t <- ident
169 spaces
170 char '*'
171 spaces
172 n <- ident
173 return (Pointer t,n)
174
175pure (Header _ _ args) | fst (last args) == Pointer "gsl_sf_result" = False
176 | fst (last args) == Pointer "gsl_sf_result_e10" = False
177 | otherwise = True
178
179showC (Header t n args) = showCt t ++ " " ++ n ++ "(" ++ (concat $ intersperse "," $ map showCa args) ++ ");"
180
181showCt (Normal s) = s
182showCt (Pointer s) = s ++ "*"
183
184showCa (t, a) = showCt t ++" "++ a
185
186showH hc h@(Header t n args) = "foreign import ccall SAFE_CHEAP \""++n++"\" "++n++" :: "++ (concat$intersperse" -> "$map showHa args) ++" -> " ++ t'
187 where t' | pure h = showHt t
188 | otherwise = "IO "++showHt t
189
190ht "int" = "CInt"
191ht (s:ss) = toUpper s : ss
192
193showHt (Normal t) = ht t
194showHt (Pointer "gsl_sf_result") = "Ptr ()"
195showHt (Pointer "gsl_sf_result_e10") = "Ptr ()"
196showHt (Pointer t) = "Ptr "++ht t
197
198showHa (t,a) = showHt t
199
200showFull hc h@(Header t n args) = -- "\n-- | wrapper for "++showC h
201 -- ++"\n--\n-- "++google n ++"\n"++
202 -- ++ "\n" ++
203 "\n" ++ boiler h ++
204 "\n" ++ showH hc h
205
206fixmd1 = rep ("Gsl_mode_t","Precision")
207fixmd2 = rep ("mode"," (precCode mode)")
208
209boiler h@(Header t n args) | fst (last args) == Pointer "gsl_sf_result" = boilerResult h
210 | fst (last args) == Pointer "gsl_sf_result_e10" = boilerResultE10 h
211 | any isMode args = boilerMode h
212 | otherwise = boilerBasic h
213
214isMode (Normal "gsl_mode_t",_) = True
215isMode _ = False
216
217hName n = f $ drop 7 n
218 where f (s:ss) = toLower s : ss
219
220
221boilerResult h@(Header t n args) =
222 hName n++" :: "++ (fixmd1 $ concat $ intersperse" -> "$ map showHa (init args)) ++" -> " ++ "(Double,Double)\n" ++
223 hName n ++ " "++ initArgs args ++
224 " = createSFR \""++ hName n ++"\" $ " ++ n ++ " "++ (fixmd2 $ initArgs args)
225
226boilerResultE10 h@(Header t n args) =
227 hName n++" :: "++ (fixmd1 $ concat $ intersperse" -> "$ map showHa (init args)) ++" -> " ++ "(Double,Int,Double)\n" ++
228 hName n ++ " "++ initArgs args ++
229 " = createSFR_E10 \""++ hName n ++"\" $ " ++ n ++ " "++ (fixmd2 $ initArgs args)
230
231boilerBasic h@(Header t n args) =
232 hName n++" :: "++ (fixmd1 $ concat $ intersperse" -> "$map showHa args) ++" -> " ++showHt t ++ "\n" ++
233 hName n ++ " = " ++fixmd2 n
234
235boilerMode h@(Header t n args) =
236 hName n++" :: "++ (fixmd1 $ concat $ intersperse" -> "$ map showHa args) ++" -> " ++ showHt t++"\n" ++
237 hName n ++ " "++ allArgs args ++
238 " = " ++ n ++ " "++ (fixmd2 $ allArgs args)
239
240cVar (v:vs) | isUpper v = toLower v : v : vs
241 | otherwise = v:vs
242
243allArgs args = unwords (map (cVar.snd) args)
244initArgs args = unwords (map (cVar.snd) (init args)) \ No newline at end of file
diff --git a/packages/special/lib/Numeric/GSL/Special/autoall.sh b/packages/special/lib/Numeric/GSL/Special/autoall.sh
new file mode 100644
index 0000000..18d0a6e
--- /dev/null
+++ b/packages/special/lib/Numeric/GSL/Special/autoall.sh
@@ -0,0 +1,45 @@
1#!/bin/bash
2
3function rep {
4 ./replace.hs "$1" "$2" < $3 > /tmp/tmp-rep
5 cp /tmp/tmp-rep $3
6}
7
8rm -f funs.txt
9
10./auto.hs airy
11rep ') where' ', Precision(..)\n) where' Airy.hs
12./auto.hs bessel
13./auto.hs clausen
14./auto.hs coulomb
15./auto.hs coupling
16rep ', coupling_6j_INCORRECT_e\n, coupling_6j_INCORRECT\n' '' Coupling.hs
17./auto.hs dawson
18./auto.hs debye
19./auto.hs dilog
20./auto.hs elementary
21./auto.hs ellint
22#./auto.hs elljac
23./auto.hs erf
24./auto.hs exp
25rep ', exp\n' ', Numeric.GSL.Special.Exp.exp\n' Exp.hs
26rep ', exprel_n_CF_e' '-- , exprel_n_CF_e' Exp.hs
27./auto.hs expint
28./auto.hs fermi_dirac
29./auto.hs gamma
30./auto.hs gegenbauer
31./auto.hs hyperg
32./auto.hs laguerre
33./auto.hs lambert
34./auto.hs legendre
35./auto.hs log
36rep ', log\n' ', Numeric.GSL.Special.Log.log\n' Log.hs
37#./auto.hs mathieu
38./auto.hs pow_int
39./auto.hs psi
40./auto.hs synchrotron
41./auto.hs transport
42./auto.hs trig
43rep ', sin\n' ', Numeric.GSL.Special.Trig.sin\n' Trig.hs
44rep ', cos\n' ', Numeric.GSL.Special.Trig.cos\n' Trig.hs
45./auto.hs zeta
diff --git a/packages/special/lib/Numeric/GSL/Special/replace.hs b/packages/special/lib/Numeric/GSL/Special/replace.hs
new file mode 100644
index 0000000..f20a6b8
--- /dev/null
+++ b/packages/special/lib/Numeric/GSL/Special/replace.hs
@@ -0,0 +1,14 @@
1#!/usr/bin/env runhaskell
2
3import Data.List(isPrefixOf)
4import System(getArgs)
5
6rep (c,r) [] = []
7rep (c,r) f@(x:xs)
8 | c `isPrefixOf` f = r ++ rep (c,r) (drop (length c) f)
9 | otherwise = x:(rep (c,r) xs)
10
11main = do
12 args <- getArgs
13 let [p',r'] = map (rep ("\\n","\n")) args
14 interact $ rep (p',r')