Trait ModSquarePrecomputed

Source
pub trait ModSquarePrecomputed<RHS = Self, M = Self>: ModPowPrecomputed<RHS, M>
where Self: Sized,
{ // Required method fn mod_square_precomputed(self, m: M, data: &Self::Data) -> Self::Output; }
Expand description

Squares a number modulo another number $m$. 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§

Source

fn mod_square_precomputed(self, m: M, data: &Self::Data) -> Self::Output

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 ModSquarePrecomputed for u64

Source§

fn mod_square_precomputed(self, m: u64, data: &Self::Data) -> Self::Output

Squares a number modulo another number $m$. 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 ModSquarePrecomputed<u64> for u8

Source§

fn mod_square_precomputed(self, m: u8, data: &Self::Data) -> Self::Output

Squares a number modulo another number $m$. 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 ModSquarePrecomputed<u64> for u16

Source§

fn mod_square_precomputed(self, m: u16, data: &Self::Data) -> Self::Output

Squares a number modulo another number $m$. 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 ModSquarePrecomputed<u64> for u32

Source§

fn mod_square_precomputed(self, m: u32, data: &Self::Data) -> Self::Output

Squares a number modulo another number $m$. 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 ModSquarePrecomputed<u64> for u128

Source§

fn mod_square_precomputed(self, m: u128, data: &Self::Data) -> Self::Output

Squares a number modulo another number $m$. 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 ModSquarePrecomputed<u64> for usize

Source§

fn mod_square_precomputed(self, m: usize, data: &Self::Data) -> Self::Output

Squares a number modulo another number $m$. 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.

Implementors§