Struct nekolib_doc::math::StaticModInt
source · pub struct StaticModInt<const MOD: u32>(/* private fields */);
Implementations§
source§impl<const MOD: u32> StaticModInt<MOD>
impl<const MOD: u32> StaticModInt<MOD>
pub fn new(val: impl RemEuclidU32) -> StaticModInt<MOD>
pub fn modulus() -> u32
source§impl<const MOD: u32> StaticModInt<MOD>
impl<const MOD: u32> StaticModInt<MOD>
pub fn recip(self) -> StaticModInt<MOD>
pub fn checked_recip(self) -> Option<StaticModInt<MOD>>
pub fn pow(self, exp: impl BinIter) -> StaticModInt<MOD>
Trait Implementations§
source§impl<const MOD: u32> Add<&StaticModInt<MOD>> for &StaticModInt<MOD>
impl<const MOD: u32> Add<&StaticModInt<MOD>> for &StaticModInt<MOD>
source§type Output = StaticModInt<MOD>
type Output = StaticModInt<MOD>
The resulting type after applying the
+
operator.source§fn add(
self,
rhs: &StaticModInt<MOD>,
) -> <&StaticModInt<MOD> as Add<&StaticModInt<MOD>>>::Output
fn add( self, rhs: &StaticModInt<MOD>, ) -> <&StaticModInt<MOD> as Add<&StaticModInt<MOD>>>::Output
Performs the
+
operation. Read moresource§impl<const MOD: u32> Add<&StaticModInt<MOD>> for StaticModInt<MOD>
impl<const MOD: u32> Add<&StaticModInt<MOD>> for StaticModInt<MOD>
source§type Output = StaticModInt<MOD>
type Output = StaticModInt<MOD>
The resulting type after applying the
+
operator.source§fn add(
self,
rhs: &StaticModInt<MOD>,
) -> <StaticModInt<MOD> as Add<&StaticModInt<MOD>>>::Output
fn add( self, rhs: &StaticModInt<MOD>, ) -> <StaticModInt<MOD> as Add<&StaticModInt<MOD>>>::Output
Performs the
+
operation. Read moresource§impl<const MOD: u32> Add<StaticModInt<MOD>> for &StaticModInt<MOD>
impl<const MOD: u32> Add<StaticModInt<MOD>> for &StaticModInt<MOD>
source§type Output = StaticModInt<MOD>
type Output = StaticModInt<MOD>
The resulting type after applying the
+
operator.source§fn add(
self,
rhs: StaticModInt<MOD>,
) -> <&StaticModInt<MOD> as Add<StaticModInt<MOD>>>::Output
fn add( self, rhs: StaticModInt<MOD>, ) -> <&StaticModInt<MOD> as Add<StaticModInt<MOD>>>::Output
Performs the
+
operation. Read moresource§impl<const MOD: u32> Add for StaticModInt<MOD>
impl<const MOD: u32> Add for StaticModInt<MOD>
source§type Output = StaticModInt<MOD>
type Output = StaticModInt<MOD>
The resulting type after applying the
+
operator.source§fn add(self, rhs: StaticModInt<MOD>) -> <StaticModInt<MOD> as Add>::Output
fn add(self, rhs: StaticModInt<MOD>) -> <StaticModInt<MOD> as Add>::Output
Performs the
+
operation. Read moresource§impl<const MOD: u32> AddAssign<&StaticModInt<MOD>> for StaticModInt<MOD>
impl<const MOD: u32> AddAssign<&StaticModInt<MOD>> for StaticModInt<MOD>
source§fn add_assign(&mut self, rhs: &StaticModInt<MOD>)
fn add_assign(&mut self, rhs: &StaticModInt<MOD>)
Performs the
+=
operation. Read moresource§impl<const MOD: u32> AddAssign for StaticModInt<MOD>
impl<const MOD: u32> AddAssign for StaticModInt<MOD>
source§fn add_assign(&mut self, rhs: StaticModInt<MOD>)
fn add_assign(&mut self, rhs: StaticModInt<MOD>)
Performs the
+=
operation. Read moresource§impl<const MOD: u32> Clone for StaticModInt<MOD>
impl<const MOD: u32> Clone for StaticModInt<MOD>
source§fn clone(&self) -> StaticModInt<MOD>
fn clone(&self) -> StaticModInt<MOD>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl<const MOD: u32> Debug for StaticModInt<MOD>
impl<const MOD: u32> Debug for StaticModInt<MOD>
source§impl<const MOD: u32> Display for StaticModInt<MOD>
impl<const MOD: u32> Display for StaticModInt<MOD>
source§impl<const MOD: u32> Div<&StaticModInt<MOD>> for &StaticModInt<MOD>
impl<const MOD: u32> Div<&StaticModInt<MOD>> for &StaticModInt<MOD>
source§type Output = StaticModInt<MOD>
type Output = StaticModInt<MOD>
The resulting type after applying the
/
operator.source§fn div(
self,
rhs: &StaticModInt<MOD>,
) -> <&StaticModInt<MOD> as Div<&StaticModInt<MOD>>>::Output
fn div( self, rhs: &StaticModInt<MOD>, ) -> <&StaticModInt<MOD> as Div<&StaticModInt<MOD>>>::Output
Performs the
/
operation. Read moresource§impl<const MOD: u32> Div<&StaticModInt<MOD>> for StaticModInt<MOD>
impl<const MOD: u32> Div<&StaticModInt<MOD>> for StaticModInt<MOD>
source§type Output = StaticModInt<MOD>
type Output = StaticModInt<MOD>
The resulting type after applying the
/
operator.source§fn div(
self,
rhs: &StaticModInt<MOD>,
) -> <StaticModInt<MOD> as Div<&StaticModInt<MOD>>>::Output
fn div( self, rhs: &StaticModInt<MOD>, ) -> <StaticModInt<MOD> as Div<&StaticModInt<MOD>>>::Output
Performs the
/
operation. Read moresource§impl<const MOD: u32> Div<StaticModInt<MOD>> for &StaticModInt<MOD>
impl<const MOD: u32> Div<StaticModInt<MOD>> for &StaticModInt<MOD>
source§type Output = StaticModInt<MOD>
type Output = StaticModInt<MOD>
The resulting type after applying the
/
operator.source§fn div(
self,
rhs: StaticModInt<MOD>,
) -> <&StaticModInt<MOD> as Div<StaticModInt<MOD>>>::Output
fn div( self, rhs: StaticModInt<MOD>, ) -> <&StaticModInt<MOD> as Div<StaticModInt<MOD>>>::Output
Performs the
/
operation. Read moresource§impl<const MOD: u32> Div for StaticModInt<MOD>
impl<const MOD: u32> Div for StaticModInt<MOD>
source§type Output = StaticModInt<MOD>
type Output = StaticModInt<MOD>
The resulting type after applying the
/
operator.source§fn div(self, rhs: StaticModInt<MOD>) -> <StaticModInt<MOD> as Div>::Output
fn div(self, rhs: StaticModInt<MOD>) -> <StaticModInt<MOD> as Div>::Output
Performs the
/
operation. Read moresource§impl<const MOD: u32> DivAssign<&StaticModInt<MOD>> for StaticModInt<MOD>
impl<const MOD: u32> DivAssign<&StaticModInt<MOD>> for StaticModInt<MOD>
source§fn div_assign(&mut self, rhs: &StaticModInt<MOD>)
fn div_assign(&mut self, rhs: &StaticModInt<MOD>)
Performs the
/=
operation. Read moresource§impl<const MOD: u32> DivAssign for StaticModInt<MOD>
impl<const MOD: u32> DivAssign for StaticModInt<MOD>
source§fn div_assign(&mut self, rhs: StaticModInt<MOD>)
fn div_assign(&mut self, rhs: StaticModInt<MOD>)
Performs the
/=
operation. Read moresource§impl<const MOD: u32, I> From<I> for StaticModInt<MOD>where
I: RemEuclidU32,
impl<const MOD: u32, I> From<I> for StaticModInt<MOD>where
I: RemEuclidU32,
source§fn from(val: I) -> StaticModInt<MOD>
fn from(val: I) -> StaticModInt<MOD>
Converts to this type from the input type.
source§impl<const MOD: u32> Hash for StaticModInt<MOD>
impl<const MOD: u32> Hash for StaticModInt<MOD>
source§impl<const MOD: u32> Mul<&StaticModInt<MOD>> for &StaticModInt<MOD>
impl<const MOD: u32> Mul<&StaticModInt<MOD>> for &StaticModInt<MOD>
source§type Output = StaticModInt<MOD>
type Output = StaticModInt<MOD>
The resulting type after applying the
*
operator.source§fn mul(
self,
rhs: &StaticModInt<MOD>,
) -> <&StaticModInt<MOD> as Mul<&StaticModInt<MOD>>>::Output
fn mul( self, rhs: &StaticModInt<MOD>, ) -> <&StaticModInt<MOD> as Mul<&StaticModInt<MOD>>>::Output
Performs the
*
operation. Read moresource§impl<const MOD: u32> Mul<&StaticModInt<MOD>> for StaticModInt<MOD>
impl<const MOD: u32> Mul<&StaticModInt<MOD>> for StaticModInt<MOD>
source§type Output = StaticModInt<MOD>
type Output = StaticModInt<MOD>
The resulting type after applying the
*
operator.source§fn mul(
self,
rhs: &StaticModInt<MOD>,
) -> <StaticModInt<MOD> as Mul<&StaticModInt<MOD>>>::Output
fn mul( self, rhs: &StaticModInt<MOD>, ) -> <StaticModInt<MOD> as Mul<&StaticModInt<MOD>>>::Output
Performs the
*
operation. Read moresource§impl<const MOD: u32> Mul<StaticModInt<MOD>> for &StaticModInt<MOD>
impl<const MOD: u32> Mul<StaticModInt<MOD>> for &StaticModInt<MOD>
source§type Output = StaticModInt<MOD>
type Output = StaticModInt<MOD>
The resulting type after applying the
*
operator.source§fn mul(
self,
rhs: StaticModInt<MOD>,
) -> <&StaticModInt<MOD> as Mul<StaticModInt<MOD>>>::Output
fn mul( self, rhs: StaticModInt<MOD>, ) -> <&StaticModInt<MOD> as Mul<StaticModInt<MOD>>>::Output
Performs the
*
operation. Read moresource§impl<const MOD: u32> Mul for StaticModInt<MOD>
impl<const MOD: u32> Mul for StaticModInt<MOD>
source§type Output = StaticModInt<MOD>
type Output = StaticModInt<MOD>
The resulting type after applying the
*
operator.source§fn mul(self, rhs: StaticModInt<MOD>) -> <StaticModInt<MOD> as Mul>::Output
fn mul(self, rhs: StaticModInt<MOD>) -> <StaticModInt<MOD> as Mul>::Output
Performs the
*
operation. Read moresource§impl<const MOD: u32> MulAssign<&StaticModInt<MOD>> for StaticModInt<MOD>
impl<const MOD: u32> MulAssign<&StaticModInt<MOD>> for StaticModInt<MOD>
source§fn mul_assign(&mut self, rhs: &StaticModInt<MOD>)
fn mul_assign(&mut self, rhs: &StaticModInt<MOD>)
Performs the
*=
operation. Read moresource§impl<const MOD: u32> MulAssign for StaticModInt<MOD>
impl<const MOD: u32> MulAssign for StaticModInt<MOD>
source§fn mul_assign(&mut self, rhs: StaticModInt<MOD>)
fn mul_assign(&mut self, rhs: StaticModInt<MOD>)
Performs the
*=
operation. Read moresource§impl<const MOD: u32> Neg for &StaticModInt<MOD>
impl<const MOD: u32> Neg for &StaticModInt<MOD>
source§impl<const MOD: u32> Neg for StaticModInt<MOD>
impl<const MOD: u32> Neg for StaticModInt<MOD>
source§impl<const MOD: u32> PartialEq for StaticModInt<MOD>
impl<const MOD: u32> PartialEq for StaticModInt<MOD>
source§impl<'a, const MOD: u32> Product<&'a StaticModInt<MOD>> for StaticModInt<MOD>
impl<'a, const MOD: u32> Product<&'a StaticModInt<MOD>> for StaticModInt<MOD>
source§fn product<I>(iter: I) -> StaticModInt<MOD>where
I: Iterator<Item = &'a StaticModInt<MOD>>,
fn product<I>(iter: I) -> StaticModInt<MOD>where
I: Iterator<Item = &'a StaticModInt<MOD>>,
Takes an iterator and generates
Self
from the elements by multiplying
the items.source§impl<const MOD: u32> Product for StaticModInt<MOD>
impl<const MOD: u32> Product for StaticModInt<MOD>
source§fn product<I>(iter: I) -> StaticModInt<MOD>where
I: Iterator<Item = StaticModInt<MOD>>,
fn product<I>(iter: I) -> StaticModInt<MOD>where
I: Iterator<Item = StaticModInt<MOD>>,
Takes an iterator and generates
Self
from the elements by multiplying
the items.source§impl<const MOD: u32> Sub<&StaticModInt<MOD>> for &StaticModInt<MOD>
impl<const MOD: u32> Sub<&StaticModInt<MOD>> for &StaticModInt<MOD>
source§type Output = StaticModInt<MOD>
type Output = StaticModInt<MOD>
The resulting type after applying the
-
operator.source§fn sub(
self,
rhs: &StaticModInt<MOD>,
) -> <&StaticModInt<MOD> as Sub<&StaticModInt<MOD>>>::Output
fn sub( self, rhs: &StaticModInt<MOD>, ) -> <&StaticModInt<MOD> as Sub<&StaticModInt<MOD>>>::Output
Performs the
-
operation. Read moresource§impl<const MOD: u32> Sub<&StaticModInt<MOD>> for StaticModInt<MOD>
impl<const MOD: u32> Sub<&StaticModInt<MOD>> for StaticModInt<MOD>
source§type Output = StaticModInt<MOD>
type Output = StaticModInt<MOD>
The resulting type after applying the
-
operator.source§fn sub(
self,
rhs: &StaticModInt<MOD>,
) -> <StaticModInt<MOD> as Sub<&StaticModInt<MOD>>>::Output
fn sub( self, rhs: &StaticModInt<MOD>, ) -> <StaticModInt<MOD> as Sub<&StaticModInt<MOD>>>::Output
Performs the
-
operation. Read moresource§impl<const MOD: u32> Sub<StaticModInt<MOD>> for &StaticModInt<MOD>
impl<const MOD: u32> Sub<StaticModInt<MOD>> for &StaticModInt<MOD>
source§type Output = StaticModInt<MOD>
type Output = StaticModInt<MOD>
The resulting type after applying the
-
operator.source§fn sub(
self,
rhs: StaticModInt<MOD>,
) -> <&StaticModInt<MOD> as Sub<StaticModInt<MOD>>>::Output
fn sub( self, rhs: StaticModInt<MOD>, ) -> <&StaticModInt<MOD> as Sub<StaticModInt<MOD>>>::Output
Performs the
-
operation. Read moresource§impl<const MOD: u32> Sub for StaticModInt<MOD>
impl<const MOD: u32> Sub for StaticModInt<MOD>
source§type Output = StaticModInt<MOD>
type Output = StaticModInt<MOD>
The resulting type after applying the
-
operator.source§fn sub(self, rhs: StaticModInt<MOD>) -> <StaticModInt<MOD> as Sub>::Output
fn sub(self, rhs: StaticModInt<MOD>) -> <StaticModInt<MOD> as Sub>::Output
Performs the
-
operation. Read moresource§impl<const MOD: u32> SubAssign<&StaticModInt<MOD>> for StaticModInt<MOD>
impl<const MOD: u32> SubAssign<&StaticModInt<MOD>> for StaticModInt<MOD>
source§fn sub_assign(&mut self, rhs: &StaticModInt<MOD>)
fn sub_assign(&mut self, rhs: &StaticModInt<MOD>)
Performs the
-=
operation. Read moresource§impl<const MOD: u32> SubAssign for StaticModInt<MOD>
impl<const MOD: u32> SubAssign for StaticModInt<MOD>
source§fn sub_assign(&mut self, rhs: StaticModInt<MOD>)
fn sub_assign(&mut self, rhs: StaticModInt<MOD>)
Performs the
-=
operation. Read moresource§impl<'a, const MOD: u32> Sum<&'a StaticModInt<MOD>> for StaticModInt<MOD>
impl<'a, const MOD: u32> Sum<&'a StaticModInt<MOD>> for StaticModInt<MOD>
source§fn sum<I>(iter: I) -> StaticModInt<MOD>where
I: Iterator<Item = &'a StaticModInt<MOD>>,
fn sum<I>(iter: I) -> StaticModInt<MOD>where
I: Iterator<Item = &'a StaticModInt<MOD>>,
Takes an iterator and generates
Self
from the elements by “summing up”
the items.source§impl<const MOD: u32> Sum for StaticModInt<MOD>
impl<const MOD: u32> Sum for StaticModInt<MOD>
source§fn sum<I>(iter: I) -> StaticModInt<MOD>where
I: Iterator<Item = StaticModInt<MOD>>,
fn sum<I>(iter: I) -> StaticModInt<MOD>where
I: Iterator<Item = StaticModInt<MOD>>,
Takes an iterator and generates
Self
from the elements by “summing up”
the items.impl<const MOD: u32> Copy for StaticModInt<MOD>
impl<const MOD: u32> Eq for StaticModInt<MOD>
impl<const MOD: u32> StructuralPartialEq for StaticModInt<MOD>
Auto Trait Implementations§
impl<const MOD: u32> Freeze for StaticModInt<MOD>
impl<const MOD: u32> RefUnwindSafe for StaticModInt<MOD>
impl<const MOD: u32> Send for StaticModInt<MOD>
impl<const MOD: u32> Sync for StaticModInt<MOD>
impl<const MOD: u32> Unpin for StaticModInt<MOD>
impl<const MOD: u32> UnwindSafe for StaticModInt<MOD>
Blanket Implementations§
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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)