pub trait Spline {
fn get_ranged_polynomials(&self) -> &Vec<(Range<f64>, Polynomial)>;
fn eval<T: Into<f64> + Copy>(&self, x: T) -> f64 { ... }
fn eval_vec<T: Into<f64> + Copy>(&self, v: &[T]) -> Vec<f64> { ... }
fn polynomial_at<T: Into<f64> + Copy>(&self, x: T) -> &Polynomial { ... }
fn number_of_polynomials(&self) -> usize { ... }
}