pub struct AffineSignature {
pub num_vars: usize,
pub walsh_abs_distribution: Vec<(u64, usize)>,
pub is_plateaued: bool,
pub amplitude: Option<u64>,
pub is_bent: bool,
}Expand description
The AGL(n,2)-invariant signature of a Boolean function: its Walsh amplitude distribution and the plateaued/bent classification that distribution induces.
Fields§
§num_vars: usize§walsh_abs_distribution: Vec<(u64, usize)>The multiset |Ŵ(w)| → count, sorted by amplitude — invariant under any affine change of variables.
is_plateaued: boolExactly one nonzero amplitude ⇒ PLATEAUED (maximal nonlinearity for its linear-space dimension).
amplitude: Option<u64>The plateau amplitude 2^{(n+k)/2} when plateaued, else None.
is_bent: boolPlateaued with amplitude 2^{n/2} ⇒ BENT: perfectly nonlinear, trivial linear space (k = 0).
Implementations§
Source§impl AffineSignature
impl AffineSignature
Sourcepub fn implied_linear_dim(&self) -> Option<usize>
pub fn implied_linear_dim(&self) -> Option<usize>
The linear-space dimension k implied by the plateau amplitude 2^{(n+k)/2} (so k = 2·log₂amp − n), matching linear_structures.dim(). None when not plateaued.
Trait Implementations§
Source§impl Clone for AffineSignature
impl Clone for AffineSignature
Source§fn clone(&self) -> AffineSignature
fn clone(&self) -> AffineSignature
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 AffineSignature
impl Debug for AffineSignature
Source§impl PartialEq for AffineSignature
impl PartialEq for AffineSignature
Source§fn eq(&self, other: &AffineSignature) -> bool
fn eq(&self, other: &AffineSignature) -> bool
Tests for
self and other values to be equal, and is used by ==.impl Eq for AffineSignature
impl StructuralPartialEq for AffineSignature
Auto Trait Implementations§
impl Freeze for AffineSignature
impl RefUnwindSafe for AffineSignature
impl Send for AffineSignature
impl Sync for AffineSignature
impl Unpin for AffineSignature
impl UnsafeUnpin for AffineSignature
impl UnwindSafe for AffineSignature
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