Linear interpolation and iteration, automatically implemented over most float-compatible types.
Just need to know what's halfway between three and five?
```rust use lerp::Lerp;
assert_eq!(3.0.lerp(5.0, 0.5), 4.0); ```
Want to iterate across some points in that range?
rust
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.
toml
[dependeencies]
lerp = "0.1"
Coming soon! I've never used Github Pages before.