pub struct AffineReduction {
pub num_vars: usize,
pub linear_form: usize,
pub invariance_basis: Vec<usize>,
pub free_positions: Vec<usize>,
pub reduced_truth: Vec<bool>,
}Expand description
The affine reduction of a Boolean function: f(x) = h(reduced) ⊕ ℓ(x), where ℓ is a linear form and
h collapses onto the free coordinates. This peels the COMPLEMENT linear structures (D_a f = 1) that
reduce_by_invariance cannot — a residue XOR a linear form is invisible to every other axis but folds
here.
Fields§
§num_vars: usize§linear_form: usizeThe linear form ℓ(x) = ⟨c, x⟩ peeled off (as a coefficient bitmask).
invariance_basis: Vec<usize>§free_positions: Vec<usize>§reduced_truth: Vec<bool>The reduced function h over free_positions.
Implementations§
Source§impl AffineReduction
impl AffineReduction
Sourcepub fn reconstruct(&self) -> Option<Vec<bool>>
pub fn reconstruct(&self) -> Option<Vec<bool>>
Rebuild the truth table: f(x) = h(coset-rep of x) ⊕ ⟨c, x⟩.
Trait Implementations§
Source§impl Clone for AffineReduction
impl Clone for AffineReduction
Source§fn clone(&self) -> AffineReduction
fn clone(&self) -> AffineReduction
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for AffineReduction
impl Debug for AffineReduction
Source§impl PartialEq for AffineReduction
impl PartialEq for AffineReduction
Source§fn eq(&self, other: &AffineReduction) -> bool
fn eq(&self, other: &AffineReduction) -> bool
Tests for
self and other values to be equal, and is used by ==.impl Eq for AffineReduction
impl StructuralPartialEq for AffineReduction
Auto Trait Implementations§
impl Freeze for AffineReduction
impl RefUnwindSafe for AffineReduction
impl Send for AffineReduction
impl Sync for AffineReduction
impl Unpin for AffineReduction
impl UnsafeUnpin for AffineReduction
impl UnwindSafe for AffineReduction
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more