Trait rustfst::semirings::WeaklyDivisibleSemiring [−][src]
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> { ... } }
Expand description
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<()>
Provided methods
fn divide(&self, rhs: &Self, divide_type: DivideType) -> Result<Self>
Implementors
impl<W1, W2> WeaklyDivisibleSemiring for ProductWeight<W1, W2> where
W1: WeaklyDivisibleSemiring,
W2: WeaklyDivisibleSemiring,
impl<W, O> WeaklyDivisibleSemiring for UnionWeight<W, O> where
W: WeaklyDivisibleSemiring,
O: UnionWeightOption<W>,