Trait Semiring

Source
pub trait Semiring {
    type Element;

    // Required methods
    fn zero(&self) -> Self::Element;
    fn one(&self) -> Self::Element;
    fn add(&self, a: Self::Element, b: Self::Element) -> Self::Element;
    fn mul(&self, a: Self::Element, b: Self::Element) -> Self::Element;
    fn times(&self, a: Self::Element, n: u64) -> Self::Element;
}
Expand description

半環

Required Associated Types§

Source

type Element

集合の元

Required Methods§

Source

fn zero(&self) -> Self::Element

加法の単位元

Source

fn one(&self) -> Self::Element

乗法の単位元

Source

fn add(&self, a: Self::Element, b: Self::Element) -> Self::Element

加法$\oplus$

Source

fn mul(&self, a: Self::Element, b: Self::Element) -> Self::Element

乗法$\otimes$

Source

fn times(&self, a: Self::Element, n: u64) -> Self::Element

$\underbrace{a \oplus a \oplus \dots \oplus a \oplus a}_{n}$を計算する。

Implementors§

Source§

impl Semiring for AddMul<u8>

Source§

impl Semiring for AddMul<u16>

Source§

impl Semiring for AddMul<u32>

Source§

impl Semiring for AddMul<u64>

Source§

impl Semiring for AddMul<u128>

Source§

impl Semiring for AddMul<usize>

Source§

impl Semiring for MaxAdd<i8>

Source§

impl Semiring for MaxAdd<i16>

Source§

impl Semiring for MaxAdd<i32>

Source§

impl Semiring for MaxAdd<i64>

Source§

impl Semiring for MaxAdd<i128>

Source§

impl Semiring for MaxAdd<isize>

Source§

impl Semiring for MaxAdd<u8>

Source§

impl Semiring for MaxAdd<u16>

Source§

impl Semiring for MaxAdd<u32>

Source§

impl Semiring for MaxAdd<u64>

Source§

impl Semiring for MaxAdd<u128>

Source§

impl Semiring for MaxAdd<usize>

Source§

impl Semiring for MinAdd<i8>

Source§

impl Semiring for MinAdd<i16>

Source§

impl Semiring for MinAdd<i32>

Source§

impl Semiring for MinAdd<i64>

Source§

impl Semiring for MinAdd<i128>

Source§

impl Semiring for MinAdd<isize>

Source§

impl Semiring for MinAdd<u8>

Source§

impl Semiring for MinAdd<u16>

Source§

impl Semiring for MinAdd<u32>

Source§

impl Semiring for MinAdd<u64>

Source§

impl Semiring for MinAdd<u128>

Source§

impl Semiring for MinAdd<usize>

Source§

impl Semiring for XorAnd<u8>

Source§

impl Semiring for XorAnd<u16>

Source§

impl Semiring for XorAnd<u32>

Source§

impl Semiring for XorAnd<u64>

Source§

impl Semiring for XorAnd<u128>

Source§

impl Semiring for XorAnd<usize>

Source§

impl<T: ZZ> Semiring for AddMulMod<T>

Source§

type Element = <T as ZZ>::Element