pub enum StructureTree {
Coordinate {
class: CubeStructure,
num_vars: usize,
bits: usize,
},
Permutation {
sym: VariableSymmetry,
num_vars: usize,
},
Residue {
truth: Vec<bool>,
},
Separable {
num_vars: usize,
constant: bool,
blocks: Vec<(Vec<usize>, StructureTree)>,
},
LinearReduced {
num_vars: usize,
invariance_basis: Vec<usize>,
free_positions: Vec<usize>,
inner: Box<StructureTree>,
},
AffineReduced {
num_vars: usize,
linear_form: usize,
invariance_basis: Vec<usize>,
free_positions: Vec<usize>,
inner: Box<StructureTree>,
},
}Expand description
A recursive structural decomposition of a Boolean function: the fixed point of the deep finder.
Variants§
Coordinate
A coordinate-lens leaf (constant/junta/affine/symmetric/low-degree), reconstructable from class.
Permutation
A permutation-symmetry leaf: the orbit painting reconstructs it.
Residue
The incompressible residue — stored raw (no axis compressed it).
Separable
Split into independent blocks, each recursively decomposed.
LinearReduced
Reduced by an invariance subspace; inner is the decomposition of the smaller function.
Fields
§
inner: Box<StructureTree>AffineReduced
Peeled a linear form ⟨c,x⟩, then reduced; inner decomposes the residual h.
Implementations§
Source§impl StructureTree
impl StructureTree
Sourcepub fn total_description_bits(&self) -> usize
pub fn total_description_bits(&self) -> usize
The total description size in bits: the sum over the leaves, with a small charge per structural node.
Sourcepub fn reconstruct(&self) -> Option<Vec<bool>>
pub fn reconstruct(&self) -> Option<Vec<bool>>
Rebuild the full 2ⁿ truth table by composing the recursive descriptions — the whole-tree witness.
Trait Implementations§
Source§impl Clone for StructureTree
impl Clone for StructureTree
Source§fn clone(&self) -> StructureTree
fn clone(&self) -> StructureTree
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 StructureTree
impl Debug for StructureTree
Source§impl PartialEq for StructureTree
impl PartialEq for StructureTree
Source§fn eq(&self, other: &StructureTree) -> bool
fn eq(&self, other: &StructureTree) -> bool
Tests for
self and other values to be equal, and is used by ==.impl Eq for StructureTree
impl StructuralPartialEq for StructureTree
Auto Trait Implementations§
impl Freeze for StructureTree
impl RefUnwindSafe for StructureTree
impl Send for StructureTree
impl Sync for StructureTree
impl Unpin for StructureTree
impl UnsafeUnpin for StructureTree
impl UnwindSafe for StructureTree
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