Crates.io | makima_spline |
lib.rs | makima_spline |
version | 1.1.3 |
source | src |
created_at | 2020-10-17 19:39:57.945643 |
updated_at | 2020-10-28 00:21:14.775427 |
description | An implementation of the modified akima spline interpolation |
homepage | |
repository | https://github.com/GRASBOCK/makima_spline |
max_upload_size | |
id | 301593 |
size | 13,272 |
A implementation of the modified akima interpolation
+ linear extrapolation
+ 1., 2., and 3. order derivatives
+ bicubic interpolation as a feature
use makima_spline::Spline;
your data is in some format
let x = vec![1., 2., 3., 4., 5., 6., 7., 8.];
let y = vec![-1., -1., -1., 0.0, 1., 1., 1., 1.];
convert to the type used by the spline Vec<(f64, f64)>
let points = makima_spline::vec_to_points(&x, &y);
build the spline from the data-points
let spline = Spline::from_vec(points);
To sample do this:
let y = spline.sample(x);
Based on the bicubic crate it is possible to interpolate in two dimensions.
Create points
let x = vec![-1.0, 0.0, 2.0];
let y = vec![-0.0, 1.0];
let f = vec![5.0, 4.0, 5.0, 1.0, 1.0, 1.0];
construct Bicubic
Struct
let bci = makima_spline::n_dimensional::bicubic_from_grid(&x, &y, &f);
The submodule is called n_dimensional
in case higher dimensions will be supported in the future, but currently there is only 2d interpolation