Skip to main content

Module packed_gf2

Module packed_gf2 

Source
Expand description

Stable, dependency-facing packed GF(2) primitives.

This module deliberately wraps the crate’s internal elimination machinery instead of exposing its storage layout. Downstream crates can use packed rows, reusable kernel workspaces, and reduced row-space membership without depending on private implementation details.

§Example

use qec_code::packed_gf2::{KernelWorkspace, PackedRow, ReducedRowSpace};

let rows = vec![vec![1, 1, 0], vec![0, 1, 1]];
let span = ReducedRowSpace::from_dense_rows(&rows, 3)?;
let target = PackedRow::from_dense(&[1, 0, 1])?;
assert!(span.contains(&target)?);

let mut workspace = KernelWorkspace::new();
let basis = workspace.kernel_basis(&rows, 3, &[0, 1, 2])?;
assert_eq!(basis, &[vec![1, 1, 1]]);

Structs§

KernelWorkspace
Reusable allocation workspace for permuted GF(2) kernel bases.
PackedRow
A binary row represented internally by packed machine words.
ReducedRowSpace
A row space reduced once for repeated packed membership queries.