Function float_duration::iter::subdivide [] [src]

pub fn subdivide(
    begin: FloatDuration,
    end: FloatDuration,
    steps: usize
) -> Subdivide

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.