binius_math

Function deinterleave

source
pub fn deinterleave<P: PackedField>(
    log_scalar_count: usize,
    interleaved: &[P],
) -> impl Iterator<Item = (usize, P, P)> + '_
Expand description

Given a slice of packed fields representing 2^log_scalar_count scalars, returns an iterator that yields pairs of packed fields that can be unzipped into a deinterleaved representation of the slice.

For example, for a slice of two packed fields of four scalars: [[a0, b0, a1, b1] [a2, b2, a3, b3]] -> ([a0, a1, a2, a3], [b0, b1, b2, b3])