pub mod diagamma {
use std::mem::zeroed;
use enums;
use ffi;
pub fn psi_int(n: i32) -> f64 {
unsafe { ffi::gsl_sf_psi_int(n) }
}
pub fn psi_int_e(n: i32) -> (enums::Value, ::types::Result) {
let mut result = unsafe { zeroed::<ffi::gsl_sf_result>() };
let ret = unsafe { ffi::gsl_sf_psi_int_e(n, &mut result) };
(enums::Value::from(ret), ::types::Result{val: result.val, err: result.err})
}
pub fn psi(x: f64) -> f64 {
unsafe { ffi::gsl_sf_psi(x) }
}
pub fn psi_e(x: f64) -> (enums::Value, ::types::Result) {
let mut result = unsafe { zeroed::<ffi::gsl_sf_result>() };
let ret = unsafe { ffi::gsl_sf_psi_e(x, &mut result) };
(enums::Value::from(ret), ::types::Result{val: result.val, err: result.err})
}
pub fn psi_1piy(x: f64) -> f64 {
unsafe { ffi::gsl_sf_psi_1piy(x) }
}
pub fn psi_1piy_e(x: f64) -> (enums::Value, ::types::Result) {
let mut result = unsafe { zeroed::<ffi::gsl_sf_result>() };
let ret = unsafe { ffi::gsl_sf_psi_1piy_e(x, &mut result) };
(enums::Value::from(ret), ::types::Result{val: result.val, err: result.err})
}
}
pub mod trigamma {
use std::mem::zeroed;
use enums;
use ffi;
pub fn psi_1_int(n: i32) -> f64 {
unsafe { ffi::gsl_sf_psi_1_int(n) }
}
pub fn psi_1_int_e(n: i32) -> (enums::Value, ::types::Result) {
let mut result = unsafe { zeroed::<ffi::gsl_sf_result>() };
let ret = unsafe { ffi::gsl_sf_psi_1_int_e(n, &mut result) };
(enums::Value::from(ret), ::types::Result{val: result.val, err: result.err})
}
pub fn psi_1(x: f64) -> f64 {
unsafe { ffi::gsl_sf_psi_1(x) }
}
pub fn psi_1_e(x: f64) -> (enums::Value, ::types::Result) {
let mut result = unsafe { zeroed::<ffi::gsl_sf_result>() };
let ret = unsafe { ffi::gsl_sf_psi_1_e(x, &mut result) };
(enums::Value::from(ret), ::types::Result{val: result.val, err: result.err})
}
}
pub mod polygamma {
use std::mem::zeroed;
use enums;
use ffi;
pub fn psi_n(n: i32, x: f64) -> f64 {
unsafe { ffi::gsl_sf_psi_n(n, x) }
}
pub fn psi_n_e(n: i32, x: f64) -> (enums::Value, ::types::Result) {
let mut result = unsafe { zeroed::<ffi::gsl_sf_result>() };
let ret = unsafe { ffi::gsl_sf_psi_n_e(n, x, &mut result) };
(enums::Value::from(ret), ::types::Result{val: result.val, err: result.err})
}
}