use super::super::bivariate::Data;
use super::super::dot;
use super::super::float::Float;
#[derive(Clone, Copy)]
pub struct Slope<A>(pub A)
where
A: Float;
impl<A> Slope<A>
where
A: Float,
{
pub fn fit(data: &Data<'_, A, A>) -> Slope<A> {
let xs = data.0;
let ys = data.1;
let xy = dot(xs, ys);
let x2 = dot(xs, xs);
Slope(xy / x2)
}
}