pub trait ModSquarePrecomputedAssign<RHS = Self, M = Self>: ModPowPrecomputed<RHS, M> {
// Required method
fn mod_square_precomputed_assign(&mut self, m: M, data: &Self::Data);
}
Expand description
Squares a number modulo another number $m$, in place. The input must be already reduced modulo $m$.
If multiple modular squarings with the same modulus are necessary, it can be quicker to
precompute some piece of data using
precompute_mod_pow_data
function in
ModMulPrecomputed
and reuse it in the squaring calls.
Required Methods§
fn mod_square_precomputed_assign(&mut self, m: M, data: &Self::Data)
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.
Implementations on Foreign Types§
Source§impl ModSquarePrecomputedAssign for u64
impl ModSquarePrecomputedAssign for u64
Source§fn mod_square_precomputed_assign(&mut self, m: u64, data: &Self::Data)
fn mod_square_precomputed_assign(&mut self, m: u64, data: &Self::Data)
Squares a number modulo another number $m$, in place. The input must be already reduced modulo $m$.
Some precomputed data is provided; this speeds up computations involving several
modular squarings with the same modulus. The precomputed data should be obtained
using precompute_mod_pow_data
.
§Worst-case complexity
Constant time and additional memory.
§Panics
Panics if self
is greater than or equal to m
.
§Examples
See here.
Source§impl ModSquarePrecomputedAssign<u64> for u8
impl ModSquarePrecomputedAssign<u64> for u8
Source§fn mod_square_precomputed_assign(&mut self, m: u8, data: &Self::Data)
fn mod_square_precomputed_assign(&mut self, m: u8, data: &Self::Data)
Squares a number modulo another number $m$, in place. The input must be already reduced modulo $m$.
Some precomputed data is provided; this speeds up computations involving several
modular squarings with the same modulus. The precomputed data should be obtained
using precompute_mod_pow_data
.
§Worst-case complexity
Constant time and additional memory.
§Panics
Panics if self
is greater than or equal to m
.
§Examples
See here.
Source§impl ModSquarePrecomputedAssign<u64> for u16
impl ModSquarePrecomputedAssign<u64> for u16
Source§fn mod_square_precomputed_assign(&mut self, m: u16, data: &Self::Data)
fn mod_square_precomputed_assign(&mut self, m: u16, data: &Self::Data)
Squares a number modulo another number $m$, in place. The input must be already reduced modulo $m$.
Some precomputed data is provided; this speeds up computations involving several
modular squarings with the same modulus. The precomputed data should be obtained
using precompute_mod_pow_data
.
§Worst-case complexity
Constant time and additional memory.
§Panics
Panics if self
is greater than or equal to m
.
§Examples
See here.
Source§impl ModSquarePrecomputedAssign<u64> for u32
impl ModSquarePrecomputedAssign<u64> for u32
Source§fn mod_square_precomputed_assign(&mut self, m: u32, data: &Self::Data)
fn mod_square_precomputed_assign(&mut self, m: u32, data: &Self::Data)
Squares a number modulo another number $m$, in place. The input must be already reduced modulo $m$.
Some precomputed data is provided; this speeds up computations involving several
modular squarings with the same modulus. The precomputed data should be obtained
using precompute_mod_pow_data
.
§Worst-case complexity
Constant time and additional memory.
§Panics
Panics if self
is greater than or equal to m
.
§Examples
See here.
Source§impl ModSquarePrecomputedAssign<u64> for u128
impl ModSquarePrecomputedAssign<u64> for u128
Source§fn mod_square_precomputed_assign(&mut self, m: u128, data: &Self::Data)
fn mod_square_precomputed_assign(&mut self, m: u128, data: &Self::Data)
Squares a number modulo another number $m$, in place. The input must be already reduced modulo $m$.
Some precomputed data is provided; this speeds up computations involving several
modular squarings with the same modulus. The precomputed data should be obtained
using precompute_mod_pow_data
.
§Worst-case complexity
Constant time and additional memory.
§Panics
Panics if self
is greater than or equal to m
.
§Examples
See here.
Source§impl ModSquarePrecomputedAssign<u64> for usize
impl ModSquarePrecomputedAssign<u64> for usize
Source§fn mod_square_precomputed_assign(&mut self, m: usize, data: &Self::Data)
fn mod_square_precomputed_assign(&mut self, m: usize, data: &Self::Data)
Squares a number modulo another number $m$, in place. The input must be already reduced modulo $m$.
Some precomputed data is provided; this speeds up computations involving several
modular squarings with the same modulus. The precomputed data should be obtained
using precompute_mod_pow_data
.
§Worst-case complexity
Constant time and additional memory.
§Panics
Panics if self
is greater than or equal to m
.
§Examples
See here.