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§
- Kernel
Workspace - Reusable allocation workspace for permuted GF(2) kernel bases.
- Packed
Row - A binary row represented internally by packed machine words.
- Reduced
RowSpace - A row space reduced once for repeated packed membership queries.