Module slipstream::iterators

source ·
Expand description

The Vectorizable trait and a lot of its service types.

The Vectorizable trait allows to turning slices of base types to iterators of vectors, both in separation and in tandem. The rest of this module provides the related types and traits.

Usually, it is enough to bring in the prelude, which already contains the trait. It is seldom necessary to interact with this module directly.

Examples

use slipstream::prelude::*;

fn double(input: &[u32], output: &mut [u32]) {
    let two = u32x8::splat(2);
    for (i, mut o) in (input, output).vectorize() {
        *o = two * i;
    }
}

Structs

A proxy object for iterating over mutable slices.
The iterator returned by methods on Vectorizable.

Traits

A trait describing things with direct support for splitting into vectors.