Trait MIntBase

Source
pub trait MIntBase {
    type Inner: Sized + Copy + Eq + Debug + Hash;

    // Required methods
    fn get_mod() -> Self::Inner;
    fn mod_zero() -> Self::Inner;
    fn mod_one() -> Self::Inner;
    fn mod_add(x: Self::Inner, y: Self::Inner) -> Self::Inner;
    fn mod_sub(x: Self::Inner, y: Self::Inner) -> Self::Inner;
    fn mod_mul(x: Self::Inner, y: Self::Inner) -> Self::Inner;
    fn mod_div(x: Self::Inner, y: Self::Inner) -> Self::Inner;
    fn mod_neg(x: Self::Inner) -> Self::Inner;
    fn mod_inv(x: Self::Inner) -> Self::Inner;

    // Provided methods
    fn mod_pow(x: Self::Inner, y: usize) -> Self::Inner { ... }
    fn mod_inner(x: Self::Inner) -> Self::Inner { ... }
}

Required Associated Types§

Required Methods§

Source

fn get_mod() -> Self::Inner

Source

fn mod_zero() -> Self::Inner

Source

fn mod_one() -> Self::Inner

Source

fn mod_add(x: Self::Inner, y: Self::Inner) -> Self::Inner

Source

fn mod_sub(x: Self::Inner, y: Self::Inner) -> Self::Inner

Source

fn mod_mul(x: Self::Inner, y: Self::Inner) -> Self::Inner

Source

fn mod_div(x: Self::Inner, y: Self::Inner) -> Self::Inner

Source

fn mod_neg(x: Self::Inner) -> Self::Inner

Source

fn mod_inv(x: Self::Inner) -> Self::Inner

Provided Methods§

Source

fn mod_pow(x: Self::Inner, y: usize) -> Self::Inner

Examples found in repository?
crates/competitive/src/num/mint/mint_base.rs (line 80)
79    pub fn pow(self, y: usize) -> Self {
80        Self::new_unchecked(M::mod_pow(self.x, y))
81    }
Source

fn mod_inner(x: Self::Inner) -> Self::Inner

Examples found in repository?
crates/competitive/src/num/mint/mint_base.rs (line 88)
87    pub fn inner(self) -> M::Inner {
88        M::mod_inner(self.x)
89    }

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§