use ffi;
use std::mem::zeroed;
use enums;
pub fn hyperg_0F1(c: f64, x: f64) -> f64 {
unsafe { ffi::gsl_sf_hyperg_0F1(c, x) }
}
pub fn hyperg_0F1_e(c: f64, x: f64) -> (enums::Value, ::types::Result) {
let mut result = unsafe { zeroed::<::ffi::gsl_sf_result>() };
let ret = unsafe { ::ffi::gsl_sf_hyperg_0F1_e(c, x, &mut result) };
(ret, ::types::Result{val: result.val, err: result.err})
}
pub fn hyperg_1F1_int(m: i32, n: i32, x: f64) -> f64 {
unsafe { ffi::gsl_sf_hyperg_1F1_int(m, n, x) }
}
pub fn hyperg_1F1_int_e(m: i32, n: i32, x: f64) -> (enums::Value, ::types::Result) {
let mut result = unsafe { zeroed::<::ffi::gsl_sf_result>() };
let ret = unsafe { ::ffi::gsl_sf_hyperg_1F1_int_e(m, n, x, &mut result) };
(ret, ::types::Result{val: result.val, err: result.err})
}
pub fn hyperg_1F1(a: f64, b: f64, x: f64) -> f64 {
unsafe { ffi::gsl_sf_hyperg_1F1(a, b, x) }
}
pub fn hyperg_1F1_e(a: f64, b: f64, x: f64) -> (enums::Value, ::types::Result) {
let mut result = unsafe { zeroed::<::ffi::gsl_sf_result>() };
let ret = unsafe { ::ffi::gsl_sf_hyperg_1F1_e(a, b, x, &mut result) };
(ret, ::types::Result{val: result.val, err: result.err})
}
pub fn hyperg_1F1_U_int(m: i32, n: i32, x: f64) -> f64 {
unsafe { ffi::gsl_sf_hyperg_U_int(m, n, x) }
}
pub fn hyperg_1F1_U_int_e(m: i32, n: i32, x: f64) -> (enums::Value, ::types::Result) {
let mut result = unsafe { zeroed::<::ffi::gsl_sf_result>() };
let ret = unsafe { ::ffi::gsl_sf_hyperg_U_int_e(m, n, x, &mut result) };
(ret, ::types::Result{val: result.val, err: result.err})
}
pub fn hyperg_1F1_U_int_e10_e(m: i32, n: i32, x: f64) -> (enums::Value, ::types::ResultE10) {
let mut result = unsafe { zeroed::<::ffi::gsl_sf_result_e10>() };
let ret = unsafe { ::ffi::gsl_sf_hyperg_U_int_e10_e(m, n, x, &mut result) };
(ret, ::types::ResultE10{val: result.val, err: result.err, e10: result.e10})
}
pub fn hyperg_U(a: f64, b: f64, x: f64) -> f64 {
unsafe { ffi::gsl_sf_hyperg_U(a, b, x) }
}
pub fn hyperg_U_e(a: f64, b: f64, x: f64) -> (enums::Value, ::types::Result) {
let mut result = unsafe { zeroed::<::ffi::gsl_sf_result>() };
let ret = unsafe { ::ffi::gsl_sf_hyperg_U_e(a, b, x, &mut result) };
(ret, ::types::Result{val: result.val, err: result.err})
}
pub fn hyperg_U_e10_e(a: f64, b: f64, x: f64) -> (enums::Value, ::types::ResultE10) {
let mut result = unsafe { zeroed::<::ffi::gsl_sf_result_e10>() };
let ret = unsafe { ::ffi::gsl_sf_hyperg_U_e10_e(a, b, x, &mut result) };
(ret, ::types::ResultE10{val: result.val, err: result.err, e10: result.e10})
}
pub fn hyperg_2F1(a: f64, b: f64, c: f64, x: f64) -> f64 {
unsafe { ffi::gsl_sf_hyperg_2F1(a, b, c, x) }
}
pub fn hyperg_2F1_e(a: f64, b: f64, c: f64, x: f64) -> (enums::Value, ::types::Result) {
let mut result = unsafe { zeroed::<::ffi::gsl_sf_result>() };
let ret = unsafe { ::ffi::gsl_sf_hyperg_2F1_e(a, b, c, x, &mut result) };
(ret, ::types::Result{val: result.val, err: result.err})
}
pub fn hyperg_2F1_conj(aR: f64, aI: f64, c: f64, x: f64) -> f64 {
unsafe { ffi::gsl_sf_hyperg_2F1_conj(aR, aI, c, x) }
}
pub fn hyperg_2F1_conj_e(aR: f64, aI: f64, c: f64, x: f64) -> (enums::Value, ::types::Result) {
let mut result = unsafe { zeroed::<::ffi::gsl_sf_result>() };
let ret = unsafe { ::ffi::gsl_sf_hyperg_2F1_conj_e(aR, aI, c, x, &mut result) };
(ret, ::types::Result{val: result.val, err: result.err})
}
pub fn hyperg_2F1_renorm(a: f64, b: f64, c: f64, x: f64) -> f64 {
unsafe { ffi::gsl_sf_hyperg_2F1_renorm(a, b, c, x) }
}
pub fn hyperg_2F1_renorm_e(a: f64, b: f64, c: f64, x: f64) -> (enums::Value, ::types::Result) {
let mut result = unsafe { zeroed::<::ffi::gsl_sf_result>() };
let ret = unsafe { ::ffi::gsl_sf_hyperg_2F1_renorm_e(a, b, c, x, &mut result) };
(ret, ::types::Result{val: result.val, err: result.err})
}
pub fn hyperg_2F1_conj_renorm(aR: f64, aI: f64, c: f64, x: f64) -> f64 {
unsafe { ffi::gsl_sf_hyperg_2F1_conj_renorm(aR, aI, c, x) }
}
pub fn hyperg_2F1_conj_renorm_e(aR: f64, aI: f64, c: f64, x: f64) -> (enums::Value, ::types::Result) {
let mut result = unsafe { zeroed::<::ffi::gsl_sf_result>() };
let ret = unsafe { ::ffi::gsl_sf_hyperg_2F1_conj_renorm_e(aR, aI, c, x, &mut result) };
(ret, ::types::Result{val: result.val, err: result.err})
}
pub fn hyperg_2F0(a: f64, b: f64, x: f64) -> f64 {
unsafe { ffi::gsl_sf_hyperg_2F0(a, b, x) }
}
pub fn hyperg_2F0_e(a: f64, b: f64, x: f64) -> (enums::Value, ::types::Result) {
let mut result = unsafe { zeroed::<::ffi::gsl_sf_result>() };
let ret = unsafe { ::ffi::gsl_sf_hyperg_2F0_e(a, b, x, &mut result) };
(ret, ::types::Result{val: result.val, err: result.err})
}