pub enum OsdMethod {
Zero,
CombinationSweep {
order: usize,
},
Exhaustive {
order: usize,
},
}Expand description
Ordered-statistics post-processing applied when belief propagation does not reach a solution of the syndrome.
Columns are ranked by posterior error likelihood; Gaussian elimination in
that order picks the most reliable information set, and the non-pivot
(“free”) columns are the search space. Every candidate fixes the free bits
and solves the pivots, and the candidate of least total weight
sum ln((1-p)/p) wins.
Variants§
Zero
The single candidate with every free bit zero.
CombinationSweep
OSD-0 plus every single free bit and every pair among the first
order free bits.
Exhaustive
Every pattern over the first order free bits, at most 24. With
order at least the free-column count this is exact maximum-likelihood
error decoding.
Trait Implementations§
impl Copy for OsdMethod
impl Eq for OsdMethod
impl StructuralPartialEq for OsdMethod
Auto Trait Implementations§
impl Freeze for OsdMethod
impl RefUnwindSafe for OsdMethod
impl Send for OsdMethod
impl Sync for OsdMethod
impl Unpin for OsdMethod
impl UnsafeUnpin for OsdMethod
impl UnwindSafe for OsdMethod
Blanket Implementations§
impl<T> Boilerplate for T
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T, U> Imply<T> for U
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more