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