pub trait ModPow<RHS = Self, M = Self> {
type Output;
// Required method
fn mod_pow(self, exp: RHS, m: M) -> Self::Output;
}Expand description
Raises a number to a power modulo another number $m$. The base must be already reduced modulo $m$.
Required Associated Types§
Required Methods§
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".
Implementations on Foreign Types§
Source§impl ModPow for u64
impl ModPow for u64
Source§fn mod_pow(self, exp: u64, m: u64) -> u64
fn mod_pow(self, exp: u64, m: u64) -> u64
Raises a number to a power modulo another number $m$. The base must be already reduced modulo $m$.
$f(x, n, m) = y$, where $x, y < m$ and $x^n \equiv y \mod m$.
§Worst-case complexity
$T(n) = O(n)$
$M(n) = O(1)$
where $T$ is time, $M$ is additional memory, and $n$ is exp.significant_bits().
§Panics
Panics if self is greater than or equal to m.
§Examples
See here.
type Output = u64
Source§impl ModPow<u64> for u8
impl ModPow<u64> for u8
Source§fn mod_pow(self, exp: u64, m: u8) -> u8
fn mod_pow(self, exp: u64, m: u8) -> u8
Raises a number to a power modulo another number $m$. The base must be already reduced modulo $m$.
$f(x, n, m) = y$, where $x, y < m$ and $x^n \equiv y \mod m$.
§Worst-case complexity
$T(n) = O(n)$
$M(n) = O(1)$
where $T$ is time, $M$ is additional memory, and $n$ is exp.significant_bits().
§Panics
Panics if self is greater than or equal to m.
§Examples
See here.
type Output = u8
Source§impl ModPow<u64> for u16
impl ModPow<u64> for u16
Source§fn mod_pow(self, exp: u64, m: u16) -> u16
fn mod_pow(self, exp: u64, m: u16) -> u16
Raises a number to a power modulo another number $m$. The base must be already reduced modulo $m$.
$f(x, n, m) = y$, where $x, y < m$ and $x^n \equiv y \mod m$.
§Worst-case complexity
$T(n) = O(n)$
$M(n) = O(1)$
where $T$ is time, $M$ is additional memory, and $n$ is exp.significant_bits().
§Panics
Panics if self is greater than or equal to m.
§Examples
See here.
type Output = u16
Source§impl ModPow<u64> for u32
impl ModPow<u64> for u32
Source§fn mod_pow(self, exp: u64, m: u32) -> u32
fn mod_pow(self, exp: u64, m: u32) -> u32
Raises a number to a power modulo another number $m$. The base must be already reduced modulo $m$.
$f(x, n, m) = y$, where $x, y < m$ and $x^n \equiv y \mod m$.
§Worst-case complexity
$T(n) = O(n)$
$M(n) = O(1)$
where $T$ is time, $M$ is additional memory, and $n$ is exp.significant_bits().
§Panics
Panics if self is greater than or equal to m.
§Examples
See here.
type Output = u32
Source§impl ModPow<u64> for u128
impl ModPow<u64> for u128
Source§fn mod_pow(self, exp: u64, m: u128) -> u128
fn mod_pow(self, exp: u64, m: u128) -> u128
Raises a number to a power modulo another number $m$. The base must be already reduced modulo $m$.
$f(x, n, m) = y$, where $x, y < m$ and $x^n \equiv y \mod m$.
§Worst-case complexity
$T(n) = O(n)$
$M(n) = O(1)$
where $T$ is time, $M$ is additional memory, and $n$ is exp.significant_bits().
§Panics
Panics if self is greater than or equal to m.
§Examples
See here.
type Output = u128
Source§impl ModPow<u64> for usize
impl ModPow<u64> for usize
Source§fn mod_pow(self, exp: u64, m: usize) -> usize
fn mod_pow(self, exp: u64, m: usize) -> usize
Raises a number to a power modulo another number $m$. The base must be already reduced modulo $m$.
$f(x, n, m) = y$, where $x, y < m$ and $x^n \equiv y \mod m$.
§Worst-case complexity
$T(n) = O(n)$
$M(n) = O(1)$
where $T$ is time, $M$ is additional memory, and $n$ is exp.significant_bits().
§Panics
Panics if self is greater than or equal to m.
§Examples
See here.