rgsl/
exponential_integrals.rs1use crate::{types, Value};
6use std::mem::MaybeUninit;
7
8#[doc(alias = "gsl_sf_expint_E1")]
12pub fn E1(x: f64) -> f64 {
13 unsafe { sys::gsl_sf_expint_E1(x) }
14}
15
16#[doc(alias = "gsl_sf_expint_E1_e")]
20pub fn E1_e(x: f64) -> Result<types::Result, Value> {
21 let mut result = MaybeUninit::<sys::gsl_sf_result>::uninit();
22 let ret = unsafe { sys::gsl_sf_expint_E1_e(x, result.as_mut_ptr()) };
23
24 result_handler!(ret, unsafe { result.assume_init() }.into())
25}
26
27#[doc(alias = "gsl_sf_expint_E2")]
31pub fn E2(x: f64) -> f64 {
32 unsafe { sys::gsl_sf_expint_E2(x) }
33}
34
35#[doc(alias = "gsl_sf_expint_E2_e")]
39pub fn E2_e(x: f64) -> Result<types::Result, Value> {
40 let mut result = MaybeUninit::<sys::gsl_sf_result>::uninit();
41 let ret = unsafe { sys::gsl_sf_expint_E2_e(x, result.as_mut_ptr()) };
42
43 result_handler!(ret, unsafe { result.assume_init() }.into())
44}
45
46#[doc(alias = "gsl_sf_expint_En")]
50pub fn En(n: i32, x: f64) -> f64 {
51 unsafe { sys::gsl_sf_expint_En(n, x) }
52}
53
54#[doc(alias = "gsl_sf_expint_En_e")]
58pub fn En_e(n: i32, x: f64) -> Result<types::Result, Value> {
59 let mut result = MaybeUninit::<sys::gsl_sf_result>::uninit();
60 let ret = unsafe { sys::gsl_sf_expint_En_e(n, x, result.as_mut_ptr()) };
61
62 result_handler!(ret, unsafe { result.assume_init() }.into())
63}
64
65#[doc(alias = "gsl_sf_expint_Ei")]
71pub fn Ei(x: f64) -> f64 {
72 unsafe { sys::gsl_sf_expint_Ei(x) }
73}
74
75#[doc(alias = "gsl_sf_expint_Ei_e")]
81pub fn Ei_e(x: f64) -> Result<types::Result, Value> {
82 let mut result = MaybeUninit::<sys::gsl_sf_result>::uninit();
83 let ret = unsafe { sys::gsl_sf_expint_Ei_e(x, result.as_mut_ptr()) };
84
85 result_handler!(ret, unsafe { result.assume_init() }.into())
86}
87
88#[doc(alias = "gsl_sf_Shi")]
90pub fn Shi(x: f64) -> f64 {
91 unsafe { sys::gsl_sf_Shi(x) }
92}
93
94#[doc(alias = "gsl_sf_Shi_e")]
96pub fn Shi_e(x: f64) -> Result<types::Result, Value> {
97 let mut result = MaybeUninit::<sys::gsl_sf_result>::uninit();
98 let ret = unsafe { sys::gsl_sf_Shi_e(x, result.as_mut_ptr()) };
99
100 result_handler!(ret, unsafe { result.assume_init() }.into())
101}
102
103#[doc(alias = "gsl_sf_Chi")]
105pub fn Chi(x: f64) -> f64 {
106 unsafe { sys::gsl_sf_Chi(x) }
107}
108
109#[doc(alias = "gsl_sf_Chi_e")]
111pub fn Chi_e(x: f64) -> Result<types::Result, Value> {
112 let mut result = MaybeUninit::<sys::gsl_sf_result>::uninit();
113 let ret = unsafe { sys::gsl_sf_Chi_e(x, result.as_mut_ptr()) };
114
115 result_handler!(ret, unsafe { result.assume_init() }.into())
116}
117
118#[doc(alias = "gsl_sf_expint_3")]
120pub fn _3(x: f64) -> f64 {
121 unsafe { sys::gsl_sf_expint_3(x) }
122}
123
124#[doc(alias = "gsl_sf_expint_3_e")]
126pub fn _3_e(x: f64) -> Result<types::Result, Value> {
127 let mut result = MaybeUninit::<sys::gsl_sf_result>::uninit();
128 let ret = unsafe { sys::gsl_sf_expint_3_e(x, result.as_mut_ptr()) };
129
130 result_handler!(ret, unsafe { result.assume_init() }.into())
131}
132
133#[doc(alias = "gsl_sf_Si")]
135pub fn Si(x: f64) -> f64 {
136 unsafe { sys::gsl_sf_Si(x) }
137}
138
139#[doc(alias = "gsl_sf_Si_e")]
141pub fn Si_e(x: f64) -> Result<types::Result, Value> {
142 let mut result = MaybeUninit::<sys::gsl_sf_result>::uninit();
143 let ret = unsafe { sys::gsl_sf_Si_e(x, result.as_mut_ptr()) };
144
145 result_handler!(ret, unsafe { result.assume_init() }.into())
146}
147
148#[doc(alias = "gsl_sf_Ci")]
150pub fn Ci(x: f64) -> f64 {
151 unsafe { sys::gsl_sf_Ci(x) }
152}
153
154#[doc(alias = "gsl_sf_Ci_e")]
156pub fn Ci_e(x: f64) -> Result<types::Result, Value> {
157 let mut result = MaybeUninit::<sys::gsl_sf_result>::uninit();
158 let ret = unsafe { sys::gsl_sf_Ci_e(x, result.as_mut_ptr()) };
159
160 result_handler!(ret, unsafe { result.assume_init() }.into())
161}
162
163#[doc(alias = "gsl_sf_atanint")]
165pub fn atanint(x: f64) -> f64 {
166 unsafe { sys::gsl_sf_atanint(x) }
167}
168
169#[doc(alias = "gsl_sf_atanint_e")]
171pub fn atanint_e(x: f64) -> Result<types::Result, Value> {
172 let mut result = MaybeUninit::<sys::gsl_sf_result>::uninit();
173 let ret = unsafe { sys::gsl_sf_atanint_e(x, result.as_mut_ptr()) };
174
175 result_handler!(ret, unsafe { result.assume_init() }.into())
176}