interp

Crates.iointerp
lib.rsinterp
version1.0.3
sourcesrc
created_at2021-06-06 13:49:38.136921
updated_at2023-12-27 00:21:21.852632
descriptionA Rust implementation of Matlab's interp1 function
homepage
repositoryhttps://github.com/staticintlucas/interp-rs
max_upload_size
id406879
size31,785
Lucas Jansen (staticintlucas)

documentation

README

interp

Test status Code coverage Crate version Rust version Downloads

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

API documentation is available on docs.rs.

Usage

Add interp to your Cargo.toml file:

[dependencies]
interp = "1.0"

Or, if you need the interp_array feature (only supported on Rust 1.55.0 or later)

[dependencies]
interp = { version = "1.0", features = ["interp_array"] }

Example

use interp::interp;

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), 2.0);

// Interpolate a vec
let xp = vec![0.1, 0.65, 0.9];
assert_eq!(interp_slice(&x, &y, &xp), vec![0.5, 3.25, 3.75]);

// Interpolate an array (requires the interp_array feature and Rust 1.55.0+)
let xp = [0.1, 0.65, 0.9];
assert_eq!(interp_array(&x, &y, &xp), [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.

Commit count: 21

cargo fmt