pub enum CubeStructure {
Constant(bool),
Junta {
relevant: Vec<usize>,
subtable: Vec<bool>,
},
Affine {
coeffs: Vec<bool>,
constant: bool,
},
Symmetric {
by_weight: Vec<bool>,
},
LowDegree {
degree: usize,
anf: Vec<bool>,
},
ResistedArsenal {
nonlinearity: u64,
degree: usize,
},
}Expand description
The compressibility class of a Boolean function on the hypercube, tightest description first. Each
variant carries a re-checkable witness (CubeStructure::reconstruct) except the residue.
Variants§
Constant(bool)
Every corner carries the same value — the whole cube in one bit.
Junta
A junta: the output depends only on relevant (a strict subset of the variables); subtable is
its 2^{|relevant|} truth table over those variables (indexed LSB-first in relevant order).
Affine
Affine (degree ≤ 1): f(x) = ⊕ᵢ coeffs[i]·xᵢ ⊕ constant.
Symmetric
Symmetric: the output depends only on the Hamming weight of the input; by_weight[w] is its value
on every corner of weight w (length n+1).
LowDegree
Low algebraic degree with a sparse ANF: anf is the 2ⁿ Möbius-transform witness, degree its top.
ResistedArsenal
No lens compresses it: dense high-degree ANF, all variables relevant, high nonlinearity. The incompressible residue relative to this arsenal — NOT a proof of structurelessness (Chaitin).
Implementations§
Source§impl CubeStructure
impl CubeStructure
Trait Implementations§
Source§impl Clone for CubeStructure
impl Clone for CubeStructure
Source§fn clone(&self) -> CubeStructure
fn clone(&self) -> CubeStructure
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CubeStructure
impl Debug for CubeStructure
Source§impl PartialEq for CubeStructure
impl PartialEq for CubeStructure
Source§fn eq(&self, other: &CubeStructure) -> bool
fn eq(&self, other: &CubeStructure) -> bool
self and other values to be equal, and is used by ==.