Documentation

Lerp

Linear interpolation and iteration, automatically implemented over most float-compatible types.

Just need to know what's halfway between three and five?

use lerp::Lerp;

assert_eq!(3.0.lerp(5.0, 0.5), 4.0);

Want to iterate across some points in that range?

use lerp::LerpIter;
// lerp between 3 and 5, collecting two items
let items: Vec<_> = 3.0_f64.lerp_iter(5.0, 4).collect();
assert_eq!(vec![3.0, 3.5, 4.0, 4.5], items);
assert_eq!(vec![3.0, 5.0], 3.0.lerp_iter_closed(5.0, 2).collect::<Vec<_>>());

Of course, the real benefit is that it's derivation is broad enough that it also covers types such as num::Complex<T>. If you have an array-processing library, and the arrays are T: Copy + Add<Output = T> + Sub<Output = T> + Mul<F: Float, Output = T>, it'll just work for them as well.

Usage

[dependeencies]
lerp = "0.1"

Documentation

Coming soon! I've never used Github Pages before.