rgsl/
airy.rs

1//
2// A rust binding for the GSL library by Guillaume Gomez (guillaume1.gomez@gmail.com)
3//
4
5use crate::{types, Value};
6use std::mem::MaybeUninit;
7
8/// This routine computes the Airy function Ai(x) with an accuracy specified by mode.
9#[doc(alias = "gsl_sf_airy_Ai")]
10pub fn Ai(x: f64, mode: crate::Mode) -> f64 {
11    unsafe { sys::gsl_sf_airy_Ai(x, mode.into()) }
12}
13
14/// This routine computes the Airy function Ai(x) with an accuracy specified by mode.
15#[doc(alias = "gsl_sf_airy_Ai_e")]
16pub fn Ai_e(x: f64, mode: crate::Mode) -> Result<types::Result, Value> {
17    let mut result = MaybeUninit::<sys::gsl_sf_result>::uninit();
18    let ret = unsafe { sys::gsl_sf_airy_Ai_e(x, mode.into(), result.as_mut_ptr()) };
19
20    result_handler!(ret, unsafe { result.assume_init() }.into())
21}
22
23/// This routine computes the Airy function Bi(x) with an accuracy specified by mode.
24#[doc(alias = "gsl_sf_airy_Bi")]
25pub fn Bi(x: f64, mode: crate::Mode) -> f64 {
26    unsafe { sys::gsl_sf_airy_Bi(x, mode.into()) }
27}
28
29/// This routine computes the Airy function Bi(x) with an accuracy specified by mode.
30#[doc(alias = "gsl_sf_airy_Bi_e")]
31pub fn Bi_e(x: f64, mode: crate::Mode) -> Result<types::Result, Value> {
32    let mut result = MaybeUninit::<sys::gsl_sf_result>::uninit();
33    let ret = unsafe { sys::gsl_sf_airy_Bi_e(x, mode.into(), result.as_mut_ptr()) };
34
35    result_handler!(ret, unsafe { result.assume_init() }.into())
36}
37
38/// This routine computes a scaled version of the Airy function S_A(x) Ai(x). For x>0 the scaling factor S_A(x) is \exp(+(2/3) x^(3/2)), and is 1 for x<0.
39#[doc(alias = "gsl_sf_airy_Ai_scaled")]
40pub fn Ai_scaled(x: f64, mode: crate::Mode) -> f64 {
41    unsafe { sys::gsl_sf_airy_Ai_scaled(x, mode.into()) }
42}
43
44/// This routine computes a scaled version of the Airy function S_A(x) Ai(x). For x>0 the scaling factor S_A(x) is \exp(+(2/3) x^(3/2)), and is 1 for x<0.
45#[doc(alias = "gsl_sf_airy_Ai_scaled_e")]
46pub fn Ai_scaled_e(x: f64, mode: crate::Mode) -> Result<types::Result, Value> {
47    let mut result = MaybeUninit::<sys::gsl_sf_result>::uninit();
48    let ret = unsafe { sys::gsl_sf_airy_Ai_scaled_e(x, mode.into(), result.as_mut_ptr()) };
49
50    result_handler!(ret, unsafe { result.assume_init() }.into())
51}
52
53/// This routine computes a scaled version of the Airy function S_B(x) Bi(x). For x>0 the scaling factor S_B(x) is exp(-(2/3) x^(3/2)), and is 1 for x<0.
54#[doc(alias = "gsl_sf_airy_Bi_scaled")]
55pub fn Bi_scaled(x: f64, mode: crate::Mode) -> f64 {
56    unsafe { sys::gsl_sf_airy_Bi_scaled(x, mode.into()) }
57}
58
59/// This routine computes a scaled version of the Airy function S_B(x) Bi(x). For x>0 the scaling factor S_B(x) is exp(-(2/3) x^(3/2)), and is 1 for x<0.
60#[doc(alias = "gsl_sf_airy_Bi_scaled_e")]
61pub fn Bi_scaled_e(x: f64, mode: crate::Mode) -> Result<types::Result, Value> {
62    let mut result = MaybeUninit::<sys::gsl_sf_result>::uninit();
63    let ret = unsafe { sys::gsl_sf_airy_Bi_scaled_e(x, mode.into(), result.as_mut_ptr()) };
64
65    result_handler!(ret, unsafe { result.assume_init() }.into())
66}
67
68/// This routine computes the Airy function derivative Ai'(x) with an accuracy specified by mode.
69#[doc(alias = "gsl_sf_airy_Ai_deriv")]
70pub fn Ai_deriv(x: f64, mode: crate::Mode) -> f64 {
71    unsafe { sys::gsl_sf_airy_Ai_deriv(x, mode.into()) }
72}
73
74/// This routine computes the Airy function derivative Ai'(x) with an accuracy specified by mode.
75#[doc(alias = "gsl_sf_airy_Ai_deriv_e")]
76pub fn Ai_deriv_e(x: f64, mode: crate::Mode) -> Result<types::Result, Value> {
77    let mut result = MaybeUninit::<sys::gsl_sf_result>::uninit();
78    let ret = unsafe { sys::gsl_sf_airy_Ai_deriv_e(x, mode.into(), result.as_mut_ptr()) };
79
80    result_handler!(ret, unsafe { result.assume_init() }.into())
81}
82
83/// This routine computes the Airy function derivative Bi'(x) with an accuracy specified by mode.
84#[doc(alias = "gsl_sf_airy_Bi_deriv")]
85pub fn Bi_deriv(x: f64, mode: crate::Mode) -> f64 {
86    unsafe { sys::gsl_sf_airy_Bi_deriv(x, mode.into()) }
87}
88
89/// This routine computes the Airy function derivative Bi'(x) with an accuracy specified by mode.
90#[doc(alias = "gsl_sf_airy_Bi_deriv_e")]
91pub fn Bi_deriv_e(x: f64, mode: crate::Mode) -> Result<types::Result, Value> {
92    let mut result = MaybeUninit::<sys::gsl_sf_result>::uninit();
93    let ret = unsafe { sys::gsl_sf_airy_Bi_deriv_e(x, mode.into(), result.as_mut_ptr()) };
94
95    result_handler!(ret, unsafe { result.assume_init() }.into())
96}
97
98/// This routine computes the scaled Airy function derivative S_A(x) Ai'(x). For x>0 the scaling factor S_A(x) is \exp(+(2/3) x^(3/2)), and is 1 for x<0.
99#[doc(alias = "gsl_sf_airy_Ai_deriv_scaled")]
100pub fn Ai_deriv_scaled(x: f64, mode: crate::Mode) -> f64 {
101    unsafe { sys::gsl_sf_airy_Ai_deriv_scaled(x, mode.into()) }
102}
103
104/// This routine computes the scaled Airy function derivative S_A(x) Ai'(x). For x>0 the scaling factor S_A(x) is \exp(+(2/3) x^(3/2)), and is 1 for x<0.
105#[doc(alias = "gsl_sf_airy_Ai_deriv_scaled_e")]
106pub fn Ai_deriv_scaled_e(x: f64, mode: crate::Mode) -> Result<types::Result, Value> {
107    let mut result = MaybeUninit::<sys::gsl_sf_result>::uninit();
108    let ret = unsafe { sys::gsl_sf_airy_Ai_deriv_scaled_e(x, mode.into(), result.as_mut_ptr()) };
109
110    result_handler!(ret, unsafe { result.assume_init() }.into())
111}
112
113/// This routine computes the scaled Airy function derivative S_B(x) Bi'(x). For x>0 the scaling factor S_B(x) is exp(-(2/3) x^(3/2)), and is 1 for x<0.
114#[doc(alias = "gsl_sf_airy_Bi_deriv_scaled")]
115pub fn Bi_deriv_scaled(x: f64, mode: crate::Mode) -> f64 {
116    unsafe { sys::gsl_sf_airy_Bi_deriv_scaled(x, mode.into()) }
117}
118
119/// This routine computes the scaled Airy function derivative S_B(x) Bi'(x). For x>0 the scaling factor S_B(x) is exp(-(2/3) x^(3/2)), and is 1 for x<0.
120#[doc(alias = "gsl_sf_airy_Bi_deriv_scaled_e")]
121pub fn Bi_deriv_scaled_e(x: f64, mode: crate::Mode) -> Result<types::Result, Value> {
122    let mut result = MaybeUninit::<sys::gsl_sf_result>::uninit();
123    let ret = unsafe { sys::gsl_sf_airy_Bi_deriv_scaled_e(x, mode.into(), result.as_mut_ptr()) };
124
125    result_handler!(ret, unsafe { result.assume_init() }.into())
126}
127
128/// This routine computes the location of the s-th zero of the Airy function Ai(x).
129#[doc(alias = "gsl_sf_airy_zero_Ai")]
130pub fn zero_Ai(s: u32) -> f64 {
131    unsafe { sys::gsl_sf_airy_zero_Ai(s) }
132}
133
134/// This routine computes the location of the s-th zero of the Airy function Ai(x).
135#[doc(alias = "gsl_sf_airy_zero_Ai_e")]
136pub fn zero_Ai_e(s: u32) -> Result<types::Result, Value> {
137    let mut result = MaybeUninit::<sys::gsl_sf_result>::uninit();
138    let ret = unsafe { sys::gsl_sf_airy_zero_Ai_e(s, result.as_mut_ptr()) };
139
140    result_handler!(ret, unsafe { result.assume_init() }.into())
141}
142
143/// This routine computes the location of the s-th zero of the Airy function Bi(x).
144#[doc(alias = "gsl_sf_airy_zero_Bi")]
145pub fn zero_Bi(s: u32) -> f64 {
146    unsafe { sys::gsl_sf_airy_zero_Bi(s) }
147}
148
149/// This routine computes the location of the s-th zero of the Airy function Bi(x).
150#[doc(alias = "gsl_sf_airy_zero_Bi_e")]
151pub fn zero_Bi_e(s: u32) -> Result<types::Result, Value> {
152    let mut result = MaybeUninit::<sys::gsl_sf_result>::uninit();
153    let ret = unsafe { sys::gsl_sf_airy_zero_Bi_e(s, result.as_mut_ptr()) };
154
155    result_handler!(ret, unsafe { result.assume_init() }.into())
156}
157
158/// This routine computes the location of the s-th zero of the Airy function derivative Ai'(x).
159#[doc(alias = "gsl_sf_airy_zero_Ai_deriv")]
160pub fn zero_Ai_deriv(s: u32) -> f64 {
161    unsafe { sys::gsl_sf_airy_zero_Ai_deriv(s) }
162}
163
164/// This routine computes the location of the s-th zero of the Airy function derivative Ai'(x).
165#[doc(alias = "gsl_sf_airy_zero_Ai_deriv_e")]
166pub fn zero_Ai_deriv_e(s: u32) -> Result<types::Result, Value> {
167    let mut result = MaybeUninit::<sys::gsl_sf_result>::uninit();
168    let ret = unsafe { sys::gsl_sf_airy_zero_Ai_deriv_e(s, result.as_mut_ptr()) };
169
170    result_handler!(ret, unsafe { result.assume_init() }.into())
171}
172
173/// This routine computes the location of the s-th zero of the Airy function derivative Bi'(x).
174#[doc(alias = "gsl_sf_airy_zero_Bi_deriv")]
175pub fn zero_Bi_deriv(s: u32) -> f64 {
176    unsafe { sys::gsl_sf_airy_zero_Bi_deriv(s) }
177}
178
179/// This routine computes the location of the s-th zero of the Airy function derivative Bi'(x).
180#[doc(alias = "gsl_sf_airy_zero_Bi_deriv_e")]
181pub fn zero_Bi_deriv_e(s: u32) -> Result<types::Result, Value> {
182    let mut result = MaybeUninit::<sys::gsl_sf_result>::uninit();
183    let ret = unsafe { sys::gsl_sf_airy_zero_Bi_deriv_e(s, result.as_mut_ptr()) };
184
185    result_handler!(ret, unsafe { result.assume_init() }.into())
186}