1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
use ffi;
use std::mem::zeroed;
use enums;
pub fn hydrogenicR_1(Z: f64, r: f64) -> f64 {
unsafe { ffi::gsl_sf_hydrogenicR_1(Z, r) }
}
pub fn hydrogenicR_1_e(Z: f64, r: f64) -> (enums::Value, ::types::Result) {
let mut result = unsafe { zeroed::<ffi::gsl_sf_result>() };
let ret = unsafe { ffi::gsl_sf_hydrogenicR_1_e(Z, r, &mut result) };
(ret, ::types::Result{val: result.val, err: result.err})
}
pub fn hydrogenicR(n: i32, l: i32, Z: f64, r: f64) -> f64 {
unsafe { ffi::gsl_sf_hydrogenicR(n, l, Z, r) }
}
pub fn hydrogenicR_e(n: i32, l: i32, Z: f64, r: f64) -> (enums::Value, ::types::Result) {
let mut result = unsafe { zeroed::<ffi::gsl_sf_result>() };
let ret = unsafe { ffi::gsl_sf_hydrogenicR_e(n, l, Z, r, &mut result) };
(ret, ::types::Result{val: result.val, err: result.err})
}
pub fn wave_FG_e(eta: f64, x: f64, L_F: f64, k: i32, exp_F: &mut f64, exp_G: &mut f64) -> (enums::Value, ::types::Result, ::types::Result, ::types::Result, ::types::Result) {
let mut F = unsafe { zeroed::<ffi::gsl_sf_result>() };
let mut Fp = unsafe { zeroed::<ffi::gsl_sf_result>() };
let mut G = unsafe { zeroed::<ffi::gsl_sf_result>() };
let mut Gp = unsafe { zeroed::<ffi::gsl_sf_result>() };
let ret = unsafe { ffi::gsl_sf_coulomb_wave_FG_e(eta, x, L_F, k, &mut F, &mut Fp, &mut G, &mut Gp, exp_F, exp_G) };
(ret,
::types::Result{val: F.val, err: F.err},
::types::Result{val: Fp.val, err: Fp.err},
::types::Result{val: G.val, err: G.err},
::types::Result{val: Gp.val, err: Gp.err})
}
pub fn wave_F_array(L_min: f64, eta: f64, x: f64, fc_array: &mut[f64], F_exponent: &mut f64) -> enums::Value {
unsafe { ffi::gsl_sf_coulomb_wave_F_array(L_min, fc_array.len() as i32, eta, x, fc_array.as_mut_ptr(), F_exponent) }
}
pub fn wave_FG_array(L_min: f64, eta: f64, x: f64, fc_array: &mut[f64], gc_array: &mut[f64], F_exponent: &mut f64,
G_exponent: &mut f64) -> enums::Value {
unsafe { ffi::gsl_sf_coulomb_wave_FG_array(L_min, fc_array.len() as i32, eta, x, fc_array.as_mut_ptr(), gc_array.as_mut_ptr(),
F_exponent, G_exponent) }
}
pub fn wave_FGp_array(L_min: f64, eta: f64, x: f64, fc_array: &mut[f64], fcp_array: &mut[f64], gc_array: &mut[f64], gcp_array: &mut[f64],
F_exponent: &mut f64, G_exponent: &mut f64) -> enums::Value {
unsafe { ffi::gsl_sf_coulomb_wave_FGp_array(L_min, fc_array.len() as i32, eta, x, fc_array.as_mut_ptr(), fcp_array.as_mut_ptr(),
gc_array.as_mut_ptr(), gcp_array.as_mut_ptr(), F_exponent, G_exponent) }
}
pub fn wave_sphF_array(L_min: f64, eta: f64, x: f64, fc_array: &mut[f64], F_exponent: &mut f64) -> enums::Value {
unsafe { ffi::gsl_sf_coulomb_wave_sphF_array(L_min, fc_array.len() as i32, eta, x, fc_array.as_mut_ptr(), F_exponent) }
}
pub fn CL_e(L: f64, eta: f64) -> (enums::Value, ::types::Result) {
let mut result = unsafe { zeroed::<ffi::gsl_sf_result>() };
let ret = unsafe { ffi::gsl_sf_coulomb_CL_e(L, eta, &mut result) };
(ret, ::types::Result{val: result.val, err: result.err})
}
pub fn CL_array(Lmin: f64, eta: f64, cl: &mut [f64]) -> enums::Value {
unsafe { ffi::gsl_sf_coulomb_CL_array(Lmin, cl.len() as i32, eta, cl.as_mut_ptr()) }
}