rgsl/
transport.rs

1//
2// A rust binding for the GSL library by Guillaume Gomez (guillaume1.gomez@gmail.com)
3//
4
5//! The transport functions J(n,x) are defined by the integral representations J(n,x) := \int_0^x dt t^n e^t /(e^t - 1)^2.
6
7use crate::{types, Value};
8use std::mem::MaybeUninit;
9
10/// This routine computes the transport function J(2,x).
11#[doc(alias = "gsl_sf_transport_2")]
12pub fn transport_2(x: f64) -> f64 {
13    unsafe { sys::gsl_sf_transport_2(x) }
14}
15
16/// This routine computes the transport function J(2,x).
17#[doc(alias = "gsl_sf_transport_2_e")]
18pub fn transport_2_e(x: f64) -> Result<types::Result, Value> {
19    let mut result = MaybeUninit::<sys::gsl_sf_result>::uninit();
20    let ret = unsafe { sys::gsl_sf_transport_2_e(x, result.as_mut_ptr()) };
21
22    result_handler!(ret, unsafe { result.assume_init() }.into())
23}
24
25/// This routine computes the transport function J(3,x).
26#[doc(alias = "gsl_sf_transport_3")]
27pub fn transport_3(x: f64) -> f64 {
28    unsafe { sys::gsl_sf_transport_3(x) }
29}
30
31/// This routine computes the transport function J(3,x).
32#[doc(alias = "gsl_sf_transport_3_e")]
33pub fn transport_3_e(x: f64) -> Result<types::Result, Value> {
34    let mut result = MaybeUninit::<sys::gsl_sf_result>::uninit();
35    let ret = unsafe { sys::gsl_sf_transport_3_e(x, result.as_mut_ptr()) };
36
37    result_handler!(ret, unsafe { result.assume_init() }.into())
38}
39
40/// This routine computes the transport function J(4,x).
41#[doc(alias = "gsl_sf_transport_4")]
42pub fn transport_4(x: f64) -> f64 {
43    unsafe { sys::gsl_sf_transport_4(x) }
44}
45
46/// This routine computes the transport function J(4,x).
47#[doc(alias = "gsl_sf_transport_4_e")]
48pub fn transport_4_e(x: f64) -> Result<types::Result, Value> {
49    let mut result = MaybeUninit::<sys::gsl_sf_result>::uninit();
50    let ret = unsafe { sys::gsl_sf_transport_4_e(x, result.as_mut_ptr()) };
51
52    result_handler!(ret, unsafe { result.assume_init() }.into())
53}
54
55/// This routine computes the transport function J(5,x).
56#[doc(alias = "gsl_sf_transport_5")]
57pub fn transport_5(x: f64) -> f64 {
58    unsafe { sys::gsl_sf_transport_5(x) }
59}
60
61/// This routine computes the transport function J(5,x).
62#[doc(alias = "gsl_sf_transport_5_e")]
63pub fn transport_5_e(x: f64) -> Result<types::Result, Value> {
64    let mut result = MaybeUninit::<sys::gsl_sf_result>::uninit();
65    let ret = unsafe { sys::gsl_sf_transport_5_e(x, result.as_mut_ptr()) };
66
67    result_handler!(ret, unsafe { result.assume_init() }.into())
68}