summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAlberto Ruiz <aruiz@um.es>2007-07-29 15:43:21 +0000
committerAlberto Ruiz <aruiz@um.es>2007-07-29 15:43:21 +0000
commitb9db4d25d87cd4ab0f493413db92fb41b7eacda9 (patch)
treea447fe6f7e16b3768e912064a033ce257040720e /lib
parentb1b908c10ad7a393200651b4b23fc0b26efbc1b9 (diff)
more automatic wrappers for simple special functions
Diffstat (limited to 'lib')
-rw-r--r--lib/GSL.hs2
-rw-r--r--lib/GSL/Special.hs63
-rw-r--r--lib/GSL/Special/Clausen.hs31
-rw-r--r--lib/GSL/Special/Coulomb.hs79
-rw-r--r--lib/GSL/Special/Coupling.hs79
-rw-r--r--lib/GSL/Special/Dawson.hs31
-rw-r--r--lib/GSL/Special/Debye.hs67
-rw-r--r--lib/GSL/Special/Dilog.hs46
-rw-r--r--lib/GSL/Special/Elementary.hs37
-rw-r--r--lib/GSL/Special/Ellint.hs139
-rw-r--r--lib/GSL/Special/Expint.hs163
-rw-r--r--lib/GSL/Special/Fermi_dirac.hs127
-rw-r--r--lib/GSL/Special/Gegenbauer.hs72
-rw-r--r--lib/GSL/Special/Hyperg.hs151
-rw-r--r--lib/GSL/Special/Laguerre.hs67
-rw-r--r--lib/GSL/Special/Lambert.hs43
-rw-r--r--lib/GSL/Special/Log.hs72
-rw-r--r--lib/GSL/Special/Pow_int.hs31
-rw-r--r--lib/GSL/Special/Psi.hs91
-rw-r--r--lib/GSL/Special/Synchrotron.hs43
-rw-r--r--lib/GSL/Special/Trig.hs162
-rw-r--r--lib/GSL/Special/Zeta.hs103
-rw-r--r--lib/GSL/Special/auto.hs35
-rw-r--r--lib/GSL/Special/clausen.h2
-rw-r--r--lib/GSL/Special/coulomb.h11
-rw-r--r--lib/GSL/Special/coupling.h10
-rw-r--r--lib/GSL/Special/dawson.h2
-rw-r--r--lib/GSL/Special/debye.h8
-rw-r--r--lib/GSL/Special/dilog.h5
-rw-r--r--lib/GSL/Special/elementary.h3
-rw-r--r--lib/GSL/Special/ellint.h20
-rw-r--r--lib/GSL/Special/expint.h24
-rw-r--r--lib/GSL/Special/fermi_dirac.h18
-rw-r--r--lib/GSL/Special/gegenbauer.h9
-rw-r--r--lib/GSL/Special/gsl_sf_exp.h146
-rw-r--r--lib/GSL/Special/gsl_sf_log.h90
-rw-r--r--lib/GSL/Special/hyperg.h22
-rw-r--r--lib/GSL/Special/laguerre.h8
-rw-r--r--lib/GSL/Special/lambert.h4
-rw-r--r--lib/GSL/Special/log.h9
-rw-r--r--lib/GSL/Special/manual.txt10
-rw-r--r--lib/GSL/Special/pow_int.h2
-rw-r--r--lib/GSL/Special/psi.h12
-rw-r--r--lib/GSL/Special/synchrotron.h4
-rw-r--r--lib/GSL/Special/trig.h25
-rw-r--r--lib/GSL/Special/zeta.h14
46 files changed, 2168 insertions, 24 deletions
diff --git a/lib/GSL.hs b/lib/GSL.hs
index 49c5406..23865b0 100644
--- a/lib/GSL.hs
+++ b/lib/GSL.hs
@@ -33,7 +33,7 @@ module Complex
33) where 33) where
34 34
35import Data.Packed.Vector hiding (constant) 35import Data.Packed.Vector hiding (constant)
36import Data.Packed.Matrix hiding ((><)) 36import Data.Packed.Matrix hiding ((><), multiply)
37import Data.Packed.Tensor 37import Data.Packed.Tensor
38import LinearAlgebra.Algorithms hiding (pnorm) 38import LinearAlgebra.Algorithms hiding (pnorm)
39import LAPACK 39import LAPACK
diff --git a/lib/GSL/Special.hs b/lib/GSL/Special.hs
index 8124055..e9c1798 100644
--- a/lib/GSL/Special.hs
+++ b/lib/GSL/Special.hs
@@ -16,21 +16,64 @@ Wrappers for selected special functions.
16----------------------------------------------------------------------------- 16-----------------------------------------------------------------------------
17 17
18module GSL.Special ( 18module GSL.Special (
19 module GSL.Special.Airy, 19 module GSL.Special.Airy
20 module GSL.Special.Bessel, 20, module GSL.Special.Bessel
21 module GSL.Special.Erf, 21, module GSL.Special.Clausen
22 module GSL.Special.Exp, 22, module GSL.Special.Coulomb
23 module GSL.Special.Gamma 23, module GSL.Special.Coupling
24, module GSL.Special.Dawson
25, module GSL.Special.Debye
26, module GSL.Special.Dilog
27, module GSL.Special.Elementary
28, module GSL.Special.Ellint
29, module GSL.Special.Erf
30, module GSL.Special.Exp
31, module GSL.Special.Expint
32, module GSL.Special.Fermi_dirac
33, module GSL.Special.Gamma
34, module GSL.Special.Gegenbauer
35, module GSL.Special.Hyperg
36, module GSL.Special.Internal
37, module GSL.Special.Laguerre
38, module GSL.Special.Lambert
39, module GSL.Special.Log
40, module GSL.Special.Pow_int
41, module GSL.Special.Psi
42, module GSL.Special.Synchrotron
43, module GSL.Special.Trig
44, module GSL.Special.Zeta
24) 45)
25where 46where
26 47
27import Foreign 48import Foreign
28import GSL.Special.Internal 49import GSL.Special.Internal
29import GSL.Special.Gamma 50import GSL.Special.Airy hiding (Precision(..))
30import GSL.Special.Erf 51import GSL.Special.Bessel
31import GSL.Special.Exp 52import GSL.Special.Clausen
32import GSL.Special.Airy 53import GSL.Special.Coulomb
33import GSL.Special.Bessel 54import GSL.Special.Coupling
55import GSL.Special.Dawson
56import GSL.Special.Debye
57import GSL.Special.Dilog
58import GSL.Special.Elementary
59import GSL.Special.Ellint
60import GSL.Special.Erf
61import GSL.Special.Exp
62import GSL.Special.Expint
63import GSL.Special.Fermi_dirac
64import GSL.Special.Gamma
65import GSL.Special.Gegenbauer
66import GSL.Special.Hyperg
67import GSL.Special.Internal
68import GSL.Special.Laguerre
69import GSL.Special.Lambert
70import GSL.Special.Log
71import GSL.Special.Pow_int
72import GSL.Special.Psi
73import GSL.Special.Synchrotron
74import GSL.Special.Trig
75import GSL.Special.Zeta
76
34 77
35-------------------- simple functions -------------------------- 78-------------------- simple functions --------------------------
36 79
diff --git a/lib/GSL/Special/Clausen.hs b/lib/GSL/Special/Clausen.hs
new file mode 100644
index 0000000..9089499
--- /dev/null
+++ b/lib/GSL/Special/Clausen.hs
@@ -0,0 +1,31 @@
1------------------------------------------------------------
2{- |
3Module : GSL.Special.Clausen
4Copyright : (c) Alberto Ruiz 2006
5License : GPL-style
6Maintainer : Alberto Ruiz (aruiz at um dot es)
7Stability : provisional
8Portability : uses ffi
9
10
11
12-}
13------------------------------------------------------------
14
15module GSL.Special.Clausen(
16 clausen_e
17, clausen
18) where
19
20import Foreign(Ptr)
21import GSL.Special.Internal
22
23-- | wrapper for int gsl_sf_clausen_e(double x,gsl_sf_result* result);
24clausen_e :: Double -> (Double,Double)
25clausen_e x = createSFR "clausen_e" $ gsl_sf_clausen_e x
26foreign import ccall "clausen.h gsl_sf_clausen_e" gsl_sf_clausen_e :: Double -> Ptr Double -> IO(Int)
27
28-- | wrapper for double gsl_sf_clausen(double x);
29clausen :: Double -> Double
30clausen = gsl_sf_clausen
31foreign import ccall "clausen.h gsl_sf_clausen" gsl_sf_clausen :: Double -> Double
diff --git a/lib/GSL/Special/Coulomb.hs b/lib/GSL/Special/Coulomb.hs
new file mode 100644
index 0000000..df3b8a4
--- /dev/null
+++ b/lib/GSL/Special/Coulomb.hs
@@ -0,0 +1,79 @@
1------------------------------------------------------------
2{- |
3Module : GSL.Special.Coulomb
4Copyright : (c) Alberto Ruiz 2006
5License : GPL-style
6Maintainer : Alberto Ruiz (aruiz at um dot es)
7Stability : provisional
8Portability : uses ffi
9
10
11
12-}
13------------------------------------------------------------
14
15module GSL.Special.Coulomb(
16 hydrogenicR_1_e
17, hydrogenicR_1
18, hydrogenicR_e
19, hydrogenicR
20, coulomb_CL_e
21) where
22
23import Foreign(Ptr)
24import GSL.Special.Internal
25
26-- | wrapper for int gsl_sf_hydrogenicR_1_e(double Z,double r,gsl_sf_result* result);
27hydrogenicR_1_e :: Double -> Double -> (Double,Double)
28hydrogenicR_1_e zZ r = createSFR "hydrogenicR_1_e" $ gsl_sf_hydrogenicR_1_e zZ r
29foreign import ccall "coulomb.h gsl_sf_hydrogenicR_1_e" gsl_sf_hydrogenicR_1_e :: Double -> Double -> Ptr Double -> IO(Int)
30
31-- | wrapper for double gsl_sf_hydrogenicR_1(double Z,double r);
32hydrogenicR_1 :: Double -> Double -> Double
33hydrogenicR_1 = gsl_sf_hydrogenicR_1
34foreign import ccall "coulomb.h gsl_sf_hydrogenicR_1" gsl_sf_hydrogenicR_1 :: Double -> Double -> Double
35
36-- | wrapper for int gsl_sf_hydrogenicR_e(int n,int l,double Z,double r,gsl_sf_result* result);
37hydrogenicR_e :: Int -> Int -> Double -> Double -> (Double,Double)
38hydrogenicR_e n l zZ r = createSFR "hydrogenicR_e" $ gsl_sf_hydrogenicR_e n l zZ r
39foreign import ccall "coulomb.h gsl_sf_hydrogenicR_e" gsl_sf_hydrogenicR_e :: Int -> Int -> Double -> Double -> Ptr Double -> IO(Int)
40
41-- | wrapper for double gsl_sf_hydrogenicR(int n,int l,double Z,double r);
42hydrogenicR :: Int -> Int -> Double -> Double -> Double
43hydrogenicR = gsl_sf_hydrogenicR
44foreign import ccall "coulomb.h gsl_sf_hydrogenicR" gsl_sf_hydrogenicR :: Int -> Int -> Double -> Double -> Double
45
46-- | wrapper for int gsl_sf_coulomb_wave_FG_e(double eta,double x,double lam_F,int k_lam_G,gsl_sf_result* F,gsl_sf_result* Fp,gsl_sf_result* G,gsl_sf_result* Gp,double* exp_F,double* exp_G);
47coulomb_wave_FG_e :: Double -> Double -> Double -> Int -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Int
48coulomb_wave_FG_e = gsl_sf_coulomb_wave_FG_e
49foreign import ccall "coulomb.h gsl_sf_coulomb_wave_FG_e" gsl_sf_coulomb_wave_FG_e :: Double -> Double -> Double -> Int -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Int
50
51-- | wrapper for int gsl_sf_coulomb_wave_F_array(double lam_min,int kmax,double eta,double x,double* fc_array,double* F_exponent);
52coulomb_wave_F_array :: Double -> Int -> Double -> Double -> Ptr Double -> Ptr Double -> Int
53coulomb_wave_F_array = gsl_sf_coulomb_wave_F_array
54foreign import ccall "coulomb.h gsl_sf_coulomb_wave_F_array" gsl_sf_coulomb_wave_F_array :: Double -> Int -> Double -> Double -> Ptr Double -> Ptr Double -> Int
55
56-- | wrapper for int gsl_sf_coulomb_wave_FG_array(double lam_min,int kmax,double eta,double x,double* fc_array,double* gc_array,double* F_exponent,double* G_exponent);
57coulomb_wave_FG_array :: Double -> Int -> Double -> Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Int
58coulomb_wave_FG_array = gsl_sf_coulomb_wave_FG_array
59foreign import ccall "coulomb.h gsl_sf_coulomb_wave_FG_array" gsl_sf_coulomb_wave_FG_array :: Double -> Int -> Double -> Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Int
60
61-- | wrapper for int gsl_sf_coulomb_wave_FGp_array(double lam_min,int kmax,double eta,double x,double* fc_array,double* fcp_array,double* gc_array,double* gcp_array,double* F_exponent,double* G_exponent);
62coulomb_wave_FGp_array :: Double -> Int -> Double -> Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Int
63coulomb_wave_FGp_array = gsl_sf_coulomb_wave_FGp_array
64foreign import ccall "coulomb.h gsl_sf_coulomb_wave_FGp_array" gsl_sf_coulomb_wave_FGp_array :: Double -> Int -> Double -> Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Int
65
66-- | wrapper for int gsl_sf_coulomb_wave_sphF_array(double lam_min,int kmax,double eta,double x,double* fc_array,double* F_exponent);
67coulomb_wave_sphF_array :: Double -> Int -> Double -> Double -> Ptr Double -> Ptr Double -> Int
68coulomb_wave_sphF_array = gsl_sf_coulomb_wave_sphF_array
69foreign import ccall "coulomb.h gsl_sf_coulomb_wave_sphF_array" gsl_sf_coulomb_wave_sphF_array :: Double -> Int -> Double -> Double -> Ptr Double -> Ptr Double -> Int
70
71-- | wrapper for int gsl_sf_coulomb_CL_e(double L,double eta,gsl_sf_result* result);
72coulomb_CL_e :: Double -> Double -> (Double,Double)
73coulomb_CL_e lL eta = createSFR "coulomb_CL_e" $ gsl_sf_coulomb_CL_e lL eta
74foreign import ccall "coulomb.h gsl_sf_coulomb_CL_e" gsl_sf_coulomb_CL_e :: Double -> Double -> Ptr Double -> IO(Int)
75
76-- | wrapper for int gsl_sf_coulomb_CL_array(double Lmin,int kmax,double eta,double* cl);
77coulomb_CL_array :: Double -> Int -> Double -> Ptr Double -> Int
78coulomb_CL_array = gsl_sf_coulomb_CL_array
79foreign import ccall "coulomb.h gsl_sf_coulomb_CL_array" gsl_sf_coulomb_CL_array :: Double -> Int -> Double -> Ptr Double -> Int
diff --git a/lib/GSL/Special/Coupling.hs b/lib/GSL/Special/Coupling.hs
new file mode 100644
index 0000000..e57108b
--- /dev/null
+++ b/lib/GSL/Special/Coupling.hs
@@ -0,0 +1,79 @@
1------------------------------------------------------------
2{- |
3Module : GSL.Special.Coupling
4Copyright : (c) Alberto Ruiz 2006
5License : GPL-style
6Maintainer : Alberto Ruiz (aruiz at um dot es)
7Stability : provisional
8Portability : uses ffi
9
10
11
12-}
13------------------------------------------------------------
14
15module 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-- , coupling_6j_INCORRECT_e
25-- , coupling_6j_INCORRECT
26) where
27
28import Foreign(Ptr)
29import GSL.Special.Internal
30
31-- | wrapper for int gsl_sf_coupling_3j_e(int two_ja,int two_jb,int two_jc,int two_ma,int two_mb,int two_mc,gsl_sf_result* result);
32coupling_3j_e :: Int -> Int -> Int -> Int -> Int -> Int -> (Double,Double)
33coupling_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
34foreign import ccall "coupling.h gsl_sf_coupling_3j_e" gsl_sf_coupling_3j_e :: Int -> Int -> Int -> Int -> Int -> Int -> Ptr Double -> IO(Int)
35
36-- | wrapper for double gsl_sf_coupling_3j(int two_ja,int two_jb,int two_jc,int two_ma,int two_mb,int two_mc);
37coupling_3j :: Int -> Int -> Int -> Int -> Int -> Int -> Double
38coupling_3j = gsl_sf_coupling_3j
39foreign import ccall "coupling.h gsl_sf_coupling_3j" gsl_sf_coupling_3j :: Int -> Int -> Int -> Int -> Int -> Int -> Double
40
41-- | wrapper for int gsl_sf_coupling_6j_e(int two_ja,int two_jb,int two_jc,int two_jd,int two_je,int two_jf,gsl_sf_result* result);
42coupling_6j_e :: Int -> Int -> Int -> Int -> Int -> Int -> (Double,Double)
43coupling_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
44foreign import ccall "coupling.h gsl_sf_coupling_6j_e" gsl_sf_coupling_6j_e :: Int -> Int -> Int -> Int -> Int -> Int -> Ptr Double -> IO(Int)
45
46-- | wrapper for double gsl_sf_coupling_6j(int two_ja,int two_jb,int two_jc,int two_jd,int two_je,int two_jf);
47coupling_6j :: Int -> Int -> Int -> Int -> Int -> Int -> Double
48coupling_6j = gsl_sf_coupling_6j
49foreign import ccall "coupling.h gsl_sf_coupling_6j" gsl_sf_coupling_6j :: Int -> Int -> Int -> Int -> Int -> Int -> Double
50
51-- | wrapper for int gsl_sf_coupling_RacahW_e(int two_ja,int two_jb,int two_jc,int two_jd,int two_je,int two_jf,gsl_sf_result* result);
52coupling_RacahW_e :: Int -> Int -> Int -> Int -> Int -> Int -> (Double,Double)
53coupling_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
54foreign import ccall "coupling.h gsl_sf_coupling_RacahW_e" gsl_sf_coupling_RacahW_e :: Int -> Int -> Int -> Int -> Int -> Int -> Ptr Double -> IO(Int)
55
56-- | wrapper for double gsl_sf_coupling_RacahW(int two_ja,int two_jb,int two_jc,int two_jd,int two_je,int two_jf);
57coupling_RacahW :: Int -> Int -> Int -> Int -> Int -> Int -> Double
58coupling_RacahW = gsl_sf_coupling_RacahW
59foreign import ccall "coupling.h gsl_sf_coupling_RacahW" gsl_sf_coupling_RacahW :: Int -> Int -> Int -> Int -> Int -> Int -> Double
60
61-- | wrapper for int gsl_sf_coupling_9j_e(int two_ja,int two_jb,int two_jc,int two_jd,int two_je,int two_jf,int two_jg,int two_jh,int two_ji,gsl_sf_result* result);
62coupling_9j_e :: Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> (Double,Double)
63coupling_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
64foreign import ccall "coupling.h gsl_sf_coupling_9j_e" gsl_sf_coupling_9j_e :: Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Ptr Double -> IO(Int)
65
66-- | wrapper for double gsl_sf_coupling_9j(int two_ja,int two_jb,int two_jc,int two_jd,int two_je,int two_jf,int two_jg,int two_jh,int two_ji);
67coupling_9j :: Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Double
68coupling_9j = gsl_sf_coupling_9j
69foreign import ccall "coupling.h gsl_sf_coupling_9j" gsl_sf_coupling_9j :: Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Double
70
71-- | wrapper for int gsl_sf_coupling_6j_INCORRECT_e(int two_ja,int two_jb,int two_jc,int two_jd,int two_je,int two_jf,gsl_sf_result* result);
72coupling_6j_INCORRECT_e :: Int -> Int -> Int -> Int -> Int -> Int -> (Double,Double)
73coupling_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
74foreign import ccall "coupling.h gsl_sf_coupling_6j_INCORRECT_e" gsl_sf_coupling_6j_INCORRECT_e :: Int -> Int -> Int -> Int -> Int -> Int -> Ptr Double -> IO(Int)
75
76-- | wrapper for double gsl_sf_coupling_6j_INCORRECT(int two_ja,int two_jb,int two_jc,int two_jd,int two_je,int two_jf);
77coupling_6j_INCORRECT :: Int -> Int -> Int -> Int -> Int -> Int -> Double
78coupling_6j_INCORRECT = gsl_sf_coupling_6j_INCORRECT
79foreign import ccall "coupling.h gsl_sf_coupling_6j_INCORRECT" gsl_sf_coupling_6j_INCORRECT :: Int -> Int -> Int -> Int -> Int -> Int -> Double
diff --git a/lib/GSL/Special/Dawson.hs b/lib/GSL/Special/Dawson.hs
new file mode 100644
index 0000000..62d0baf
--- /dev/null
+++ b/lib/GSL/Special/Dawson.hs
@@ -0,0 +1,31 @@
1------------------------------------------------------------
2{- |
3Module : GSL.Special.Dawson
4Copyright : (c) Alberto Ruiz 2006
5License : GPL-style
6Maintainer : Alberto Ruiz (aruiz at um dot es)
7Stability : provisional
8Portability : uses ffi
9
10
11
12-}
13------------------------------------------------------------
14
15module GSL.Special.Dawson(
16 dawson_e
17, dawson
18) where
19
20import Foreign(Ptr)
21import GSL.Special.Internal
22
23-- | wrapper for int gsl_sf_dawson_e(double x,gsl_sf_result* result);
24dawson_e :: Double -> (Double,Double)
25dawson_e x = createSFR "dawson_e" $ gsl_sf_dawson_e x
26foreign import ccall "dawson.h gsl_sf_dawson_e" gsl_sf_dawson_e :: Double -> Ptr Double -> IO(Int)
27
28-- | wrapper for double gsl_sf_dawson(double x);
29dawson :: Double -> Double
30dawson = gsl_sf_dawson
31foreign import ccall "dawson.h gsl_sf_dawson" gsl_sf_dawson :: Double -> Double
diff --git a/lib/GSL/Special/Debye.hs b/lib/GSL/Special/Debye.hs
new file mode 100644
index 0000000..aa0bd89
--- /dev/null
+++ b/lib/GSL/Special/Debye.hs
@@ -0,0 +1,67 @@
1------------------------------------------------------------
2{- |
3Module : GSL.Special.Debye
4Copyright : (c) Alberto Ruiz 2006
5License : GPL-style
6Maintainer : Alberto Ruiz (aruiz at um dot es)
7Stability : provisional
8Portability : uses ffi
9
10
11
12-}
13------------------------------------------------------------
14
15module 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) where
25
26import Foreign(Ptr)
27import GSL.Special.Internal
28
29-- | wrapper for int gsl_sf_debye_1_e(double x,gsl_sf_result* result);
30debye_1_e :: Double -> (Double,Double)
31debye_1_e x = createSFR "debye_1_e" $ gsl_sf_debye_1_e x
32foreign import ccall "debye.h gsl_sf_debye_1_e" gsl_sf_debye_1_e :: Double -> Ptr Double -> IO(Int)
33
34-- | wrapper for double gsl_sf_debye_1(double x);
35debye_1 :: Double -> Double
36debye_1 = gsl_sf_debye_1
37foreign import ccall "debye.h gsl_sf_debye_1" gsl_sf_debye_1 :: Double -> Double
38
39-- | wrapper for int gsl_sf_debye_2_e(double x,gsl_sf_result* result);
40debye_2_e :: Double -> (Double,Double)
41debye_2_e x = createSFR "debye_2_e" $ gsl_sf_debye_2_e x
42foreign import ccall "debye.h gsl_sf_debye_2_e" gsl_sf_debye_2_e :: Double -> Ptr Double -> IO(Int)
43
44-- | wrapper for double gsl_sf_debye_2(double x);
45debye_2 :: Double -> Double
46debye_2 = gsl_sf_debye_2
47foreign import ccall "debye.h gsl_sf_debye_2" gsl_sf_debye_2 :: Double -> Double
48
49-- | wrapper for int gsl_sf_debye_3_e(double x,gsl_sf_result* result);
50debye_3_e :: Double -> (Double,Double)
51debye_3_e x = createSFR "debye_3_e" $ gsl_sf_debye_3_e x
52foreign import ccall "debye.h gsl_sf_debye_3_e" gsl_sf_debye_3_e :: Double -> Ptr Double -> IO(Int)
53
54-- | wrapper for double gsl_sf_debye_3(double x);
55debye_3 :: Double -> Double
56debye_3 = gsl_sf_debye_3
57foreign import ccall "debye.h gsl_sf_debye_3" gsl_sf_debye_3 :: Double -> Double
58
59-- | wrapper for int gsl_sf_debye_4_e(double x,gsl_sf_result* result);
60debye_4_e :: Double -> (Double,Double)
61debye_4_e x = createSFR "debye_4_e" $ gsl_sf_debye_4_e x
62foreign import ccall "debye.h gsl_sf_debye_4_e" gsl_sf_debye_4_e :: Double -> Ptr Double -> IO(Int)
63
64-- | wrapper for double gsl_sf_debye_4(double x);
65debye_4 :: Double -> Double
66debye_4 = gsl_sf_debye_4
67foreign import ccall "debye.h gsl_sf_debye_4" gsl_sf_debye_4 :: Double -> Double
diff --git a/lib/GSL/Special/Dilog.hs b/lib/GSL/Special/Dilog.hs
new file mode 100644
index 0000000..199095a
--- /dev/null
+++ b/lib/GSL/Special/Dilog.hs
@@ -0,0 +1,46 @@
1------------------------------------------------------------
2{- |
3Module : GSL.Special.Dilog
4Copyright : (c) Alberto Ruiz 2006
5License : GPL-style
6Maintainer : Alberto Ruiz (aruiz at um dot es)
7Stability : provisional
8Portability : uses ffi
9
10
11
12-}
13------------------------------------------------------------
14
15module GSL.Special.Dilog(
16 dilog_e
17, dilog
18) where
19
20import Foreign(Ptr)
21import GSL.Special.Internal
22
23-- | wrapper for int gsl_sf_dilog_e(double x,gsl_sf_result* result);
24dilog_e :: Double -> (Double,Double)
25dilog_e x = createSFR "dilog_e" $ gsl_sf_dilog_e x
26foreign import ccall "dilog.h gsl_sf_dilog_e" gsl_sf_dilog_e :: Double -> Ptr Double -> IO(Int)
27
28-- | wrapper for double gsl_sf_dilog(double x);
29dilog :: Double -> Double
30dilog = gsl_sf_dilog
31foreign import ccall "dilog.h gsl_sf_dilog" gsl_sf_dilog :: Double -> Double
32
33-- | wrapper for int gsl_sf_complex_dilog_xy_e(double x,double y,gsl_sf_result* result_re,gsl_sf_result* result_im);
34complex_dilog_xy_e :: Double -> Double -> Ptr Double -> (Double,Double)
35complex_dilog_xy_e x y result_re = createSFR "complex_dilog_xy_e" $ gsl_sf_complex_dilog_xy_e x y result_re
36foreign import ccall "dilog.h gsl_sf_complex_dilog_xy_e" gsl_sf_complex_dilog_xy_e :: Double -> Double -> Ptr Double -> Ptr Double -> IO(Int)
37
38-- | wrapper for int gsl_sf_complex_dilog_e(double r,double theta,gsl_sf_result* result_re,gsl_sf_result* result_im);
39complex_dilog_e :: Double -> Double -> Ptr Double -> (Double,Double)
40complex_dilog_e r theta result_re = createSFR "complex_dilog_e" $ gsl_sf_complex_dilog_e r theta result_re
41foreign import ccall "dilog.h gsl_sf_complex_dilog_e" gsl_sf_complex_dilog_e :: Double -> Double -> Ptr Double -> Ptr Double -> IO(Int)
42
43-- | wrapper for int gsl_sf_complex_spence_xy_e(double x,double y,gsl_sf_result* real_sp,gsl_sf_result* imag_sp);
44complex_spence_xy_e :: Double -> Double -> Ptr Double -> (Double,Double)
45complex_spence_xy_e x y real_sp = createSFR "complex_spence_xy_e" $ gsl_sf_complex_spence_xy_e x y real_sp
46foreign import ccall "dilog.h gsl_sf_complex_spence_xy_e" gsl_sf_complex_spence_xy_e :: Double -> Double -> Ptr Double -> Ptr Double -> IO(Int)
diff --git a/lib/GSL/Special/Elementary.hs b/lib/GSL/Special/Elementary.hs
new file mode 100644
index 0000000..5da89ca
--- /dev/null
+++ b/lib/GSL/Special/Elementary.hs
@@ -0,0 +1,37 @@
1------------------------------------------------------------
2{- |
3Module : GSL.Special.Elementary
4Copyright : (c) Alberto Ruiz 2006
5License : GPL-style
6Maintainer : Alberto Ruiz (aruiz at um dot es)
7Stability : provisional
8Portability : uses ffi
9
10
11
12-}
13------------------------------------------------------------
14
15module GSL.Special.Elementary(
16 multiply_e
17, multiply
18, multiply_err_e
19) where
20
21import Foreign(Ptr)
22import GSL.Special.Internal
23
24-- | wrapper for int gsl_sf_multiply_e(double x,double y,gsl_sf_result* result);
25multiply_e :: Double -> Double -> (Double,Double)
26multiply_e x y = createSFR "multiply_e" $ gsl_sf_multiply_e x y
27foreign import ccall "elementary.h gsl_sf_multiply_e" gsl_sf_multiply_e :: Double -> Double -> Ptr Double -> IO(Int)
28
29-- | wrapper for double gsl_sf_multiply(double x,double y);
30multiply :: Double -> Double -> Double
31multiply = gsl_sf_multiply
32foreign import ccall "elementary.h gsl_sf_multiply" gsl_sf_multiply :: Double -> Double -> Double
33
34-- | wrapper for int gsl_sf_multiply_err_e(double x,double dx,double y,double dy,gsl_sf_result* result);
35multiply_err_e :: Double -> Double -> Double -> Double -> (Double,Double)
36multiply_err_e x dx y dy = createSFR "multiply_err_e" $ gsl_sf_multiply_err_e x dx y dy
37foreign import ccall "elementary.h gsl_sf_multiply_err_e" gsl_sf_multiply_err_e :: Double -> Double -> Double -> Double -> Ptr Double -> IO(Int)
diff --git a/lib/GSL/Special/Ellint.hs b/lib/GSL/Special/Ellint.hs
new file mode 100644
index 0000000..f79c702
--- /dev/null
+++ b/lib/GSL/Special/Ellint.hs
@@ -0,0 +1,139 @@
1------------------------------------------------------------
2{- |
3Module : GSL.Special.Ellint
4Copyright : (c) Alberto Ruiz 2006
5License : GPL-style
6Maintainer : Alberto Ruiz (aruiz at um dot es)
7Stability : provisional
8Portability : uses ffi
9
10
11
12-}
13------------------------------------------------------------
14
15module GSL.Special.Ellint(
16 ellint_Kcomp_e
17, ellint_Kcomp
18, ellint_Ecomp_e
19, ellint_Ecomp
20, ellint_F_e
21, ellint_F
22, ellint_E_e
23, ellint_E
24, ellint_P_e
25, ellint_P
26, ellint_D_e
27, ellint_D
28, ellint_RC_e
29, ellint_RC
30, ellint_RD_e
31, ellint_RD
32, ellint_RF_e
33, ellint_RF
34, ellint_RJ_e
35, ellint_RJ
36) where
37
38import Foreign(Ptr)
39import GSL.Special.Internal
40
41-- | wrapper for int gsl_sf_ellint_Kcomp_e(double k,gsl_mode_t mode,gsl_sf_result* result);
42ellint_Kcomp_e :: Double -> Precision -> (Double,Double)
43ellint_Kcomp_e k mode = createSFR "ellint_Kcomp_e" $ gsl_sf_ellint_Kcomp_e k (precCode mode)
44foreign import ccall "ellint.h gsl_sf_ellint_Kcomp_e" gsl_sf_ellint_Kcomp_e :: Double -> Gsl_mode_t -> Ptr Double -> IO(Int)
45
46-- | wrapper for double gsl_sf_ellint_Kcomp(double k,gsl_mode_t mode);
47ellint_Kcomp :: Double -> Precision -> Double
48ellint_Kcomp k mode = gsl_sf_ellint_Kcomp k (precCode mode)
49foreign import ccall "ellint.h gsl_sf_ellint_Kcomp" gsl_sf_ellint_Kcomp :: Double -> Gsl_mode_t -> Double
50
51-- | wrapper for int gsl_sf_ellint_Ecomp_e(double k,gsl_mode_t mode,gsl_sf_result* result);
52ellint_Ecomp_e :: Double -> Precision -> (Double,Double)
53ellint_Ecomp_e k mode = createSFR "ellint_Ecomp_e" $ gsl_sf_ellint_Ecomp_e k (precCode mode)
54foreign import ccall "ellint.h gsl_sf_ellint_Ecomp_e" gsl_sf_ellint_Ecomp_e :: Double -> Gsl_mode_t -> Ptr Double -> IO(Int)
55
56-- | wrapper for double gsl_sf_ellint_Ecomp(double k,gsl_mode_t mode);
57ellint_Ecomp :: Double -> Precision -> Double
58ellint_Ecomp k mode = gsl_sf_ellint_Ecomp k (precCode mode)
59foreign import ccall "ellint.h gsl_sf_ellint_Ecomp" gsl_sf_ellint_Ecomp :: Double -> Gsl_mode_t -> Double
60
61-- | wrapper for int gsl_sf_ellint_F_e(double phi,double k,gsl_mode_t mode,gsl_sf_result* result);
62ellint_F_e :: Double -> Double -> Precision -> (Double,Double)
63ellint_F_e phi k mode = createSFR "ellint_F_e" $ gsl_sf_ellint_F_e phi k (precCode mode)
64foreign import ccall "ellint.h gsl_sf_ellint_F_e" gsl_sf_ellint_F_e :: Double -> Double -> Gsl_mode_t -> Ptr Double -> IO(Int)
65
66-- | wrapper for double gsl_sf_ellint_F(double phi,double k,gsl_mode_t mode);
67ellint_F :: Double -> Double -> Precision -> Double
68ellint_F phi k mode = gsl_sf_ellint_F phi k (precCode mode)
69foreign import ccall "ellint.h gsl_sf_ellint_F" gsl_sf_ellint_F :: Double -> Double -> Gsl_mode_t -> Double
70
71-- | wrapper for int gsl_sf_ellint_E_e(double phi,double k,gsl_mode_t mode,gsl_sf_result* result);
72ellint_E_e :: Double -> Double -> Precision -> (Double,Double)
73ellint_E_e phi k mode = createSFR "ellint_E_e" $ gsl_sf_ellint_E_e phi k (precCode mode)
74foreign import ccall "ellint.h gsl_sf_ellint_E_e" gsl_sf_ellint_E_e :: Double -> Double -> Gsl_mode_t -> Ptr Double -> IO(Int)
75
76-- | wrapper for double gsl_sf_ellint_E(double phi,double k,gsl_mode_t mode);
77ellint_E :: Double -> Double -> Precision -> Double
78ellint_E phi k mode = gsl_sf_ellint_E phi k (precCode mode)
79foreign import ccall "ellint.h gsl_sf_ellint_E" gsl_sf_ellint_E :: Double -> Double -> Gsl_mode_t -> Double
80
81-- | wrapper for int gsl_sf_ellint_P_e(double phi,double k,double n,gsl_mode_t mode,gsl_sf_result* result);
82ellint_P_e :: Double -> Double -> Double -> Precision -> (Double,Double)
83ellint_P_e phi k n mode = createSFR "ellint_P_e" $ gsl_sf_ellint_P_e phi k n (precCode mode)
84foreign import ccall "ellint.h gsl_sf_ellint_P_e" gsl_sf_ellint_P_e :: Double -> Double -> Double -> Gsl_mode_t -> Ptr Double -> IO(Int)
85
86-- | wrapper for double gsl_sf_ellint_P(double phi,double k,double n,gsl_mode_t mode);
87ellint_P :: Double -> Double -> Double -> Precision -> Double
88ellint_P phi k n mode = gsl_sf_ellint_P phi k n (precCode mode)
89foreign import ccall "ellint.h gsl_sf_ellint_P" gsl_sf_ellint_P :: Double -> Double -> Double -> Gsl_mode_t -> Double
90
91-- | wrapper for int gsl_sf_ellint_D_e(double phi,double k,double n,gsl_mode_t mode,gsl_sf_result* result);
92ellint_D_e :: Double -> Double -> Double -> Precision -> (Double,Double)
93ellint_D_e phi k n mode = createSFR "ellint_D_e" $ gsl_sf_ellint_D_e phi k n (precCode mode)
94foreign import ccall "ellint.h gsl_sf_ellint_D_e" gsl_sf_ellint_D_e :: Double -> Double -> Double -> Gsl_mode_t -> Ptr Double -> IO(Int)
95
96-- | wrapper for double gsl_sf_ellint_D(double phi,double k,double n,gsl_mode_t mode);
97ellint_D :: Double -> Double -> Double -> Precision -> Double
98ellint_D phi k n mode = gsl_sf_ellint_D phi k n (precCode mode)
99foreign import ccall "ellint.h gsl_sf_ellint_D" gsl_sf_ellint_D :: Double -> Double -> Double -> Gsl_mode_t -> Double
100
101-- | wrapper for int gsl_sf_ellint_RC_e(double x,double y,gsl_mode_t mode,gsl_sf_result* result);
102ellint_RC_e :: Double -> Double -> Precision -> (Double,Double)
103ellint_RC_e x y mode = createSFR "ellint_RC_e" $ gsl_sf_ellint_RC_e x y (precCode mode)
104foreign import ccall "ellint.h gsl_sf_ellint_RC_e" gsl_sf_ellint_RC_e :: Double -> Double -> Gsl_mode_t -> Ptr Double -> IO(Int)
105
106-- | wrapper for double gsl_sf_ellint_RC(double x,double y,gsl_mode_t mode);
107ellint_RC :: Double -> Double -> Precision -> Double
108ellint_RC x y mode = gsl_sf_ellint_RC x y (precCode mode)
109foreign import ccall "ellint.h gsl_sf_ellint_RC" gsl_sf_ellint_RC :: Double -> Double -> Gsl_mode_t -> Double
110
111-- | wrapper for int gsl_sf_ellint_RD_e(double x,double y,double z,gsl_mode_t mode,gsl_sf_result* result);
112ellint_RD_e :: Double -> Double -> Double -> Precision -> (Double,Double)
113ellint_RD_e x y z mode = createSFR "ellint_RD_e" $ gsl_sf_ellint_RD_e x y z (precCode mode)
114foreign import ccall "ellint.h gsl_sf_ellint_RD_e" gsl_sf_ellint_RD_e :: Double -> Double -> Double -> Gsl_mode_t -> Ptr Double -> IO(Int)
115
116-- | wrapper for double gsl_sf_ellint_RD(double x,double y,double z,gsl_mode_t mode);
117ellint_RD :: Double -> Double -> Double -> Precision -> Double
118ellint_RD x y z mode = gsl_sf_ellint_RD x y z (precCode mode)
119foreign import ccall "ellint.h gsl_sf_ellint_RD" gsl_sf_ellint_RD :: Double -> Double -> Double -> Gsl_mode_t -> Double
120
121-- | wrapper for int gsl_sf_ellint_RF_e(double x,double y,double z,gsl_mode_t mode,gsl_sf_result* result);
122ellint_RF_e :: Double -> Double -> Double -> Precision -> (Double,Double)
123ellint_RF_e x y z mode = createSFR "ellint_RF_e" $ gsl_sf_ellint_RF_e x y z (precCode mode)
124foreign import ccall "ellint.h gsl_sf_ellint_RF_e" gsl_sf_ellint_RF_e :: Double -> Double -> Double -> Gsl_mode_t -> Ptr Double -> IO(Int)
125
126-- | wrapper for double gsl_sf_ellint_RF(double x,double y,double z,gsl_mode_t mode);
127ellint_RF :: Double -> Double -> Double -> Precision -> Double
128ellint_RF x y z mode = gsl_sf_ellint_RF x y z (precCode mode)
129foreign import ccall "ellint.h gsl_sf_ellint_RF" gsl_sf_ellint_RF :: Double -> Double -> Double -> Gsl_mode_t -> Double
130
131-- | wrapper for int gsl_sf_ellint_RJ_e(double x,double y,double z,double p,gsl_mode_t mode,gsl_sf_result* result);
132ellint_RJ_e :: Double -> Double -> Double -> Double -> Precision -> (Double,Double)
133ellint_RJ_e x y z p mode = createSFR "ellint_RJ_e" $ gsl_sf_ellint_RJ_e x y z p (precCode mode)
134foreign import ccall "ellint.h gsl_sf_ellint_RJ_e" gsl_sf_ellint_RJ_e :: Double -> Double -> Double -> Double -> Gsl_mode_t -> Ptr Double -> IO(Int)
135
136-- | wrapper for double gsl_sf_ellint_RJ(double x,double y,double z,double p,gsl_mode_t mode);
137ellint_RJ :: Double -> Double -> Double -> Double -> Precision -> Double
138ellint_RJ x y z p mode = gsl_sf_ellint_RJ x y z p (precCode mode)
139foreign import ccall "ellint.h gsl_sf_ellint_RJ" gsl_sf_ellint_RJ :: Double -> Double -> Double -> Double -> Gsl_mode_t -> Double
diff --git a/lib/GSL/Special/Expint.hs b/lib/GSL/Special/Expint.hs
new file mode 100644
index 0000000..f761966
--- /dev/null
+++ b/lib/GSL/Special/Expint.hs
@@ -0,0 +1,163 @@
1------------------------------------------------------------
2{- |
3Module : GSL.Special.Expint
4Copyright : (c) Alberto Ruiz 2006
5License : GPL-style
6Maintainer : Alberto Ruiz (aruiz at um dot es)
7Stability : provisional
8Portability : uses ffi
9
10
11
12-}
13------------------------------------------------------------
14
15module GSL.Special.Expint(
16 expint_E1_e
17, expint_E1
18, expint_E2_e
19, expint_E2
20, expint_E1_scaled_e
21, expint_E1_scaled
22, expint_E2_scaled_e
23, expint_E2_scaled
24, expint_Ei_e
25, expint_Ei
26, expint_Ei_scaled_e
27, expint_Ei_scaled
28, shi_e
29, shi
30, chi_e
31, chi
32, expint_3_e
33, expint_3
34, si_e
35, si
36, ci_e
37, ci
38, atanint_e
39, atanint
40) where
41
42import Foreign(Ptr)
43import GSL.Special.Internal
44
45-- | wrapper for int gsl_sf_expint_E1_e(double x,gsl_sf_result* result);
46expint_E1_e :: Double -> (Double,Double)
47expint_E1_e x = createSFR "expint_E1_e" $ gsl_sf_expint_E1_e x
48foreign import ccall "expint.h gsl_sf_expint_E1_e" gsl_sf_expint_E1_e :: Double -> Ptr Double -> IO(Int)
49
50-- | wrapper for double gsl_sf_expint_E1(double x);
51expint_E1 :: Double -> Double
52expint_E1 = gsl_sf_expint_E1
53foreign import ccall "expint.h gsl_sf_expint_E1" gsl_sf_expint_E1 :: Double -> Double
54
55-- | wrapper for int gsl_sf_expint_E2_e(double x,gsl_sf_result* result);
56expint_E2_e :: Double -> (Double,Double)
57expint_E2_e x = createSFR "expint_E2_e" $ gsl_sf_expint_E2_e x
58foreign import ccall "expint.h gsl_sf_expint_E2_e" gsl_sf_expint_E2_e :: Double -> Ptr Double -> IO(Int)
59
60-- | wrapper for double gsl_sf_expint_E2(double x);
61expint_E2 :: Double -> Double
62expint_E2 = gsl_sf_expint_E2
63foreign import ccall "expint.h gsl_sf_expint_E2" gsl_sf_expint_E2 :: Double -> Double
64
65-- | wrapper for int gsl_sf_expint_E1_scaled_e(double x,gsl_sf_result* result);
66expint_E1_scaled_e :: Double -> (Double,Double)
67expint_E1_scaled_e x = createSFR "expint_E1_scaled_e" $ gsl_sf_expint_E1_scaled_e x
68foreign import ccall "expint.h gsl_sf_expint_E1_scaled_e" gsl_sf_expint_E1_scaled_e :: Double -> Ptr Double -> IO(Int)
69
70-- | wrapper for double gsl_sf_expint_E1_scaled(double x);
71expint_E1_scaled :: Double -> Double
72expint_E1_scaled = gsl_sf_expint_E1_scaled
73foreign import ccall "expint.h gsl_sf_expint_E1_scaled" gsl_sf_expint_E1_scaled :: Double -> Double
74
75-- | wrapper for int gsl_sf_expint_E2_scaled_e(double x,gsl_sf_result* result);
76expint_E2_scaled_e :: Double -> (Double,Double)
77expint_E2_scaled_e x = createSFR "expint_E2_scaled_e" $ gsl_sf_expint_E2_scaled_e x
78foreign import ccall "expint.h gsl_sf_expint_E2_scaled_e" gsl_sf_expint_E2_scaled_e :: Double -> Ptr Double -> IO(Int)
79
80-- | wrapper for double gsl_sf_expint_E2_scaled(double x);
81expint_E2_scaled :: Double -> Double
82expint_E2_scaled = gsl_sf_expint_E2_scaled
83foreign import ccall "expint.h gsl_sf_expint_E2_scaled" gsl_sf_expint_E2_scaled :: Double -> Double
84
85-- | wrapper for int gsl_sf_expint_Ei_e(double x,gsl_sf_result* result);
86expint_Ei_e :: Double -> (Double,Double)
87expint_Ei_e x = createSFR "expint_Ei_e" $ gsl_sf_expint_Ei_e x
88foreign import ccall "expint.h gsl_sf_expint_Ei_e" gsl_sf_expint_Ei_e :: Double -> Ptr Double -> IO(Int)
89
90-- | wrapper for double gsl_sf_expint_Ei(double x);
91expint_Ei :: Double -> Double
92expint_Ei = gsl_sf_expint_Ei
93foreign import ccall "expint.h gsl_sf_expint_Ei" gsl_sf_expint_Ei :: Double -> Double
94
95-- | wrapper for int gsl_sf_expint_Ei_scaled_e(double x,gsl_sf_result* result);
96expint_Ei_scaled_e :: Double -> (Double,Double)
97expint_Ei_scaled_e x = createSFR "expint_Ei_scaled_e" $ gsl_sf_expint_Ei_scaled_e x
98foreign import ccall "expint.h gsl_sf_expint_Ei_scaled_e" gsl_sf_expint_Ei_scaled_e :: Double -> Ptr Double -> IO(Int)
99
100-- | wrapper for double gsl_sf_expint_Ei_scaled(double x);
101expint_Ei_scaled :: Double -> Double
102expint_Ei_scaled = gsl_sf_expint_Ei_scaled
103foreign import ccall "expint.h gsl_sf_expint_Ei_scaled" gsl_sf_expint_Ei_scaled :: Double -> Double
104
105-- | wrapper for int gsl_sf_Shi_e(double x,gsl_sf_result* result);
106shi_e :: Double -> (Double,Double)
107shi_e x = createSFR "shi_e" $ gsl_sf_Shi_e x
108foreign import ccall "expint.h gsl_sf_Shi_e" gsl_sf_Shi_e :: Double -> Ptr Double -> IO(Int)
109
110-- | wrapper for double gsl_sf_Shi(double x);
111shi :: Double -> Double
112shi = gsl_sf_Shi
113foreign import ccall "expint.h gsl_sf_Shi" gsl_sf_Shi :: Double -> Double
114
115-- | wrapper for int gsl_sf_Chi_e(double x,gsl_sf_result* result);
116chi_e :: Double -> (Double,Double)
117chi_e x = createSFR "chi_e" $ gsl_sf_Chi_e x
118foreign import ccall "expint.h gsl_sf_Chi_e" gsl_sf_Chi_e :: Double -> Ptr Double -> IO(Int)
119
120-- | wrapper for double gsl_sf_Chi(double x);
121chi :: Double -> Double
122chi = gsl_sf_Chi
123foreign import ccall "expint.h gsl_sf_Chi" gsl_sf_Chi :: Double -> Double
124
125-- | wrapper for int gsl_sf_expint_3_e(double x,gsl_sf_result* result);
126expint_3_e :: Double -> (Double,Double)
127expint_3_e x = createSFR "expint_3_e" $ gsl_sf_expint_3_e x
128foreign import ccall "expint.h gsl_sf_expint_3_e" gsl_sf_expint_3_e :: Double -> Ptr Double -> IO(Int)
129
130-- | wrapper for double gsl_sf_expint_3(double x);
131expint_3 :: Double -> Double
132expint_3 = gsl_sf_expint_3
133foreign import ccall "expint.h gsl_sf_expint_3" gsl_sf_expint_3 :: Double -> Double
134
135-- | wrapper for int gsl_sf_Si_e(double x,gsl_sf_result* result);
136si_e :: Double -> (Double,Double)
137si_e x = createSFR "si_e" $ gsl_sf_Si_e x
138foreign import ccall "expint.h gsl_sf_Si_e" gsl_sf_Si_e :: Double -> Ptr Double -> IO(Int)
139
140-- | wrapper for double gsl_sf_Si(double x);
141si :: Double -> Double
142si = gsl_sf_Si
143foreign import ccall "expint.h gsl_sf_Si" gsl_sf_Si :: Double -> Double
144
145-- | wrapper for int gsl_sf_Ci_e(double x,gsl_sf_result* result);
146ci_e :: Double -> (Double,Double)
147ci_e x = createSFR "ci_e" $ gsl_sf_Ci_e x
148foreign import ccall "expint.h gsl_sf_Ci_e" gsl_sf_Ci_e :: Double -> Ptr Double -> IO(Int)
149
150-- | wrapper for double gsl_sf_Ci(double x);
151ci :: Double -> Double
152ci = gsl_sf_Ci
153foreign import ccall "expint.h gsl_sf_Ci" gsl_sf_Ci :: Double -> Double
154
155-- | wrapper for int gsl_sf_atanint_e(double x,gsl_sf_result* result);
156atanint_e :: Double -> (Double,Double)
157atanint_e x = createSFR "atanint_e" $ gsl_sf_atanint_e x
158foreign import ccall "expint.h gsl_sf_atanint_e" gsl_sf_atanint_e :: Double -> Ptr Double -> IO(Int)
159
160-- | wrapper for double gsl_sf_atanint(double x);
161atanint :: Double -> Double
162atanint = gsl_sf_atanint
163foreign import ccall "expint.h gsl_sf_atanint" gsl_sf_atanint :: Double -> Double
diff --git a/lib/GSL/Special/Fermi_dirac.hs b/lib/GSL/Special/Fermi_dirac.hs
new file mode 100644
index 0000000..26923d2
--- /dev/null
+++ b/lib/GSL/Special/Fermi_dirac.hs
@@ -0,0 +1,127 @@
1------------------------------------------------------------
2{- |
3Module : GSL.Special.Fermi_dirac
4Copyright : (c) Alberto Ruiz 2006
5License : GPL-style
6Maintainer : Alberto Ruiz (aruiz at um dot es)
7Stability : provisional
8Portability : uses ffi
9
10
11
12-}
13------------------------------------------------------------
14
15module GSL.Special.Fermi_dirac(
16 fermi_dirac_m1_e
17, fermi_dirac_m1
18, fermi_dirac_0_e
19, fermi_dirac_0
20, fermi_dirac_1_e
21, fermi_dirac_1
22, fermi_dirac_2_e
23, fermi_dirac_2
24, fermi_dirac_int_e
25, fermi_dirac_int
26, fermi_dirac_mhalf_e
27, fermi_dirac_mhalf
28, fermi_dirac_half_e
29, fermi_dirac_half
30, fermi_dirac_3half_e
31, fermi_dirac_3half
32, fermi_dirac_inc_0_e
33, fermi_dirac_inc_0
34) where
35
36import Foreign(Ptr)
37import GSL.Special.Internal
38
39-- | wrapper for int gsl_sf_fermi_dirac_m1_e(double x,gsl_sf_result* result);
40fermi_dirac_m1_e :: Double -> (Double,Double)
41fermi_dirac_m1_e x = createSFR "fermi_dirac_m1_e" $ gsl_sf_fermi_dirac_m1_e x
42foreign import ccall "fermi_dirac.h gsl_sf_fermi_dirac_m1_e" gsl_sf_fermi_dirac_m1_e :: Double -> Ptr Double -> IO(Int)
43
44-- | wrapper for double gsl_sf_fermi_dirac_m1(double x);
45fermi_dirac_m1 :: Double -> Double
46fermi_dirac_m1 = gsl_sf_fermi_dirac_m1
47foreign import ccall "fermi_dirac.h gsl_sf_fermi_dirac_m1" gsl_sf_fermi_dirac_m1 :: Double -> Double
48
49-- | wrapper for int gsl_sf_fermi_dirac_0_e(double x,gsl_sf_result* result);
50fermi_dirac_0_e :: Double -> (Double,Double)
51fermi_dirac_0_e x = createSFR "fermi_dirac_0_e" $ gsl_sf_fermi_dirac_0_e x
52foreign import ccall "fermi_dirac.h gsl_sf_fermi_dirac_0_e" gsl_sf_fermi_dirac_0_e :: Double -> Ptr Double -> IO(Int)
53
54-- | wrapper for double gsl_sf_fermi_dirac_0(double x);
55fermi_dirac_0 :: Double -> Double
56fermi_dirac_0 = gsl_sf_fermi_dirac_0
57foreign import ccall "fermi_dirac.h gsl_sf_fermi_dirac_0" gsl_sf_fermi_dirac_0 :: Double -> Double
58
59-- | wrapper for int gsl_sf_fermi_dirac_1_e(double x,gsl_sf_result* result);
60fermi_dirac_1_e :: Double -> (Double,Double)
61fermi_dirac_1_e x = createSFR "fermi_dirac_1_e" $ gsl_sf_fermi_dirac_1_e x
62foreign import ccall "fermi_dirac.h gsl_sf_fermi_dirac_1_e" gsl_sf_fermi_dirac_1_e :: Double -> Ptr Double -> IO(Int)
63
64-- | wrapper for double gsl_sf_fermi_dirac_1(double x);
65fermi_dirac_1 :: Double -> Double
66fermi_dirac_1 = gsl_sf_fermi_dirac_1
67foreign import ccall "fermi_dirac.h gsl_sf_fermi_dirac_1" gsl_sf_fermi_dirac_1 :: Double -> Double
68
69-- | wrapper for int gsl_sf_fermi_dirac_2_e(double x,gsl_sf_result* result);
70fermi_dirac_2_e :: Double -> (Double,Double)
71fermi_dirac_2_e x = createSFR "fermi_dirac_2_e" $ gsl_sf_fermi_dirac_2_e x
72foreign import ccall "fermi_dirac.h gsl_sf_fermi_dirac_2_e" gsl_sf_fermi_dirac_2_e :: Double -> Ptr Double -> IO(Int)
73
74-- | wrapper for double gsl_sf_fermi_dirac_2(double x);
75fermi_dirac_2 :: Double -> Double
76fermi_dirac_2 = gsl_sf_fermi_dirac_2
77foreign import ccall "fermi_dirac.h gsl_sf_fermi_dirac_2" gsl_sf_fermi_dirac_2 :: Double -> Double
78
79-- | wrapper for int gsl_sf_fermi_dirac_int_e(int j,double x,gsl_sf_result* result);
80fermi_dirac_int_e :: Int -> Double -> (Double,Double)
81fermi_dirac_int_e j x = createSFR "fermi_dirac_int_e" $ gsl_sf_fermi_dirac_int_e j x
82foreign import ccall "fermi_dirac.h gsl_sf_fermi_dirac_int_e" gsl_sf_fermi_dirac_int_e :: Int -> Double -> Ptr Double -> IO(Int)
83
84-- | wrapper for double gsl_sf_fermi_dirac_int(int j,double x);
85fermi_dirac_int :: Int -> Double -> Double
86fermi_dirac_int = gsl_sf_fermi_dirac_int
87foreign import ccall "fermi_dirac.h gsl_sf_fermi_dirac_int" gsl_sf_fermi_dirac_int :: Int -> Double -> Double
88
89-- | wrapper for int gsl_sf_fermi_dirac_mhalf_e(double x,gsl_sf_result* result);
90fermi_dirac_mhalf_e :: Double -> (Double,Double)
91fermi_dirac_mhalf_e x = createSFR "fermi_dirac_mhalf_e" $ gsl_sf_fermi_dirac_mhalf_e x
92foreign import ccall "fermi_dirac.h gsl_sf_fermi_dirac_mhalf_e" gsl_sf_fermi_dirac_mhalf_e :: Double -> Ptr Double -> IO(Int)
93
94-- | wrapper for double gsl_sf_fermi_dirac_mhalf(double x);
95fermi_dirac_mhalf :: Double -> Double
96fermi_dirac_mhalf = gsl_sf_fermi_dirac_mhalf
97foreign import ccall "fermi_dirac.h gsl_sf_fermi_dirac_mhalf" gsl_sf_fermi_dirac_mhalf :: Double -> Double
98
99-- | wrapper for int gsl_sf_fermi_dirac_half_e(double x,gsl_sf_result* result);
100fermi_dirac_half_e :: Double -> (Double,Double)
101fermi_dirac_half_e x = createSFR "fermi_dirac_half_e" $ gsl_sf_fermi_dirac_half_e x
102foreign import ccall "fermi_dirac.h gsl_sf_fermi_dirac_half_e" gsl_sf_fermi_dirac_half_e :: Double -> Ptr Double -> IO(Int)
103
104-- | wrapper for double gsl_sf_fermi_dirac_half(double x);
105fermi_dirac_half :: Double -> Double
106fermi_dirac_half = gsl_sf_fermi_dirac_half
107foreign import ccall "fermi_dirac.h gsl_sf_fermi_dirac_half" gsl_sf_fermi_dirac_half :: Double -> Double
108
109-- | wrapper for int gsl_sf_fermi_dirac_3half_e(double x,gsl_sf_result* result);
110fermi_dirac_3half_e :: Double -> (Double,Double)
111fermi_dirac_3half_e x = createSFR "fermi_dirac_3half_e" $ gsl_sf_fermi_dirac_3half_e x
112foreign import ccall "fermi_dirac.h gsl_sf_fermi_dirac_3half_e" gsl_sf_fermi_dirac_3half_e :: Double -> Ptr Double -> IO(Int)
113
114-- | wrapper for double gsl_sf_fermi_dirac_3half(double x);
115fermi_dirac_3half :: Double -> Double
116fermi_dirac_3half = gsl_sf_fermi_dirac_3half
117foreign import ccall "fermi_dirac.h gsl_sf_fermi_dirac_3half" gsl_sf_fermi_dirac_3half :: Double -> Double
118
119-- | wrapper for int gsl_sf_fermi_dirac_inc_0_e(double x,double b,gsl_sf_result* result);
120fermi_dirac_inc_0_e :: Double -> Double -> (Double,Double)
121fermi_dirac_inc_0_e x b = createSFR "fermi_dirac_inc_0_e" $ gsl_sf_fermi_dirac_inc_0_e x b
122foreign import ccall "fermi_dirac.h gsl_sf_fermi_dirac_inc_0_e" gsl_sf_fermi_dirac_inc_0_e :: Double -> Double -> Ptr Double -> IO(Int)
123
124-- | wrapper for double gsl_sf_fermi_dirac_inc_0(double x,double b);
125fermi_dirac_inc_0 :: Double -> Double -> Double
126fermi_dirac_inc_0 = gsl_sf_fermi_dirac_inc_0
127foreign import ccall "fermi_dirac.h gsl_sf_fermi_dirac_inc_0" gsl_sf_fermi_dirac_inc_0 :: Double -> Double -> Double
diff --git a/lib/GSL/Special/Gegenbauer.hs b/lib/GSL/Special/Gegenbauer.hs
new file mode 100644
index 0000000..06f3628
--- /dev/null
+++ b/lib/GSL/Special/Gegenbauer.hs
@@ -0,0 +1,72 @@
1------------------------------------------------------------
2{- |
3Module : GSL.Special.Gegenbauer
4Copyright : (c) Alberto Ruiz 2006
5License : GPL-style
6Maintainer : Alberto Ruiz (aruiz at um dot es)
7Stability : provisional
8Portability : uses ffi
9
10
11
12-}
13------------------------------------------------------------
14
15module GSL.Special.Gegenbauer(
16 gegenpoly_1_e
17, gegenpoly_2_e
18, gegenpoly_3_e
19, gegenpoly_1
20, gegenpoly_2
21, gegenpoly_3
22, gegenpoly_n_e
23, gegenpoly_n
24) where
25
26import Foreign(Ptr)
27import GSL.Special.Internal
28
29-- | wrapper for int gsl_sf_gegenpoly_1_e(double lambda,double x,gsl_sf_result* result);
30gegenpoly_1_e :: Double -> Double -> (Double,Double)
31gegenpoly_1_e lambda x = createSFR "gegenpoly_1_e" $ gsl_sf_gegenpoly_1_e lambda x
32foreign import ccall "gegenbauer.h gsl_sf_gegenpoly_1_e" gsl_sf_gegenpoly_1_e :: Double -> Double -> Ptr Double -> IO(Int)
33
34-- | wrapper for int gsl_sf_gegenpoly_2_e(double lambda,double x,gsl_sf_result* result);
35gegenpoly_2_e :: Double -> Double -> (Double,Double)
36gegenpoly_2_e lambda x = createSFR "gegenpoly_2_e" $ gsl_sf_gegenpoly_2_e lambda x
37foreign import ccall "gegenbauer.h gsl_sf_gegenpoly_2_e" gsl_sf_gegenpoly_2_e :: Double -> Double -> Ptr Double -> IO(Int)
38
39-- | wrapper for int gsl_sf_gegenpoly_3_e(double lambda,double x,gsl_sf_result* result);
40gegenpoly_3_e :: Double -> Double -> (Double,Double)
41gegenpoly_3_e lambda x = createSFR "gegenpoly_3_e" $ gsl_sf_gegenpoly_3_e lambda x
42foreign import ccall "gegenbauer.h gsl_sf_gegenpoly_3_e" gsl_sf_gegenpoly_3_e :: Double -> Double -> Ptr Double -> IO(Int)
43
44-- | wrapper for double gsl_sf_gegenpoly_1(double lambda,double x);
45gegenpoly_1 :: Double -> Double -> Double
46gegenpoly_1 = gsl_sf_gegenpoly_1
47foreign import ccall "gegenbauer.h gsl_sf_gegenpoly_1" gsl_sf_gegenpoly_1 :: Double -> Double -> Double
48
49-- | wrapper for double gsl_sf_gegenpoly_2(double lambda,double x);
50gegenpoly_2 :: Double -> Double -> Double
51gegenpoly_2 = gsl_sf_gegenpoly_2
52foreign import ccall "gegenbauer.h gsl_sf_gegenpoly_2" gsl_sf_gegenpoly_2 :: Double -> Double -> Double
53
54-- | wrapper for double gsl_sf_gegenpoly_3(double lambda,double x);
55gegenpoly_3 :: Double -> Double -> Double
56gegenpoly_3 = gsl_sf_gegenpoly_3
57foreign import ccall "gegenbauer.h gsl_sf_gegenpoly_3" gsl_sf_gegenpoly_3 :: Double -> Double -> Double
58
59-- | wrapper for int gsl_sf_gegenpoly_n_e(int n,double lambda,double x,gsl_sf_result* result);
60gegenpoly_n_e :: Int -> Double -> Double -> (Double,Double)
61gegenpoly_n_e n lambda x = createSFR "gegenpoly_n_e" $ gsl_sf_gegenpoly_n_e n lambda x
62foreign import ccall "gegenbauer.h gsl_sf_gegenpoly_n_e" gsl_sf_gegenpoly_n_e :: Int -> Double -> Double -> Ptr Double -> IO(Int)
63
64-- | wrapper for double gsl_sf_gegenpoly_n(int n,double lambda,double x);
65gegenpoly_n :: Int -> Double -> Double -> Double
66gegenpoly_n = gsl_sf_gegenpoly_n
67foreign import ccall "gegenbauer.h gsl_sf_gegenpoly_n" gsl_sf_gegenpoly_n :: Int -> Double -> Double -> Double
68
69-- | wrapper for int gsl_sf_gegenpoly_array(int nmax,double lambda,double x,double* result_array);
70gegenpoly_array :: Int -> Double -> Double -> Ptr Double -> Int
71gegenpoly_array = gsl_sf_gegenpoly_array
72foreign import ccall "gegenbauer.h gsl_sf_gegenpoly_array" gsl_sf_gegenpoly_array :: Int -> Double -> Double -> Ptr Double -> Int
diff --git a/lib/GSL/Special/Hyperg.hs b/lib/GSL/Special/Hyperg.hs
new file mode 100644
index 0000000..c84c32c
--- /dev/null
+++ b/lib/GSL/Special/Hyperg.hs
@@ -0,0 +1,151 @@
1------------------------------------------------------------
2{- |
3Module : GSL.Special.Hyperg
4Copyright : (c) Alberto Ruiz 2006
5License : GPL-style
6Maintainer : Alberto Ruiz (aruiz at um dot es)
7Stability : provisional
8Portability : uses ffi
9
10
11
12-}
13------------------------------------------------------------
14
15module GSL.Special.Hyperg(
16 hyperg_0F1_e
17, hyperg_0F1
18, hyperg_1F1_int_e
19, hyperg_1F1_int
20, hyperg_1F1_e
21, hyperg_1F1
22, hyperg_U_int_e
23, hyperg_U_int
24, hyperg_U_int_e10_e
25, hyperg_U_e
26, hyperg_U
27, hyperg_U_e10_e
28, hyperg_2F1_e
29, hyperg_2F1
30, hyperg_2F1_conj_e
31, hyperg_2F1_conj
32, hyperg_2F1_renorm_e
33, hyperg_2F1_renorm
34, hyperg_2F1_conj_renorm_e
35, hyperg_2F1_conj_renorm
36, hyperg_2F0_e
37, hyperg_2F0
38) where
39
40import Foreign(Ptr)
41import GSL.Special.Internal
42
43-- | wrapper for int gsl_sf_hyperg_0F1_e(double c,double x,gsl_sf_result* result);
44hyperg_0F1_e :: Double -> Double -> (Double,Double)
45hyperg_0F1_e c x = createSFR "hyperg_0F1_e" $ gsl_sf_hyperg_0F1_e c x
46foreign import ccall "hyperg.h gsl_sf_hyperg_0F1_e" gsl_sf_hyperg_0F1_e :: Double -> Double -> Ptr Double -> IO(Int)
47
48-- | wrapper for double gsl_sf_hyperg_0F1(double c,double x);
49hyperg_0F1 :: Double -> Double -> Double
50hyperg_0F1 = gsl_sf_hyperg_0F1
51foreign import ccall "hyperg.h gsl_sf_hyperg_0F1" gsl_sf_hyperg_0F1 :: Double -> Double -> Double
52
53-- | wrapper for int gsl_sf_hyperg_1F1_int_e(int m,int n,double x,gsl_sf_result* result);
54hyperg_1F1_int_e :: Int -> Int -> Double -> (Double,Double)
55hyperg_1F1_int_e m n x = createSFR "hyperg_1F1_int_e" $ gsl_sf_hyperg_1F1_int_e m n x
56foreign import ccall "hyperg.h gsl_sf_hyperg_1F1_int_e" gsl_sf_hyperg_1F1_int_e :: Int -> Int -> Double -> Ptr Double -> IO(Int)
57
58-- | wrapper for double gsl_sf_hyperg_1F1_int(int m,int n,double x);
59hyperg_1F1_int :: Int -> Int -> Double -> Double
60hyperg_1F1_int = gsl_sf_hyperg_1F1_int
61foreign import ccall "hyperg.h gsl_sf_hyperg_1F1_int" gsl_sf_hyperg_1F1_int :: Int -> Int -> Double -> Double
62
63-- | wrapper for int gsl_sf_hyperg_1F1_e(double a,double b,double x,gsl_sf_result* result);
64hyperg_1F1_e :: Double -> Double -> Double -> (Double,Double)
65hyperg_1F1_e a b x = createSFR "hyperg_1F1_e" $ gsl_sf_hyperg_1F1_e a b x
66foreign import ccall "hyperg.h gsl_sf_hyperg_1F1_e" gsl_sf_hyperg_1F1_e :: Double -> Double -> Double -> Ptr Double -> IO(Int)
67
68-- | wrapper for double gsl_sf_hyperg_1F1(double a,double b,double x);
69hyperg_1F1 :: Double -> Double -> Double -> Double
70hyperg_1F1 = gsl_sf_hyperg_1F1
71foreign import ccall "hyperg.h gsl_sf_hyperg_1F1" gsl_sf_hyperg_1F1 :: Double -> Double -> Double -> Double
72
73-- | wrapper for int gsl_sf_hyperg_U_int_e(int m,int n,double x,gsl_sf_result* result);
74hyperg_U_int_e :: Int -> Int -> Double -> (Double,Double)
75hyperg_U_int_e m n x = createSFR "hyperg_U_int_e" $ gsl_sf_hyperg_U_int_e m n x
76foreign import ccall "hyperg.h gsl_sf_hyperg_U_int_e" gsl_sf_hyperg_U_int_e :: Int -> Int -> Double -> Ptr Double -> IO(Int)
77
78-- | wrapper for double gsl_sf_hyperg_U_int(int m,int n,double x);
79hyperg_U_int :: Int -> Int -> Double -> Double
80hyperg_U_int = gsl_sf_hyperg_U_int
81foreign import ccall "hyperg.h gsl_sf_hyperg_U_int" gsl_sf_hyperg_U_int :: Int -> Int -> Double -> Double
82
83-- | wrapper for int gsl_sf_hyperg_U_int_e10_e(int m,int n,double x,gsl_sf_result_e10* result);
84hyperg_U_int_e10_e :: Int -> Int -> Double -> (Double,Int,Double)
85hyperg_U_int_e10_e m n x = createSFR_E10 "hyperg_U_int_e10_e" $ gsl_sf_hyperg_U_int_e10_e m n x
86foreign import ccall "hyperg.h gsl_sf_hyperg_U_int_e10_e" gsl_sf_hyperg_U_int_e10_e :: Int -> Int -> Double -> Ptr () -> IO(Int)
87
88-- | wrapper for int gsl_sf_hyperg_U_e(double a,double b,double x,gsl_sf_result* result);
89hyperg_U_e :: Double -> Double -> Double -> (Double,Double)
90hyperg_U_e a b x = createSFR "hyperg_U_e" $ gsl_sf_hyperg_U_e a b x
91foreign import ccall "hyperg.h gsl_sf_hyperg_U_e" gsl_sf_hyperg_U_e :: Double -> Double -> Double -> Ptr Double -> IO(Int)
92
93-- | wrapper for double gsl_sf_hyperg_U(double a,double b,double x);
94hyperg_U :: Double -> Double -> Double -> Double
95hyperg_U = gsl_sf_hyperg_U
96foreign import ccall "hyperg.h gsl_sf_hyperg_U" gsl_sf_hyperg_U :: Double -> Double -> Double -> Double
97
98-- | wrapper for int gsl_sf_hyperg_U_e10_e(double a,double b,double x,gsl_sf_result_e10* result);
99hyperg_U_e10_e :: Double -> Double -> Double -> (Double,Int,Double)
100hyperg_U_e10_e a b x = createSFR_E10 "hyperg_U_e10_e" $ gsl_sf_hyperg_U_e10_e a b x
101foreign import ccall "hyperg.h gsl_sf_hyperg_U_e10_e" gsl_sf_hyperg_U_e10_e :: Double -> Double -> Double -> Ptr () -> IO(Int)
102
103-- | wrapper for int gsl_sf_hyperg_2F1_e(double a,double b,double c,double x,gsl_sf_result* result);
104hyperg_2F1_e :: Double -> Double -> Double -> Double -> (Double,Double)
105hyperg_2F1_e a b c x = createSFR "hyperg_2F1_e" $ gsl_sf_hyperg_2F1_e a b c x
106foreign import ccall "hyperg.h gsl_sf_hyperg_2F1_e" gsl_sf_hyperg_2F1_e :: Double -> Double -> Double -> Double -> Ptr Double -> IO(Int)
107
108-- | wrapper for double gsl_sf_hyperg_2F1(double a,double b,double c,double x);
109hyperg_2F1 :: Double -> Double -> Double -> Double -> Double
110hyperg_2F1 = gsl_sf_hyperg_2F1
111foreign import ccall "hyperg.h gsl_sf_hyperg_2F1" gsl_sf_hyperg_2F1 :: Double -> Double -> Double -> Double -> Double
112
113-- | wrapper for int gsl_sf_hyperg_2F1_conj_e(double aR,double aI,double c,double x,gsl_sf_result* result);
114hyperg_2F1_conj_e :: Double -> Double -> Double -> Double -> (Double,Double)
115hyperg_2F1_conj_e aR aI c x = createSFR "hyperg_2F1_conj_e" $ gsl_sf_hyperg_2F1_conj_e aR aI c x
116foreign import ccall "hyperg.h gsl_sf_hyperg_2F1_conj_e" gsl_sf_hyperg_2F1_conj_e :: Double -> Double -> Double -> Double -> Ptr Double -> IO(Int)
117
118-- | wrapper for double gsl_sf_hyperg_2F1_conj(double aR,double aI,double c,double x);
119hyperg_2F1_conj :: Double -> Double -> Double -> Double -> Double
120hyperg_2F1_conj = gsl_sf_hyperg_2F1_conj
121foreign import ccall "hyperg.h gsl_sf_hyperg_2F1_conj" gsl_sf_hyperg_2F1_conj :: Double -> Double -> Double -> Double -> Double
122
123-- | wrapper for int gsl_sf_hyperg_2F1_renorm_e(double a,double b,double c,double x,gsl_sf_result* result);
124hyperg_2F1_renorm_e :: Double -> Double -> Double -> Double -> (Double,Double)
125hyperg_2F1_renorm_e a b c x = createSFR "hyperg_2F1_renorm_e" $ gsl_sf_hyperg_2F1_renorm_e a b c x
126foreign import ccall "hyperg.h gsl_sf_hyperg_2F1_renorm_e" gsl_sf_hyperg_2F1_renorm_e :: Double -> Double -> Double -> Double -> Ptr Double -> IO(Int)
127
128-- | wrapper for double gsl_sf_hyperg_2F1_renorm(double a,double b,double c,double x);
129hyperg_2F1_renorm :: Double -> Double -> Double -> Double -> Double
130hyperg_2F1_renorm = gsl_sf_hyperg_2F1_renorm
131foreign import ccall "hyperg.h gsl_sf_hyperg_2F1_renorm" gsl_sf_hyperg_2F1_renorm :: Double -> Double -> Double -> Double -> Double
132
133-- | wrapper for int gsl_sf_hyperg_2F1_conj_renorm_e(double aR,double aI,double c,double x,gsl_sf_result* result);
134hyperg_2F1_conj_renorm_e :: Double -> Double -> Double -> Double -> (Double,Double)
135hyperg_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
136foreign import ccall "hyperg.h gsl_sf_hyperg_2F1_conj_renorm_e" gsl_sf_hyperg_2F1_conj_renorm_e :: Double -> Double -> Double -> Double -> Ptr Double -> IO(Int)
137
138-- | wrapper for double gsl_sf_hyperg_2F1_conj_renorm(double aR,double aI,double c,double x);
139hyperg_2F1_conj_renorm :: Double -> Double -> Double -> Double -> Double
140hyperg_2F1_conj_renorm = gsl_sf_hyperg_2F1_conj_renorm
141foreign import ccall "hyperg.h gsl_sf_hyperg_2F1_conj_renorm" gsl_sf_hyperg_2F1_conj_renorm :: Double -> Double -> Double -> Double -> Double
142
143-- | wrapper for int gsl_sf_hyperg_2F0_e(double a,double b,double x,gsl_sf_result* result);
144hyperg_2F0_e :: Double -> Double -> Double -> (Double,Double)
145hyperg_2F0_e a b x = createSFR "hyperg_2F0_e" $ gsl_sf_hyperg_2F0_e a b x
146foreign import ccall "hyperg.h gsl_sf_hyperg_2F0_e" gsl_sf_hyperg_2F0_e :: Double -> Double -> Double -> Ptr Double -> IO(Int)
147
148-- | wrapper for double gsl_sf_hyperg_2F0(double a,double b,double x);
149hyperg_2F0 :: Double -> Double -> Double -> Double
150hyperg_2F0 = gsl_sf_hyperg_2F0
151foreign import ccall "hyperg.h gsl_sf_hyperg_2F0" gsl_sf_hyperg_2F0 :: Double -> Double -> Double -> Double
diff --git a/lib/GSL/Special/Laguerre.hs b/lib/GSL/Special/Laguerre.hs
new file mode 100644
index 0000000..6fa4343
--- /dev/null
+++ b/lib/GSL/Special/Laguerre.hs
@@ -0,0 +1,67 @@
1------------------------------------------------------------
2{- |
3Module : GSL.Special.Laguerre
4Copyright : (c) Alberto Ruiz 2006
5License : GPL-style
6Maintainer : Alberto Ruiz (aruiz at um dot es)
7Stability : provisional
8Portability : uses ffi
9
10
11
12-}
13------------------------------------------------------------
14
15module GSL.Special.Laguerre(
16 laguerre_1_e
17, laguerre_2_e
18, laguerre_3_e
19, laguerre_1
20, laguerre_2
21, laguerre_3
22, laguerre_n_e
23, laguerre_n
24) where
25
26import Foreign(Ptr)
27import GSL.Special.Internal
28
29-- | wrapper for int gsl_sf_laguerre_1_e(double a,double x,gsl_sf_result* result);
30laguerre_1_e :: Double -> Double -> (Double,Double)
31laguerre_1_e a x = createSFR "laguerre_1_e" $ gsl_sf_laguerre_1_e a x
32foreign import ccall "laguerre.h gsl_sf_laguerre_1_e" gsl_sf_laguerre_1_e :: Double -> Double -> Ptr Double -> IO(Int)
33
34-- | wrapper for int gsl_sf_laguerre_2_e(double a,double x,gsl_sf_result* result);
35laguerre_2_e :: Double -> Double -> (Double,Double)
36laguerre_2_e a x = createSFR "laguerre_2_e" $ gsl_sf_laguerre_2_e a x
37foreign import ccall "laguerre.h gsl_sf_laguerre_2_e" gsl_sf_laguerre_2_e :: Double -> Double -> Ptr Double -> IO(Int)
38
39-- | wrapper for int gsl_sf_laguerre_3_e(double a,double x,gsl_sf_result* result);
40laguerre_3_e :: Double -> Double -> (Double,Double)
41laguerre_3_e a x = createSFR "laguerre_3_e" $ gsl_sf_laguerre_3_e a x
42foreign import ccall "laguerre.h gsl_sf_laguerre_3_e" gsl_sf_laguerre_3_e :: Double -> Double -> Ptr Double -> IO(Int)
43
44-- | wrapper for double gsl_sf_laguerre_1(double a,double x);
45laguerre_1 :: Double -> Double -> Double
46laguerre_1 = gsl_sf_laguerre_1
47foreign import ccall "laguerre.h gsl_sf_laguerre_1" gsl_sf_laguerre_1 :: Double -> Double -> Double
48
49-- | wrapper for double gsl_sf_laguerre_2(double a,double x);
50laguerre_2 :: Double -> Double -> Double
51laguerre_2 = gsl_sf_laguerre_2
52foreign import ccall "laguerre.h gsl_sf_laguerre_2" gsl_sf_laguerre_2 :: Double -> Double -> Double
53
54-- | wrapper for double gsl_sf_laguerre_3(double a,double x);
55laguerre_3 :: Double -> Double -> Double
56laguerre_3 = gsl_sf_laguerre_3
57foreign import ccall "laguerre.h gsl_sf_laguerre_3" gsl_sf_laguerre_3 :: Double -> Double -> Double
58
59-- | wrapper for int gsl_sf_laguerre_n_e(int n,double a,double x,gsl_sf_result* result);
60laguerre_n_e :: Int -> Double -> Double -> (Double,Double)
61laguerre_n_e n a x = createSFR "laguerre_n_e" $ gsl_sf_laguerre_n_e n a x
62foreign import ccall "laguerre.h gsl_sf_laguerre_n_e" gsl_sf_laguerre_n_e :: Int -> Double -> Double -> Ptr Double -> IO(Int)
63
64-- | wrapper for double gsl_sf_laguerre_n(int n,double a,double x);
65laguerre_n :: Int -> Double -> Double -> Double
66laguerre_n = gsl_sf_laguerre_n
67foreign import ccall "laguerre.h gsl_sf_laguerre_n" gsl_sf_laguerre_n :: Int -> Double -> Double -> Double
diff --git a/lib/GSL/Special/Lambert.hs b/lib/GSL/Special/Lambert.hs
new file mode 100644
index 0000000..ff4c75c
--- /dev/null
+++ b/lib/GSL/Special/Lambert.hs
@@ -0,0 +1,43 @@
1------------------------------------------------------------
2{- |
3Module : GSL.Special.Lambert
4Copyright : (c) Alberto Ruiz 2006
5License : GPL-style
6Maintainer : Alberto Ruiz (aruiz at um dot es)
7Stability : provisional
8Portability : uses ffi
9
10
11
12-}
13------------------------------------------------------------
14
15module GSL.Special.Lambert(
16 lambert_W0_e
17, lambert_W0
18, lambert_Wm1_e
19, lambert_Wm1
20) where
21
22import Foreign(Ptr)
23import GSL.Special.Internal
24
25-- | wrapper for int gsl_sf_lambert_W0_e(double x,gsl_sf_result* result);
26lambert_W0_e :: Double -> (Double,Double)
27lambert_W0_e x = createSFR "lambert_W0_e" $ gsl_sf_lambert_W0_e x
28foreign import ccall "lambert.h gsl_sf_lambert_W0_e" gsl_sf_lambert_W0_e :: Double -> Ptr Double -> IO(Int)
29
30-- | wrapper for double gsl_sf_lambert_W0(double x);
31lambert_W0 :: Double -> Double
32lambert_W0 = gsl_sf_lambert_W0
33foreign import ccall "lambert.h gsl_sf_lambert_W0" gsl_sf_lambert_W0 :: Double -> Double
34
35-- | wrapper for int gsl_sf_lambert_Wm1_e(double x,gsl_sf_result* result);
36lambert_Wm1_e :: Double -> (Double,Double)
37lambert_Wm1_e x = createSFR "lambert_Wm1_e" $ gsl_sf_lambert_Wm1_e x
38foreign import ccall "lambert.h gsl_sf_lambert_Wm1_e" gsl_sf_lambert_Wm1_e :: Double -> Ptr Double -> IO(Int)
39
40-- | wrapper for double gsl_sf_lambert_Wm1(double x);
41lambert_Wm1 :: Double -> Double
42lambert_Wm1 = gsl_sf_lambert_Wm1
43foreign import ccall "lambert.h gsl_sf_lambert_Wm1" gsl_sf_lambert_Wm1 :: Double -> Double
diff --git a/lib/GSL/Special/Log.hs b/lib/GSL/Special/Log.hs
new file mode 100644
index 0000000..9fd51a8
--- /dev/null
+++ b/lib/GSL/Special/Log.hs
@@ -0,0 +1,72 @@
1------------------------------------------------------------
2{- |
3Module : GSL.Special.Log
4Copyright : (c) Alberto Ruiz 2006
5License : GPL-style
6Maintainer : Alberto Ruiz (aruiz at um dot es)
7Stability : provisional
8Portability : uses ffi
9
10
11
12-}
13------------------------------------------------------------
14
15module GSL.Special.Log(
16 log_e
17, GSL.Special.Log.log
18, log_abs_e
19, log_abs
20, log_1plusx_e
21, log_1plusx
22, log_1plusx_mx_e
23, log_1plusx_mx
24) where
25
26import Foreign(Ptr)
27import GSL.Special.Internal
28
29-- | wrapper for int gsl_sf_log_e(double x,gsl_sf_result* result);
30log_e :: Double -> (Double,Double)
31log_e x = createSFR "log_e" $ gsl_sf_log_e x
32foreign import ccall "log.h gsl_sf_log_e" gsl_sf_log_e :: Double -> Ptr Double -> IO(Int)
33
34-- | wrapper for double gsl_sf_log(double x);
35log :: Double -> Double
36log = gsl_sf_log
37foreign import ccall "log.h gsl_sf_log" gsl_sf_log :: Double -> Double
38
39-- | wrapper for int gsl_sf_log_abs_e(double x,gsl_sf_result* result);
40log_abs_e :: Double -> (Double,Double)
41log_abs_e x = createSFR "log_abs_e" $ gsl_sf_log_abs_e x
42foreign import ccall "log.h gsl_sf_log_abs_e" gsl_sf_log_abs_e :: Double -> Ptr Double -> IO(Int)
43
44-- | wrapper for double gsl_sf_log_abs(double x);
45log_abs :: Double -> Double
46log_abs = gsl_sf_log_abs
47foreign import ccall "log.h gsl_sf_log_abs" gsl_sf_log_abs :: Double -> Double
48
49-- | wrapper for int gsl_sf_complex_log_e(double zr,double zi,gsl_sf_result* lnr,gsl_sf_result* theta);
50complex_log_e :: Double -> Double -> Ptr Double -> (Double,Double)
51complex_log_e zr zi lnr = createSFR "complex_log_e" $ gsl_sf_complex_log_e zr zi lnr
52foreign import ccall "log.h gsl_sf_complex_log_e" gsl_sf_complex_log_e :: Double -> Double -> Ptr Double -> Ptr Double -> IO(Int)
53
54-- | wrapper for int gsl_sf_log_1plusx_e(double x,gsl_sf_result* result);
55log_1plusx_e :: Double -> (Double,Double)
56log_1plusx_e x = createSFR "log_1plusx_e" $ gsl_sf_log_1plusx_e x
57foreign import ccall "log.h gsl_sf_log_1plusx_e" gsl_sf_log_1plusx_e :: Double -> Ptr Double -> IO(Int)
58
59-- | wrapper for double gsl_sf_log_1plusx(double x);
60log_1plusx :: Double -> Double
61log_1plusx = gsl_sf_log_1plusx
62foreign import ccall "log.h gsl_sf_log_1plusx" gsl_sf_log_1plusx :: Double -> Double
63
64-- | wrapper for int gsl_sf_log_1plusx_mx_e(double x,gsl_sf_result* result);
65log_1plusx_mx_e :: Double -> (Double,Double)
66log_1plusx_mx_e x = createSFR "log_1plusx_mx_e" $ gsl_sf_log_1plusx_mx_e x
67foreign import ccall "log.h gsl_sf_log_1plusx_mx_e" gsl_sf_log_1plusx_mx_e :: Double -> Ptr Double -> IO(Int)
68
69-- | wrapper for double gsl_sf_log_1plusx_mx(double x);
70log_1plusx_mx :: Double -> Double
71log_1plusx_mx = gsl_sf_log_1plusx_mx
72foreign import ccall "log.h gsl_sf_log_1plusx_mx" gsl_sf_log_1plusx_mx :: Double -> Double
diff --git a/lib/GSL/Special/Pow_int.hs b/lib/GSL/Special/Pow_int.hs
new file mode 100644
index 0000000..3585db4
--- /dev/null
+++ b/lib/GSL/Special/Pow_int.hs
@@ -0,0 +1,31 @@
1------------------------------------------------------------
2{- |
3Module : GSL.Special.Pow_int
4Copyright : (c) Alberto Ruiz 2006
5License : GPL-style
6Maintainer : Alberto Ruiz (aruiz at um dot es)
7Stability : provisional
8Portability : uses ffi
9
10
11
12-}
13------------------------------------------------------------
14
15module GSL.Special.Pow_int(
16 pow_int_e
17, pow_int
18) where
19
20import Foreign(Ptr)
21import GSL.Special.Internal
22
23-- | wrapper for int gsl_sf_pow_int_e(double x,int n,gsl_sf_result* result);
24pow_int_e :: Double -> Int -> (Double,Double)
25pow_int_e x n = createSFR "pow_int_e" $ gsl_sf_pow_int_e x n
26foreign import ccall "pow_int.h gsl_sf_pow_int_e" gsl_sf_pow_int_e :: Double -> Int -> Ptr Double -> IO(Int)
27
28-- | wrapper for double gsl_sf_pow_int(double x,int n);
29pow_int :: Double -> Int -> Double
30pow_int = gsl_sf_pow_int
31foreign import ccall "pow_int.h gsl_sf_pow_int" gsl_sf_pow_int :: Double -> Int -> Double
diff --git a/lib/GSL/Special/Psi.hs b/lib/GSL/Special/Psi.hs
new file mode 100644
index 0000000..59c9495
--- /dev/null
+++ b/lib/GSL/Special/Psi.hs
@@ -0,0 +1,91 @@
1------------------------------------------------------------
2{- |
3Module : GSL.Special.Psi
4Copyright : (c) Alberto Ruiz 2006
5License : GPL-style
6Maintainer : Alberto Ruiz (aruiz at um dot es)
7Stability : provisional
8Portability : uses ffi
9
10
11
12-}
13------------------------------------------------------------
14
15module GSL.Special.Psi(
16 psi_int_e
17, psi_int
18, psi_e
19, psi
20, psi_1piy_e
21, psi_1piy
22, psi_1_int_e
23, psi_1_int
24, psi_1_e
25, psi_1
26, psi_n_e
27, psi_n
28) where
29
30import Foreign(Ptr)
31import GSL.Special.Internal
32
33-- | wrapper for int gsl_sf_psi_int_e(int n,gsl_sf_result* result);
34psi_int_e :: Int -> (Double,Double)
35psi_int_e n = createSFR "psi_int_e" $ gsl_sf_psi_int_e n
36foreign import ccall "psi.h gsl_sf_psi_int_e" gsl_sf_psi_int_e :: Int -> Ptr Double -> IO(Int)
37
38-- | wrapper for double gsl_sf_psi_int(int n);
39psi_int :: Int -> Double
40psi_int = gsl_sf_psi_int
41foreign import ccall "psi.h gsl_sf_psi_int" gsl_sf_psi_int :: Int -> Double
42
43-- | wrapper for int gsl_sf_psi_e(double x,gsl_sf_result* result);
44psi_e :: Double -> (Double,Double)
45psi_e x = createSFR "psi_e" $ gsl_sf_psi_e x
46foreign import ccall "psi.h gsl_sf_psi_e" gsl_sf_psi_e :: Double -> Ptr Double -> IO(Int)
47
48-- | wrapper for double gsl_sf_psi(double x);
49psi :: Double -> Double
50psi = gsl_sf_psi
51foreign import ccall "psi.h gsl_sf_psi" gsl_sf_psi :: Double -> Double
52
53-- | wrapper for int gsl_sf_psi_1piy_e(double y,gsl_sf_result* result);
54psi_1piy_e :: Double -> (Double,Double)
55psi_1piy_e y = createSFR "psi_1piy_e" $ gsl_sf_psi_1piy_e y
56foreign import ccall "psi.h gsl_sf_psi_1piy_e" gsl_sf_psi_1piy_e :: Double -> Ptr Double -> IO(Int)
57
58-- | wrapper for double gsl_sf_psi_1piy(double y);
59psi_1piy :: Double -> Double
60psi_1piy = gsl_sf_psi_1piy
61foreign import ccall "psi.h gsl_sf_psi_1piy" gsl_sf_psi_1piy :: Double -> Double
62
63-- | wrapper for int gsl_sf_psi_1_int_e(int n,gsl_sf_result* result);
64psi_1_int_e :: Int -> (Double,Double)
65psi_1_int_e n = createSFR "psi_1_int_e" $ gsl_sf_psi_1_int_e n
66foreign import ccall "psi.h gsl_sf_psi_1_int_e" gsl_sf_psi_1_int_e :: Int -> Ptr Double -> IO(Int)
67
68-- | wrapper for double gsl_sf_psi_1_int(int n);
69psi_1_int :: Int -> Double
70psi_1_int = gsl_sf_psi_1_int
71foreign import ccall "psi.h gsl_sf_psi_1_int" gsl_sf_psi_1_int :: Int -> Double
72
73-- | wrapper for int gsl_sf_psi_1_e(double x,gsl_sf_result* result);
74psi_1_e :: Double -> (Double,Double)
75psi_1_e x = createSFR "psi_1_e" $ gsl_sf_psi_1_e x
76foreign import ccall "psi.h gsl_sf_psi_1_e" gsl_sf_psi_1_e :: Double -> Ptr Double -> IO(Int)
77
78-- | wrapper for double gsl_sf_psi_1(double x);
79psi_1 :: Double -> Double
80psi_1 = gsl_sf_psi_1
81foreign import ccall "psi.h gsl_sf_psi_1" gsl_sf_psi_1 :: Double -> Double
82
83-- | wrapper for int gsl_sf_psi_n_e(int n,double x,gsl_sf_result* result);
84psi_n_e :: Int -> Double -> (Double,Double)
85psi_n_e n x = createSFR "psi_n_e" $ gsl_sf_psi_n_e n x
86foreign import ccall "psi.h gsl_sf_psi_n_e" gsl_sf_psi_n_e :: Int -> Double -> Ptr Double -> IO(Int)
87
88-- | wrapper for double gsl_sf_psi_n(int n,double x);
89psi_n :: Int -> Double -> Double
90psi_n = gsl_sf_psi_n
91foreign import ccall "psi.h gsl_sf_psi_n" gsl_sf_psi_n :: Int -> Double -> Double
diff --git a/lib/GSL/Special/Synchrotron.hs b/lib/GSL/Special/Synchrotron.hs
new file mode 100644
index 0000000..da49c34
--- /dev/null
+++ b/lib/GSL/Special/Synchrotron.hs
@@ -0,0 +1,43 @@
1------------------------------------------------------------
2{- |
3Module : GSL.Special.Synchrotron
4Copyright : (c) Alberto Ruiz 2006
5License : GPL-style
6Maintainer : Alberto Ruiz (aruiz at um dot es)
7Stability : provisional
8Portability : uses ffi
9
10
11
12-}
13------------------------------------------------------------
14
15module GSL.Special.Synchrotron(
16 synchrotron_1_e
17, synchrotron_1
18, synchrotron_2_e
19, synchrotron_2
20) where
21
22import Foreign(Ptr)
23import GSL.Special.Internal
24
25-- | wrapper for int gsl_sf_synchrotron_1_e(double x,gsl_sf_result* result);
26synchrotron_1_e :: Double -> (Double,Double)
27synchrotron_1_e x = createSFR "synchrotron_1_e" $ gsl_sf_synchrotron_1_e x
28foreign import ccall "synchrotron.h gsl_sf_synchrotron_1_e" gsl_sf_synchrotron_1_e :: Double -> Ptr Double -> IO(Int)
29
30-- | wrapper for double gsl_sf_synchrotron_1(double x);
31synchrotron_1 :: Double -> Double
32synchrotron_1 = gsl_sf_synchrotron_1
33foreign import ccall "synchrotron.h gsl_sf_synchrotron_1" gsl_sf_synchrotron_1 :: Double -> Double
34
35-- | wrapper for int gsl_sf_synchrotron_2_e(double x,gsl_sf_result* result);
36synchrotron_2_e :: Double -> (Double,Double)
37synchrotron_2_e x = createSFR "synchrotron_2_e" $ gsl_sf_synchrotron_2_e x
38foreign import ccall "synchrotron.h gsl_sf_synchrotron_2_e" gsl_sf_synchrotron_2_e :: Double -> Ptr Double -> IO(Int)
39
40-- | wrapper for double gsl_sf_synchrotron_2(double x);
41synchrotron_2 :: Double -> Double
42synchrotron_2 = gsl_sf_synchrotron_2
43foreign import ccall "synchrotron.h gsl_sf_synchrotron_2" gsl_sf_synchrotron_2 :: Double -> Double
diff --git a/lib/GSL/Special/Trig.hs b/lib/GSL/Special/Trig.hs
new file mode 100644
index 0000000..56d3933
--- /dev/null
+++ b/lib/GSL/Special/Trig.hs
@@ -0,0 +1,162 @@
1------------------------------------------------------------
2{- |
3Module : GSL.Special.Trig
4Copyright : (c) Alberto Ruiz 2006
5License : GPL-style
6Maintainer : Alberto Ruiz (aruiz at um dot es)
7Stability : provisional
8Portability : uses ffi
9
10
11
12-}
13------------------------------------------------------------
14
15module GSL.Special.Trig(
16 sin_e
17, GSL.Special.Trig.sin
18, cos_e
19, GSL.Special.Trig.cos
20, hypot_e
21, hypot
22, sinc_e
23, sinc
24, lnsinh_e
25, lnsinh
26, lncosh_e
27, lncosh
28, sin_err_e
29, cos_err_e
30, angle_restrict_symm
31, angle_restrict_pos
32, angle_restrict_symm_err_e
33, angle_restrict_pos_err_e
34) where
35
36import Foreign(Ptr)
37import GSL.Special.Internal
38
39-- | wrapper for int gsl_sf_sin_e(double x,gsl_sf_result* result);
40sin_e :: Double -> (Double,Double)
41sin_e x = createSFR "sin_e" $ gsl_sf_sin_e x
42foreign import ccall "trig.h gsl_sf_sin_e" gsl_sf_sin_e :: Double -> Ptr Double -> IO(Int)
43
44-- | wrapper for double gsl_sf_sin(double x);
45sin :: Double -> Double
46sin = gsl_sf_sin
47foreign import ccall "trig.h gsl_sf_sin" gsl_sf_sin :: Double -> Double
48
49-- | wrapper for int gsl_sf_cos_e(double x,gsl_sf_result* result);
50cos_e :: Double -> (Double,Double)
51cos_e x = createSFR "cos_e" $ gsl_sf_cos_e x
52foreign import ccall "trig.h gsl_sf_cos_e" gsl_sf_cos_e :: Double -> Ptr Double -> IO(Int)
53
54-- | wrapper for double gsl_sf_cos(double x);
55cos :: Double -> Double
56cos = gsl_sf_cos
57foreign import ccall "trig.h gsl_sf_cos" gsl_sf_cos :: Double -> Double
58
59-- | wrapper for int gsl_sf_hypot_e(double x,double y,gsl_sf_result* result);
60hypot_e :: Double -> Double -> (Double,Double)
61hypot_e x y = createSFR "hypot_e" $ gsl_sf_hypot_e x y
62foreign import ccall "trig.h gsl_sf_hypot_e" gsl_sf_hypot_e :: Double -> Double -> Ptr Double -> IO(Int)
63
64-- | wrapper for double gsl_sf_hypot(double x,double y);
65hypot :: Double -> Double -> Double
66hypot = gsl_sf_hypot
67foreign import ccall "trig.h gsl_sf_hypot" gsl_sf_hypot :: Double -> Double -> Double
68
69-- | wrapper for int gsl_sf_complex_sin_e(double zr,double zi,gsl_sf_result* szr,gsl_sf_result* szi);
70complex_sin_e :: Double -> Double -> Ptr Double -> (Double,Double)
71complex_sin_e zr zi szr = createSFR "complex_sin_e" $ gsl_sf_complex_sin_e zr zi szr
72foreign import ccall "trig.h gsl_sf_complex_sin_e" gsl_sf_complex_sin_e :: Double -> Double -> Ptr Double -> Ptr Double -> IO(Int)
73
74-- | wrapper for int gsl_sf_complex_cos_e(double zr,double zi,gsl_sf_result* czr,gsl_sf_result* czi);
75complex_cos_e :: Double -> Double -> Ptr Double -> (Double,Double)
76complex_cos_e zr zi czr = createSFR "complex_cos_e" $ gsl_sf_complex_cos_e zr zi czr
77foreign import ccall "trig.h gsl_sf_complex_cos_e" gsl_sf_complex_cos_e :: Double -> Double -> Ptr Double -> Ptr Double -> IO(Int)
78
79-- | wrapper for int gsl_sf_complex_logsin_e(double zr,double zi,gsl_sf_result* lszr,gsl_sf_result* lszi);
80complex_logsin_e :: Double -> Double -> Ptr Double -> (Double,Double)
81complex_logsin_e zr zi lszr = createSFR "complex_logsin_e" $ gsl_sf_complex_logsin_e zr zi lszr
82foreign import ccall "trig.h gsl_sf_complex_logsin_e" gsl_sf_complex_logsin_e :: Double -> Double -> Ptr Double -> Ptr Double -> IO(Int)
83
84-- | wrapper for int gsl_sf_sinc_e(double x,gsl_sf_result* result);
85sinc_e :: Double -> (Double,Double)
86sinc_e x = createSFR "sinc_e" $ gsl_sf_sinc_e x
87foreign import ccall "trig.h gsl_sf_sinc_e" gsl_sf_sinc_e :: Double -> Ptr Double -> IO(Int)
88
89-- | wrapper for double gsl_sf_sinc(double x);
90sinc :: Double -> Double
91sinc = gsl_sf_sinc
92foreign import ccall "trig.h gsl_sf_sinc" gsl_sf_sinc :: Double -> Double
93
94-- | wrapper for int gsl_sf_lnsinh_e(double x,gsl_sf_result* result);
95lnsinh_e :: Double -> (Double,Double)
96lnsinh_e x = createSFR "lnsinh_e" $ gsl_sf_lnsinh_e x
97foreign import ccall "trig.h gsl_sf_lnsinh_e" gsl_sf_lnsinh_e :: Double -> Ptr Double -> IO(Int)
98
99-- | wrapper for double gsl_sf_lnsinh(double x);
100lnsinh :: Double -> Double
101lnsinh = gsl_sf_lnsinh
102foreign import ccall "trig.h gsl_sf_lnsinh" gsl_sf_lnsinh :: Double -> Double
103
104-- | wrapper for int gsl_sf_lncosh_e(double x,gsl_sf_result* result);
105lncosh_e :: Double -> (Double,Double)
106lncosh_e x = createSFR "lncosh_e" $ gsl_sf_lncosh_e x
107foreign import ccall "trig.h gsl_sf_lncosh_e" gsl_sf_lncosh_e :: Double -> Ptr Double -> IO(Int)
108
109-- | wrapper for double gsl_sf_lncosh(double x);
110lncosh :: Double -> Double
111lncosh = gsl_sf_lncosh
112foreign import ccall "trig.h gsl_sf_lncosh" gsl_sf_lncosh :: Double -> Double
113
114-- | wrapper for int gsl_sf_polar_to_rect(double r,double theta,gsl_sf_result* x,gsl_sf_result* y);
115polar_to_rect :: Double -> Double -> Ptr Double -> (Double,Double)
116polar_to_rect r theta x = createSFR "polar_to_rect" $ gsl_sf_polar_to_rect r theta x
117foreign import ccall "trig.h gsl_sf_polar_to_rect" gsl_sf_polar_to_rect :: Double -> Double -> Ptr Double -> Ptr Double -> IO(Int)
118
119-- | wrapper for int gsl_sf_rect_to_polar(double x,double y,gsl_sf_result* r,gsl_sf_result* theta);
120rect_to_polar :: Double -> Double -> Ptr Double -> (Double,Double)
121rect_to_polar x y r = createSFR "rect_to_polar" $ gsl_sf_rect_to_polar x y r
122foreign import ccall "trig.h gsl_sf_rect_to_polar" gsl_sf_rect_to_polar :: Double -> Double -> Ptr Double -> Ptr Double -> IO(Int)
123
124-- | wrapper for int gsl_sf_sin_err_e(double x,double dx,gsl_sf_result* result);
125sin_err_e :: Double -> Double -> (Double,Double)
126sin_err_e x dx = createSFR "sin_err_e" $ gsl_sf_sin_err_e x dx
127foreign import ccall "trig.h gsl_sf_sin_err_e" gsl_sf_sin_err_e :: Double -> Double -> Ptr Double -> IO(Int)
128
129-- | wrapper for int gsl_sf_cos_err_e(double x,double dx,gsl_sf_result* result);
130cos_err_e :: Double -> Double -> (Double,Double)
131cos_err_e x dx = createSFR "cos_err_e" $ gsl_sf_cos_err_e x dx
132foreign import ccall "trig.h gsl_sf_cos_err_e" gsl_sf_cos_err_e :: Double -> Double -> Ptr Double -> IO(Int)
133
134-- | wrapper for int gsl_sf_angle_restrict_symm_e(double* theta);
135angle_restrict_symm_e :: Ptr Double -> Int
136angle_restrict_symm_e = gsl_sf_angle_restrict_symm_e
137foreign import ccall "trig.h gsl_sf_angle_restrict_symm_e" gsl_sf_angle_restrict_symm_e :: Ptr Double -> Int
138
139-- | wrapper for double gsl_sf_angle_restrict_symm(double theta);
140angle_restrict_symm :: Double -> Double
141angle_restrict_symm = gsl_sf_angle_restrict_symm
142foreign import ccall "trig.h gsl_sf_angle_restrict_symm" gsl_sf_angle_restrict_symm :: Double -> Double
143
144-- | wrapper for int gsl_sf_angle_restrict_pos_e(double* theta);
145angle_restrict_pos_e :: Ptr Double -> Int
146angle_restrict_pos_e = gsl_sf_angle_restrict_pos_e
147foreign import ccall "trig.h gsl_sf_angle_restrict_pos_e" gsl_sf_angle_restrict_pos_e :: Ptr Double -> Int
148
149-- | wrapper for double gsl_sf_angle_restrict_pos(double theta);
150angle_restrict_pos :: Double -> Double
151angle_restrict_pos = gsl_sf_angle_restrict_pos
152foreign import ccall "trig.h gsl_sf_angle_restrict_pos" gsl_sf_angle_restrict_pos :: Double -> Double
153
154-- | wrapper for int gsl_sf_angle_restrict_symm_err_e(double theta,gsl_sf_result* result);
155angle_restrict_symm_err_e :: Double -> (Double,Double)
156angle_restrict_symm_err_e theta = createSFR "angle_restrict_symm_err_e" $ gsl_sf_angle_restrict_symm_err_e theta
157foreign import ccall "trig.h gsl_sf_angle_restrict_symm_err_e" gsl_sf_angle_restrict_symm_err_e :: Double -> Ptr Double -> IO(Int)
158
159-- | wrapper for int gsl_sf_angle_restrict_pos_err_e(double theta,gsl_sf_result* result);
160angle_restrict_pos_err_e :: Double -> (Double,Double)
161angle_restrict_pos_err_e theta = createSFR "angle_restrict_pos_err_e" $ gsl_sf_angle_restrict_pos_err_e theta
162foreign import ccall "trig.h gsl_sf_angle_restrict_pos_err_e" gsl_sf_angle_restrict_pos_err_e :: Double -> Ptr Double -> IO(Int)
diff --git a/lib/GSL/Special/Zeta.hs b/lib/GSL/Special/Zeta.hs
new file mode 100644
index 0000000..ae514c0
--- /dev/null
+++ b/lib/GSL/Special/Zeta.hs
@@ -0,0 +1,103 @@
1------------------------------------------------------------
2{- |
3Module : GSL.Special.Zeta
4Copyright : (c) Alberto Ruiz 2006
5License : GPL-style
6Maintainer : Alberto Ruiz (aruiz at um dot es)
7Stability : provisional
8Portability : uses ffi
9
10
11
12-}
13------------------------------------------------------------
14
15module GSL.Special.Zeta(
16 zeta_int_e
17, zeta_int
18, zeta_e
19, zeta
20, zetam1_e
21, zetam1
22, zetam1_int_e
23, zetam1_int
24, hzeta_e
25, hzeta
26, eta_int_e
27, eta_int
28, eta_e
29, eta
30) where
31
32import Foreign(Ptr)
33import GSL.Special.Internal
34
35-- | wrapper for int gsl_sf_zeta_int_e(int n,gsl_sf_result* result);
36zeta_int_e :: Int -> (Double,Double)
37zeta_int_e n = createSFR "zeta_int_e" $ gsl_sf_zeta_int_e n
38foreign import ccall "zeta.h gsl_sf_zeta_int_e" gsl_sf_zeta_int_e :: Int -> Ptr Double -> IO(Int)
39
40-- | wrapper for double gsl_sf_zeta_int(int n);
41zeta_int :: Int -> Double
42zeta_int = gsl_sf_zeta_int
43foreign import ccall "zeta.h gsl_sf_zeta_int" gsl_sf_zeta_int :: Int -> Double
44
45-- | wrapper for int gsl_sf_zeta_e(double s,gsl_sf_result* result);
46zeta_e :: Double -> (Double,Double)
47zeta_e s = createSFR "zeta_e" $ gsl_sf_zeta_e s
48foreign import ccall "zeta.h gsl_sf_zeta_e" gsl_sf_zeta_e :: Double -> Ptr Double -> IO(Int)
49
50-- | wrapper for double gsl_sf_zeta(double s);
51zeta :: Double -> Double
52zeta = gsl_sf_zeta
53foreign import ccall "zeta.h gsl_sf_zeta" gsl_sf_zeta :: Double -> Double
54
55-- | wrapper for int gsl_sf_zetam1_e(double s,gsl_sf_result* result);
56zetam1_e :: Double -> (Double,Double)
57zetam1_e s = createSFR "zetam1_e" $ gsl_sf_zetam1_e s
58foreign import ccall "zeta.h gsl_sf_zetam1_e" gsl_sf_zetam1_e :: Double -> Ptr Double -> IO(Int)
59
60-- | wrapper for double gsl_sf_zetam1(double s);
61zetam1 :: Double -> Double
62zetam1 = gsl_sf_zetam1
63foreign import ccall "zeta.h gsl_sf_zetam1" gsl_sf_zetam1 :: Double -> Double
64
65-- | wrapper for int gsl_sf_zetam1_int_e(int s,gsl_sf_result* result);
66zetam1_int_e :: Int -> (Double,Double)
67zetam1_int_e s = createSFR "zetam1_int_e" $ gsl_sf_zetam1_int_e s
68foreign import ccall "zeta.h gsl_sf_zetam1_int_e" gsl_sf_zetam1_int_e :: Int -> Ptr Double -> IO(Int)
69
70-- | wrapper for double gsl_sf_zetam1_int(int s);
71zetam1_int :: Int -> Double
72zetam1_int = gsl_sf_zetam1_int
73foreign import ccall "zeta.h gsl_sf_zetam1_int" gsl_sf_zetam1_int :: Int -> Double
74
75-- | wrapper for int gsl_sf_hzeta_e(double s,double q,gsl_sf_result* result);
76hzeta_e :: Double -> Double -> (Double,Double)
77hzeta_e s q = createSFR "hzeta_e" $ gsl_sf_hzeta_e s q
78foreign import ccall "zeta.h gsl_sf_hzeta_e" gsl_sf_hzeta_e :: Double -> Double -> Ptr Double -> IO(Int)
79
80-- | wrapper for double gsl_sf_hzeta(double s,double q);
81hzeta :: Double -> Double -> Double
82hzeta = gsl_sf_hzeta
83foreign import ccall "zeta.h gsl_sf_hzeta" gsl_sf_hzeta :: Double -> Double -> Double
84
85-- | wrapper for int gsl_sf_eta_int_e(int n,gsl_sf_result* result);
86eta_int_e :: Int -> (Double,Double)
87eta_int_e n = createSFR "eta_int_e" $ gsl_sf_eta_int_e n
88foreign import ccall "zeta.h gsl_sf_eta_int_e" gsl_sf_eta_int_e :: Int -> Ptr Double -> IO(Int)
89
90-- | wrapper for double gsl_sf_eta_int(int n);
91eta_int :: Int -> Double
92eta_int = gsl_sf_eta_int
93foreign import ccall "zeta.h gsl_sf_eta_int" gsl_sf_eta_int :: Int -> Double
94
95-- | wrapper for int gsl_sf_eta_e(double s,gsl_sf_result* result);
96eta_e :: Double -> (Double,Double)
97eta_e s = createSFR "eta_e" $ gsl_sf_eta_e s
98foreign import ccall "zeta.h gsl_sf_eta_e" gsl_sf_eta_e :: Double -> Ptr Double -> IO(Int)
99
100-- | wrapper for double gsl_sf_eta(double s);
101eta :: Double -> Double
102eta = gsl_sf_eta
103foreign import ccall "zeta.h gsl_sf_eta" gsl_sf_eta :: Double -> Double
diff --git a/lib/GSL/Special/auto.hs b/lib/GSL/Special/auto.hs
index 42829bb..a6a0f9a 100644
--- a/lib/GSL/Special/auto.hs
+++ b/lib/GSL/Special/auto.hs
@@ -3,7 +3,7 @@
3import Text.ParserCombinators.Parsec 3import Text.ParserCombinators.Parsec
4import System 4import System
5import Data.List(intersperse, isPrefixOf) 5import Data.List(intersperse, isPrefixOf)
6import Data.Char(toUpper) 6import Data.Char(toUpper,isUpper,toLower)
7 7
8data Type = Normal Ident | Pointer Ident deriving (Eq, Show) 8data Type = Normal Ident | Pointer Ident deriving (Eq, Show)
9 9
@@ -53,7 +53,7 @@ main = do
53 --mapM (\(Header _ n _) -> putStrLn (drop 7 n ++",")) parsed 53 --mapM (\(Header _ n _) -> putStrLn (drop 7 n ++",")) parsed
54 --putStrLn "" 54 --putStrLn ""
55 --mapM_ (putStrLn.showFull (name ++".h")) parsed 55 --mapM_ (putStrLn.showFull (name ++".h")) parsed
56 let exports = rep (")",") where") $ rep ("(\n","(\n ") $ rep (",\n",", ") $ unlines $ ["("]++intersperse "," (map (\(Header _ n _) -> drop 7 n) (filter safe parsed))++[")"] 56 let exports = rep (")",") where") $ rep ("(\n","(\n ") $ rep (",\n",", ") $ unlines $ ["("]++intersperse "," (map (\(Header _ n _) -> hName n) (filter safe parsed))++[")"]
57 let defs = unlines $ map (showFull (name ++".h")) parsed 57 let defs = unlines $ map (showFull (name ++".h")) parsed
58 let imports = "\nimport Foreign(Ptr)\nimport GSL.Special.Internal\n" 58 let imports = "\nimport Foreign(Ptr)\nimport GSL.Special.Internal\n"
59 let mod = modhead name ++ "module GSL.Special."++ upperFirst name++exports++imports++defs 59 let mod = modhead name ++ "module GSL.Special."++ upperFirst name++exports++imports++defs
@@ -189,22 +189,31 @@ boiler h@(Header t n args) | fst (last args) == Pointer "gsl_sf_result" = boiler
189isMode (Normal "gsl_mode_t",_) = True 189isMode (Normal "gsl_mode_t",_) = True
190isMode _ = False 190isMode _ = False
191 191
192hName n = f $ drop 7 n
193 where f (s:ss) = toLower s : ss
194
192 195
193boilerResult h@(Header t n args) = 196boilerResult h@(Header t n args) =
194 drop 7 n++" :: "++ (fixmd1 $ concat $ intersperse" -> "$ map showHa (init args)) ++" -> " ++ "(Double,Double)\n" ++ 197 hName n++" :: "++ (fixmd1 $ concat $ intersperse" -> "$ map showHa (init args)) ++" -> " ++ "(Double,Double)\n" ++
195 drop 7 n ++ " "++(unwords (map snd (init args)))++ 198 hName n ++ " "++ initArgs args ++
196 " = createSFR \""++ drop 7 n ++"\" $ " ++ n ++ " "++(fixmd2 $ unwords (map snd (init args))) 199 " = createSFR \""++ hName n ++"\" $ " ++ n ++ " "++ (fixmd2 $ initArgs args)
197 200
198boilerResultE10 h@(Header t n args) = 201boilerResultE10 h@(Header t n args) =
199 drop 7 n++" :: "++ (fixmd1 $ concat $ intersperse" -> "$ map showHa (init args)) ++" -> " ++ "(Double,Int,Double)\n" ++ 202 hName n++" :: "++ (fixmd1 $ concat $ intersperse" -> "$ map showHa (init args)) ++" -> " ++ "(Double,Int,Double)\n" ++
200 drop 7 n ++ " "++(unwords (map snd (init args)))++ 203 hName n ++ " "++ initArgs args ++
201 " = createSFR_E10 \""++ drop 7 n ++"\" $ " ++ n ++ " "++(fixmd2 $ unwords (map snd (init args))) 204 " = createSFR_E10 \""++ hName n ++"\" $ " ++ n ++ " "++ (fixmd2 $ initArgs args)
202 205
203boilerBasic h@(Header t n args) = 206boilerBasic h@(Header t n args) =
204 drop 7 n++" :: "++ (fixmd1 $ concat $ intersperse" -> "$map showHa args) ++" -> " ++showHt t ++ "\n" ++ 207 hName n++" :: "++ (fixmd1 $ concat $ intersperse" -> "$map showHa args) ++" -> " ++showHt t ++ "\n" ++
205 drop 7 n ++ " = " ++fixmd2 n 208 hName n ++ " = " ++fixmd2 n
206 209
207boilerMode h@(Header t n args) = 210boilerMode h@(Header t n args) =
208 drop 7 n++" :: "++ (fixmd1 $ concat $ intersperse" -> "$ map showHa args) ++" -> " ++ showHt t++"\n" ++ 211 hName n++" :: "++ (fixmd1 $ concat $ intersperse" -> "$ map showHa args) ++" -> " ++ showHt t++"\n" ++
209 drop 7 n ++ " "++(unwords (map snd args))++ 212 hName n ++ " "++ allArgs args ++
210 " = " ++ n ++ " "++(fixmd2 $ unwords (map snd args)) 213 " = " ++ n ++ " "++ (fixmd2 $ allArgs args)
214
215cVar (v:vs) | isUpper v = toLower v : v : vs
216 | otherwise = v:vs
217
218allArgs args = unwords (map (cVar.snd) args)
219initArgs args = unwords (map (cVar.snd) (init args)) \ No newline at end of file
diff --git a/lib/GSL/Special/clausen.h b/lib/GSL/Special/clausen.h
new file mode 100644
index 0000000..9f0225b
--- /dev/null
+++ b/lib/GSL/Special/clausen.h
@@ -0,0 +1,2 @@
1int gsl_sf_clausen_e(double x,double* result);
2double gsl_sf_clausen(double x);
diff --git a/lib/GSL/Special/coulomb.h b/lib/GSL/Special/coulomb.h
new file mode 100644
index 0000000..2551081
--- /dev/null
+++ b/lib/GSL/Special/coulomb.h
@@ -0,0 +1,11 @@
1int gsl_sf_hydrogenicR_1_e(double Z,double r,double* result);
2double gsl_sf_hydrogenicR_1(double Z,double r);
3int gsl_sf_hydrogenicR_e(int n,int l,double Z,double r,double* result);
4double gsl_sf_hydrogenicR(int n,int l,double Z,double r);
5int gsl_sf_coulomb_wave_FG_e(double eta,double x,double lam_F,int k_lam_G,double* F,double* Fp,double* G,double* Gp,double* exp_F,double* exp_G);
6int gsl_sf_coulomb_wave_F_array(double lam_min,int kmax,double eta,double x,double* fc_array,double* F_exponent);
7int gsl_sf_coulomb_wave_FG_array(double lam_min,int kmax,double eta,double x,double* fc_array,double* gc_array,double* F_exponent,double* G_exponent);
8int gsl_sf_coulomb_wave_FGp_array(double lam_min,int kmax,double eta,double x,double* fc_array,double* fcp_array,double* gc_array,double* gcp_array,double* F_exponent,double* G_exponent);
9int gsl_sf_coulomb_wave_sphF_array(double lam_min,int kmax,double eta,double x,double* fc_array,double* F_exponent);
10int gsl_sf_coulomb_CL_e(double L,double eta,double* result);
11int gsl_sf_coulomb_CL_array(double Lmin,int kmax,double eta,double* cl);
diff --git a/lib/GSL/Special/coupling.h b/lib/GSL/Special/coupling.h
new file mode 100644
index 0000000..17de964
--- /dev/null
+++ b/lib/GSL/Special/coupling.h
@@ -0,0 +1,10 @@
1int gsl_sf_coupling_3j_e(int two_ja,int two_jb,int two_jc,int two_ma,int two_mb,int two_mc,double* result);
2double gsl_sf_coupling_3j(int two_ja,int two_jb,int two_jc,int two_ma,int two_mb,int two_mc);
3int gsl_sf_coupling_6j_e(int two_ja,int two_jb,int two_jc,int two_jd,int two_je,int two_jf,double* result);
4double gsl_sf_coupling_6j(int two_ja,int two_jb,int two_jc,int two_jd,int two_je,int two_jf);
5int gsl_sf_coupling_RacahW_e(int two_ja,int two_jb,int two_jc,int two_jd,int two_je,int two_jf,double* result);
6double gsl_sf_coupling_RacahW(int two_ja,int two_jb,int two_jc,int two_jd,int two_je,int two_jf);
7int gsl_sf_coupling_9j_e(int two_ja,int two_jb,int two_jc,int two_jd,int two_je,int two_jf,int two_jg,int two_jh,int two_ji,double* result);
8double gsl_sf_coupling_9j(int two_ja,int two_jb,int two_jc,int two_jd,int two_je,int two_jf,int two_jg,int two_jh,int two_ji);
9int gsl_sf_coupling_6j_INCORRECT_e(int two_ja,int two_jb,int two_jc,int two_jd,int two_je,int two_jf,double* result);
10double gsl_sf_coupling_6j_INCORRECT(int two_ja,int two_jb,int two_jc,int two_jd,int two_je,int two_jf);
diff --git a/lib/GSL/Special/dawson.h b/lib/GSL/Special/dawson.h
new file mode 100644
index 0000000..5f878b5
--- /dev/null
+++ b/lib/GSL/Special/dawson.h
@@ -0,0 +1,2 @@
1int gsl_sf_dawson_e(double x,double* result);
2double gsl_sf_dawson(double x);
diff --git a/lib/GSL/Special/debye.h b/lib/GSL/Special/debye.h
new file mode 100644
index 0000000..2424b63
--- /dev/null
+++ b/lib/GSL/Special/debye.h
@@ -0,0 +1,8 @@
1int gsl_sf_debye_1_e(double x,double* result);
2double gsl_sf_debye_1(double x);
3int gsl_sf_debye_2_e(double x,double* result);
4double gsl_sf_debye_2(double x);
5int gsl_sf_debye_3_e(double x,double* result);
6double gsl_sf_debye_3(double x);
7int gsl_sf_debye_4_e(double x,double* result);
8double gsl_sf_debye_4(double x);
diff --git a/lib/GSL/Special/dilog.h b/lib/GSL/Special/dilog.h
new file mode 100644
index 0000000..ce1599e
--- /dev/null
+++ b/lib/GSL/Special/dilog.h
@@ -0,0 +1,5 @@
1int gsl_sf_dilog_e(double x,double* result);
2double gsl_sf_dilog(double x);
3int gsl_sf_complex_dilog_xy_e(double x,double y,double* result_re,double* result_im);
4int gsl_sf_complex_dilog_e(double r,double theta,double* result_re,double* result_im);
5int gsl_sf_complex_spence_xy_e(double x,double y,double* real_sp,double* imag_sp);
diff --git a/lib/GSL/Special/elementary.h b/lib/GSL/Special/elementary.h
new file mode 100644
index 0000000..bf5adf8
--- /dev/null
+++ b/lib/GSL/Special/elementary.h
@@ -0,0 +1,3 @@
1int gsl_sf_multiply_e(double x,double y,double* result);
2double gsl_sf_multiply(double x,double y);
3int gsl_sf_multiply_err_e(double x,double dx,double y,double dy,double* result);
diff --git a/lib/GSL/Special/ellint.h b/lib/GSL/Special/ellint.h
new file mode 100644
index 0000000..5329c6c
--- /dev/null
+++ b/lib/GSL/Special/ellint.h
@@ -0,0 +1,20 @@
1int gsl_sf_ellint_Kcomp_e(double k,int mode,double* result);
2double gsl_sf_ellint_Kcomp(double k,int mode);
3int gsl_sf_ellint_Ecomp_e(double k,int mode,double* result);
4double gsl_sf_ellint_Ecomp(double k,int mode);
5int gsl_sf_ellint_F_e(double phi,double k,int mode,double* result);
6double gsl_sf_ellint_F(double phi,double k,int mode);
7int gsl_sf_ellint_E_e(double phi,double k,int mode,double* result);
8double gsl_sf_ellint_E(double phi,double k,int mode);
9int gsl_sf_ellint_P_e(double phi,double k,double n,int mode,double* result);
10double gsl_sf_ellint_P(double phi,double k,double n,int mode);
11int gsl_sf_ellint_D_e(double phi,double k,double n,int mode,double* result);
12double gsl_sf_ellint_D(double phi,double k,double n,int mode);
13int gsl_sf_ellint_RC_e(double x,double y,int mode,double* result);
14double gsl_sf_ellint_RC(double x,double y,int mode);
15int gsl_sf_ellint_RD_e(double x,double y,double z,int mode,double* result);
16double gsl_sf_ellint_RD(double x,double y,double z,int mode);
17int gsl_sf_ellint_RF_e(double x,double y,double z,int mode,double* result);
18double gsl_sf_ellint_RF(double x,double y,double z,int mode);
19int gsl_sf_ellint_RJ_e(double x,double y,double z,double p,int mode,double* result);
20double gsl_sf_ellint_RJ(double x,double y,double z,double p,int mode);
diff --git a/lib/GSL/Special/expint.h b/lib/GSL/Special/expint.h
new file mode 100644
index 0000000..1dd469f
--- /dev/null
+++ b/lib/GSL/Special/expint.h
@@ -0,0 +1,24 @@
1int gsl_sf_expint_E1_e(double x,double* result);
2double gsl_sf_expint_E1(double x);
3int gsl_sf_expint_E2_e(double x,double* result);
4double gsl_sf_expint_E2(double x);
5int gsl_sf_expint_E1_scaled_e(double x,double* result);
6double gsl_sf_expint_E1_scaled(double x);
7int gsl_sf_expint_E2_scaled_e(double x,double* result);
8double gsl_sf_expint_E2_scaled(double x);
9int gsl_sf_expint_Ei_e(double x,double* result);
10double gsl_sf_expint_Ei(double x);
11int gsl_sf_expint_Ei_scaled_e(double x,double* result);
12double gsl_sf_expint_Ei_scaled(double x);
13int gsl_sf_Shi_e(double x,double* result);
14double gsl_sf_Shi(double x);
15int gsl_sf_Chi_e(double x,double* result);
16double gsl_sf_Chi(double x);
17int gsl_sf_expint_3_e(double x,double* result);
18double gsl_sf_expint_3(double x);
19int gsl_sf_Si_e(double x,double* result);
20double gsl_sf_Si(double x);
21int gsl_sf_Ci_e(double x,double* result);
22double gsl_sf_Ci(double x);
23int gsl_sf_atanint_e(double x,double* result);
24double gsl_sf_atanint(double x);
diff --git a/lib/GSL/Special/fermi_dirac.h b/lib/GSL/Special/fermi_dirac.h
new file mode 100644
index 0000000..7a4c757
--- /dev/null
+++ b/lib/GSL/Special/fermi_dirac.h
@@ -0,0 +1,18 @@
1int gsl_sf_fermi_dirac_m1_e(double x,double* result);
2double gsl_sf_fermi_dirac_m1(double x);
3int gsl_sf_fermi_dirac_0_e(double x,double* result);
4double gsl_sf_fermi_dirac_0(double x);
5int gsl_sf_fermi_dirac_1_e(double x,double* result);
6double gsl_sf_fermi_dirac_1(double x);
7int gsl_sf_fermi_dirac_2_e(double x,double* result);
8double gsl_sf_fermi_dirac_2(double x);
9int gsl_sf_fermi_dirac_int_e(int j,double x,double* result);
10double gsl_sf_fermi_dirac_int(int j,double x);
11int gsl_sf_fermi_dirac_mhalf_e(double x,double* result);
12double gsl_sf_fermi_dirac_mhalf(double x);
13int gsl_sf_fermi_dirac_half_e(double x,double* result);
14double gsl_sf_fermi_dirac_half(double x);
15int gsl_sf_fermi_dirac_3half_e(double x,double* result);
16double gsl_sf_fermi_dirac_3half(double x);
17int gsl_sf_fermi_dirac_inc_0_e(double x,double b,double* result);
18double gsl_sf_fermi_dirac_inc_0(double x,double b);
diff --git a/lib/GSL/Special/gegenbauer.h b/lib/GSL/Special/gegenbauer.h
new file mode 100644
index 0000000..228cbd3
--- /dev/null
+++ b/lib/GSL/Special/gegenbauer.h
@@ -0,0 +1,9 @@
1int gsl_sf_gegenpoly_1_e(double lambda,double x,double* result);
2int gsl_sf_gegenpoly_2_e(double lambda,double x,double* result);
3int gsl_sf_gegenpoly_3_e(double lambda,double x,double* result);
4double gsl_sf_gegenpoly_1(double lambda,double x);
5double gsl_sf_gegenpoly_2(double lambda,double x);
6double gsl_sf_gegenpoly_3(double lambda,double x);
7int gsl_sf_gegenpoly_n_e(int n,double lambda,double x,double* result);
8double gsl_sf_gegenpoly_n(int n,double lambda,double x);
9int gsl_sf_gegenpoly_array(int nmax,double lambda,double x,double* result_array);
diff --git a/lib/GSL/Special/gsl_sf_exp.h b/lib/GSL/Special/gsl_sf_exp.h
new file mode 100644
index 0000000..b1f0d89
--- /dev/null
+++ b/lib/GSL/Special/gsl_sf_exp.h
@@ -0,0 +1,146 @@
1/* specfunc/gsl_sf_exp.h
2 *
3 * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2004 Gerard Jungman
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or (at
8 * your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful, but
11 * WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18 */
19
20/* Author: G. Jungman */
21
22#ifndef __GSL_SF_EXP_H__
23#define __GSL_SF_EXP_H__
24
25#include <gsl/gsl_sf_result.h>
26#include <gsl/gsl_precision.h>
27
28#undef __BEGIN_DECLS
29#undef __END_DECLS
30#ifdef __cplusplus
31# define __BEGIN_DECLS extern "C" {
32# define __END_DECLS }
33#else
34# define __BEGIN_DECLS /* empty */
35# define __END_DECLS /* empty */
36#endif
37
38__BEGIN_DECLS
39
40/* Provide an exp() function with GSL semantics,
41 * i.e. with proper error checking, etc.
42 *
43 * exceptions: GSL_EOVRFLW, GSL_EUNDRFLW
44 */
45int gsl_sf_exp_e(const double x, gsl_sf_result * result);
46double gsl_sf_exp(const double x);
47
48
49/* Exp(x)
50 *
51 * exceptions: GSL_EOVRFLW, GSL_EUNDRFLW
52 */
53int gsl_sf_exp_e10_e(const double x, gsl_sf_result_e10 * result);
54
55
56/* Exponentiate and multiply by a given factor: y * Exp(x)
57 *
58 * exceptions: GSL_EOVRFLW, GSL_EUNDRFLW
59 */
60int gsl_sf_exp_mult_e(const double x, const double y, gsl_sf_result * result);
61double gsl_sf_exp_mult(const double x, const double y);
62
63
64/* Exponentiate and multiply by a given factor: y * Exp(x)
65 *
66 * exceptions: GSL_EOVRFLW, GSL_EUNDRFLW
67 */
68int gsl_sf_exp_mult_e10_e(const double x, const double y, gsl_sf_result_e10 * result);
69
70
71/* exp(x)-1
72 *
73 * exceptions: GSL_EOVRFLW
74 */
75int gsl_sf_expm1_e(const double x, gsl_sf_result * result);
76double gsl_sf_expm1(const double x);
77
78
79/* (exp(x)-1)/x = 1 + x/2 + x^2/(2*3) + x^3/(2*3*4) + ...
80 *
81 * exceptions: GSL_EOVRFLW
82 */
83int gsl_sf_exprel_e(const double x, gsl_sf_result * result);
84double gsl_sf_exprel(const double x);
85
86
87/* 2(exp(x)-1-x)/x^2 = 1 + x/3 + x^2/(3*4) + x^3/(3*4*5) + ...
88 *
89 * exceptions: GSL_EOVRFLW
90 */
91int gsl_sf_exprel_2_e(double x, gsl_sf_result * result);
92double gsl_sf_exprel_2(const double x);
93
94
95/* Similarly for the N-th generalization of
96 * the above. The so-called N-relative exponential
97 *
98 * exprel_N(x) = N!/x^N (exp(x) - Sum[x^k/k!, {k,0,N-1}])
99 * = 1 + x/(N+1) + x^2/((N+1)(N+2)) + ...
100 * = 1F1(1,1+N,x)
101 */
102int gsl_sf_exprel_n_e(const int n, const double x, gsl_sf_result * result);
103double gsl_sf_exprel_n(const int n, const double x);
104
105
106/* Exponentiate a quantity with an associated error.
107 */
108int gsl_sf_exp_err_e(const double x, const double dx, gsl_sf_result * result);
109
110/* Exponentiate a quantity with an associated error.
111 */
112int gsl_sf_exp_err_e10_e(const double x, const double dx, gsl_sf_result_e10 * result);
113
114
115/* Exponentiate and multiply by a given factor: y * Exp(x),
116 * for quantities with associated errors.
117 *
118 * exceptions: GSL_EOVRFLW, GSL_EUNDRFLW
119 */
120int gsl_sf_exp_mult_err_e(const double x, const double dx, const double y, const double dy, gsl_sf_result * result);
121
122
123/* Exponentiate and multiply by a given factor: y * Exp(x),
124 * for quantities with associated errors.
125 *
126 * exceptions: GSL_EOVRFLW, GSL_EUNDRFLW
127 */
128int gsl_sf_exp_mult_err_e10_e(const double x, const double dx, const double y, const double dy, gsl_sf_result_e10 * result);
129
130__END_DECLS
131
132
133#ifdef HAVE_INLINE
134#include <gsl/gsl_math.h>
135#include <gsl/gsl_errno.h>
136
137__BEGIN_DECLS
138
139
140
141__END_DECLS
142
143#endif /* HAVE_INLINE */
144
145
146#endif /* __GSL_SF_EXP_H__ */
diff --git a/lib/GSL/Special/gsl_sf_log.h b/lib/GSL/Special/gsl_sf_log.h
new file mode 100644
index 0000000..5225d05
--- /dev/null
+++ b/lib/GSL/Special/gsl_sf_log.h
@@ -0,0 +1,90 @@
1/* specfunc/gsl_sf_log.h
2 *
3 * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2004 Gerard Jungman
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or (at
8 * your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful, but
11 * WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18 */
19
20/* Author: G. Jungman */
21
22#ifndef __GSL_SF_LOG_H__
23#define __GSL_SF_LOG_H__
24
25#include <gsl/gsl_sf_result.h>
26
27#undef __BEGIN_DECLS
28#undef __END_DECLS
29#ifdef __cplusplus
30# define __BEGIN_DECLS extern "C" {
31# define __END_DECLS }
32#else
33# define __BEGIN_DECLS /* empty */
34# define __END_DECLS /* empty */
35#endif
36
37__BEGIN_DECLS
38
39
40/* Provide a logarithm function with GSL semantics.
41 *
42 * exceptions: GSL_EDOM
43 */
44int gsl_sf_log_e(const double x, gsl_sf_result * result);
45double gsl_sf_log(const double x);
46
47
48/* Log(|x|)
49 *
50 * exceptions: GSL_EDOM
51 */
52int gsl_sf_log_abs_e(const double x, gsl_sf_result * result);
53double gsl_sf_log_abs(const double x);
54
55
56/* Complex Logarithm
57 * exp(lnr + I theta) = zr + I zi
58 * Returns argument in [-pi,pi].
59 *
60 * exceptions: GSL_EDOM
61 */
62int gsl_sf_complex_log_e(const double zr, const double zi, gsl_sf_result * lnr, gsl_sf_result * theta);
63
64
65/* Log(1 + x)
66 *
67 * exceptions: GSL_EDOM
68 */
69int gsl_sf_log_1plusx_e(const double x, gsl_sf_result * result);
70double gsl_sf_log_1plusx(const double x);
71
72
73/* Log(1 + x) - x
74 *
75 * exceptions: GSL_EDOM
76 */
77int gsl_sf_log_1plusx_mx_e(const double x, gsl_sf_result * result);
78double gsl_sf_log_1plusx_mx(const double x);
79
80
81#ifdef HAVE_INLINE
82#include <gsl/gsl_math.h>
83#include <gsl/gsl_errno.h>
84
85#endif /* HAVE_INLINE */
86
87
88__END_DECLS
89
90#endif /* __GSL_SF_LOG_H__ */
diff --git a/lib/GSL/Special/hyperg.h b/lib/GSL/Special/hyperg.h
new file mode 100644
index 0000000..aa59106
--- /dev/null
+++ b/lib/GSL/Special/hyperg.h
@@ -0,0 +1,22 @@
1int gsl_sf_hyperg_0F1_e(double c,double x,double* result);
2double gsl_sf_hyperg_0F1(double c,double x);
3int gsl_sf_hyperg_1F1_int_e(int m,int n,double x,double* result);
4double gsl_sf_hyperg_1F1_int(int m,int n,double x);
5int gsl_sf_hyperg_1F1_e(double a,double b,double x,double* result);
6double gsl_sf_hyperg_1F1(double a,double b,double x);
7int gsl_sf_hyperg_U_int_e(int m,int n,double x,double* result);
8double gsl_sf_hyperg_U_int(int m,int n,double x);
9int gsl_sf_hyperg_U_int_e10_e(int m,int n,double x,double* result);
10int gsl_sf_hyperg_U_e(double a,double b,double x,double* result);
11double gsl_sf_hyperg_U(double a,double b,double x);
12int gsl_sf_hyperg_U_e10_e(double a,double b,double x,double* result);
13int gsl_sf_hyperg_2F1_e(double a,double b,double c,double x,double* result);
14double gsl_sf_hyperg_2F1(double a,double b,double c,double x);
15int gsl_sf_hyperg_2F1_conj_e(double aR,double aI,double c,double x,double* result);
16double gsl_sf_hyperg_2F1_conj(double aR,double aI,double c,double x);
17int gsl_sf_hyperg_2F1_renorm_e(double a,double b,double c,double x,double* result);
18double gsl_sf_hyperg_2F1_renorm(double a,double b,double c,double x);
19int gsl_sf_hyperg_2F1_conj_renorm_e(double aR,double aI,double c,double x,double* result);
20double gsl_sf_hyperg_2F1_conj_renorm(double aR,double aI,double c,double x);
21int gsl_sf_hyperg_2F0_e(double a,double b,double x,double* result);
22double gsl_sf_hyperg_2F0(double a,double b,double x);
diff --git a/lib/GSL/Special/laguerre.h b/lib/GSL/Special/laguerre.h
new file mode 100644
index 0000000..6275a05
--- /dev/null
+++ b/lib/GSL/Special/laguerre.h
@@ -0,0 +1,8 @@
1int gsl_sf_laguerre_1_e(double a,double x,double* result);
2int gsl_sf_laguerre_2_e(double a,double x,double* result);
3int gsl_sf_laguerre_3_e(double a,double x,double* result);
4double gsl_sf_laguerre_1(double a,double x);
5double gsl_sf_laguerre_2(double a,double x);
6double gsl_sf_laguerre_3(double a,double x);
7int gsl_sf_laguerre_n_e(int n,double a,double x,double* result);
8double gsl_sf_laguerre_n(int n,double a,double x);
diff --git a/lib/GSL/Special/lambert.h b/lib/GSL/Special/lambert.h
new file mode 100644
index 0000000..df90d11
--- /dev/null
+++ b/lib/GSL/Special/lambert.h
@@ -0,0 +1,4 @@
1int gsl_sf_lambert_W0_e(double x,double* result);
2double gsl_sf_lambert_W0(double x);
3int gsl_sf_lambert_Wm1_e(double x,double* result);
4double gsl_sf_lambert_Wm1(double x);
diff --git a/lib/GSL/Special/log.h b/lib/GSL/Special/log.h
new file mode 100644
index 0000000..5713845
--- /dev/null
+++ b/lib/GSL/Special/log.h
@@ -0,0 +1,9 @@
1int gsl_sf_log_e(double x,double* result);
2double gsl_sf_log(double x);
3int gsl_sf_log_abs_e(double x,double* result);
4double gsl_sf_log_abs(double x);
5int gsl_sf_complex_log_e(double zr,double zi,double* lnr,double* theta);
6int gsl_sf_log_1plusx_e(double x,double* result);
7double gsl_sf_log_1plusx(double x);
8int gsl_sf_log_1plusx_mx_e(double x,double* result);
9double gsl_sf_log_1plusx_mx(double x);
diff --git a/lib/GSL/Special/manual.txt b/lib/GSL/Special/manual.txt
new file mode 100644
index 0000000..a95823d
--- /dev/null
+++ b/lib/GSL/Special/manual.txt
@@ -0,0 +1,10 @@
1Airy.hs
2 include Precision (..) in the export list
3Exp.hs
4 remove extern inline definition, qualify name
5Coupling
6 remove deprecated INCORRECT
7Trig.hs
8 qualify names
9Log.hs
10 remove extern inline, qualify name
diff --git a/lib/GSL/Special/pow_int.h b/lib/GSL/Special/pow_int.h
new file mode 100644
index 0000000..aba8bc9
--- /dev/null
+++ b/lib/GSL/Special/pow_int.h
@@ -0,0 +1,2 @@
1int gsl_sf_pow_int_e(double x,int n,double* result);
2double gsl_sf_pow_int(double x,int n);
diff --git a/lib/GSL/Special/psi.h b/lib/GSL/Special/psi.h
new file mode 100644
index 0000000..589eb34
--- /dev/null
+++ b/lib/GSL/Special/psi.h
@@ -0,0 +1,12 @@
1int gsl_sf_psi_int_e(int n,double* result);
2double gsl_sf_psi_int(int n);
3int gsl_sf_psi_e(double x,double* result);
4double gsl_sf_psi(double x);
5int gsl_sf_psi_1piy_e(double y,double* result);
6double gsl_sf_psi_1piy(double y);
7int gsl_sf_psi_1_int_e(int n,double* result);
8double gsl_sf_psi_1_int(int n);
9int gsl_sf_psi_1_e(double x,double* result);
10double gsl_sf_psi_1(double x);
11int gsl_sf_psi_n_e(int n,double x,double* result);
12double gsl_sf_psi_n(int n,double x);
diff --git a/lib/GSL/Special/synchrotron.h b/lib/GSL/Special/synchrotron.h
new file mode 100644
index 0000000..786401c
--- /dev/null
+++ b/lib/GSL/Special/synchrotron.h
@@ -0,0 +1,4 @@
1int gsl_sf_synchrotron_1_e(double x,double* result);
2double gsl_sf_synchrotron_1(double x);
3int gsl_sf_synchrotron_2_e(double x,double* result);
4double gsl_sf_synchrotron_2(double x);
diff --git a/lib/GSL/Special/trig.h b/lib/GSL/Special/trig.h
new file mode 100644
index 0000000..50677f2
--- /dev/null
+++ b/lib/GSL/Special/trig.h
@@ -0,0 +1,25 @@
1int gsl_sf_sin_e(double x,double* result);
2double gsl_sf_sin(double x);
3int gsl_sf_cos_e(double x,double* result);
4double gsl_sf_cos(double x);
5int gsl_sf_hypot_e(double x,double y,double* result);
6double gsl_sf_hypot(double x,double y);
7int gsl_sf_complex_sin_e(double zr,double zi,double* szr,double* szi);
8int gsl_sf_complex_cos_e(double zr,double zi,double* czr,double* czi);
9int gsl_sf_complex_logsin_e(double zr,double zi,double* lszr,double* lszi);
10int gsl_sf_sinc_e(double x,double* result);
11double gsl_sf_sinc(double x);
12int gsl_sf_lnsinh_e(double x,double* result);
13double gsl_sf_lnsinh(double x);
14int gsl_sf_lncosh_e(double x,double* result);
15double gsl_sf_lncosh(double x);
16int gsl_sf_polar_to_rect(double r,double theta,double* x,double* y);
17int gsl_sf_rect_to_polar(double x,double y,double* r,double* theta);
18int gsl_sf_sin_err_e(double x,double dx,double* result);
19int gsl_sf_cos_err_e(double x,double dx,double* result);
20int gsl_sf_angle_restrict_symm_e(double* theta);
21double gsl_sf_angle_restrict_symm(double theta);
22int gsl_sf_angle_restrict_pos_e(double* theta);
23double gsl_sf_angle_restrict_pos(double theta);
24int gsl_sf_angle_restrict_symm_err_e(double theta,double* result);
25int gsl_sf_angle_restrict_pos_err_e(double theta,double* result);
diff --git a/lib/GSL/Special/zeta.h b/lib/GSL/Special/zeta.h
new file mode 100644
index 0000000..b961ece
--- /dev/null
+++ b/lib/GSL/Special/zeta.h
@@ -0,0 +1,14 @@
1int gsl_sf_zeta_int_e(int n,double* result);
2double gsl_sf_zeta_int(int n);
3int gsl_sf_zeta_e(double s,double* result);
4double gsl_sf_zeta(double s);
5int gsl_sf_zetam1_e(double s,double* result);
6double gsl_sf_zetam1(double s);
7int gsl_sf_zetam1_int_e(int s,double* result);
8double gsl_sf_zetam1_int(int s);
9int gsl_sf_hzeta_e(double s,double q,double* result);
10double gsl_sf_hzeta(double s,double q);
11int gsl_sf_eta_int_e(int n,double* result);
12double gsl_sf_eta_int(int n);
13int gsl_sf_eta_e(double s,double* result);
14double gsl_sf_eta(double s);