use crate::Value;
#[doc(alias = "gsl_fit_linear")]
pub fn linear(
x: &[f64],
xstride: usize,
y: &[f64],
ystride: usize,
n: usize,
) -> Result<(f64, f64, f64, f64, f64, f64), Value> {
let mut c0 = 0.;
let mut c1 = 0.;
let mut cov00 = 0.;
let mut cov01 = 0.;
let mut cov11 = 0.;
let mut sumsq = 0.;
let ret = unsafe {
::sys::gsl_fit_linear(
x.as_ptr(),
xstride,
y.as_ptr(),
ystride,
n,
&mut c0,
&mut c1,
&mut cov00,
&mut cov01,
&mut cov11,
&mut sumsq,
)
};
result_handler!(ret, (c0, c1, cov00, cov01, cov11, sumsq))
}
#[doc(alias = "gsl_fit_wlinear")]
pub fn wlinear(
x: &[f64],
xstride: usize,
w: &[f64],
wstride: usize,
y: &[f64],
ystride: usize,
n: usize,
) -> Result<(f64, f64, f64, f64, f64, f64), Value> {
let mut c0 = 0.;
let mut c1 = 0.;
let mut cov00 = 0.;
let mut cov01 = 0.;
let mut cov11 = 0.;
let mut chisq = 0.;
let ret = unsafe {
::sys::gsl_fit_wlinear(
x.as_ptr(),
xstride,
w.as_ptr(),
wstride,
y.as_ptr(),
ystride,
n,
&mut c0,
&mut c1,
&mut cov00,
&mut cov01,
&mut cov11,
&mut chisq,
)
};
result_handler!(ret, (c0, c1, cov00, cov01, cov11, chisq))
}
#[doc(alias = "gsl_fit_linear_est")]
pub fn linear_est(
x: f64,
c0: f64,
c1: f64,
cov00: f64,
cov01: f64,
cov11: f64,
) -> Result<(f64, f64), Value> {
let mut y = 0.;
let mut y_err = 0.;
let ret =
unsafe { ::sys::gsl_fit_linear_est(x, c0, c1, cov00, cov01, cov11, &mut y, &mut y_err) };
result_handler!(ret, (y, y_err))
}
#[doc(alias = "gsl_fit_mul")]
pub fn mul(
x: &[f64],
xstride: usize,
y: &[f64],
ystride: usize,
n: usize,
) -> Result<(f64, f64, f64), Value> {
let mut c1 = 0.;
let mut cov11 = 0.;
let mut sumsq = 0.;
let ret = unsafe {
crate::sys::gsl_fit_mul(
x.as_ptr(),
xstride,
y.as_ptr(),
ystride,
n,
&mut c1,
&mut cov11,
&mut sumsq,
)
};
result_handler!(ret, (c1, cov11, sumsq))
}
#[doc(alias = "gsl_fit_wmul")]
pub fn wmul(
x: &[f64],
xstride: usize,
w: &[f64],
wstride: usize,
y: &[f64],
ystride: usize,
n: usize,
) -> Result<(f64, f64, f64), Value> {
let mut c1 = 0.;
let mut cov11 = 0.;
let mut sumsq = 0.;
let ret = unsafe {
crate::sys::gsl_fit_wmul(
x.as_ptr(),
xstride,
w.as_ptr(),
wstride,
y.as_ptr(),
ystride,
n,
&mut c1,
&mut cov11,
&mut sumsq,
)
};
result_handler!(ret, (c1, cov11, sumsq))
}
#[doc(alias = "gsl_fit_mul_est")]
pub fn mul_est(x: f64, c1: f64, cov11: f64) -> Result<(f64, f64), Value> {
let mut y = 0.;
let mut y_err = 0.;
let ret = unsafe { crate::sys::gsl_fit_mul_est(x, c1, cov11, &mut y, &mut y_err) };
result_handler!(ret, (y, y_err))
}