[][src]Trait rustfst::semirings::WeaklyDivisibleSemiring

pub trait WeaklyDivisibleSemiring: Semiring {
    fn divide_assign(
        &mut self,
        rhs: &Self,
        divide_type: DivideType
    ) -> Result<()>; fn divide(&self, rhs: &Self, divide_type: DivideType) -> Result<Self> { ... } }

A semiring is said to be divisible if all non-0 elements admit an inverse, that is if S-{0} is a group. (S, +, *, 0, 1) is said to be weakly divisible if for any x and y in S such that x + y != 0, there exists at least one z such that x = (x+y)*z. For more information : https://cs.nyu.edu/~mohri/pub/hwa.pdf

Required methods

fn divide_assign(&mut self, rhs: &Self, divide_type: DivideType) -> Result<()>

Loading content...

Provided methods

fn divide(&self, rhs: &Self, divide_type: DivideType) -> Result<Self>

Loading content...

Implementors

impl WeaklyDivisibleSemiring for LogWeight[src]

impl WeaklyDivisibleSemiring for ProbabilityWeight[src]

impl WeaklyDivisibleSemiring for StringWeightLeft[src]

impl WeaklyDivisibleSemiring for StringWeightRestrict[src]

impl WeaklyDivisibleSemiring for StringWeightRight[src]

impl WeaklyDivisibleSemiring for TropicalWeight[src]

impl<W1, W2> WeaklyDivisibleSemiring for ProductWeight<W1, W2> where
    W1: WeaklyDivisibleSemiring,
    W2: WeaklyDivisibleSemiring
[src]

impl<W> WeaklyDivisibleSemiring for GallicWeight<W> where
    W: WeaklyDivisibleSemiring
[src]

impl<W> WeaklyDivisibleSemiring for GallicWeightLeft<W> where
    W: WeaklyDivisibleSemiring
[src]

impl<W> WeaklyDivisibleSemiring for GallicWeightMin<W> where
    W: WeaklyDivisibleSemiring
[src]

impl<W> WeaklyDivisibleSemiring for GallicWeightRestrict<W> where
    W: WeaklyDivisibleSemiring
[src]

impl<W> WeaklyDivisibleSemiring for GallicWeightRight<W> where
    W: WeaklyDivisibleSemiring
[src]

impl<W, O> WeaklyDivisibleSemiring for UnionWeight<W, O> where
    W: WeaklyDivisibleSemiring,
    O: UnionWeightOption<W>, 
[src]

Loading content...