pub struct VariableSymmetry {
pub num_vars: usize,
pub generators: Vec<Vec<usize>>,
pub order: u128,
pub orbit_count: usize,
pub orbit_values: Vec<bool>,
}Expand description
The variable-permutation symmetry of a Boolean function: a certified subgroup G ≤ Aut(f) and the
input-orbit compression it induces.
Fields§
§num_vars: usize§generators: Vec<Vec<usize>>Generators of G (each a permutation of the n variables) — every one a verified automorphism.
order: u128|G| — the certified group order from Schreier–Sims.
orbit_count: usizeThe number of orbits of inputs {0,1}ⁿ under G: the compressed table size (one value per orbit).
orbit_values: Vec<bool>One value per orbit, indexed by the orbit’s minimal representative in ascending order.
Implementations§
Source§impl VariableSymmetry
impl VariableSymmetry
Sourcepub fn is_nontrivial(&self) -> bool
pub fn is_nontrivial(&self) -> bool
Whether the function has any nontrivial variable-permutation symmetry.
Trait Implementations§
Source§impl Clone for VariableSymmetry
impl Clone for VariableSymmetry
Source§fn clone(&self) -> VariableSymmetry
fn clone(&self) -> VariableSymmetry
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 VariableSymmetry
impl Debug for VariableSymmetry
Source§impl PartialEq for VariableSymmetry
impl PartialEq for VariableSymmetry
Source§fn eq(&self, other: &VariableSymmetry) -> bool
fn eq(&self, other: &VariableSymmetry) -> bool
Tests for
self and other values to be equal, and is used by ==.impl Eq for VariableSymmetry
impl StructuralPartialEq for VariableSymmetry
Auto Trait Implementations§
impl Freeze for VariableSymmetry
impl RefUnwindSafe for VariableSymmetry
impl Send for VariableSymmetry
impl Sync for VariableSymmetry
impl Unpin for VariableSymmetry
impl UnsafeUnpin for VariableSymmetry
impl UnwindSafe for VariableSymmetry
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