diff options
Diffstat (limited to 'lib/GSL/Special')
44 files changed, 2114 insertions, 13 deletions
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 | {- | | ||
3 | Module : GSL.Special.Clausen | ||
4 | Copyright : (c) Alberto Ruiz 2006 | ||
5 | License : GPL-style | ||
6 | Maintainer : Alberto Ruiz (aruiz at um dot es) | ||
7 | Stability : provisional | ||
8 | Portability : uses ffi | ||
9 | |||
10 | |||
11 | |||
12 | -} | ||
13 | ------------------------------------------------------------ | ||
14 | |||
15 | module GSL.Special.Clausen( | ||
16 | clausen_e | ||
17 | , clausen | ||
18 | ) where | ||
19 | |||
20 | import Foreign(Ptr) | ||
21 | import GSL.Special.Internal | ||
22 | |||
23 | -- | wrapper for int gsl_sf_clausen_e(double x,gsl_sf_result* result); | ||
24 | clausen_e :: Double -> (Double,Double) | ||
25 | clausen_e x = createSFR "clausen_e" $ gsl_sf_clausen_e x | ||
26 | foreign 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); | ||
29 | clausen :: Double -> Double | ||
30 | clausen = gsl_sf_clausen | ||
31 | foreign 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 | {- | | ||
3 | Module : GSL.Special.Coulomb | ||
4 | Copyright : (c) Alberto Ruiz 2006 | ||
5 | License : GPL-style | ||
6 | Maintainer : Alberto Ruiz (aruiz at um dot es) | ||
7 | Stability : provisional | ||
8 | Portability : uses ffi | ||
9 | |||
10 | |||
11 | |||
12 | -} | ||
13 | ------------------------------------------------------------ | ||
14 | |||
15 | module GSL.Special.Coulomb( | ||
16 | hydrogenicR_1_e | ||
17 | , hydrogenicR_1 | ||
18 | , hydrogenicR_e | ||
19 | , hydrogenicR | ||
20 | , coulomb_CL_e | ||
21 | ) where | ||
22 | |||
23 | import Foreign(Ptr) | ||
24 | import GSL.Special.Internal | ||
25 | |||
26 | -- | wrapper for int gsl_sf_hydrogenicR_1_e(double Z,double r,gsl_sf_result* result); | ||
27 | hydrogenicR_1_e :: Double -> Double -> (Double,Double) | ||
28 | hydrogenicR_1_e zZ r = createSFR "hydrogenicR_1_e" $ gsl_sf_hydrogenicR_1_e zZ r | ||
29 | foreign import ccall "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); | ||
32 | hydrogenicR_1 :: Double -> Double -> Double | ||
33 | hydrogenicR_1 = gsl_sf_hydrogenicR_1 | ||
34 | foreign 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); | ||
37 | hydrogenicR_e :: Int -> Int -> Double -> Double -> (Double,Double) | ||
38 | hydrogenicR_e n l zZ r = createSFR "hydrogenicR_e" $ gsl_sf_hydrogenicR_e n l zZ r | ||
39 | foreign 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); | ||
42 | hydrogenicR :: Int -> Int -> Double -> Double -> Double | ||
43 | hydrogenicR = gsl_sf_hydrogenicR | ||
44 | foreign 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); | ||
47 | coulomb_wave_FG_e :: Double -> Double -> Double -> Int -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Int | ||
48 | coulomb_wave_FG_e = gsl_sf_coulomb_wave_FG_e | ||
49 | foreign 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); | ||
52 | coulomb_wave_F_array :: Double -> Int -> Double -> Double -> Ptr Double -> Ptr Double -> Int | ||
53 | coulomb_wave_F_array = gsl_sf_coulomb_wave_F_array | ||
54 | foreign 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); | ||
57 | coulomb_wave_FG_array :: Double -> Int -> Double -> Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Int | ||
58 | coulomb_wave_FG_array = gsl_sf_coulomb_wave_FG_array | ||
59 | foreign 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); | ||
62 | coulomb_wave_FGp_array :: Double -> Int -> Double -> Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Ptr Double -> Int | ||
63 | coulomb_wave_FGp_array = gsl_sf_coulomb_wave_FGp_array | ||
64 | foreign 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); | ||
67 | coulomb_wave_sphF_array :: Double -> Int -> Double -> Double -> Ptr Double -> Ptr Double -> Int | ||
68 | coulomb_wave_sphF_array = gsl_sf_coulomb_wave_sphF_array | ||
69 | foreign 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); | ||
72 | coulomb_CL_e :: Double -> Double -> (Double,Double) | ||
73 | coulomb_CL_e lL eta = createSFR "coulomb_CL_e" $ gsl_sf_coulomb_CL_e lL eta | ||
74 | foreign 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); | ||
77 | coulomb_CL_array :: Double -> Int -> Double -> Ptr Double -> Int | ||
78 | coulomb_CL_array = gsl_sf_coulomb_CL_array | ||
79 | foreign 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 | {- | | ||
3 | Module : GSL.Special.Coupling | ||
4 | Copyright : (c) Alberto Ruiz 2006 | ||
5 | License : GPL-style | ||
6 | Maintainer : Alberto Ruiz (aruiz at um dot es) | ||
7 | Stability : provisional | ||
8 | Portability : uses ffi | ||
9 | |||
10 | |||
11 | |||
12 | -} | ||
13 | ------------------------------------------------------------ | ||
14 | |||
15 | module 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 | |||
28 | import Foreign(Ptr) | ||
29 | import 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); | ||
32 | coupling_3j_e :: Int -> Int -> Int -> Int -> Int -> Int -> (Double,Double) | ||
33 | coupling_3j_e two_ja two_jb two_jc two_ma two_mb two_mc = createSFR "coupling_3j_e" $ gsl_sf_coupling_3j_e two_ja two_jb two_jc two_ma two_mb two_mc | ||
34 | foreign 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); | ||
37 | coupling_3j :: Int -> Int -> Int -> Int -> Int -> Int -> Double | ||
38 | coupling_3j = gsl_sf_coupling_3j | ||
39 | foreign 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); | ||
42 | coupling_6j_e :: Int -> Int -> Int -> Int -> Int -> Int -> (Double,Double) | ||
43 | coupling_6j_e two_ja two_jb two_jc two_jd two_je two_jf = createSFR "coupling_6j_e" $ gsl_sf_coupling_6j_e two_ja two_jb two_jc two_jd two_je two_jf | ||
44 | foreign 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); | ||
47 | coupling_6j :: Int -> Int -> Int -> Int -> Int -> Int -> Double | ||
48 | coupling_6j = gsl_sf_coupling_6j | ||
49 | foreign 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); | ||
52 | coupling_RacahW_e :: Int -> Int -> Int -> Int -> Int -> Int -> (Double,Double) | ||
53 | coupling_RacahW_e two_ja two_jb two_jc two_jd two_je two_jf = createSFR "coupling_RacahW_e" $ gsl_sf_coupling_RacahW_e two_ja two_jb two_jc two_jd two_je two_jf | ||
54 | foreign 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); | ||
57 | coupling_RacahW :: Int -> Int -> Int -> Int -> Int -> Int -> Double | ||
58 | coupling_RacahW = gsl_sf_coupling_RacahW | ||
59 | foreign 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); | ||
62 | coupling_9j_e :: Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> (Double,Double) | ||
63 | coupling_9j_e two_ja two_jb two_jc two_jd two_je two_jf two_jg two_jh two_ji = createSFR "coupling_9j_e" $ gsl_sf_coupling_9j_e two_ja two_jb two_jc two_jd two_je two_jf two_jg two_jh two_ji | ||
64 | foreign 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); | ||
67 | coupling_9j :: Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Double | ||
68 | coupling_9j = gsl_sf_coupling_9j | ||
69 | foreign 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); | ||
72 | coupling_6j_INCORRECT_e :: Int -> Int -> Int -> Int -> Int -> Int -> (Double,Double) | ||
73 | coupling_6j_INCORRECT_e two_ja two_jb two_jc two_jd two_je two_jf = createSFR "coupling_6j_INCORRECT_e" $ gsl_sf_coupling_6j_INCORRECT_e two_ja two_jb two_jc two_jd two_je two_jf | ||
74 | foreign 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); | ||
77 | coupling_6j_INCORRECT :: Int -> Int -> Int -> Int -> Int -> Int -> Double | ||
78 | coupling_6j_INCORRECT = gsl_sf_coupling_6j_INCORRECT | ||
79 | foreign 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 | {- | | ||
3 | Module : GSL.Special.Dawson | ||
4 | Copyright : (c) Alberto Ruiz 2006 | ||
5 | License : GPL-style | ||
6 | Maintainer : Alberto Ruiz (aruiz at um dot es) | ||
7 | Stability : provisional | ||
8 | Portability : uses ffi | ||
9 | |||
10 | |||
11 | |||
12 | -} | ||
13 | ------------------------------------------------------------ | ||
14 | |||
15 | module GSL.Special.Dawson( | ||
16 | dawson_e | ||
17 | , dawson | ||
18 | ) where | ||
19 | |||
20 | import Foreign(Ptr) | ||
21 | import GSL.Special.Internal | ||
22 | |||
23 | -- | wrapper for int gsl_sf_dawson_e(double x,gsl_sf_result* result); | ||
24 | dawson_e :: Double -> (Double,Double) | ||
25 | dawson_e x = createSFR "dawson_e" $ gsl_sf_dawson_e x | ||
26 | foreign 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); | ||
29 | dawson :: Double -> Double | ||
30 | dawson = gsl_sf_dawson | ||
31 | foreign 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 | {- | | ||
3 | Module : GSL.Special.Debye | ||
4 | Copyright : (c) Alberto Ruiz 2006 | ||
5 | License : GPL-style | ||
6 | Maintainer : Alberto Ruiz (aruiz at um dot es) | ||
7 | Stability : provisional | ||
8 | Portability : uses ffi | ||
9 | |||
10 | |||
11 | |||
12 | -} | ||
13 | ------------------------------------------------------------ | ||
14 | |||
15 | module 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 | |||
26 | import Foreign(Ptr) | ||
27 | import GSL.Special.Internal | ||
28 | |||
29 | -- | wrapper for int gsl_sf_debye_1_e(double x,gsl_sf_result* result); | ||
30 | debye_1_e :: Double -> (Double,Double) | ||
31 | debye_1_e x = createSFR "debye_1_e" $ gsl_sf_debye_1_e x | ||
32 | foreign 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); | ||
35 | debye_1 :: Double -> Double | ||
36 | debye_1 = gsl_sf_debye_1 | ||
37 | foreign 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); | ||
40 | debye_2_e :: Double -> (Double,Double) | ||
41 | debye_2_e x = createSFR "debye_2_e" $ gsl_sf_debye_2_e x | ||
42 | foreign 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); | ||
45 | debye_2 :: Double -> Double | ||
46 | debye_2 = gsl_sf_debye_2 | ||
47 | foreign 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); | ||
50 | debye_3_e :: Double -> (Double,Double) | ||
51 | debye_3_e x = createSFR "debye_3_e" $ gsl_sf_debye_3_e x | ||
52 | foreign import ccall "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); | ||
55 | debye_3 :: Double -> Double | ||
56 | debye_3 = gsl_sf_debye_3 | ||
57 | foreign 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); | ||
60 | debye_4_e :: Double -> (Double,Double) | ||
61 | debye_4_e x = createSFR "debye_4_e" $ gsl_sf_debye_4_e x | ||
62 | foreign 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); | ||
65 | debye_4 :: Double -> Double | ||
66 | debye_4 = gsl_sf_debye_4 | ||
67 | foreign 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 | {- | | ||
3 | Module : GSL.Special.Dilog | ||
4 | Copyright : (c) Alberto Ruiz 2006 | ||
5 | License : GPL-style | ||
6 | Maintainer : Alberto Ruiz (aruiz at um dot es) | ||
7 | Stability : provisional | ||
8 | Portability : uses ffi | ||
9 | |||
10 | |||
11 | |||
12 | -} | ||
13 | ------------------------------------------------------------ | ||
14 | |||
15 | module GSL.Special.Dilog( | ||
16 | dilog_e | ||
17 | , dilog | ||
18 | ) where | ||
19 | |||
20 | import Foreign(Ptr) | ||
21 | import GSL.Special.Internal | ||
22 | |||
23 | -- | wrapper for int gsl_sf_dilog_e(double x,gsl_sf_result* result); | ||
24 | dilog_e :: Double -> (Double,Double) | ||
25 | dilog_e x = createSFR "dilog_e" $ gsl_sf_dilog_e x | ||
26 | foreign 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); | ||
29 | dilog :: Double -> Double | ||
30 | dilog = gsl_sf_dilog | ||
31 | foreign 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); | ||
34 | complex_dilog_xy_e :: Double -> Double -> Ptr Double -> (Double,Double) | ||
35 | complex_dilog_xy_e x y result_re = createSFR "complex_dilog_xy_e" $ gsl_sf_complex_dilog_xy_e x y result_re | ||
36 | foreign 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); | ||
39 | complex_dilog_e :: Double -> Double -> Ptr Double -> (Double,Double) | ||
40 | complex_dilog_e r theta result_re = createSFR "complex_dilog_e" $ gsl_sf_complex_dilog_e r theta result_re | ||
41 | foreign 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); | ||
44 | complex_spence_xy_e :: Double -> Double -> Ptr Double -> (Double,Double) | ||
45 | complex_spence_xy_e x y real_sp = createSFR "complex_spence_xy_e" $ gsl_sf_complex_spence_xy_e x y real_sp | ||
46 | foreign 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 | {- | | ||
3 | Module : GSL.Special.Elementary | ||
4 | Copyright : (c) Alberto Ruiz 2006 | ||
5 | License : GPL-style | ||
6 | Maintainer : Alberto Ruiz (aruiz at um dot es) | ||
7 | Stability : provisional | ||
8 | Portability : uses ffi | ||
9 | |||
10 | |||
11 | |||
12 | -} | ||
13 | ------------------------------------------------------------ | ||
14 | |||
15 | module GSL.Special.Elementary( | ||
16 | multiply_e | ||
17 | , multiply | ||
18 | , multiply_err_e | ||
19 | ) where | ||
20 | |||
21 | import Foreign(Ptr) | ||
22 | import GSL.Special.Internal | ||
23 | |||
24 | -- | wrapper for int gsl_sf_multiply_e(double x,double y,gsl_sf_result* result); | ||
25 | multiply_e :: Double -> Double -> (Double,Double) | ||
26 | multiply_e x y = createSFR "multiply_e" $ gsl_sf_multiply_e x y | ||
27 | foreign import ccall "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); | ||
30 | multiply :: Double -> Double -> Double | ||
31 | multiply = gsl_sf_multiply | ||
32 | foreign 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); | ||
35 | multiply_err_e :: Double -> Double -> Double -> Double -> (Double,Double) | ||
36 | multiply_err_e x dx y dy = createSFR "multiply_err_e" $ gsl_sf_multiply_err_e x dx y dy | ||
37 | foreign 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 | {- | | ||
3 | Module : GSL.Special.Ellint | ||
4 | Copyright : (c) Alberto Ruiz 2006 | ||
5 | License : GPL-style | ||
6 | Maintainer : Alberto Ruiz (aruiz at um dot es) | ||
7 | Stability : provisional | ||
8 | Portability : uses ffi | ||
9 | |||
10 | |||
11 | |||
12 | -} | ||
13 | ------------------------------------------------------------ | ||
14 | |||
15 | module 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 | |||
38 | import Foreign(Ptr) | ||
39 | import GSL.Special.Internal | ||
40 | |||
41 | -- | wrapper for int gsl_sf_ellint_Kcomp_e(double k,gsl_mode_t mode,gsl_sf_result* result); | ||
42 | ellint_Kcomp_e :: Double -> Precision -> (Double,Double) | ||
43 | ellint_Kcomp_e k mode = createSFR "ellint_Kcomp_e" $ gsl_sf_ellint_Kcomp_e k (precCode mode) | ||
44 | foreign 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); | ||
47 | ellint_Kcomp :: Double -> Precision -> Double | ||
48 | ellint_Kcomp k mode = gsl_sf_ellint_Kcomp k (precCode mode) | ||
49 | foreign 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); | ||
52 | ellint_Ecomp_e :: Double -> Precision -> (Double,Double) | ||
53 | ellint_Ecomp_e k mode = createSFR "ellint_Ecomp_e" $ gsl_sf_ellint_Ecomp_e k (precCode mode) | ||
54 | foreign 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); | ||
57 | ellint_Ecomp :: Double -> Precision -> Double | ||
58 | ellint_Ecomp k mode = gsl_sf_ellint_Ecomp k (precCode mode) | ||
59 | foreign 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); | ||
62 | ellint_F_e :: Double -> Double -> Precision -> (Double,Double) | ||
63 | ellint_F_e phi k mode = createSFR "ellint_F_e" $ gsl_sf_ellint_F_e phi k (precCode mode) | ||
64 | foreign 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); | ||
67 | ellint_F :: Double -> Double -> Precision -> Double | ||
68 | ellint_F phi k mode = gsl_sf_ellint_F phi k (precCode mode) | ||
69 | foreign 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); | ||
72 | ellint_E_e :: Double -> Double -> Precision -> (Double,Double) | ||
73 | ellint_E_e phi k mode = createSFR "ellint_E_e" $ gsl_sf_ellint_E_e phi k (precCode mode) | ||
74 | foreign 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); | ||
77 | ellint_E :: Double -> Double -> Precision -> Double | ||
78 | ellint_E phi k mode = gsl_sf_ellint_E phi k (precCode mode) | ||
79 | foreign 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); | ||
82 | ellint_P_e :: Double -> Double -> Double -> Precision -> (Double,Double) | ||
83 | ellint_P_e phi k n mode = createSFR "ellint_P_e" $ gsl_sf_ellint_P_e phi k n (precCode mode) | ||
84 | foreign 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); | ||
87 | ellint_P :: Double -> Double -> Double -> Precision -> Double | ||
88 | ellint_P phi k n mode = gsl_sf_ellint_P phi k n (precCode mode) | ||
89 | foreign 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); | ||
92 | ellint_D_e :: Double -> Double -> Double -> Precision -> (Double,Double) | ||
93 | ellint_D_e phi k n mode = createSFR "ellint_D_e" $ gsl_sf_ellint_D_e phi k n (precCode mode) | ||
94 | foreign 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); | ||
97 | ellint_D :: Double -> Double -> Double -> Precision -> Double | ||
98 | ellint_D phi k n mode = gsl_sf_ellint_D phi k n (precCode mode) | ||
99 | foreign 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); | ||
102 | ellint_RC_e :: Double -> Double -> Precision -> (Double,Double) | ||
103 | ellint_RC_e x y mode = createSFR "ellint_RC_e" $ gsl_sf_ellint_RC_e x y (precCode mode) | ||
104 | foreign 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); | ||
107 | ellint_RC :: Double -> Double -> Precision -> Double | ||
108 | ellint_RC x y mode = gsl_sf_ellint_RC x y (precCode mode) | ||
109 | foreign 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); | ||
112 | ellint_RD_e :: Double -> Double -> Double -> Precision -> (Double,Double) | ||
113 | ellint_RD_e x y z mode = createSFR "ellint_RD_e" $ gsl_sf_ellint_RD_e x y z (precCode mode) | ||
114 | foreign 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); | ||
117 | ellint_RD :: Double -> Double -> Double -> Precision -> Double | ||
118 | ellint_RD x y z mode = gsl_sf_ellint_RD x y z (precCode mode) | ||
119 | foreign 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); | ||
122 | ellint_RF_e :: Double -> Double -> Double -> Precision -> (Double,Double) | ||
123 | ellint_RF_e x y z mode = createSFR "ellint_RF_e" $ gsl_sf_ellint_RF_e x y z (precCode mode) | ||
124 | foreign 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); | ||
127 | ellint_RF :: Double -> Double -> Double -> Precision -> Double | ||
128 | ellint_RF x y z mode = gsl_sf_ellint_RF x y z (precCode mode) | ||
129 | foreign 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); | ||
132 | ellint_RJ_e :: Double -> Double -> Double -> Double -> Precision -> (Double,Double) | ||
133 | ellint_RJ_e x y z p mode = createSFR "ellint_RJ_e" $ gsl_sf_ellint_RJ_e x y z p (precCode mode) | ||
134 | foreign 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); | ||
137 | ellint_RJ :: Double -> Double -> Double -> Double -> Precision -> Double | ||
138 | ellint_RJ x y z p mode = gsl_sf_ellint_RJ x y z p (precCode mode) | ||
139 | foreign 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 | {- | | ||
3 | Module : GSL.Special.Expint | ||
4 | Copyright : (c) Alberto Ruiz 2006 | ||
5 | License : GPL-style | ||
6 | Maintainer : Alberto Ruiz (aruiz at um dot es) | ||
7 | Stability : provisional | ||
8 | Portability : uses ffi | ||
9 | |||
10 | |||
11 | |||
12 | -} | ||
13 | ------------------------------------------------------------ | ||
14 | |||
15 | module 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 | |||
42 | import Foreign(Ptr) | ||
43 | import GSL.Special.Internal | ||
44 | |||
45 | -- | wrapper for int gsl_sf_expint_E1_e(double x,gsl_sf_result* result); | ||
46 | expint_E1_e :: Double -> (Double,Double) | ||
47 | expint_E1_e x = createSFR "expint_E1_e" $ gsl_sf_expint_E1_e x | ||
48 | foreign 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); | ||
51 | expint_E1 :: Double -> Double | ||
52 | expint_E1 = gsl_sf_expint_E1 | ||
53 | foreign 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); | ||
56 | expint_E2_e :: Double -> (Double,Double) | ||
57 | expint_E2_e x = createSFR "expint_E2_e" $ gsl_sf_expint_E2_e x | ||
58 | foreign 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); | ||
61 | expint_E2 :: Double -> Double | ||
62 | expint_E2 = gsl_sf_expint_E2 | ||
63 | foreign 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); | ||
66 | expint_E1_scaled_e :: Double -> (Double,Double) | ||
67 | expint_E1_scaled_e x = createSFR "expint_E1_scaled_e" $ gsl_sf_expint_E1_scaled_e x | ||
68 | foreign 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); | ||
71 | expint_E1_scaled :: Double -> Double | ||
72 | expint_E1_scaled = gsl_sf_expint_E1_scaled | ||
73 | foreign 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); | ||
76 | expint_E2_scaled_e :: Double -> (Double,Double) | ||
77 | expint_E2_scaled_e x = createSFR "expint_E2_scaled_e" $ gsl_sf_expint_E2_scaled_e x | ||
78 | foreign 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); | ||
81 | expint_E2_scaled :: Double -> Double | ||
82 | expint_E2_scaled = gsl_sf_expint_E2_scaled | ||
83 | foreign 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); | ||
86 | expint_Ei_e :: Double -> (Double,Double) | ||
87 | expint_Ei_e x = createSFR "expint_Ei_e" $ gsl_sf_expint_Ei_e x | ||
88 | foreign 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); | ||
91 | expint_Ei :: Double -> Double | ||
92 | expint_Ei = gsl_sf_expint_Ei | ||
93 | foreign 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); | ||
96 | expint_Ei_scaled_e :: Double -> (Double,Double) | ||
97 | expint_Ei_scaled_e x = createSFR "expint_Ei_scaled_e" $ gsl_sf_expint_Ei_scaled_e x | ||
98 | foreign 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); | ||
101 | expint_Ei_scaled :: Double -> Double | ||
102 | expint_Ei_scaled = gsl_sf_expint_Ei_scaled | ||
103 | foreign 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); | ||
106 | shi_e :: Double -> (Double,Double) | ||
107 | shi_e x = createSFR "shi_e" $ gsl_sf_Shi_e x | ||
108 | foreign 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); | ||
111 | shi :: Double -> Double | ||
112 | shi = gsl_sf_Shi | ||
113 | foreign 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); | ||
116 | chi_e :: Double -> (Double,Double) | ||
117 | chi_e x = createSFR "chi_e" $ gsl_sf_Chi_e x | ||
118 | foreign 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); | ||
121 | chi :: Double -> Double | ||
122 | chi = gsl_sf_Chi | ||
123 | foreign 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); | ||
126 | expint_3_e :: Double -> (Double,Double) | ||
127 | expint_3_e x = createSFR "expint_3_e" $ gsl_sf_expint_3_e x | ||
128 | foreign 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); | ||
131 | expint_3 :: Double -> Double | ||
132 | expint_3 = gsl_sf_expint_3 | ||
133 | foreign 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); | ||
136 | si_e :: Double -> (Double,Double) | ||
137 | si_e x = createSFR "si_e" $ gsl_sf_Si_e x | ||
138 | foreign 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); | ||
141 | si :: Double -> Double | ||
142 | si = gsl_sf_Si | ||
143 | foreign 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); | ||
146 | ci_e :: Double -> (Double,Double) | ||
147 | ci_e x = createSFR "ci_e" $ gsl_sf_Ci_e x | ||
148 | foreign 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); | ||
151 | ci :: Double -> Double | ||
152 | ci = gsl_sf_Ci | ||
153 | foreign 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); | ||
156 | atanint_e :: Double -> (Double,Double) | ||
157 | atanint_e x = createSFR "atanint_e" $ gsl_sf_atanint_e x | ||
158 | foreign 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); | ||
161 | atanint :: Double -> Double | ||
162 | atanint = gsl_sf_atanint | ||
163 | foreign 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 | {- | | ||
3 | Module : GSL.Special.Fermi_dirac | ||
4 | Copyright : (c) Alberto Ruiz 2006 | ||
5 | License : GPL-style | ||
6 | Maintainer : Alberto Ruiz (aruiz at um dot es) | ||
7 | Stability : provisional | ||
8 | Portability : uses ffi | ||
9 | |||
10 | |||
11 | |||
12 | -} | ||
13 | ------------------------------------------------------------ | ||
14 | |||
15 | module GSL.Special.Fermi_dirac( | ||
16 | fermi_dirac_m1_e | ||
17 | , fermi_dirac_m1 | ||
18 | , fermi_dirac_0_e | ||
19 | , fermi_dirac_0 | ||
20 | , fermi_dirac_1_e | ||
21 | , fermi_dirac_1 | ||
22 | , fermi_dirac_2_e | ||
23 | , fermi_dirac_2 | ||
24 | , fermi_dirac_int_e | ||
25 | , fermi_dirac_int | ||
26 | , fermi_dirac_mhalf_e | ||
27 | , fermi_dirac_mhalf | ||
28 | , fermi_dirac_half_e | ||
29 | , fermi_dirac_half | ||
30 | , fermi_dirac_3half_e | ||
31 | , fermi_dirac_3half | ||
32 | , fermi_dirac_inc_0_e | ||
33 | , fermi_dirac_inc_0 | ||
34 | ) where | ||
35 | |||
36 | import Foreign(Ptr) | ||
37 | import GSL.Special.Internal | ||
38 | |||
39 | -- | wrapper for int gsl_sf_fermi_dirac_m1_e(double x,gsl_sf_result* result); | ||
40 | fermi_dirac_m1_e :: Double -> (Double,Double) | ||
41 | fermi_dirac_m1_e x = createSFR "fermi_dirac_m1_e" $ gsl_sf_fermi_dirac_m1_e x | ||
42 | foreign import ccall "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); | ||
45 | fermi_dirac_m1 :: Double -> Double | ||
46 | fermi_dirac_m1 = gsl_sf_fermi_dirac_m1 | ||
47 | foreign 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); | ||
50 | fermi_dirac_0_e :: Double -> (Double,Double) | ||
51 | fermi_dirac_0_e x = createSFR "fermi_dirac_0_e" $ gsl_sf_fermi_dirac_0_e x | ||
52 | foreign 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); | ||
55 | fermi_dirac_0 :: Double -> Double | ||
56 | fermi_dirac_0 = gsl_sf_fermi_dirac_0 | ||
57 | foreign 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); | ||
60 | fermi_dirac_1_e :: Double -> (Double,Double) | ||
61 | fermi_dirac_1_e x = createSFR "fermi_dirac_1_e" $ gsl_sf_fermi_dirac_1_e x | ||
62 | foreign 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); | ||
65 | fermi_dirac_1 :: Double -> Double | ||
66 | fermi_dirac_1 = gsl_sf_fermi_dirac_1 | ||
67 | foreign 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); | ||
70 | fermi_dirac_2_e :: Double -> (Double,Double) | ||
71 | fermi_dirac_2_e x = createSFR "fermi_dirac_2_e" $ gsl_sf_fermi_dirac_2_e x | ||
72 | foreign 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); | ||
75 | fermi_dirac_2 :: Double -> Double | ||
76 | fermi_dirac_2 = gsl_sf_fermi_dirac_2 | ||
77 | foreign 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); | ||
80 | fermi_dirac_int_e :: Int -> Double -> (Double,Double) | ||
81 | fermi_dirac_int_e j x = createSFR "fermi_dirac_int_e" $ gsl_sf_fermi_dirac_int_e j x | ||
82 | foreign 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); | ||
85 | fermi_dirac_int :: Int -> Double -> Double | ||
86 | fermi_dirac_int = gsl_sf_fermi_dirac_int | ||
87 | foreign 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); | ||
90 | fermi_dirac_mhalf_e :: Double -> (Double,Double) | ||
91 | fermi_dirac_mhalf_e x = createSFR "fermi_dirac_mhalf_e" $ gsl_sf_fermi_dirac_mhalf_e x | ||
92 | foreign 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); | ||
95 | fermi_dirac_mhalf :: Double -> Double | ||
96 | fermi_dirac_mhalf = gsl_sf_fermi_dirac_mhalf | ||
97 | foreign 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); | ||
100 | fermi_dirac_half_e :: Double -> (Double,Double) | ||
101 | fermi_dirac_half_e x = createSFR "fermi_dirac_half_e" $ gsl_sf_fermi_dirac_half_e x | ||
102 | foreign 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); | ||
105 | fermi_dirac_half :: Double -> Double | ||
106 | fermi_dirac_half = gsl_sf_fermi_dirac_half | ||
107 | foreign 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); | ||
110 | fermi_dirac_3half_e :: Double -> (Double,Double) | ||
111 | fermi_dirac_3half_e x = createSFR "fermi_dirac_3half_e" $ gsl_sf_fermi_dirac_3half_e x | ||
112 | foreign 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); | ||
115 | fermi_dirac_3half :: Double -> Double | ||
116 | fermi_dirac_3half = gsl_sf_fermi_dirac_3half | ||
117 | foreign 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); | ||
120 | fermi_dirac_inc_0_e :: Double -> Double -> (Double,Double) | ||
121 | fermi_dirac_inc_0_e x b = createSFR "fermi_dirac_inc_0_e" $ gsl_sf_fermi_dirac_inc_0_e x b | ||
122 | foreign 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); | ||
125 | fermi_dirac_inc_0 :: Double -> Double -> Double | ||
126 | fermi_dirac_inc_0 = gsl_sf_fermi_dirac_inc_0 | ||
127 | foreign 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 | {- | | ||
3 | Module : GSL.Special.Gegenbauer | ||
4 | Copyright : (c) Alberto Ruiz 2006 | ||
5 | License : GPL-style | ||
6 | Maintainer : Alberto Ruiz (aruiz at um dot es) | ||
7 | Stability : provisional | ||
8 | Portability : uses ffi | ||
9 | |||
10 | |||
11 | |||
12 | -} | ||
13 | ------------------------------------------------------------ | ||
14 | |||
15 | module GSL.Special.Gegenbauer( | ||
16 | gegenpoly_1_e | ||
17 | , gegenpoly_2_e | ||
18 | , gegenpoly_3_e | ||
19 | , gegenpoly_1 | ||
20 | , gegenpoly_2 | ||
21 | , gegenpoly_3 | ||
22 | , gegenpoly_n_e | ||
23 | , gegenpoly_n | ||
24 | ) where | ||
25 | |||
26 | import Foreign(Ptr) | ||
27 | import GSL.Special.Internal | ||
28 | |||
29 | -- | wrapper for int gsl_sf_gegenpoly_1_e(double lambda,double x,gsl_sf_result* result); | ||
30 | gegenpoly_1_e :: Double -> Double -> (Double,Double) | ||
31 | gegenpoly_1_e lambda x = createSFR "gegenpoly_1_e" $ gsl_sf_gegenpoly_1_e lambda x | ||
32 | foreign import ccall "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); | ||
35 | gegenpoly_2_e :: Double -> Double -> (Double,Double) | ||
36 | gegenpoly_2_e lambda x = createSFR "gegenpoly_2_e" $ gsl_sf_gegenpoly_2_e lambda x | ||
37 | foreign 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); | ||
40 | gegenpoly_3_e :: Double -> Double -> (Double,Double) | ||
41 | gegenpoly_3_e lambda x = createSFR "gegenpoly_3_e" $ gsl_sf_gegenpoly_3_e lambda x | ||
42 | foreign 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); | ||
45 | gegenpoly_1 :: Double -> Double -> Double | ||
46 | gegenpoly_1 = gsl_sf_gegenpoly_1 | ||
47 | foreign 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); | ||
50 | gegenpoly_2 :: Double -> Double -> Double | ||
51 | gegenpoly_2 = gsl_sf_gegenpoly_2 | ||
52 | foreign 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); | ||
55 | gegenpoly_3 :: Double -> Double -> Double | ||
56 | gegenpoly_3 = gsl_sf_gegenpoly_3 | ||
57 | foreign 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); | ||
60 | gegenpoly_n_e :: Int -> Double -> Double -> (Double,Double) | ||
61 | gegenpoly_n_e n lambda x = createSFR "gegenpoly_n_e" $ gsl_sf_gegenpoly_n_e n lambda x | ||
62 | foreign 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); | ||
65 | gegenpoly_n :: Int -> Double -> Double -> Double | ||
66 | gegenpoly_n = gsl_sf_gegenpoly_n | ||
67 | foreign 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); | ||
70 | gegenpoly_array :: Int -> Double -> Double -> Ptr Double -> Int | ||
71 | gegenpoly_array = gsl_sf_gegenpoly_array | ||
72 | foreign 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 | {- | | ||
3 | Module : GSL.Special.Hyperg | ||
4 | Copyright : (c) Alberto Ruiz 2006 | ||
5 | License : GPL-style | ||
6 | Maintainer : Alberto Ruiz (aruiz at um dot es) | ||
7 | Stability : provisional | ||
8 | Portability : uses ffi | ||
9 | |||
10 | |||
11 | |||
12 | -} | ||
13 | ------------------------------------------------------------ | ||
14 | |||
15 | module GSL.Special.Hyperg( | ||
16 | hyperg_0F1_e | ||
17 | , hyperg_0F1 | ||
18 | , hyperg_1F1_int_e | ||
19 | , hyperg_1F1_int | ||
20 | , hyperg_1F1_e | ||
21 | , hyperg_1F1 | ||
22 | , hyperg_U_int_e | ||
23 | , hyperg_U_int | ||
24 | , hyperg_U_int_e10_e | ||
25 | , hyperg_U_e | ||
26 | , hyperg_U | ||
27 | , hyperg_U_e10_e | ||
28 | , hyperg_2F1_e | ||
29 | , hyperg_2F1 | ||
30 | , hyperg_2F1_conj_e | ||
31 | , hyperg_2F1_conj | ||
32 | , hyperg_2F1_renorm_e | ||
33 | , hyperg_2F1_renorm | ||
34 | , hyperg_2F1_conj_renorm_e | ||
35 | , hyperg_2F1_conj_renorm | ||
36 | , hyperg_2F0_e | ||
37 | , hyperg_2F0 | ||
38 | ) where | ||
39 | |||
40 | import Foreign(Ptr) | ||
41 | import GSL.Special.Internal | ||
42 | |||
43 | -- | wrapper for int gsl_sf_hyperg_0F1_e(double c,double x,gsl_sf_result* result); | ||
44 | hyperg_0F1_e :: Double -> Double -> (Double,Double) | ||
45 | hyperg_0F1_e c x = createSFR "hyperg_0F1_e" $ gsl_sf_hyperg_0F1_e c x | ||
46 | foreign import ccall "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); | ||
49 | hyperg_0F1 :: Double -> Double -> Double | ||
50 | hyperg_0F1 = gsl_sf_hyperg_0F1 | ||
51 | foreign 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); | ||
54 | hyperg_1F1_int_e :: Int -> Int -> Double -> (Double,Double) | ||
55 | hyperg_1F1_int_e m n x = createSFR "hyperg_1F1_int_e" $ gsl_sf_hyperg_1F1_int_e m n x | ||
56 | foreign 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); | ||
59 | hyperg_1F1_int :: Int -> Int -> Double -> Double | ||
60 | hyperg_1F1_int = gsl_sf_hyperg_1F1_int | ||
61 | foreign 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); | ||
64 | hyperg_1F1_e :: Double -> Double -> Double -> (Double,Double) | ||
65 | hyperg_1F1_e a b x = createSFR "hyperg_1F1_e" $ gsl_sf_hyperg_1F1_e a b x | ||
66 | foreign 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); | ||
69 | hyperg_1F1 :: Double -> Double -> Double -> Double | ||
70 | hyperg_1F1 = gsl_sf_hyperg_1F1 | ||
71 | foreign 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); | ||
74 | hyperg_U_int_e :: Int -> Int -> Double -> (Double,Double) | ||
75 | hyperg_U_int_e m n x = createSFR "hyperg_U_int_e" $ gsl_sf_hyperg_U_int_e m n x | ||
76 | foreign 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); | ||
79 | hyperg_U_int :: Int -> Int -> Double -> Double | ||
80 | hyperg_U_int = gsl_sf_hyperg_U_int | ||
81 | foreign 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); | ||
84 | hyperg_U_int_e10_e :: Int -> Int -> Double -> (Double,Int,Double) | ||
85 | hyperg_U_int_e10_e m n x = createSFR_E10 "hyperg_U_int_e10_e" $ gsl_sf_hyperg_U_int_e10_e m n x | ||
86 | foreign 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); | ||
89 | hyperg_U_e :: Double -> Double -> Double -> (Double,Double) | ||
90 | hyperg_U_e a b x = createSFR "hyperg_U_e" $ gsl_sf_hyperg_U_e a b x | ||
91 | foreign 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); | ||
94 | hyperg_U :: Double -> Double -> Double -> Double | ||
95 | hyperg_U = gsl_sf_hyperg_U | ||
96 | foreign 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); | ||
99 | hyperg_U_e10_e :: Double -> Double -> Double -> (Double,Int,Double) | ||
100 | hyperg_U_e10_e a b x = createSFR_E10 "hyperg_U_e10_e" $ gsl_sf_hyperg_U_e10_e a b x | ||
101 | foreign 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); | ||
104 | hyperg_2F1_e :: Double -> Double -> Double -> Double -> (Double,Double) | ||
105 | hyperg_2F1_e a b c x = createSFR "hyperg_2F1_e" $ gsl_sf_hyperg_2F1_e a b c x | ||
106 | foreign 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); | ||
109 | hyperg_2F1 :: Double -> Double -> Double -> Double -> Double | ||
110 | hyperg_2F1 = gsl_sf_hyperg_2F1 | ||
111 | foreign 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); | ||
114 | hyperg_2F1_conj_e :: Double -> Double -> Double -> Double -> (Double,Double) | ||
115 | hyperg_2F1_conj_e aR aI c x = createSFR "hyperg_2F1_conj_e" $ gsl_sf_hyperg_2F1_conj_e aR aI c x | ||
116 | foreign 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); | ||
119 | hyperg_2F1_conj :: Double -> Double -> Double -> Double -> Double | ||
120 | hyperg_2F1_conj = gsl_sf_hyperg_2F1_conj | ||
121 | foreign 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); | ||
124 | hyperg_2F1_renorm_e :: Double -> Double -> Double -> Double -> (Double,Double) | ||
125 | hyperg_2F1_renorm_e a b c x = createSFR "hyperg_2F1_renorm_e" $ gsl_sf_hyperg_2F1_renorm_e a b c x | ||
126 | foreign 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); | ||
129 | hyperg_2F1_renorm :: Double -> Double -> Double -> Double -> Double | ||
130 | hyperg_2F1_renorm = gsl_sf_hyperg_2F1_renorm | ||
131 | foreign 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); | ||
134 | hyperg_2F1_conj_renorm_e :: Double -> Double -> Double -> Double -> (Double,Double) | ||
135 | hyperg_2F1_conj_renorm_e aR aI c x = createSFR "hyperg_2F1_conj_renorm_e" $ gsl_sf_hyperg_2F1_conj_renorm_e aR aI c x | ||
136 | foreign 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); | ||
139 | hyperg_2F1_conj_renorm :: Double -> Double -> Double -> Double -> Double | ||
140 | hyperg_2F1_conj_renorm = gsl_sf_hyperg_2F1_conj_renorm | ||
141 | foreign 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); | ||
144 | hyperg_2F0_e :: Double -> Double -> Double -> (Double,Double) | ||
145 | hyperg_2F0_e a b x = createSFR "hyperg_2F0_e" $ gsl_sf_hyperg_2F0_e a b x | ||
146 | foreign 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); | ||
149 | hyperg_2F0 :: Double -> Double -> Double -> Double | ||
150 | hyperg_2F0 = gsl_sf_hyperg_2F0 | ||
151 | foreign 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 | {- | | ||
3 | Module : GSL.Special.Laguerre | ||
4 | Copyright : (c) Alberto Ruiz 2006 | ||
5 | License : GPL-style | ||
6 | Maintainer : Alberto Ruiz (aruiz at um dot es) | ||
7 | Stability : provisional | ||
8 | Portability : uses ffi | ||
9 | |||
10 | |||
11 | |||
12 | -} | ||
13 | ------------------------------------------------------------ | ||
14 | |||
15 | module GSL.Special.Laguerre( | ||
16 | laguerre_1_e | ||
17 | , laguerre_2_e | ||
18 | , laguerre_3_e | ||
19 | , laguerre_1 | ||
20 | , laguerre_2 | ||
21 | , laguerre_3 | ||
22 | , laguerre_n_e | ||
23 | , laguerre_n | ||
24 | ) where | ||
25 | |||
26 | import Foreign(Ptr) | ||
27 | import GSL.Special.Internal | ||
28 | |||
29 | -- | wrapper for int gsl_sf_laguerre_1_e(double a,double x,gsl_sf_result* result); | ||
30 | laguerre_1_e :: Double -> Double -> (Double,Double) | ||
31 | laguerre_1_e a x = createSFR "laguerre_1_e" $ gsl_sf_laguerre_1_e a x | ||
32 | foreign import ccall "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); | ||
35 | laguerre_2_e :: Double -> Double -> (Double,Double) | ||
36 | laguerre_2_e a x = createSFR "laguerre_2_e" $ gsl_sf_laguerre_2_e a x | ||
37 | foreign 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); | ||
40 | laguerre_3_e :: Double -> Double -> (Double,Double) | ||
41 | laguerre_3_e a x = createSFR "laguerre_3_e" $ gsl_sf_laguerre_3_e a x | ||
42 | foreign 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); | ||
45 | laguerre_1 :: Double -> Double -> Double | ||
46 | laguerre_1 = gsl_sf_laguerre_1 | ||
47 | foreign 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); | ||
50 | laguerre_2 :: Double -> Double -> Double | ||
51 | laguerre_2 = gsl_sf_laguerre_2 | ||
52 | foreign 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); | ||
55 | laguerre_3 :: Double -> Double -> Double | ||
56 | laguerre_3 = gsl_sf_laguerre_3 | ||
57 | foreign 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); | ||
60 | laguerre_n_e :: Int -> Double -> Double -> (Double,Double) | ||
61 | laguerre_n_e n a x = createSFR "laguerre_n_e" $ gsl_sf_laguerre_n_e n a x | ||
62 | foreign 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); | ||
65 | laguerre_n :: Int -> Double -> Double -> Double | ||
66 | laguerre_n = gsl_sf_laguerre_n | ||
67 | foreign 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 | {- | | ||
3 | Module : GSL.Special.Lambert | ||
4 | Copyright : (c) Alberto Ruiz 2006 | ||
5 | License : GPL-style | ||
6 | Maintainer : Alberto Ruiz (aruiz at um dot es) | ||
7 | Stability : provisional | ||
8 | Portability : uses ffi | ||
9 | |||
10 | |||
11 | |||
12 | -} | ||
13 | ------------------------------------------------------------ | ||
14 | |||
15 | module GSL.Special.Lambert( | ||
16 | lambert_W0_e | ||
17 | , lambert_W0 | ||
18 | , lambert_Wm1_e | ||
19 | , lambert_Wm1 | ||
20 | ) where | ||
21 | |||
22 | import Foreign(Ptr) | ||
23 | import GSL.Special.Internal | ||
24 | |||
25 | -- | wrapper for int gsl_sf_lambert_W0_e(double x,gsl_sf_result* result); | ||
26 | lambert_W0_e :: Double -> (Double,Double) | ||
27 | lambert_W0_e x = createSFR "lambert_W0_e" $ gsl_sf_lambert_W0_e x | ||
28 | foreign import ccall "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); | ||
31 | lambert_W0 :: Double -> Double | ||
32 | lambert_W0 = gsl_sf_lambert_W0 | ||
33 | foreign 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); | ||
36 | lambert_Wm1_e :: Double -> (Double,Double) | ||
37 | lambert_Wm1_e x = createSFR "lambert_Wm1_e" $ gsl_sf_lambert_Wm1_e x | ||
38 | foreign 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); | ||
41 | lambert_Wm1 :: Double -> Double | ||
42 | lambert_Wm1 = gsl_sf_lambert_Wm1 | ||
43 | foreign 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 | {- | | ||
3 | Module : GSL.Special.Log | ||
4 | Copyright : (c) Alberto Ruiz 2006 | ||
5 | License : GPL-style | ||
6 | Maintainer : Alberto Ruiz (aruiz at um dot es) | ||
7 | Stability : provisional | ||
8 | Portability : uses ffi | ||
9 | |||
10 | |||
11 | |||
12 | -} | ||
13 | ------------------------------------------------------------ | ||
14 | |||
15 | module 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 | |||
26 | import Foreign(Ptr) | ||
27 | import GSL.Special.Internal | ||
28 | |||
29 | -- | wrapper for int gsl_sf_log_e(double x,gsl_sf_result* result); | ||
30 | log_e :: Double -> (Double,Double) | ||
31 | log_e x = createSFR "log_e" $ gsl_sf_log_e x | ||
32 | foreign 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); | ||
35 | log :: Double -> Double | ||
36 | log = gsl_sf_log | ||
37 | foreign 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); | ||
40 | log_abs_e :: Double -> (Double,Double) | ||
41 | log_abs_e x = createSFR "log_abs_e" $ gsl_sf_log_abs_e x | ||
42 | foreign 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); | ||
45 | log_abs :: Double -> Double | ||
46 | log_abs = gsl_sf_log_abs | ||
47 | foreign 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); | ||
50 | complex_log_e :: Double -> Double -> Ptr Double -> (Double,Double) | ||
51 | complex_log_e zr zi lnr = createSFR "complex_log_e" $ gsl_sf_complex_log_e zr zi lnr | ||
52 | foreign 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); | ||
55 | log_1plusx_e :: Double -> (Double,Double) | ||
56 | log_1plusx_e x = createSFR "log_1plusx_e" $ gsl_sf_log_1plusx_e x | ||
57 | foreign 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); | ||
60 | log_1plusx :: Double -> Double | ||
61 | log_1plusx = gsl_sf_log_1plusx | ||
62 | foreign 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); | ||
65 | log_1plusx_mx_e :: Double -> (Double,Double) | ||
66 | log_1plusx_mx_e x = createSFR "log_1plusx_mx_e" $ gsl_sf_log_1plusx_mx_e x | ||
67 | foreign 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); | ||
70 | log_1plusx_mx :: Double -> Double | ||
71 | log_1plusx_mx = gsl_sf_log_1plusx_mx | ||
72 | foreign 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 | {- | | ||
3 | Module : GSL.Special.Pow_int | ||
4 | Copyright : (c) Alberto Ruiz 2006 | ||
5 | License : GPL-style | ||
6 | Maintainer : Alberto Ruiz (aruiz at um dot es) | ||
7 | Stability : provisional | ||
8 | Portability : uses ffi | ||
9 | |||
10 | |||
11 | |||
12 | -} | ||
13 | ------------------------------------------------------------ | ||
14 | |||
15 | module GSL.Special.Pow_int( | ||
16 | pow_int_e | ||
17 | , pow_int | ||
18 | ) where | ||
19 | |||
20 | import Foreign(Ptr) | ||
21 | import GSL.Special.Internal | ||
22 | |||
23 | -- | wrapper for int gsl_sf_pow_int_e(double x,int n,gsl_sf_result* result); | ||
24 | pow_int_e :: Double -> Int -> (Double,Double) | ||
25 | pow_int_e x n = createSFR "pow_int_e" $ gsl_sf_pow_int_e x n | ||
26 | foreign 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); | ||
29 | pow_int :: Double -> Int -> Double | ||
30 | pow_int = gsl_sf_pow_int | ||
31 | foreign 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 | {- | | ||
3 | Module : GSL.Special.Psi | ||
4 | Copyright : (c) Alberto Ruiz 2006 | ||
5 | License : GPL-style | ||
6 | Maintainer : Alberto Ruiz (aruiz at um dot es) | ||
7 | Stability : provisional | ||
8 | Portability : uses ffi | ||
9 | |||
10 | |||
11 | |||
12 | -} | ||
13 | ------------------------------------------------------------ | ||
14 | |||
15 | module GSL.Special.Psi( | ||
16 | psi_int_e | ||
17 | , psi_int | ||
18 | , psi_e | ||
19 | , psi | ||
20 | , psi_1piy_e | ||
21 | , psi_1piy | ||
22 | , psi_1_int_e | ||
23 | , psi_1_int | ||
24 | , psi_1_e | ||
25 | , psi_1 | ||
26 | , psi_n_e | ||
27 | , psi_n | ||
28 | ) where | ||
29 | |||
30 | import Foreign(Ptr) | ||
31 | import GSL.Special.Internal | ||
32 | |||
33 | -- | wrapper for int gsl_sf_psi_int_e(int n,gsl_sf_result* result); | ||
34 | psi_int_e :: Int -> (Double,Double) | ||
35 | psi_int_e n = createSFR "psi_int_e" $ gsl_sf_psi_int_e n | ||
36 | foreign 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); | ||
39 | psi_int :: Int -> Double | ||
40 | psi_int = gsl_sf_psi_int | ||
41 | foreign 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); | ||
44 | psi_e :: Double -> (Double,Double) | ||
45 | psi_e x = createSFR "psi_e" $ gsl_sf_psi_e x | ||
46 | foreign 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); | ||
49 | psi :: Double -> Double | ||
50 | psi = gsl_sf_psi | ||
51 | foreign 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); | ||
54 | psi_1piy_e :: Double -> (Double,Double) | ||
55 | psi_1piy_e y = createSFR "psi_1piy_e" $ gsl_sf_psi_1piy_e y | ||
56 | foreign 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); | ||
59 | psi_1piy :: Double -> Double | ||
60 | psi_1piy = gsl_sf_psi_1piy | ||
61 | foreign 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); | ||
64 | psi_1_int_e :: Int -> (Double,Double) | ||
65 | psi_1_int_e n = createSFR "psi_1_int_e" $ gsl_sf_psi_1_int_e n | ||
66 | foreign 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); | ||
69 | psi_1_int :: Int -> Double | ||
70 | psi_1_int = gsl_sf_psi_1_int | ||
71 | foreign 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); | ||
74 | psi_1_e :: Double -> (Double,Double) | ||
75 | psi_1_e x = createSFR "psi_1_e" $ gsl_sf_psi_1_e x | ||
76 | foreign 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); | ||
79 | psi_1 :: Double -> Double | ||
80 | psi_1 = gsl_sf_psi_1 | ||
81 | foreign 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); | ||
84 | psi_n_e :: Int -> Double -> (Double,Double) | ||
85 | psi_n_e n x = createSFR "psi_n_e" $ gsl_sf_psi_n_e n x | ||
86 | foreign 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); | ||
89 | psi_n :: Int -> Double -> Double | ||
90 | psi_n = gsl_sf_psi_n | ||
91 | foreign 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 | {- | | ||
3 | Module : GSL.Special.Synchrotron | ||
4 | Copyright : (c) Alberto Ruiz 2006 | ||
5 | License : GPL-style | ||
6 | Maintainer : Alberto Ruiz (aruiz at um dot es) | ||
7 | Stability : provisional | ||
8 | Portability : uses ffi | ||
9 | |||
10 | |||
11 | |||
12 | -} | ||
13 | ------------------------------------------------------------ | ||
14 | |||
15 | module GSL.Special.Synchrotron( | ||
16 | synchrotron_1_e | ||
17 | , synchrotron_1 | ||
18 | , synchrotron_2_e | ||
19 | , synchrotron_2 | ||
20 | ) where | ||
21 | |||
22 | import Foreign(Ptr) | ||
23 | import GSL.Special.Internal | ||
24 | |||
25 | -- | wrapper for int gsl_sf_synchrotron_1_e(double x,gsl_sf_result* result); | ||
26 | synchrotron_1_e :: Double -> (Double,Double) | ||
27 | synchrotron_1_e x = createSFR "synchrotron_1_e" $ gsl_sf_synchrotron_1_e x | ||
28 | foreign import ccall "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); | ||
31 | synchrotron_1 :: Double -> Double | ||
32 | synchrotron_1 = gsl_sf_synchrotron_1 | ||
33 | foreign 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); | ||
36 | synchrotron_2_e :: Double -> (Double,Double) | ||
37 | synchrotron_2_e x = createSFR "synchrotron_2_e" $ gsl_sf_synchrotron_2_e x | ||
38 | foreign 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); | ||
41 | synchrotron_2 :: Double -> Double | ||
42 | synchrotron_2 = gsl_sf_synchrotron_2 | ||
43 | foreign 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 | {- | | ||
3 | Module : GSL.Special.Trig | ||
4 | Copyright : (c) Alberto Ruiz 2006 | ||
5 | License : GPL-style | ||
6 | Maintainer : Alberto Ruiz (aruiz at um dot es) | ||
7 | Stability : provisional | ||
8 | Portability : uses ffi | ||
9 | |||
10 | |||
11 | |||
12 | -} | ||
13 | ------------------------------------------------------------ | ||
14 | |||
15 | module 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 | |||
36 | import Foreign(Ptr) | ||
37 | import GSL.Special.Internal | ||
38 | |||
39 | -- | wrapper for int gsl_sf_sin_e(double x,gsl_sf_result* result); | ||
40 | sin_e :: Double -> (Double,Double) | ||
41 | sin_e x = createSFR "sin_e" $ gsl_sf_sin_e x | ||
42 | foreign 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); | ||
45 | sin :: Double -> Double | ||
46 | sin = gsl_sf_sin | ||
47 | foreign 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); | ||
50 | cos_e :: Double -> (Double,Double) | ||
51 | cos_e x = createSFR "cos_e" $ gsl_sf_cos_e x | ||
52 | foreign 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); | ||
55 | cos :: Double -> Double | ||
56 | cos = gsl_sf_cos | ||
57 | foreign 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); | ||
60 | hypot_e :: Double -> Double -> (Double,Double) | ||
61 | hypot_e x y = createSFR "hypot_e" $ gsl_sf_hypot_e x y | ||
62 | foreign 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); | ||
65 | hypot :: Double -> Double -> Double | ||
66 | hypot = gsl_sf_hypot | ||
67 | foreign 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); | ||
70 | complex_sin_e :: Double -> Double -> Ptr Double -> (Double,Double) | ||
71 | complex_sin_e zr zi szr = createSFR "complex_sin_e" $ gsl_sf_complex_sin_e zr zi szr | ||
72 | foreign 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); | ||
75 | complex_cos_e :: Double -> Double -> Ptr Double -> (Double,Double) | ||
76 | complex_cos_e zr zi czr = createSFR "complex_cos_e" $ gsl_sf_complex_cos_e zr zi czr | ||
77 | foreign 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); | ||
80 | complex_logsin_e :: Double -> Double -> Ptr Double -> (Double,Double) | ||
81 | complex_logsin_e zr zi lszr = createSFR "complex_logsin_e" $ gsl_sf_complex_logsin_e zr zi lszr | ||
82 | foreign 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); | ||
85 | sinc_e :: Double -> (Double,Double) | ||
86 | sinc_e x = createSFR "sinc_e" $ gsl_sf_sinc_e x | ||
87 | foreign 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); | ||
90 | sinc :: Double -> Double | ||
91 | sinc = gsl_sf_sinc | ||
92 | foreign 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); | ||
95 | lnsinh_e :: Double -> (Double,Double) | ||
96 | lnsinh_e x = createSFR "lnsinh_e" $ gsl_sf_lnsinh_e x | ||
97 | foreign 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); | ||
100 | lnsinh :: Double -> Double | ||
101 | lnsinh = gsl_sf_lnsinh | ||
102 | foreign 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); | ||
105 | lncosh_e :: Double -> (Double,Double) | ||
106 | lncosh_e x = createSFR "lncosh_e" $ gsl_sf_lncosh_e x | ||
107 | foreign 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); | ||
110 | lncosh :: Double -> Double | ||
111 | lncosh = gsl_sf_lncosh | ||
112 | foreign 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); | ||
115 | polar_to_rect :: Double -> Double -> Ptr Double -> (Double,Double) | ||
116 | polar_to_rect r theta x = createSFR "polar_to_rect" $ gsl_sf_polar_to_rect r theta x | ||
117 | foreign 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); | ||
120 | rect_to_polar :: Double -> Double -> Ptr Double -> (Double,Double) | ||
121 | rect_to_polar x y r = createSFR "rect_to_polar" $ gsl_sf_rect_to_polar x y r | ||
122 | foreign 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); | ||
125 | sin_err_e :: Double -> Double -> (Double,Double) | ||
126 | sin_err_e x dx = createSFR "sin_err_e" $ gsl_sf_sin_err_e x dx | ||
127 | foreign 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); | ||
130 | cos_err_e :: Double -> Double -> (Double,Double) | ||
131 | cos_err_e x dx = createSFR "cos_err_e" $ gsl_sf_cos_err_e x dx | ||
132 | foreign 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); | ||
135 | angle_restrict_symm_e :: Ptr Double -> Int | ||
136 | angle_restrict_symm_e = gsl_sf_angle_restrict_symm_e | ||
137 | foreign 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); | ||
140 | angle_restrict_symm :: Double -> Double | ||
141 | angle_restrict_symm = gsl_sf_angle_restrict_symm | ||
142 | foreign 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); | ||
145 | angle_restrict_pos_e :: Ptr Double -> Int | ||
146 | angle_restrict_pos_e = gsl_sf_angle_restrict_pos_e | ||
147 | foreign 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); | ||
150 | angle_restrict_pos :: Double -> Double | ||
151 | angle_restrict_pos = gsl_sf_angle_restrict_pos | ||
152 | foreign 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); | ||
155 | angle_restrict_symm_err_e :: Double -> (Double,Double) | ||
156 | angle_restrict_symm_err_e theta = createSFR "angle_restrict_symm_err_e" $ gsl_sf_angle_restrict_symm_err_e theta | ||
157 | foreign 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); | ||
160 | angle_restrict_pos_err_e :: Double -> (Double,Double) | ||
161 | angle_restrict_pos_err_e theta = createSFR "angle_restrict_pos_err_e" $ gsl_sf_angle_restrict_pos_err_e theta | ||
162 | foreign 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 | {- | | ||
3 | Module : GSL.Special.Zeta | ||
4 | Copyright : (c) Alberto Ruiz 2006 | ||
5 | License : GPL-style | ||
6 | Maintainer : Alberto Ruiz (aruiz at um dot es) | ||
7 | Stability : provisional | ||
8 | Portability : uses ffi | ||
9 | |||
10 | |||
11 | |||
12 | -} | ||
13 | ------------------------------------------------------------ | ||
14 | |||
15 | module GSL.Special.Zeta( | ||
16 | zeta_int_e | ||
17 | , zeta_int | ||
18 | , zeta_e | ||
19 | , zeta | ||
20 | , zetam1_e | ||
21 | , zetam1 | ||
22 | , zetam1_int_e | ||
23 | , zetam1_int | ||
24 | , hzeta_e | ||
25 | , hzeta | ||
26 | , eta_int_e | ||
27 | , eta_int | ||
28 | , eta_e | ||
29 | , eta | ||
30 | ) where | ||
31 | |||
32 | import Foreign(Ptr) | ||
33 | import GSL.Special.Internal | ||
34 | |||
35 | -- | wrapper for int gsl_sf_zeta_int_e(int n,gsl_sf_result* result); | ||
36 | zeta_int_e :: Int -> (Double,Double) | ||
37 | zeta_int_e n = createSFR "zeta_int_e" $ gsl_sf_zeta_int_e n | ||
38 | foreign 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); | ||
41 | zeta_int :: Int -> Double | ||
42 | zeta_int = gsl_sf_zeta_int | ||
43 | foreign 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); | ||
46 | zeta_e :: Double -> (Double,Double) | ||
47 | zeta_e s = createSFR "zeta_e" $ gsl_sf_zeta_e s | ||
48 | foreign 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); | ||
51 | zeta :: Double -> Double | ||
52 | zeta = gsl_sf_zeta | ||
53 | foreign 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); | ||
56 | zetam1_e :: Double -> (Double,Double) | ||
57 | zetam1_e s = createSFR "zetam1_e" $ gsl_sf_zetam1_e s | ||
58 | foreign 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); | ||
61 | zetam1 :: Double -> Double | ||
62 | zetam1 = gsl_sf_zetam1 | ||
63 | foreign 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); | ||
66 | zetam1_int_e :: Int -> (Double,Double) | ||
67 | zetam1_int_e s = createSFR "zetam1_int_e" $ gsl_sf_zetam1_int_e s | ||
68 | foreign 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); | ||
71 | zetam1_int :: Int -> Double | ||
72 | zetam1_int = gsl_sf_zetam1_int | ||
73 | foreign 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); | ||
76 | hzeta_e :: Double -> Double -> (Double,Double) | ||
77 | hzeta_e s q = createSFR "hzeta_e" $ gsl_sf_hzeta_e s q | ||
78 | foreign 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); | ||
81 | hzeta :: Double -> Double -> Double | ||
82 | hzeta = gsl_sf_hzeta | ||
83 | foreign 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); | ||
86 | eta_int_e :: Int -> (Double,Double) | ||
87 | eta_int_e n = createSFR "eta_int_e" $ gsl_sf_eta_int_e n | ||
88 | foreign 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); | ||
91 | eta_int :: Int -> Double | ||
92 | eta_int = gsl_sf_eta_int | ||
93 | foreign 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); | ||
96 | eta_e :: Double -> (Double,Double) | ||
97 | eta_e s = createSFR "eta_e" $ gsl_sf_eta_e s | ||
98 | foreign 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); | ||
101 | eta :: Double -> Double | ||
102 | eta = gsl_sf_eta | ||
103 | foreign 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 @@ | |||
3 | import Text.ParserCombinators.Parsec | 3 | import Text.ParserCombinators.Parsec |
4 | import System | 4 | import System |
5 | import Data.List(intersperse, isPrefixOf) | 5 | import Data.List(intersperse, isPrefixOf) |
6 | import Data.Char(toUpper) | 6 | import Data.Char(toUpper,isUpper,toLower) |
7 | 7 | ||
8 | data Type = Normal Ident | Pointer Ident deriving (Eq, Show) | 8 | data 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 | |||
189 | isMode (Normal "gsl_mode_t",_) = True | 189 | isMode (Normal "gsl_mode_t",_) = True |
190 | isMode _ = False | 190 | isMode _ = False |
191 | 191 | ||
192 | hName n = f $ drop 7 n | ||
193 | where f (s:ss) = toLower s : ss | ||
194 | |||
192 | 195 | ||
193 | boilerResult h@(Header t n args) = | 196 | boilerResult 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 | ||
198 | boilerResultE10 h@(Header t n args) = | 201 | boilerResultE10 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 | ||
203 | boilerBasic h@(Header t n args) = | 206 | boilerBasic 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 | ||
207 | boilerMode h@(Header t n args) = | 210 | boilerMode 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 | |||
215 | cVar (v:vs) | isUpper v = toLower v : v : vs | ||
216 | | otherwise = v:vs | ||
217 | |||
218 | allArgs args = unwords (map (cVar.snd) args) | ||
219 | initArgs 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 @@ | |||
1 | int gsl_sf_clausen_e(double x,double* result); | ||
2 | double 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 @@ | |||
1 | int gsl_sf_hydrogenicR_1_e(double Z,double r,double* result); | ||
2 | double gsl_sf_hydrogenicR_1(double Z,double r); | ||
3 | int gsl_sf_hydrogenicR_e(int n,int l,double Z,double r,double* result); | ||
4 | double gsl_sf_hydrogenicR(int n,int l,double Z,double r); | ||
5 | int 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); | ||
6 | int gsl_sf_coulomb_wave_F_array(double lam_min,int kmax,double eta,double x,double* fc_array,double* F_exponent); | ||
7 | 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); | ||
8 | 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); | ||
9 | int gsl_sf_coulomb_wave_sphF_array(double lam_min,int kmax,double eta,double x,double* fc_array,double* F_exponent); | ||
10 | int gsl_sf_coulomb_CL_e(double L,double eta,double* result); | ||
11 | int 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 @@ | |||
1 | int 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); | ||
2 | double gsl_sf_coupling_3j(int two_ja,int two_jb,int two_jc,int two_ma,int two_mb,int two_mc); | ||
3 | int 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); | ||
4 | double gsl_sf_coupling_6j(int two_ja,int two_jb,int two_jc,int two_jd,int two_je,int two_jf); | ||
5 | int 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); | ||
6 | double gsl_sf_coupling_RacahW(int two_ja,int two_jb,int two_jc,int two_jd,int two_je,int two_jf); | ||
7 | 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,double* result); | ||
8 | 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); | ||
9 | 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,double* result); | ||
10 | double 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 @@ | |||
1 | int gsl_sf_dawson_e(double x,double* result); | ||
2 | double 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 @@ | |||
1 | int gsl_sf_debye_1_e(double x,double* result); | ||
2 | double gsl_sf_debye_1(double x); | ||
3 | int gsl_sf_debye_2_e(double x,double* result); | ||
4 | double gsl_sf_debye_2(double x); | ||
5 | int gsl_sf_debye_3_e(double x,double* result); | ||
6 | double gsl_sf_debye_3(double x); | ||
7 | int gsl_sf_debye_4_e(double x,double* result); | ||
8 | double 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 @@ | |||
1 | int gsl_sf_dilog_e(double x,double* result); | ||
2 | double gsl_sf_dilog(double x); | ||
3 | int gsl_sf_complex_dilog_xy_e(double x,double y,double* result_re,double* result_im); | ||
4 | int gsl_sf_complex_dilog_e(double r,double theta,double* result_re,double* result_im); | ||
5 | int 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 @@ | |||
1 | int gsl_sf_multiply_e(double x,double y,double* result); | ||
2 | double gsl_sf_multiply(double x,double y); | ||
3 | int 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 @@ | |||
1 | int gsl_sf_ellint_Kcomp_e(double k,int mode,double* result); | ||
2 | double gsl_sf_ellint_Kcomp(double k,int mode); | ||
3 | int gsl_sf_ellint_Ecomp_e(double k,int mode,double* result); | ||
4 | double gsl_sf_ellint_Ecomp(double k,int mode); | ||
5 | int gsl_sf_ellint_F_e(double phi,double k,int mode,double* result); | ||
6 | double gsl_sf_ellint_F(double phi,double k,int mode); | ||
7 | int gsl_sf_ellint_E_e(double phi,double k,int mode,double* result); | ||
8 | double gsl_sf_ellint_E(double phi,double k,int mode); | ||
9 | int gsl_sf_ellint_P_e(double phi,double k,double n,int mode,double* result); | ||
10 | double gsl_sf_ellint_P(double phi,double k,double n,int mode); | ||
11 | int gsl_sf_ellint_D_e(double phi,double k,double n,int mode,double* result); | ||
12 | double gsl_sf_ellint_D(double phi,double k,double n,int mode); | ||
13 | int gsl_sf_ellint_RC_e(double x,double y,int mode,double* result); | ||
14 | double gsl_sf_ellint_RC(double x,double y,int mode); | ||
15 | int gsl_sf_ellint_RD_e(double x,double y,double z,int mode,double* result); | ||
16 | double gsl_sf_ellint_RD(double x,double y,double z,int mode); | ||
17 | int gsl_sf_ellint_RF_e(double x,double y,double z,int mode,double* result); | ||
18 | double gsl_sf_ellint_RF(double x,double y,double z,int mode); | ||
19 | int gsl_sf_ellint_RJ_e(double x,double y,double z,double p,int mode,double* result); | ||
20 | double 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 @@ | |||
1 | int gsl_sf_expint_E1_e(double x,double* result); | ||
2 | double gsl_sf_expint_E1(double x); | ||
3 | int gsl_sf_expint_E2_e(double x,double* result); | ||
4 | double gsl_sf_expint_E2(double x); | ||
5 | int gsl_sf_expint_E1_scaled_e(double x,double* result); | ||
6 | double gsl_sf_expint_E1_scaled(double x); | ||
7 | int gsl_sf_expint_E2_scaled_e(double x,double* result); | ||
8 | double gsl_sf_expint_E2_scaled(double x); | ||
9 | int gsl_sf_expint_Ei_e(double x,double* result); | ||
10 | double gsl_sf_expint_Ei(double x); | ||
11 | int gsl_sf_expint_Ei_scaled_e(double x,double* result); | ||
12 | double gsl_sf_expint_Ei_scaled(double x); | ||
13 | int gsl_sf_Shi_e(double x,double* result); | ||
14 | double gsl_sf_Shi(double x); | ||
15 | int gsl_sf_Chi_e(double x,double* result); | ||
16 | double gsl_sf_Chi(double x); | ||
17 | int gsl_sf_expint_3_e(double x,double* result); | ||
18 | double gsl_sf_expint_3(double x); | ||
19 | int gsl_sf_Si_e(double x,double* result); | ||
20 | double gsl_sf_Si(double x); | ||
21 | int gsl_sf_Ci_e(double x,double* result); | ||
22 | double gsl_sf_Ci(double x); | ||
23 | int gsl_sf_atanint_e(double x,double* result); | ||
24 | double 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 @@ | |||
1 | int gsl_sf_fermi_dirac_m1_e(double x,double* result); | ||
2 | double gsl_sf_fermi_dirac_m1(double x); | ||
3 | int gsl_sf_fermi_dirac_0_e(double x,double* result); | ||
4 | double gsl_sf_fermi_dirac_0(double x); | ||
5 | int gsl_sf_fermi_dirac_1_e(double x,double* result); | ||
6 | double gsl_sf_fermi_dirac_1(double x); | ||
7 | int gsl_sf_fermi_dirac_2_e(double x,double* result); | ||
8 | double gsl_sf_fermi_dirac_2(double x); | ||
9 | int gsl_sf_fermi_dirac_int_e(int j,double x,double* result); | ||
10 | double gsl_sf_fermi_dirac_int(int j,double x); | ||
11 | int gsl_sf_fermi_dirac_mhalf_e(double x,double* result); | ||
12 | double gsl_sf_fermi_dirac_mhalf(double x); | ||
13 | int gsl_sf_fermi_dirac_half_e(double x,double* result); | ||
14 | double gsl_sf_fermi_dirac_half(double x); | ||
15 | int gsl_sf_fermi_dirac_3half_e(double x,double* result); | ||
16 | double gsl_sf_fermi_dirac_3half(double x); | ||
17 | int gsl_sf_fermi_dirac_inc_0_e(double x,double b,double* result); | ||
18 | double 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 @@ | |||
1 | int gsl_sf_gegenpoly_1_e(double lambda,double x,double* result); | ||
2 | int gsl_sf_gegenpoly_2_e(double lambda,double x,double* result); | ||
3 | int gsl_sf_gegenpoly_3_e(double lambda,double x,double* result); | ||
4 | double gsl_sf_gegenpoly_1(double lambda,double x); | ||
5 | double gsl_sf_gegenpoly_2(double lambda,double x); | ||
6 | double gsl_sf_gegenpoly_3(double lambda,double x); | ||
7 | int gsl_sf_gegenpoly_n_e(int n,double lambda,double x,double* result); | ||
8 | double gsl_sf_gegenpoly_n(int n,double lambda,double x); | ||
9 | int 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 | */ | ||
45 | int gsl_sf_exp_e(const double x, gsl_sf_result * result); | ||
46 | double gsl_sf_exp(const double x); | ||
47 | |||
48 | |||
49 | /* Exp(x) | ||
50 | * | ||
51 | * exceptions: GSL_EOVRFLW, GSL_EUNDRFLW | ||
52 | */ | ||
53 | int 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 | */ | ||
60 | int gsl_sf_exp_mult_e(const double x, const double y, gsl_sf_result * result); | ||
61 | double 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 | */ | ||
68 | int 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 | */ | ||
75 | int gsl_sf_expm1_e(const double x, gsl_sf_result * result); | ||
76 | double 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 | */ | ||
83 | int gsl_sf_exprel_e(const double x, gsl_sf_result * result); | ||
84 | double 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 | */ | ||
91 | int gsl_sf_exprel_2_e(double x, gsl_sf_result * result); | ||
92 | double 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 | */ | ||
102 | int gsl_sf_exprel_n_e(const int n, const double x, gsl_sf_result * result); | ||
103 | double gsl_sf_exprel_n(const int n, const double x); | ||
104 | |||
105 | |||
106 | /* Exponentiate a quantity with an associated error. | ||
107 | */ | ||
108 | int 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 | */ | ||
112 | int 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 | */ | ||
120 | int 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 | */ | ||
128 | int 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 | */ | ||
44 | int gsl_sf_log_e(const double x, gsl_sf_result * result); | ||
45 | double gsl_sf_log(const double x); | ||
46 | |||
47 | |||
48 | /* Log(|x|) | ||
49 | * | ||
50 | * exceptions: GSL_EDOM | ||
51 | */ | ||
52 | int gsl_sf_log_abs_e(const double x, gsl_sf_result * result); | ||
53 | double 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 | */ | ||
62 | int 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 | */ | ||
69 | int gsl_sf_log_1plusx_e(const double x, gsl_sf_result * result); | ||
70 | double gsl_sf_log_1plusx(const double x); | ||
71 | |||
72 | |||
73 | /* Log(1 + x) - x | ||
74 | * | ||
75 | * exceptions: GSL_EDOM | ||
76 | */ | ||
77 | int gsl_sf_log_1plusx_mx_e(const double x, gsl_sf_result * result); | ||
78 | double 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 @@ | |||
1 | int gsl_sf_hyperg_0F1_e(double c,double x,double* result); | ||
2 | double gsl_sf_hyperg_0F1(double c,double x); | ||
3 | int gsl_sf_hyperg_1F1_int_e(int m,int n,double x,double* result); | ||
4 | double gsl_sf_hyperg_1F1_int(int m,int n,double x); | ||
5 | int gsl_sf_hyperg_1F1_e(double a,double b,double x,double* result); | ||
6 | double gsl_sf_hyperg_1F1(double a,double b,double x); | ||
7 | int gsl_sf_hyperg_U_int_e(int m,int n,double x,double* result); | ||
8 | double gsl_sf_hyperg_U_int(int m,int n,double x); | ||
9 | int gsl_sf_hyperg_U_int_e10_e(int m,int n,double x,double* result); | ||
10 | int gsl_sf_hyperg_U_e(double a,double b,double x,double* result); | ||
11 | double gsl_sf_hyperg_U(double a,double b,double x); | ||
12 | int gsl_sf_hyperg_U_e10_e(double a,double b,double x,double* result); | ||
13 | int gsl_sf_hyperg_2F1_e(double a,double b,double c,double x,double* result); | ||
14 | double gsl_sf_hyperg_2F1(double a,double b,double c,double x); | ||
15 | int gsl_sf_hyperg_2F1_conj_e(double aR,double aI,double c,double x,double* result); | ||
16 | double gsl_sf_hyperg_2F1_conj(double aR,double aI,double c,double x); | ||
17 | int gsl_sf_hyperg_2F1_renorm_e(double a,double b,double c,double x,double* result); | ||
18 | double gsl_sf_hyperg_2F1_renorm(double a,double b,double c,double x); | ||
19 | int gsl_sf_hyperg_2F1_conj_renorm_e(double aR,double aI,double c,double x,double* result); | ||
20 | double gsl_sf_hyperg_2F1_conj_renorm(double aR,double aI,double c,double x); | ||
21 | int gsl_sf_hyperg_2F0_e(double a,double b,double x,double* result); | ||
22 | double 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 @@ | |||
1 | int gsl_sf_laguerre_1_e(double a,double x,double* result); | ||
2 | int gsl_sf_laguerre_2_e(double a,double x,double* result); | ||
3 | int gsl_sf_laguerre_3_e(double a,double x,double* result); | ||
4 | double gsl_sf_laguerre_1(double a,double x); | ||
5 | double gsl_sf_laguerre_2(double a,double x); | ||
6 | double gsl_sf_laguerre_3(double a,double x); | ||
7 | int gsl_sf_laguerre_n_e(int n,double a,double x,double* result); | ||
8 | double 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 @@ | |||
1 | int gsl_sf_lambert_W0_e(double x,double* result); | ||
2 | double gsl_sf_lambert_W0(double x); | ||
3 | int gsl_sf_lambert_Wm1_e(double x,double* result); | ||
4 | double 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 @@ | |||
1 | int gsl_sf_log_e(double x,double* result); | ||
2 | double gsl_sf_log(double x); | ||
3 | int gsl_sf_log_abs_e(double x,double* result); | ||
4 | double gsl_sf_log_abs(double x); | ||
5 | int gsl_sf_complex_log_e(double zr,double zi,double* lnr,double* theta); | ||
6 | int gsl_sf_log_1plusx_e(double x,double* result); | ||
7 | double gsl_sf_log_1plusx(double x); | ||
8 | int gsl_sf_log_1plusx_mx_e(double x,double* result); | ||
9 | double 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 @@ | |||
1 | Airy.hs | ||
2 | include Precision (..) in the export list | ||
3 | Exp.hs | ||
4 | remove extern inline definition, qualify name | ||
5 | Coupling | ||
6 | remove deprecated INCORRECT | ||
7 | Trig.hs | ||
8 | qualify names | ||
9 | Log.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 @@ | |||
1 | int gsl_sf_pow_int_e(double x,int n,double* result); | ||
2 | double 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 @@ | |||
1 | int gsl_sf_psi_int_e(int n,double* result); | ||
2 | double gsl_sf_psi_int(int n); | ||
3 | int gsl_sf_psi_e(double x,double* result); | ||
4 | double gsl_sf_psi(double x); | ||
5 | int gsl_sf_psi_1piy_e(double y,double* result); | ||
6 | double gsl_sf_psi_1piy(double y); | ||
7 | int gsl_sf_psi_1_int_e(int n,double* result); | ||
8 | double gsl_sf_psi_1_int(int n); | ||
9 | int gsl_sf_psi_1_e(double x,double* result); | ||
10 | double gsl_sf_psi_1(double x); | ||
11 | int gsl_sf_psi_n_e(int n,double x,double* result); | ||
12 | double 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 @@ | |||
1 | int gsl_sf_synchrotron_1_e(double x,double* result); | ||
2 | double gsl_sf_synchrotron_1(double x); | ||
3 | int gsl_sf_synchrotron_2_e(double x,double* result); | ||
4 | double 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 @@ | |||
1 | int gsl_sf_sin_e(double x,double* result); | ||
2 | double gsl_sf_sin(double x); | ||
3 | int gsl_sf_cos_e(double x,double* result); | ||
4 | double gsl_sf_cos(double x); | ||
5 | int gsl_sf_hypot_e(double x,double y,double* result); | ||
6 | double gsl_sf_hypot(double x,double y); | ||
7 | int gsl_sf_complex_sin_e(double zr,double zi,double* szr,double* szi); | ||
8 | int gsl_sf_complex_cos_e(double zr,double zi,double* czr,double* czi); | ||
9 | int gsl_sf_complex_logsin_e(double zr,double zi,double* lszr,double* lszi); | ||
10 | int gsl_sf_sinc_e(double x,double* result); | ||
11 | double gsl_sf_sinc(double x); | ||
12 | int gsl_sf_lnsinh_e(double x,double* result); | ||
13 | double gsl_sf_lnsinh(double x); | ||
14 | int gsl_sf_lncosh_e(double x,double* result); | ||
15 | double gsl_sf_lncosh(double x); | ||
16 | int gsl_sf_polar_to_rect(double r,double theta,double* x,double* y); | ||
17 | int gsl_sf_rect_to_polar(double x,double y,double* r,double* theta); | ||
18 | int gsl_sf_sin_err_e(double x,double dx,double* result); | ||
19 | int gsl_sf_cos_err_e(double x,double dx,double* result); | ||
20 | int gsl_sf_angle_restrict_symm_e(double* theta); | ||
21 | double gsl_sf_angle_restrict_symm(double theta); | ||
22 | int gsl_sf_angle_restrict_pos_e(double* theta); | ||
23 | double gsl_sf_angle_restrict_pos(double theta); | ||
24 | int gsl_sf_angle_restrict_symm_err_e(double theta,double* result); | ||
25 | int 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 @@ | |||
1 | int gsl_sf_zeta_int_e(int n,double* result); | ||
2 | double gsl_sf_zeta_int(int n); | ||
3 | int gsl_sf_zeta_e(double s,double* result); | ||
4 | double gsl_sf_zeta(double s); | ||
5 | int gsl_sf_zetam1_e(double s,double* result); | ||
6 | double gsl_sf_zetam1(double s); | ||
7 | int gsl_sf_zetam1_int_e(int s,double* result); | ||
8 | double gsl_sf_zetam1_int(int s); | ||
9 | int gsl_sf_hzeta_e(double s,double q,double* result); | ||
10 | double gsl_sf_hzeta(double s,double q); | ||
11 | int gsl_sf_eta_int_e(int n,double* result); | ||
12 | double gsl_sf_eta_int(int n); | ||
13 | int gsl_sf_eta_e(double s,double* result); | ||
14 | double gsl_sf_eta(double s); | ||