pub fn subdivide(
begin: FloatDuration,
end: FloatDuration,
steps: usize,
) -> Subdivide ⓘExpand description
Subdivide the distance between two duration into steps evenly spaced points.
subdivide returns an iterator that lazily computes and returns exactly steps
evenly spaced
points between begin and end. This iterator is inclusive in that it
returns begin as the first element and end as the final element.
The returned iterator Subdivide implements
DoubleEndedIterator, and thus can be reversed or consumed from both sides.
use float_duration::FloatDuration;
use float_duration::iter::subdivide;
fn cost_function(t: &FloatDuration) -> f64 {
return 0.5*t.as_seconds()*t.as_seconds()
}
fn main() {
let start = FloatDuration::zero();
let end = FloatDuration::minutes(10.0);
let total: f64 = subdivide(start, end, 100).map(|x| cost_function(&x)).sum();
}§Panics
This function panics if steps < 2 as this would violate the property
that the iterator visits both endpoints.