Skip to content

A Rust implementation of Matlab's interp1 function for linear interpolation.

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENCE-APACHE
MIT
LICENCE-MIT
Notifications You must be signed in to change notification settings

staticintlucas/interp-rs

Repository files navigation

interp

Test status Code coverage Crate version Rust version Downloads

An implementation of 1-dimensional linear interpolation in Rust, similar to MATLAB's interp1 or NumPy's numpy.interp.

API documentation is available on docs.rs.

Usage

Add interp to your Cargo.toml file:

[dependencies]
interp = "2.0"

Example

use interp::{interp, interp_array, interp_slice, InterpMode};

let x = vec![0.0, 0.2, 0.5, 0.8, 1.0];
let y = vec![0.0, 1.0, 3.0, 3.5, 4.0];

// Interpolate at a single point
assert_eq!(interp(&x, &y, 0.35, &InterpMode::default()), 2.0);

// Interpolate a slice - alloces a new results Vec<T>
let xp = vec![0.1, 0.65, 0.9];
assert_eq!(interp_slice(&x, &y, &xp, &InterpMode::default()), vec![0.5, 3.25, 3.75]);

// Interpolate an array
let xp = [0.1, 0.65, 0.9];
assert_eq!(interp_array(&x, &y, &xp, &InterpMode::default()), [0.5, 3.25, 3.75]);

Full API documentation is available on docs.rs.

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

You can install the pre-commit hook (which checks formatting, etc) by running:

pip install -U pre-commit
pre-commit install

Licence

Licensed under either of

at your option.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

About

A Rust implementation of Matlab's interp1 function for linear interpolation.

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENCE-APACHE
MIT
LICENCE-MIT

Stars

Watchers

Forks

Languages