use interp1d::Interp1d;
use rayon::prelude::*;
fn main() {
let x: Vec<f64> = vec![1.0, 2.0, 3.0];
let y: Vec<f64> = vec![5.0, 3.0, 4.0];
let interpolator = Interp1d::new_sorted(x, y).unwrap();
let x_interp = vec![1.5, 2.5];
let y_interp: Vec<f64> = x_interp
.par_iter()
.map(|&x| interpolator.interpolate_checked(x))
.collect::<Result<Vec<f64>, _>>()
.unwrap();
println!("y_interp = {y_interp:?}");
}