summaryrefslogtreecommitdiff
path: root/packages/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
parentaae45de54aca92c5f0f013e46c6d6f65508d76f5 (diff)
created package hmatrix-special
Diffstat (limited to 'packages/special')
-rw-r--r--packages/special/LICENSE2
-rw-r--r--packages/special/Setup.lhs4
-rw-r--r--packages/special/hmatrix-special.cabal74
-rw-r--r--packages/special/lib/Numeric/GSL/Special.hs76
-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
36 files changed, 3476 insertions, 0 deletions
diff --git a/packages/special/LICENSE b/packages/special/LICENSE
new file mode 100644
index 0000000..f2125ec
--- /dev/null
+++ b/packages/special/LICENSE
@@ -0,0 +1,2 @@
1Copyright Alberto Ruiz 2010
2GPL license
diff --git a/packages/special/Setup.lhs b/packages/special/Setup.lhs
new file mode 100644
index 0000000..6b32049
--- /dev/null
+++ b/packages/special/Setup.lhs
@@ -0,0 +1,4 @@
1#! /usr/bin/env runhaskell
2
3> import Distribution.Simple
4> main = defaultMain
diff --git a/packages/special/hmatrix-special.cabal b/packages/special/hmatrix-special.cabal
new file mode 100644
index 0000000..f9228ee
--- /dev/null
+++ b/packages/special/hmatrix-special.cabal
@@ -0,0 +1,74 @@
1Name: hmatrix-special
2Version: 0.1.0
3License: GPL
4License-file: LICENSE
5Author: Alberto Ruiz
6Maintainer: Alberto Ruiz <aruiz@um.es>
7Stability: experimental
8Homepage: http://code.haskell.org/hmatrix
9Synopsis: Interface to GSL special functions
10Description:
11 Interface to GSL special functions.
12
13Category: Math
14tested-with: GHC ==6.10.4
15
16cabal-version: >=1.2
17build-type: Simple
18
19extra-source-files: lib/Numeric/GSL/Special/auto.hs,
20 lib/Numeric/GSL/Special/autoall.sh,
21 lib/Numeric/GSL/Special/replace.hs
22
23flag safe-cheap
24 description: use slower non-blocking "safe" foreign calls
25 to GSL special functions.
26 default: False
27
28library
29 Build-Depends: base >= 3 && < 5, hmatrix >= 0.9
30
31 Extensions: ForeignFunctionInterface,
32 CPP
33
34 hs-source-dirs: lib
35
36 Exposed-modules: Numeric.GSL.Special,
37 Numeric.GSL.Special.Gamma,
38 Numeric.GSL.Special.Erf,
39 Numeric.GSL.Special.Airy,
40 Numeric.GSL.Special.Exp,
41 Numeric.GSL.Special.Bessel,
42 Numeric.GSL.Special.Clausen,
43 Numeric.GSL.Special.Coulomb,
44 Numeric.GSL.Special.Coupling,
45 Numeric.GSL.Special.Dawson,
46 Numeric.GSL.Special.Debye,
47 Numeric.GSL.Special.Dilog,
48 Numeric.GSL.Special.Elementary,
49 Numeric.GSL.Special.Ellint,
50 Numeric.GSL.Special.Elljac,
51 Numeric.GSL.Special.Expint,
52 Numeric.GSL.Special.Fermi_dirac,
53 Numeric.GSL.Special.Gegenbauer,
54 Numeric.GSL.Special.Hyperg,
55 Numeric.GSL.Special.Laguerre,
56 Numeric.GSL.Special.Lambert,
57 Numeric.GSL.Special.Legendre,
58 Numeric.GSL.Special.Log,
59 Numeric.GSL.Special.Pow_int,
60 Numeric.GSL.Special.Psi,
61 Numeric.GSL.Special.Synchrotron,
62 Numeric.GSL.Special.Transport,
63 Numeric.GSL.Special.Trig,
64 Numeric.GSL.Special.Zeta
65
66 other-modules: Numeric.GSL.Special.Internal
67
68 ghc-options: -Wall -fno-warn-unused-binds
69
70 if flag(safe-cheap)
71 cpp-options: -DSAFE_CHEAP=safe
72 else
73 cpp-options: -DSAFE_CHEAP=unsafe
74
diff --git a/packages/special/lib/Numeric/GSL/Special.hs b/packages/special/lib/Numeric/GSL/Special.hs
new file mode 100644
index 0000000..a8bbaf6
--- /dev/null
+++ b/packages/special/lib/Numeric/GSL/Special.hs
@@ -0,0 +1,76 @@
1-----------------------------------------------------------------------------
2{- |
3Module : Numeric.GSL.Special
4Copyright : (c) Alberto Ruiz 2006
5License : GPL-style
6
7Maintainer : Alberto Ruiz (aruiz at um dot es)
8Stability : provisional
9Portability : uses ffi
10
11Wrappers for selected special functions.
12
13<http://www.gnu.org/software/gsl/manual/html_node/Special-Functions.html#Special-Functions>
14-}
15-----------------------------------------------------------------------------
16
17module Numeric.GSL.Special (
18 module Numeric.GSL.Special.Airy
19, module Numeric.GSL.Special.Bessel
20, module Numeric.GSL.Special.Clausen
21, module Numeric.GSL.Special.Coulomb
22, module Numeric.GSL.Special.Coupling
23, module Numeric.GSL.Special.Dawson
24, module Numeric.GSL.Special.Debye
25, module Numeric.GSL.Special.Dilog
26, module Numeric.GSL.Special.Elementary
27, module Numeric.GSL.Special.Ellint
28, module Numeric.GSL.Special.Elljac
29, module Numeric.GSL.Special.Erf
30, module Numeric.GSL.Special.Exp
31, module Numeric.GSL.Special.Expint
32, module Numeric.GSL.Special.Fermi_dirac
33, module Numeric.GSL.Special.Gamma
34, module Numeric.GSL.Special.Gegenbauer
35, module Numeric.GSL.Special.Hyperg
36, module Numeric.GSL.Special.Laguerre
37, module Numeric.GSL.Special.Lambert
38, module Numeric.GSL.Special.Legendre
39, module Numeric.GSL.Special.Log
40, module Numeric.GSL.Special.Pow_int
41, module Numeric.GSL.Special.Psi
42, module Numeric.GSL.Special.Synchrotron
43, module Numeric.GSL.Special.Transport
44, module Numeric.GSL.Special.Trig
45, module Numeric.GSL.Special.Zeta
46)
47where
48
49import Numeric.GSL.Special.Airy
50import Numeric.GSL.Special.Bessel
51import Numeric.GSL.Special.Clausen
52import Numeric.GSL.Special.Coulomb
53import Numeric.GSL.Special.Coupling
54import Numeric.GSL.Special.Dawson
55import Numeric.GSL.Special.Debye
56import Numeric.GSL.Special.Dilog
57import Numeric.GSL.Special.Elementary
58import Numeric.GSL.Special.Ellint
59import Numeric.GSL.Special.Elljac
60import Numeric.GSL.Special.Erf
61import Numeric.GSL.Special.Exp
62import Numeric.GSL.Special.Expint
63import Numeric.GSL.Special.Fermi_dirac
64import Numeric.GSL.Special.Gamma
65import Numeric.GSL.Special.Gegenbauer
66import Numeric.GSL.Special.Hyperg
67import Numeric.GSL.Special.Laguerre
68import Numeric.GSL.Special.Lambert
69import Numeric.GSL.Special.Legendre
70import Numeric.GSL.Special.Log
71import Numeric.GSL.Special.Pow_int
72import Numeric.GSL.Special.Psi
73import Numeric.GSL.Special.Synchrotron
74import Numeric.GSL.Special.Transport
75import Numeric.GSL.Special.Trig
76import Numeric.GSL.Special.Zeta
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')